資源描述:
《51單片機實例-拉幕式數(shù)碼顯示》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、AT89S51單片機實驗及實踐教程21.拉幕式數(shù)碼顯示技術(shù)1.實驗任務用AT89S51單片機的P0.0/AD0-P0.7/AD7端口接數(shù)碼管的a-h(huán)端,8位數(shù)碼管的S1-S8通過74LS138譯碼器的Y0-Y7來控制選通每個數(shù)碼管的位選端。AT89S51單片機的P1.0-P1.2控制74LS138的A,B,C端子。在8位數(shù)碼管上從右向左循環(huán)顯示“12345678”。能夠比較平滑地看到拉幕的效果。2.電路原理圖圖4.21.13.系統(tǒng)板上硬件連線(1.把“單片機系統(tǒng)”區(qū)域中的P0.0/AD0-P0.7
2、/AD7用8芯排線連接到“動態(tài)數(shù)碼顯-114-AT89S51單片機實驗及實踐教程示”區(qū)域中的a-h(huán)端口上;(2.把“三八譯碼模塊”區(qū)域中的Y0-Y7用8芯排線連接到“動態(tài)數(shù)碼顯示”區(qū)域中的S1-S8端口上;(3.把“單片機系統(tǒng)”區(qū)域中的P1.0-P1.2端口用3根導線連接到“三八譯碼模塊”區(qū)域中的A、B、C“端口上;4.程序設計方法(1.動態(tài)數(shù)碼顯示技術(shù);如何進行動態(tài)掃描,由于一次只能讓一個數(shù)碼管顯示,因此,要顯示8位的數(shù)據(jù),必須經(jīng)過讓數(shù)碼管一個一個輪流顯示才可以,同時每個數(shù)碼管顯示的時間大約在1
3、ms到4ms之間,所以為了保證正確顯示,我必須每隔1ms,就得刷新一個數(shù)碼管。而這刷新時間我們采用單片機的定時/計數(shù)器T0來控制,每定時1ms對數(shù)碼管刷新一次,T0采用方式2。(2.在進行數(shù)碼顯示的時候,要對顯示單元開辟8個顯示緩沖區(qū),每個顯示緩沖區(qū)裝有顯示的不同數(shù)據(jù)即可。5.程序框圖主程序框圖開始顯示緩沖區(qū)初始化必要參數(shù)初始化T0初始化,TH0,TL0裝入初值T0工作并開中斷等待中斷-115-AT89S51單片機實驗及實踐教程中斷服務程序框圖T0中斷入口通過查表方式,獲得顯示代碼送入P0位選數(shù)據(jù)
4、送P1位選數(shù)據(jù)加1位選數(shù)據(jù)=8嗎?位選數(shù)據(jù)=00.4秒定時到了嗎?CNT加1CNT=9嗎?CNT=0根據(jù)CNT來決定顯示幾位數(shù)據(jù)中斷返回圖4.21.2-116-AT89S51單片機實驗及實踐教程6.匯編源程序DISPBUFEQU30HDISPCNTEQU38HDISPBITEQU39HT1CNTAEQU3AHT1CNTBEQU3BHCNTEQU3CHORG00HLJMPSTARTORG0BHLJMPINT_T0START:MOVDISPCNT,#8MOVA,#10MOVR1,#DISPBUFLP:
5、MOV@R1,AINCR1DJNZDISPCNT,LPMOVDISPBIT,#00HMOVT1CNTA,#00HMOVT1CNTB,#00HMOVCNT,#00HMOVTMOD,#01HMOVTH0,#(65536-1000)/256MOVTL0,#(65536-1000)MOD256SETBTR0SETBET0SETBEASJMP$INT_T0:MOVTH0,#(65536-1000)/256MOVTL0,#(65536-1000)MOD256MOVA,DISPBITADDA,#DISPBUFM
6、OVR0,AMOVA,@R0MOVDPTR,#TABLEMOVCA,@A+DPTRMOVP0,AMOVA,P1ANLA,#0F8HADDA,DISPBITMOVP1,AINCDISPBIT-117-AT89S51單片機實驗及實踐教程MOVA,DISPBITCJNEA,#08H,NEXTMOVDISPBIT,#00HNEXT:INCT1CNTAMOVA,T1CNTACJNEA,#50,LL1MOVT1CNTA,#00HINCT1CNTBMOVA,T1CNTBCJNEA,#8,LL1MOVT1CNTB
7、,#00HINCCNTMOVA,CNTCJNEA,#9,LLXMOVCNT,#00HMOVA,CNTLLX:CJNEA,#01H,NEX1MOV30H,#8LL1:LJMPDONENEX1:CJNEA,#02H,NEX2MOV31H,#8MOV30H,#8LJMPDONENEX2:CJNEA,#03H,NEX3MOV32H,#8MOV31H,#8MOV30H,#8LJMPDONENEX3:CJNEA,#04H,NEX4MOV33H,#8MOV32H,#8MOV31H,#8MOV30H,#8LJMP
8、DONENEX4:CJNEA,#05H,NEX5MOV34H,#8MOV33H,#8MOV32H,#8MOV31H,#8MOV30H,#8LJMPDONENEX5:CJNEA,#06H,NEX6MOV35H,#8MOV34H,#8MOV33H,#8MOV32H,#8MOV31H,#8MOV30H,#8LJMPDONE-118-AT89S51單片機實驗及實踐教程NEX6:CJNEA,#07H,NEX7MOV36H,#8MOV35H,#8MOV34H,#8MOV33H,#8MOV32H