如何模拟实现应用在数据采集系统中的89C51单片机I/O口串行通信?

网友投稿 234 2022-11-14

如何模拟实现应用在数据采集系统中的89C51单片机I/O口串行通信?

1.串行接口的基本通信方式

串行接口的有异步和同步两种基本通信方式。异步通信采用用异步传送格式,如图1 所示。数据发送和接收均将起始位和停止位作为开始和结束的标志。在异步通信中,起始位占用一位(低电平)。

异步通信采用用异步传送格式

3.接口程序设计

TXD EQU P1.0

RXD EQU P1.1 ;定义89C51 P1.0 为发送端,P1.1 为接收端

ORG 0000H

AJMP MAIN

ORG 0100H

MAIN: MOV A, #30H

MOV R5,#N

SETB RXD ;P1.0 置高

SETB TXD ;P1.1 置高

MOV R0,#40H

RX: LCALL OUTPUT ;调用接收子程序,将接收的N 个数据存放在以40H开始的地址中

MOV @R0,A

INC R0

DJNZ R5, RX ;N 个数据接收结束,则等待,否则转RX 继续接收

3

AJMP $

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

DEL833: MOV R7 ,#205

MS11: DJNZ R7,MS11

RET

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

;******** 89C51发送数据给PC 机子程序****

INPUT: CLR C

MOV TXD,C ;发送起始位

LCALL DEL833 ;延时

MOV R3,#8

REP: RRC A

MOV TXD ,C

LCALL DEL833

DJNZ R3,REP ;发送8 位数据

SETB C ;发送停止位

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:虚拟化与云计算
下一篇:Java实现深度搜索DFS算法详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~