如何实现(电脑)PC机与单片机AT89C51的串行通信
org 0000h
本文引用地址:https://www.eepw.com.cn/article/273495.htmajmpstart
org0023h ;串行中断入口
ljmps&r
org0100h
start:mov tmod,#20h ;设置定时器T1方式2
movpcon,#00h;使SMOD为0
movtll,#0fdh;波特率为9600b/s
movthl,#0fdh
setbea;开全局中断
clret1;关T1中断
setbes;开串行中断
setbtrl;开T1定时
movscon,#50h;串行方式1,允许接收
sjmp$
S&r:movc,ri
jcrecive;RI为1,执行接收子程序
sjmpsend;否则,执行发送子程序
recive:mova,sbuf;接收数据
clrri
cjnea,#52h,re;是否接收到“R”
mova,#59h;是,发送“Y”
movsbuf,a
sjmpendtr
re:mov @rl,a ;r1为接收数据存放地址
incr1
sjmpendtr
send:mova,@r0;发送数据,r0为存放数据的地址
movsbuf,a
jnbti,$
clrti
incr0
endtr:reti;中断返回
3 结束语
串口通信是一种广泛应用于各个领域的通信方式,由于目前大部分计算机都安装了Windows95操作系统,所以本文具体实现了在Windows95下利用它的SDK函数来与单片机进行串口通信。本文所提出的实现函数在所有当前流行软件如VC++、Delphi等中都可实现。它不仅可以用于近距离的RS-232通信,而且,还可以实现中远距离RS-485通信。在使用该程序的通信系统中,近远距离的通信都取得良好的效果。
51单片机相关文章:51单片机教程
单片机相关文章:单片机教程
单片机相关文章:单片机视频教程
单片机相关文章:单片机工作原理
数字通信相关文章:数字通信原理
通信相关文章:通信原理
晶振相关文章:晶振原理
评论