新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 89C51單片機的I/O 口模擬串行通信實現

89C51單片機的I/O 口模擬串行通信實現

作者: 時間:2012-09-03 來源:網絡 收藏

3.接口程序設計

軟件設計中, 的P1.0 和P1.1 口分別的發(fā)送和接收,其接口程序主要由INPUT 發(fā)送子程序和OUTPUT接收子程序組成。速率1200 bit /s,幀格式為N.8.1。發(fā)送時,先發(fā)送一個起始位(低電平),接著按低位在先的順序發(fā)送8 位數據,最后發(fā)送停止位。接收時,先判斷P1.1 接收端口是否有起始低電平出現,其中軟件編寫要嚴格按照異步的時序進行,每bit 位傳送時間間隔按通信速率1200 bit /s計算為833μs。

通信程序清單見下,系統(tǒng)要求晶振為6M。程序清單如下:

TXD EQU P1.0

RXD EQU P1.1 ;定義 P1.0 為發(fā)送端,P1.1 為接收端

ORG 0000H

AJMP MAIN

ORG 0100H

MAIN: MOV A, #30H

MOV R5,#N

SETB RXD ;P1.0 置高

TX: LCALL INPUT ;調用發(fā)送子程序,將寄存器A 中內容發(fā)給PC 機

;

SETB TXD ;P1.1 置高

MOV R0,#40H

RX: LCALL OUTPUT ;調用接收子程序,將接收的N 個數據存放在以40H開始的地址中

MOV @R0,A

INC R0

DJNZ R5, RX ;N 個數據接收結束,則等待,否則轉RX 繼續(xù)接收

3

AJMP $

;**************延時833μs 子程序*****

DEL833: MOV R7 ,#205

MS11: DJNZ R7,MS11

RET

; **********************************

;******** 發(fā)送數據給PC 機子程序****

INPUT: CLR C

MOV TXD,C ;發(fā)送起始位

LCALL DEL833 ;延時

MOV R3,#8

REP: RRC A

MOV TXD ,C

LCALL DEL833

DJNZ R3,REP ;發(fā)送8 位數據

SETB C ;發(fā)送停止位

MOV TXD,C

LCALL DEL833

RET

;********從PC 機接收數據子程序********

OUTPUT: JB RXD, $ ; 判斷是否有起始位出現

LCALL DEL833

MOV R3,#8

OUT: MOV C ,RXD

RRC A

LCALL DEL833

DJNZ R3,OUT ; 接收8 位數據

JNB RXD ,$ ; 判斷是否有停止位出現

RET

本文介紹的用 89C51 通信的方法,已成功地應用在某電壓數據采集系統(tǒng)中,這樣的進步,讓這項技術有了更加高的期待性,在社會上也有了很好的反應,這樣就讓這個研究成果有了很好的作用。

數字通信相關文章:數字通信原理


通信相關文章:通信原理



上一頁 1 2 下一頁

評論


相關推薦

技術專區(qū)

關閉