




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、動(dòng)態(tài)顯示 1掌握LED數(shù)碼管顯示及其一般電路結(jié)構(gòu); 2掌握LED動(dòng)態(tài)顯示程序的一般設(shè)計(jì)方法。一、 實(shí)驗(yàn)內(nèi)容 動(dòng)態(tài)顯示,也稱為掃描顯示。顯示器由6個(gè)共陰極LED數(shù)碼管構(gòu)成。單片機(jī)的P0口輸出顯示段碼,由一片74LS245輸出給LED管;由P1口輸出位碼,經(jīng)74LS04輸出給LED顯示。二、 實(shí)驗(yàn)步驟1、打開(kāi)Proteus ISIS編輯環(huán)境,按下表所列的元件清單添加元件。實(shí)驗(yàn)所用元件清單元件名稱所屬類所屬子類AT89C51Microprocessor ICs8051 FamilyCAPCapacitorsGenericCAP-ELECCapacitorsGenericCRYSTALMiscella
2、neous-RESResistorsGeneric7SEG-MPX6-CC-BLUEOptoelectronics7-Segment Displays74LS04TTL 74LS SeriesGates & Inverters74LS245TTL 74LS SeriesTranseivers 元件全部添加后,在Proteus ISIS的編輯區(qū)域中按實(shí)驗(yàn)原理圖連接硬件電路。圖1 動(dòng)態(tài)顯示實(shí)驗(yàn)電路原理圖2、 按實(shí)驗(yàn)要求在KeilC中創(chuàng)建項(xiàng)目,編輯、編譯程序。3、 將編譯生成的目標(biāo)碼文件(后綴為.Hex)傳入Proteus的實(shí)驗(yàn)電路中。4、 在Proteus ISIS仿真環(huán)境中運(yùn)行程序,觀察
3、實(shí)驗(yàn)運(yùn)行結(jié)果并記錄。三、 實(shí)驗(yàn)要求1. 編寫一顯示程序顯示201071;2. 顯示特殊字符good;3. 調(diào)整軟件延時(shí)子程序的循環(huán)初值,逐漸加大每一位LED點(diǎn)亮的時(shí)間,觀察程序運(yùn)行結(jié)果。四、 參考程序dbuf equ 30h ;置存儲(chǔ)區(qū)首址temp equ 40h ;置緩沖區(qū)首址 org 00h mov 30h,#2 ;存入數(shù)據(jù) mov 31h,#0 mov 32h,#1 mov 33h,#0 mov 34h,#7 mov 35h,#1 mov r0,#dbuf mov r1,#temp mov r2,#6 ;六位顯示器 mov dptr,#segtab ;段碼表首地址dp00: mov a,
4、r0 ;取要顯示的數(shù)據(jù) movc a,a+dptr ;查表取段碼 mov r1,a ;段碼暫存 inc r1 inc r0 djnz r2,dp00disp0: mov r0,#temp ;顯示子程序 mov r1,#6 ;掃描6次 mov r2,#01h ;從第一位開(kāi)始dp01: mov a,r0 mov p0,a ;段碼輸出 mov a,r2 ;取位碼 mov p1,a ;位碼輸出 acall delay ;調(diào)用延時(shí) mov a,r2 rl a mov r2,a inc r0 djnz r1,dp01 sjmp disp0segtab: db 3fh,06h,5bh,4fh,66h db
5、6dh,7dh,07h,7fh,6fhdelay: mov r4,#03h ;延時(shí)子程序aa1: mov r5,0ffhaa: djnz r5,aa djnz r4,aa1 ret end實(shí)驗(yàn)原理 MCS51單片機(jī)內(nèi)設(shè)置了兩個(gè)可編程的16位定時(shí)器T0和T1,通過(guò)編程,可以設(shè)定為定時(shí)器和外部計(jì)數(shù)方式。T1還可以作為其串行口的波特率發(fā)生器。定時(shí)器T0由特殊功能寄存器TL0和TH0構(gòu)成,定時(shí)器T1由TH1和TL1構(gòu)成,特殊功能寄存器TMOD控制定時(shí)器的工作方式,TCON控制其運(yùn)行。定時(shí)器的中斷由中斷允許寄存器IE,中斷優(yōu)先權(quán)寄存器IP中的相應(yīng)位進(jìn)行控制。定時(shí)器T0的中斷入口地址為000BH,T1的中
6、斷入口地址為001BH。定時(shí)器的編程包括:1) 置工作方式。2) 置計(jì)數(shù)初值。3) 中斷設(shè)置。4) 啟動(dòng)定時(shí)器。定時(shí)器/計(jì)數(shù)器由四種工作方式,所用的計(jì)數(shù)位數(shù)不同,因此,定時(shí)計(jì)數(shù)常數(shù)也就不同。在編寫中斷服務(wù)程序時(shí),應(yīng)該清楚中斷響應(yīng)過(guò)程:CPU執(zhí)行中斷服務(wù)程序之前,自動(dòng)將程序計(jì)數(shù)器PC內(nèi)容(即斷點(diǎn)地址)壓入堆棧保護(hù)(但不保護(hù)狀態(tài)寄存器PSW,更不保護(hù)累加器A和其它寄存器內(nèi)容),然后將對(duì)應(yīng)的中斷矢量裝入程序計(jì)數(shù)器PC使程序轉(zhuǎn)向該中斷矢量地址單元中以執(zhí)行中斷服務(wù)程序。定時(shí)器T0和T1對(duì)應(yīng)的中斷矢量地址分別為000BH和001BH。中斷服務(wù)程序從矢量地址開(kāi)始執(zhí)行,一直到返回指令“RETI”為止?!癛ET
7、I”指令的操作一方面告訴中斷系統(tǒng)該中斷服務(wù)程序已經(jīng)執(zhí)行完畢,另一方面把原來(lái)壓入堆棧保護(hù)的斷點(diǎn)地址從棧頂彈出,裝入到程序計(jì)數(shù)器PC,使程序返回到被到中斷的程序斷點(diǎn)處,以便繼續(xù)執(zhí)行。因此,我們?cè)诰帉懼袛喾?wù)程序時(shí)注意。1在中斷矢量地址單元放一條無(wú)條件轉(zhuǎn)移指令,使中斷服務(wù)程序可以靈活地安排在64K字節(jié)程序存儲(chǔ)器的任何空間。2在中斷服務(wù)程序中應(yīng)特別注意用軟件保護(hù)現(xiàn)場(chǎng),以免中斷返回后,丟失原寄存器、累加器的信息。3若要使執(zhí)行的當(dāng)前中斷程序禁止更高優(yōu)先級(jí)中斷,可以先用軟件關(guān)閉CPU中斷,或禁止某中斷源中斷,在返回前再開(kāi)放中斷。五、 實(shí)驗(yàn)內(nèi)容編寫并調(diào)試一個(gè)程序,用AT89C51的T0工作方式1產(chǎn)生1s的定時(shí)
8、時(shí)間,作為秒計(jì)數(shù)時(shí)間,當(dāng)1s產(chǎn)生時(shí),秒計(jì)數(shù)加1;秒計(jì)數(shù)到60時(shí),自動(dòng)從0開(kāi)始。實(shí)驗(yàn)電路原理如圖1所示。計(jì)算初值公式定時(shí)模式1 th0=(216-定時(shí)時(shí)間) /256tl0=(216-定時(shí)時(shí)間) mod 256六、 實(shí)驗(yàn)步驟1、打開(kāi)Proteus ISIS編輯環(huán)境,按下表所列的元件清單添加元件。實(shí)驗(yàn)所用元件清單元件名稱所屬類所屬子類AT89C51Microprocessor ICs8051 FamilyCAPCapacitorsGenericCAP-ELECCapacitorsGenericCRYSTALMiscellaneous-RESResistorsGeneric7SEG-COM-CAT-
9、GRNOtoelectronics7-Segment DisplaysPULLUPModelling PrimitivesDigitalMiscellaneous 元件全部添加后,在Proteus ISIS的編輯區(qū)域中按實(shí)驗(yàn)原理圖連接硬件電路。圖1 定時(shí)器實(shí)驗(yàn)電路原理圖2、 按實(shí)驗(yàn)要求在KeilC中創(chuàng)建項(xiàng)目,編輯、編譯程序。3、 將編譯生成的目標(biāo)碼文件(后綴為.Hex)傳入Proteus的實(shí)驗(yàn)電路中。4、 在Proteus ISIS仿真環(huán)境中運(yùn)行程序,觀察實(shí)驗(yàn)運(yùn)行結(jié)果并記錄。五、 參考程序second equ 30hcount equ 31h org 00h ljmp start org 0b
10、h ljmp int_t0start: mov second,#00h mov count,#00h mov dptr,#table ;段碼表首址 mov p0,#3fh mov p2,#3fh mov tmod,#01h mov th0,#(65536-50000)/256 mov tl0,#(65536-50000) mod 256 ;定時(shí)50ms setb tr0 mov ie,#82h sjmp $int_t0: mov th0,#(65536-50000)/256 mov tl0,#(65536-50000) mod 256 inc count mov a,count cjne a,
11、#20,i2 ;是否到1s mov count,#00h inc second mov a,second cjne a,#60,i1 ;是否到60s mov second,#00hi1: mov a,second mov b,#10 div ab movc a,a+dptr mov p0,a mov a,b movc a,a+dptr mov p2,ai2: retitable: db 3fh,06h,5bh,4fh,66h db 6dh,7dh,07h,7fh,6fh end六、 思考若用定時(shí)器1方式2,程序如何修改?org 0000hmain: mov p2,#00hmov r1,#1st
12、art:mov dptr,#tab ;將表頭放入DPTR lcall key ;調(diào)用鍵盤掃描程序 movc a,a+dptr ;查表后將鍵值送入ACCcjne r1,#1,erinc r1 mov r2,a ljmp starter:cjne r1,#2,saninc r1 mov r3,a ljmp startsan:cjne r1,#3,siinc r1 mov r0,a ljmp startsi:cjne r1,#4,fanmov r5,a xun:mov p3,#00hmov p2,r2mov p3,#01hlcall delay3mov p3,#00hmov p2,r3mov p3,
13、#02hlcall delay3mov p3,#00hmov p2,r0mov p3,#04hlcall delay3mov p3,#00hmov p2,r5mov p3,#08hlcall delay3ljmp xunfan:ljmp xunKEY: LCALL KS ;調(diào)用檢測(cè)按鍵子程序 JNZ K1 ;有鍵按下繼續(xù) LCALL DELAY2 ;無(wú)鍵按調(diào)用延時(shí)去抖 AJMP KEY ;返回繼續(xù)檢測(cè)按鍵K1: LCALL DELAY2 LCALL DELAY2 ;有鍵按下延時(shí)去抖動(dòng) LCALL KS ;再調(diào)用檢測(cè)按鍵程序 JNZ K2 ;確認(rèn)有按下進(jìn)行下一步 AJMP KEY ;無(wú)鍵按下返回
14、繼續(xù)檢測(cè) K2: MOV R2,#0EFH ;將掃描值送入 R2暫存 MOV R4,#00H ;將第一列值送入R4暫存 K3: MOV P1,R2 ;將R2的值送入P1口 L6: JB P1.0,L1 ;P1.0等于1跳轉(zhuǎn)到L1 MOV A,#00H ;將第一行值送入ACC AJMP LK ;跳轉(zhuǎn)到鍵值處理程序 L1: JB P1.1,L2 ;P1.1等于1跳轉(zhuǎn)到L2 MOV A,#04H ;將第二行的行值送入ACC AJMP LK ;跳轉(zhuǎn)到鍵值理程序進(jìn)行鍵值處理 L2: JB P1.2,L3 ;P1.2等于1跳轉(zhuǎn)到L3 MOV A,#08H ;將第三行的行值送入ACC AJMP LK ;跳轉(zhuǎn)
15、到鍵值處理程序L3: JB P1.3,NEXT ;P1.3等于1跳轉(zhuǎn)到NEXT處 MOV A,#0cH ;將第四行的行值送入ACC LK: ADD A,R4 ;行值與列值相加后的鍵值送入A PUSH ACC ;將A中的值送入堆棧暫存 K4: LCALL DELAY2 ;調(diào)用延時(shí)去抖動(dòng)程序 LCALL KS ;調(diào)用按鍵檢測(cè)程序 JNZ K4 ;按鍵沒(méi)有松開(kāi)繼續(xù)返回檢測(cè) POP ACC ;將堆棧的值送入ACC RET NEXT: INC R4 ;將列值加一 MOV A,R2 ;將R2的值送入A JNB ACC.7,KEY ;掃描完至KEY處進(jìn)行下一掃描 RL A ;掃描未完將A中的值右移一位進(jìn)行下一列的掃描 MOV R2,A ;將ACC的值送入R2暫存 AJMP K3 ;跳轉(zhuǎn)到K3繼續(xù) KS: MOV P1,#0FH ;將P1口高四位置0低四位值1 MOV A,P1 ;讀P1口 XRL A,#0FH ;將A中的值與A中的值相異或 RET ;子程序返回 DELAY2: ;40ms
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 物業(yè)管理標(biāo)準(zhǔn)化制度與實(shí)施指南
- 高校博士畢業(yè)生的就業(yè)流向及其影響因素分析
- 新質(zhì)生產(chǎn)力中的標(biāo)準(zhǔn)化作用機(jī)制研究
- 爆破工程課程課件
- 爆炸與燃燒安全技術(shù)課件
- 凍融損傷混凝土研究現(xiàn)狀與未來(lái)方向綜述
- 智能建筑中機(jī)器人的應(yīng)用與裝配式施工技術(shù)
- 無(wú)損檢測(cè)技術(shù)人員崗位面試問(wèn)題及答案
- 框架工具包的動(dòng)態(tài)擴(kuò)展與管理-洞察闡釋
- 數(shù)字化時(shí)代版權(quán)策略-洞察闡釋
- 2025屆上海市高考英語(yǔ)考綱詞匯表
- 四川省2024普通高校招生本科一批調(diào)檔線(理科)
- 2024年秋兒童發(fā)展問(wèn)題的咨詢與輔導(dǎo)終考期末大作業(yè)案例分析1-5答案
- 普通高校招生考生志愿表模板
- GB/T 5976-2006鋼絲繩夾
- GB/T 18981-2008射釘
- 新《高等教育學(xué)》考試復(fù)習(xí)題庫(kù)450題(含各題型)
- CSC-2000變電站自動(dòng)監(jiān)控系統(tǒng)使用說(shuō)明書
- MES七大功能-MES項(xiàng)目解決方案
- 最新版?zhèn)€人征信報(bào)告(可編輯+帶水印)
- 意向表(標(biāo)準(zhǔn)模版)
評(píng)論
0/150
提交評(píng)論