久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

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

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

作者: 時間:2016-11-18 來源:網絡 收藏
一、實驗現象:

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

當電腦向單片機發送一個數據后,P0口發生燈光變換。

二、實驗任務分析:

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

當然,這個試驗功能的實現不只是這么一種方法。我們還可以采用在主程序中查詢RI的方式來實現。這個試驗我們就分別用這兩種方式來現它。同樣,在這個試驗中,我們也利用串口調試助手來完成向單片機發送數據的過程。具體設置方法可見下圖:

三、實驗程序

1、 中斷方式實現

org 0000h

ajmp main

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

ajmp serial ;跳轉至中斷服務程序

main: clr p1.5

mov p0,#55h ;讓8個led從右到左依次為亮、滅(注意跳線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 ;啟動定時器T1開始定時

setb ea ;cpu開放中斷

setb es ;開放串行口中斷

ajmp $ ;等待中斷

serial: clr ea ;cpu關閉中斷

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

mov a,p0

cpl a

mov p0,a ;p0口燈光變化

setb ea ;cpu開放中斷

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

end

2、 查詢方式實現:

org 0000h

ajmp main

main: clr p1.5

mov p0,#55h ;讓8個led從右到左依次為亮、滅(注意跳線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 ;啟動定時器T1開始定時

wait: jnb ri,wait ;如果停止位是0,表示信息沒有發送完畢,等待

clr ri ;清除停止位

mov a,p0

cpl a

mov p0,a ;p0口燈光變化

ajmp wait

end

把上面的程序下載到測試板上,然后在串口調試助手中隨便寫入一個數據,每一次按下串口調試程序中的手動發送按鍵,就會發現led的燈光發生變化。



評論


技術專區

關閉