<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 單片機學(xué)習之十九:串行通訊程序-單片機接收

單片機學(xué)習之十九:串行通訊程序-單片機接收

作者: 時(shí)間:2016-11-18 來(lái)源:網(wǎng)絡(luò ) 收藏
一、實(shí)驗現象:

本文引用地址:http://dyxdggzs.com/article/201611/315893.htm

當電腦向單片機發(fā)送一個(gè)數據后,P0口發(fā)生燈光變換。

二、實(shí)驗任務(wù)分析:

這個(gè)試驗我們仍然采用方式1來(lái)完成。在上一個(gè)試驗的通訊理論介紹中,我們知道,當單片機接受到一幀信號后,會(huì )置位串行口接受中斷標志RI,從而向單片機申請中斷。如果單片機開(kāi)放中斷,就會(huì )進(jìn)入中斷服務(wù)程序,我們就把燈光變化的任務(wù)放到中斷程序中來(lái)完成即可。

當然,這個(gè)試驗功能的實(shí)現不只是這么一種方法。我們還可以采用在主程序中查詢(xún)RI的方式來(lái)實(shí)現。這個(gè)試驗我們就分別用這兩種方式來(lái)現它。同樣,在這個(gè)試驗中,我們也利用串口調試助手來(lái)完成向單片機發(fā)送數據的過(guò)程。具體設置方法可見(jiàn)下圖:

三、實(shí)驗程序

1、 中斷方式實(shí)現

org 0000h

ajmp main

org 0023h ;串行口中斷入口地址

ajmp serial ;跳轉至中斷服務(wù)程序

main: clr p1.5

mov p0,#55h ;讓8個(gè)led從右到左依次為亮、滅(注意跳線(xiàn)jmp0置于12)

mov scon,#50h ;單片機工作于方式1,可以接受數據

mov tmod,#20h ;T1設置為工作方式2

mov tl1,#0f3h ;按照波特率為2400計算初值

mov th1,#0f3h ;把計數初值送入常數緩沖器

mov pcon,#80h ;smod=1,波特率變成4800

setb tr1 ;啟動(dòng)定時(shí)器T1開(kāi)始定時(shí)

setb ea ;cpu開(kāi)放中斷

setb es ;開(kāi)放串行口中斷

ajmp $ ;等待中斷

serial: clr ea ;cpu關(guān)閉中斷

clr ri ;清除串口接受中斷標志

mov a,p0

cpl a

mov p0,a ;p0口燈光變化

setb ea ;cpu開(kāi)放中斷

reti ;返回主程序,等待下一次響應中斷

end

2、 查詢(xún)方式實(shí)現:

org 0000h

ajmp main

main: clr p1.5

mov p0,#55h ;讓8個(gè)led從右到左依次為亮、滅(注意跳線(xiàn)jmp0置于12)

mov scon,#50h ;單片機工作于方式1,可以接受數據

mov tmod,#20h ;T1設置為工作方式2

mov tl1,#0f3h ;按照波特率為2400計算初值

mov th1,#0f3h ;把計數初值送入常數緩沖器

mov pcon,#80h ;smod=1,波特率變成4800

setb tr1 ;啟動(dòng)定時(shí)器T1開(kāi)始定時(shí)

wait: jnb ri,wait ;如果停止位是0,表示信息沒(méi)有發(fā)送完畢,等待

clr ri ;清除停止位

mov a,p0

cpl a

mov p0,a ;p0口燈光變化

ajmp wait

end

把上面的程序下載到測試板上,然后在串口調試助手中隨便寫(xiě)入一個(gè)數據,每一次按下串口調試程序中的手動(dòng)發(fā)送按鍵,就會(huì )發(fā)現led的燈光發(fā)生變化。



評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>