如何實(shí)現(xiàn)(電腦)PC機(jī)與單片機(jī)AT89C51的串行通信
org 0000h
本文引用地址:http://www.ex-cimer.com/article/273495.htmajmpstart
org0023h ;串行中斷入口
ljmps&r
org0100h
start:mov tmod,#20h ;設(shè)置定時(shí)器T1方式2
movpcon,#00h;使SMOD為0
movtll,#0fdh;波特率為9600b/s
movthl,#0fdh
setbea;開(kāi)全局中斷
clret1;關(guān)T1中斷
setbes;開(kāi)串行中斷
setbtrl;開(kāi)T1定時(shí)
movscon,#50h;串行方式1,允許接收
sjmp$
S&r:movc,ri
jcrecive;RI為1,執(zhí)行接收子程序
sjmpsend;否則,執(zhí)行發(fā)送子程序
recive:mova,sbuf;接收數(shù)據(jù)
clrri
cjnea,#52h,re;是否接收到“R”
mova,#59h;是,發(fā)送“Y”
movsbuf,a
sjmpendtr
re:mov @rl,a ;r1為接收數(shù)據(jù)存放地址
incr1
sjmpendtr
send:mova,@r0;發(fā)送數(shù)據(jù),r0為存放數(shù)據(jù)的地址
movsbuf,a
jnbti,$
clrti
incr0
endtr:reti;中斷返回
3 結(jié)束語(yǔ)
串口通信是一種廣泛應(yīng)用于各個(gè)領(lǐng)域的通信方式,由于目前大部分計(jì)算機(jī)都安裝了Windows95操作系統(tǒng),所以本文具體實(shí)現(xiàn)了在Windows95下利用它的SDK函數(shù)來(lái)與單片機(jī)進(jìn)行串口通信。本文所提出的實(shí)現(xiàn)函數(shù)在所有當(dāng)前流行軟件如VC++、Delphi等中都可實(shí)現(xiàn)。它不僅可以用于近距離的RS-232通信,而且,還可以實(shí)現(xiàn)中遠(yuǎn)距離RS-485通信。在使用該程序的通信系統(tǒng)中,近遠(yuǎn)距離的通信都取得良好的效果。
51單片機(jī)相關(guān)文章:51單片機(jī)教程
單片機(jī)相關(guān)文章:單片機(jī)教程
單片機(jī)相關(guān)文章:單片機(jī)視頻教程
單片機(jī)相關(guān)文章:單片機(jī)工作原理
數(shù)字通信相關(guān)文章:數(shù)字通信原理
通信相關(guān)文章:通信原理
晶振相關(guān)文章:晶振原理
評(píng)論