版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、課 程 設(shè) 計(jì) 任 務(wù) 書題 目 鍵盤控制數(shù)碼管顯示及LED點(diǎn)亮 學(xué)院(部) 電子與控制工程 專 業(yè) 建筑設(shè)施智能技術(shù) 班 級 320601 學(xué)生姓名 學(xué) 號 5 月 15 日至 5 月 22 日 指導(dǎo)教師 2014 年5月22日目錄1、 摘要22、 設(shè)計(jì)要求23、 方案設(shè)計(jì)說明24、 程序流程圖45、 模塊介紹4 1)8051CPU4 2)數(shù)碼管顯示5 3)44鍵盤輸入5 4)流水燈顯示66、 源程序7 程序執(zhí)行結(jié)果117、 主要元器件介紹13 1)805113 2)共陰極數(shù)碼管15八、參考書籍17一、摘要單片機(jī)是單片微型計(jì)算機(jī),它是針對控制與檢測應(yīng)用而設(shè)計(jì)的,也稱為微控制器。它具有芯片體積
2、小、集成度高、功能強(qiáng)、抗干擾能力強(qiáng)、性價(jià)比高等特點(diǎn),被廣泛的應(yīng)用在工業(yè)自動(dòng)化、儀器儀表、航天航空、消費(fèi)電子、電力電子、汽車電子、計(jì)算機(jī)外設(shè)等領(lǐng)域。自20世紀(jì)80年代MCS-51系列單片機(jī)問世以來,經(jīng)歷了三十多年的發(fā)展,在共享Inter公司8051內(nèi)核技術(shù)的基礎(chǔ)上,眾多的半導(dǎo)體公司經(jīng)過不斷的技術(shù)更新,推出了龐大的系列兼容產(chǎn)品,使MCS-51系列單片機(jī)依然在各個(gè)應(yīng)用領(lǐng)域扮演著重要的角色。學(xué)習(xí)單片機(jī)的最有效方法就是理論與實(shí)踐并重,需要更深的去了解單片機(jī)的很多功能,努力的去查找資料,當(dāng)今時(shí)代是一個(gè)新技術(shù)層出不窮的時(shí)代,在電子領(lǐng)域尤其是自動(dòng)化智能控制領(lǐng)域,傳統(tǒng)的分立元件或數(shù)字邏輯電路構(gòu)成的控制系統(tǒng),正以
3、前所未見的速度被單片機(jī)智能控制系統(tǒng)所取代。單片機(jī)具有體積小、功能強(qiáng)、成本低、應(yīng)用面廣等優(yōu)點(diǎn),可以說,智能控制與自動(dòng)控制的核心就是單片機(jī)。本課程通過應(yīng)用單片機(jī)技術(shù)完成了流程燈、數(shù)碼管顯示以及44鍵盤的識別等功能。2、 設(shè)計(jì)要求(1)利用按鍵控制流水燈的顯示。(2)利用33或者44鍵盤,控制數(shù)碼管的顯示。(3)利用到定時(shí)/計(jì)數(shù)器。 (4)利用到中斷技術(shù)。三、方案設(shè)計(jì)說明根據(jù)要求我們所采用的方案為:主程序?yàn)?4鍵盤的掃描程序,通過P1口輸入所按鍵的鍵值,將掃描到的鍵值“0F”中的一位通過P0口在數(shù)碼管上顯示,并檢測按鍵是否為“LED-”,如果不是,將回到程序繼續(xù)掃描,如果是“LED-”,則跳到LED
4、循環(huán)點(diǎn)亮。LED循環(huán)點(diǎn)亮:一共八盞燈,一盞燈亮,另七盞燈滅,從左到右循環(huán)點(diǎn)亮,在其中運(yùn)用定時(shí)器T0工作在MODEL1,對其點(diǎn)亮?xí)r間進(jìn)行控制點(diǎn)亮1s,對其定時(shí)器溢出中斷次數(shù)進(jìn)行統(tǒng)計(jì),當(dāng)溢出中斷次數(shù)達(dá)到10次后,返回主程序開始。4、 程序流程圖5、 模塊介紹(1)8051CPUP1.3P1.0分別連接44鍵盤的第一行到第四行;P1.7P1.4分別連接44鍵盤的第一列到第四列;P2口分別接8個(gè)LED燈;P0口接1個(gè)共陰極數(shù)碼管。如圖,MCS-51系列單片機(jī)的40只引腳按功能能可分為四類: 電源引腳電源引腳提供芯片的工作電源,MCS-51系列單片機(jī)采用單一的直流5V電源供電。(1) Vcc(引腳40)
5、 +5V。(2) GND(引腳20)地。 晶體振蕩器信號輸入和輸出引腳晶體振蕩器信號輸入輸出引腳外接振蕩器或時(shí)鐘源,為單片機(jī)提供時(shí)鐘信號。(1) XTAL1(引腳19)振蕩器信號輸入。(2) XTAL2(引腳18)振蕩器信號輸出。I/O口線引腳P0口(3932腳):P0.0P0.7統(tǒng)稱為P0口。在不接片外存儲器與不擴(kuò)展I/O口時(shí),可作為準(zhǔn)雙向輸入/輸出口。在接有片外存儲器或擴(kuò)展I/O口時(shí),P0口分時(shí)復(fù)用為低8位地址總線和雙向數(shù)據(jù)總線。P1口(18腳):P1.0P1.7統(tǒng)稱為P1口,可作為準(zhǔn)雙向I/O口使用。對于52子系列,P1.0與P1.1還有第二功能:P1.0可用作定時(shí)器/計(jì)數(shù)器2的計(jì)數(shù)脈沖
6、輸入端T2,P1.1可用作定時(shí)器/計(jì)數(shù)器2的外部控制端T2EX。P2口(2128腳):P2.0P2.7統(tǒng)稱為P2口,一般可作為準(zhǔn)雙向I/O口使用;在接有片外存儲器或擴(kuò)展I/O口且尋址范圍超過256字節(jié)時(shí),P2口用作高8位地址總線。P3口(1017腳):P3.0P3.7統(tǒng)稱為P3口。除作為準(zhǔn)雙向I/O口使用外,還可以將每一位用于第二功能,而且P3口的每一條引腳均可獨(dú)立定義為第一功能的輸入輸出或第二功能。P3口的第二功能如表1-1所示。引腳第二功能P3.0RxD串行數(shù)據(jù)的輸入端P3.1TxD串行數(shù)據(jù)的輸出端P3.2外部中斷0的中斷請求信號輸入端P3.3外部中斷1的中斷請求信號輸入端P3.4T0定時(shí)
7、器/計(jì)數(shù)器T0的外部計(jì)數(shù)信號輸入端P3.5T1定時(shí)器/計(jì)數(shù)器T1的外部計(jì)數(shù)信號輸入端P3.6外部數(shù)據(jù)存儲器和外部I/O口的寫控制信號P3.7外部數(shù)據(jù)存儲器和外部I/O口的讀控制信號 表1-1 控制信號線ALE(引腳30)地址鎖存控信號,輸出。(引腳29)外部程序存儲器讀選通信號,輸出。(引腳31)內(nèi)、外程序存儲器選擇控制端,輸入。RESET(引腳9)復(fù)位信號。(2) 數(shù)碼管顯示采用共陰極8位數(shù)碼管來顯示鍵盤輸入的鍵值。數(shù)碼管字型編碼表(3)44鍵盤輸入鍵盤輸入有“1,2,3,4,5,6,7,8,9,A,B,C,D,E,F”這些鍵值,“A”鍵的功能是流水燈循環(huán)顯示。鍵盤所有鍵的特征碼按鍵特征碼鍵
8、值按鍵特征碼鍵值0770087D081B7019BD092D702ADD0A3E703BED0B47B04C7E0C5BB05DBE0D6DB06EDE0E7EB07FEE0F(4) 流水燈顯示 流水燈顯示方式:開始全部點(diǎn)亮,按下“LED-”鍵后,點(diǎn)亮第一個(gè)LED,然后從左向右依次循環(huán)點(diǎn)亮。6、 源程序 ;-鍵盤控制數(shù)碼管顯示及LED點(diǎn)亮程序- org0000h ajmpmain ORG 0BH JMP TIM0main: mov dptr,#tab ;將表頭位置送入DPTmov 30h,#0ffh ;將30顯示單元清零 mov 31h,#0ffh ;將30顯示單元清零 mov 32h,#0f
9、fh ;將30顯示單元清零 mov 33h,#0ffhmov 34h,#0ffh ;將30顯示單元清零 mov35h,#0ffh mov 36h,#0ffhmov 37h,#0ffhmov 39h,#0ffh ;將30顯示單元清零loop: jbf0,kk1 ;f0若等于一則跳到KK1處 mov39h,#00h kk2:lcall display ;調(diào)用顯示程序 lcallkey ;調(diào)用鍵盤描程序 cpla ;將A的值取反 jzloop ;無鍵按下則返回 mova,38h ;有鍵按下將鍵值送入ACC cjne a,#0ah,norp ;若A鍵未按下則返回到LOOP處 setbf0 ;若A鍵按下
10、則將F0值1 jmp LED mov p3,#00h ljmp loop ;返回LOOP處不斷的循環(huán)LED: MOV TMOD,#00000001B MOV TH0,#10000 MOV TL0,#10000 SETB TR0 MOV IE,#10000010B ; MOV R5,#10 MOV P3,#01H jmp loopTIM0: PUSH ACC PUSH PSW MOV TH0,#10000 MOV TL0,#10000 DJNZ R5,LOOP1 MOV R5,#10 MOV A,P3 RL A MOV P3,ALOOP1: POP PSW POP ACC RETI kk1: i
11、nc39h ;將39H向上加一 mova,39h ;將39H中的值送入ACC cjnea,#10,kk2 ;ACC中的值與10相等則跳轉(zhuǎn)至KK2 mov39h,#00h ;若ACC等于零則將35H清零 cpl00h ;將00H位取反 ajmpkk2 ;跳轉(zhuǎn)至KK2處 norp:mov 37h,36h mov 36h,35h mov 35h,34h mov 34h,33h mov33h,32h ;將32H顯示單元的內(nèi)容送入33H mov 32h,31h ;將31H顯示單元的內(nèi)容送入32H mov 31h,30h ;將30H單元的內(nèi)容送入31H mova,38h ;將鍵值送入ACC mov30h,
12、a ;將ACC的值送入30H ljmploop ;返回主程序循環(huán) display:mov p2,#0ffh ;將P2口置高電平 mov r7,#100 ;軟件計(jì)數(shù)器賦值 dd1: jnb00h,dd1d ;若00H等0跳至DD1D ajmpdd1b ;若00H等于1則跳轉(zhuǎn)至DD1B dd1d:mov a,30h ;將顯示緩沖區(qū)30H中的值送入ACC movc a,a+dptr;查表取要顯示的數(shù)并把查表的結(jié)果送入ACC mov p0,a ;將要顯示的數(shù)送入P0口 clr p2.7 ;開個(gè)位顯示單元 lcall delay100us ;延時(shí)100US setb p2.7 ;關(guān)個(gè)位顯示單 ajmpd
13、d1c dd1b: mov a,30h ;將顯示緩沖區(qū)30H中的值送入ACC movc a,a+dptr;查表取要顯示的數(shù)并把查表的結(jié)果送入ACC mov p0,a ;將要顯示的數(shù)送入P0口 setb p2.7 ;開個(gè)位顯示單元 lcall delay100us ;延時(shí)100US setb p2.7 ;開個(gè)位顯示單元 dd1c: mov a,31h ;將顯示緩沖區(qū)別31H中的值送入A movc a,a+dptr ;查表取要顯示的數(shù)并把查表的結(jié)果送入ACC mov p0,a ;將要顯示的數(shù)送入P0口 clr p2.6 ;開十位顯示單元 lcall delay100us ;延時(shí)100US setb
14、 p2.6 ;關(guān)十位顯示單元 mov a,32h ;將顯示緩沖區(qū)32H中的值送入ACC movc a,a+dptr ;查表取要顯示的數(shù)并把查表的結(jié)果送入ACC mov p0,a ;將要顯示的數(shù)送入P0口 clr p2.5 ;開百位顯示單元 lcall delay100us ;延時(shí)100US setb p2.5 ;關(guān)百位顯示單元 mov a,33h ;將顯示緩沖區(qū)33H中的值送入ACC movc a,a+dptr ;查表取要顯示的數(shù)并把查表的結(jié)果送入ACC mov p0,a ;將要顯示的數(shù)送入P0口 clr p2.4 ;開千位顯示單元 lcall delay100us ;延時(shí)100US setb
15、 p2.4 mov a,34h ;將顯示緩沖區(qū)34H中的值送入ACC movc a,a+dptr ;查表取要顯示的數(shù)并把查表的結(jié)果送入ACC mov p0,a ;將要顯示的數(shù)送入P0口 clr p2.3 ;開萬位顯示單元 lcall delay100us ;延時(shí)100US setb p2.3 mov a,35h ;將顯示緩沖區(qū)35H中的值送入ACC movc a,a+dptr ;查表取要顯示的數(shù)并把查表的結(jié)果送入ACC mov p0,a ;將要顯示的數(shù)送入P0口 clr p2.2 ;開十萬位顯示單元 lcall delay100us ;延時(shí)100US setb p2.2 mov a,36h ;
16、將顯示緩沖區(qū)36H中的值送入ACC movc a,a+dptr ;查表取要顯示的數(shù)并把查表的結(jié)果送入ACC mov p0,a ;將要顯示的數(shù)送入P0口 clr p2.1 ;開百萬位顯示單元 lcall delay100us ;延時(shí)100US setb p2.1 mov a,37h ;將顯示緩沖區(qū)37H中的值送入ACC movc a,a+dptr ;查表取要顯示的數(shù)并把查表的結(jié)果送入ACC mov p0,a ;將要顯示的數(shù)送入P0口 clr p2.0 ;開千萬顯示單元 lcall delay100us ;延時(shí)100US setb p2.0 ;關(guān)千萬位顯示單元 djnz r7,dd1 ;R7不等于
17、0返回至DD1處 ret ;R7等于0子程序返回 KEY: LCALL KS ;調(diào)用檢測按鍵子程序 JNZ K1 ;有鍵按下繼續(xù) ljmpkey_exit ;無鍵按下退出KEY子程序 K1: LCALL delay4ms ;返回繼續(xù)檢測有無按鍵按下 LCALL delay4ms LCALL KS ;有鍵按下繼續(xù)延時(shí)去抖動(dòng) JNZ K2 ;再一次調(diào)用檢測按鍵程序 ljmpkey_exit ;無鍵按下退出KEY子程序 K2: MOV R2,#0efH ;將掃描值送入 R2暫存 MOV R4,#00H;將第一列的列值00H送入R4暫存,R4用于存放列 K3: MOV P1,R2 ;將R2的值送入P1
18、口 L6: JB P1.0,L1 ;P1.0等于1跳轉(zhuǎn)到L1 MOV A,#00H ;將第一行的行值00H送入ACC AJMP LK ;跳轉(zhuǎn)到鍵值處理程序 L1: JB P1.1,L2 ;P1.1等于1跳轉(zhuǎn)到L2 MOV A,#04H ;將第二行的行值04H送入ACC AJMP LK ;跳轉(zhuǎn)到鍵值理程序進(jìn)行鍵值處理 L2: JB P1.2,L3 ;P1.2等于1跳轉(zhuǎn)到L3 MOV A,#08H ;將第三行的行值08H送入ACC AJMP LK ;跳轉(zhuǎn)到鍵值處理程序 L3: JB P1.3,NEXT ;P1.3等于1跳轉(zhuǎn)到NEXT處 MOV A,#0cH ;將第四行的行值0CH送入ACC LK:
19、 ADD A,R4 ;行值與列值相加后的鍵值送入A mov38h,a ;將A中的值送入34h暫存 K4: lcall display ;調(diào)用動(dòng)態(tài)顯示子程序 LCALL KS JNZ K4 ;按鍵沒有松開繼續(xù)返回檢測 RET ;按鍵松開返回 NEXT: INC R4 ;將列值加一 MOV A,R2 ;將R2的值送入A JNB ACC.7,key_exit;掃描完成跳至KEY處進(jìn)行下一回合的掃描 RL A ;掃描未完成將A中的值右移一位進(jìn)行下一列的掃描 MOV R2,A ;將ACC的值送入R2暫存 AJMP K3 ;跳轉(zhuǎn)到K3繼續(xù) key_exit: mov a,#0ffh ;無鍵按下則將A賦成0
20、FFH ret KS: MOV P1,#0FH ;將P1口高四位置0低四位值1 MOV A,P1 ;讀P1口 XRL A,#0FH ;將A中的值與A中的值相異或 RET ;子程序返回 delay4ms:;4ms延時(shí) MOV R5,#08H L7: MOV R6,#0FAH L8: DJNZ R6,L8 DJNZ R5,L7 RET delay100us: ;100us延時(shí) mov r5,#50 djnzr5,$ ret tab:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;0,1,2,3,4,5,6,7 DB 7FH,6FH,77H,7CH,39H,5EH,79H,7
21、1H ;8,9,A,B,C,D,E,F DB 3EH, 50H, 40H, 08H, 00H ;U, r, , -, BLANK END程序執(zhí)行結(jié)果按鍵0按下顯示結(jié)果按鍵LED-按下結(jié)果(輸入位閃爍)按鍵D按下顯示結(jié)果(d)按鍵B按下顯示結(jié)果(b)7、 主要元器件介紹1)8051 51系列是基本型,包括8051、8751、8031、8951.這四個(gè)機(jī)種區(qū)別,僅在于片內(nèi)程序儲存器。8051為4KBROM,8751為4KBEPROM,8031片內(nèi)無程序儲存器,8951為4KBEEPROM。其他性能結(jié)構(gòu)一樣,有片內(nèi)128B RAM,2個(gè)16位定時(shí)器/計(jì)數(shù)器,5個(gè)中斷源。其中,8031性價(jià)比較高,又易
22、于開發(fā),目前應(yīng)用面廣泛。 MCS-51單片機(jī)的內(nèi)部組成。MCS-51單片機(jī)的引腳和內(nèi)部組成如圖1.1所示。通常采用DIP或PLLD封裝,其內(nèi)核是8051CPU,CPU的內(nèi)部集成有運(yùn)算器和控制器,運(yùn)算器完成運(yùn)算操作(包括數(shù)據(jù)運(yùn)算、邏輯運(yùn)算等),控制器完成取指令、對指令譯碼以及執(zhí)行指令。MCS-51單片機(jī)的片內(nèi)資源有:圖1.1 MCS-51單片機(jī)的內(nèi)部組成中央處理器:中央處理器(CPU)是整個(gè)單片機(jī)的核心部件,是8位數(shù)據(jù)寬度的處理器,能處理8位二進(jìn)制數(shù)據(jù)或代碼,CPU負(fù)責(zé)控制、指揮和調(diào)度整個(gè)單元系統(tǒng)協(xié)調(diào)的工作,完成運(yùn)算和控制輸入輸出功能等操作。數(shù)據(jù)存儲器(RAM):8051內(nèi)部有128字節(jié)數(shù)據(jù)存儲器(RAM)和21個(gè)專用寄存器單元,它們是統(tǒng)一編址的,專用寄存器有專門的用途,通常用于存放控制指令數(shù)據(jù),不能用作用戶數(shù)據(jù)的存放,用戶能使用的RAM只有128個(gè)字節(jié),可存放讀寫的數(shù)據(jù),運(yùn)算的中間結(jié)果或用戶定義的字型表。程序存儲器(ROM):8051共有4K字節(jié)程序存儲器(ROM),用于存放用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湘教版數(shù)學(xué)七年級上冊1.7《有理數(shù)的混合運(yùn)算》聽評課記錄1
- 2025年度海上運(yùn)輸貨物包裝服務(wù)合同范本
- 山東省濟(jì)寧市曲阜市2024-2025學(xué)年七年級上學(xué)期期末語文試題
- 2025年度洗車場智能管理系統(tǒng)軟件開發(fā)合同
- 2025年度會議場地租賃合同(含翻譯服務(wù))
- 生產(chǎn)安全意識與應(yīng)急處理培訓(xùn)計(jì)劃
- 湘教版數(shù)學(xué)八年級下冊《小結(jié)練習(xí)》聽評課記錄2
- 現(xiàn)代企業(yè)管理中的信息安全風(fēng)險(xiǎn)管理
- 一年級聽評課記錄語文
- 現(xiàn)代辦公環(huán)境中磁頭的創(chuàng)新應(yīng)用
- 趣味成語課程設(shè)計(jì)
- 2025年人教版高考生物一輪復(fù)習(xí):綜合PCR的基因工程問題
- 鋼筋焊接工藝性試驗(yàn)方案
- 2024年福建省新高考生物試卷真題(含答案解析)
- GB/T 44273-2024水力發(fā)電工程運(yùn)行管理規(guī)范
- 醫(yī)院突發(fā)性事件、護(hù)理重點(diǎn)環(huán)節(jié)、醫(yī)院病區(qū)等應(yīng)急預(yù)案
- 2024年南京市中考?xì)v史試題及答案
- 2024年四川省涼山州中考物理適應(yīng)性試卷(附答案解析)
- 幼兒園師資培訓(xùn)課件【區(qū)域進(jìn)階】科學(xué)區(qū)各年齡段目標(biāo)制定與投放材料:區(qū)域材料玩出新高度課件
- 人教版初中數(shù)學(xué)同步講義八年級上冊專題提升02 解分式方程與分式方程的實(shí)際應(yīng)用(30題)(原卷版)
- 完整廣東梅大高速路面塌方災(zāi)害學(xué)習(xí)課件
評論
0/150
提交評論