


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、單片機(jī)鍵盤掃描及數(shù)碼管顯示2010-08-19 09:32*MCS-51單片機(jī)匯編程序語言基本模型*ORG 0003HLJMP MY.INT0;外部中斷0入口LED_D EQU 6ORG 0000HLJMP START;顯示模塊數(shù);復(fù)位后程序計(jì)數(shù)器PC二0000HORG 000BHLJMP MY.T0;定時(shí)器中斷0入口ORG 0013HLJMP MY.INT1;外部中斷1入口ORG 001BHLJMP MY.T1ORG 0023HLJMP MY.TXORG 002BHLJMP MY.T2;定時(shí)器中斷1入口;串行口中斷入口;定時(shí)器中斷2入口 (8032/8052)ORG 0030HSTART:;
2、程序開始MOV SP,#50H;設(shè)巻堆棧指針;MOV IE, S10000001B ;EA - ET2 ES ET1 EXI ETO EXOSETB EA ;總中斷允許SETB EXO ;外部中斷0允許MOV P1,#OFH;鍵盤中斷條件MOV 30H,#0MOV 31H,#16; 16二空值MOV 32H,#16MOV 33H,#16MOV 34H,#16MOV 35H,#16LCALL LED.OUTLCALL DELAY;延時(shí)子程序MAIN:lcall keylcall led_outLCALL DELAY;延時(shí)子程序LJMP MAIN;程序結(jié)朿MY_ITO:;外部中斷0服務(wù)子程序LCA
3、LL KEYLJMP GO_TOINTO.END:LCALL LED_OUT ;顯示輸出子程序RETI;中斷返回MY_INT1:;外部中斷1服務(wù)子程序RETI;中斷返回MY_TO:;泄時(shí)器中斷0服務(wù)子程序RETI;中斷返回MY_T1:;泄時(shí)器中斷1服務(wù)子程序RETI;中斷返回MY_TX:;串行口中斷服務(wù)子程序RETI;中斷返回MY_T2:;泄時(shí)器中斷2服務(wù)子程序(8032/8052)RETI;中斷返回*;鍵盤掃描子程序;岀口: A二鍵值;占用:A, Pl, SP, R2, R3, R6, R7*KEY:LCALL KS1JZ KEYENDLCALL YS10MSLCALL KS1JZ KEYE
4、NDMOV R2,#OEFHMOV R3, #00H;是否有鍵按下;無鍵按下,返回;1OMS延時(shí);是否有鍵按下;無鍵按下,返回;賦首列掃描字;賦首列指針LK1:MOV P1,R2;掃描字=>P1MOV A, Pl;讀戸1 口JB ACC. 0, LONE ;0行無鍵按下,轉(zhuǎn)1行MOV A, #0;0行有鍵按下,賦行號(hào)=>ALJMP LKP;轉(zhuǎn)求鍵號(hào)LONE:JB ACC. 1,LTWO ; 1行無鍵按下,轉(zhuǎn)2行MOV A, #4;1行有鍵按下,賦行號(hào)=>ALJMP LKP;轉(zhuǎn)求鍵號(hào)LTWO:JB ACC. 2, LTHR ;2行無鍵按下,轉(zhuǎn)3行MOV A, #8;2行有鍵按下
5、,賦行號(hào)=>ALJMP LKP;轉(zhuǎn)求鍵號(hào)LTHR:JB ACC. 3, NEXT ;3行無鍵按下,轉(zhuǎn)列加一MOV A, #12;3行有鍵按下,賦行號(hào)=>ALJMP LKP;轉(zhuǎn)求鍵號(hào)NEXT:INC R3;列加一,指向下一列MOV A, R2;掃描字二ARL A;掃描字左移MOV R2, A;暫存掃描字LJMP LK1;轉(zhuǎn)下一列掃描LKP:ADD A, R3;求鍵值(當(dāng)前行+當(dāng)前列)PUSH A;鍵值一壓入堆棧LK2:LCALL KS1;是否有鍵按下JNZ LK2;A不等于0,再判斷POP A;鍵已經(jīng)釋放,A二鍵值lcall YS10MS;10MS 延時(shí)lcall YS10MS;10
6、MS 延時(shí)KEYEND:;返回RET豐卒半半平不審茶券畢卒豐豐彷彷蘋豐豐半節(jié)平彷畢舉卒卒卒下卒不彷豐卒卒不不不不芥卒卒卒不彷蘋畢豐平平豐豐不不怎茶KS1:;是否有鍵按下,有A二1,否則A=0MOV P1,#OFH ;列線全部有效MOV A, Pl;CPL A;ANL A, #OFH;RETYS10MS:涎時(shí)10亳秒,晶振頻率為12. OOMHZMOV R6, #50LOOP:MOV R7, #98DJNZ R7, SNOPDJNZ R6, LOOPRETdelay:涎時(shí)mov r7, #1loop2:mov r6, #20;0loopl:mov r5,#50 djnz r5, $ djnz r
7、6,loopl djnz r7,loop2retLED.OUT:;顯示輸出子程序(741S164)MOV RO, #30H;顯示緩沖區(qū)首地址MOV R2, #LED_D ;顯示模塊長(zhǎng)度MOV DPTR, STABLED_01:MOV A, R0INC ROMOVC A,©A+DPTRMOV SBUF,AJNB TI,$CLR TIDJNZ R2, LED_OCLR P3. 4SETB P3. 4;鎖存脈沖RET*X*t» 丫 r* * j : T . I | J 丫 ( * | *y* * | «7» 丫. j j | < *T» 丫.
8、| | rTAB:;段碼表 ABCDEFG.DB0000001IBDB10011U1BDB00100101BDB00001101BDB10011001BDB01001001BDB01000001BDB00011U1BDB00000001BDB00001001B0123456789DB00010001BADB11000001BBDB01100011BCDB1OOOO1O1BDDB0U00001BEDB01110001BFDB11111U1B空DB1111U01B一;段碼表ABCDEFG. *fMY_R:;顯示緩沖區(qū)左移MOV 35H, 34HMOV 34H, 33HMOV 33H,32HMOV
9、32H, 31HMOV 31H, 30HRET *fGO.TO:;散轉(zhuǎn)程序;散轉(zhuǎn)表首地址;鍵值;乘2;0轉(zhuǎn)移MOV DPTR, #TBJMOV 40H, AADD A, 40HJMP ©A+DPTRTBJ: SJMP MY_KOSJMP MY.KlSJMP MY.K2SJMP HY_K3SJMP HY_K4SJMP HY_K5SJMP HY_K6SJMP MY.K7SJMP MY.K8SJMP MY.K9SJMP MY.K1OSJMP MY.KllSJMP MY.K12SJMP MY.K13SJMP MY.K14SJMP MY.K15MY_KO:LJMP MY.KEYOMY_K1:L
10、JMP MY.KEYlMY_K2:LJMP MY.KEY2MY_K3:MY_K4:MY_K5:MY_K6:MY_K7:MY_K8:MY_K9:MY_K10:MY_K11:MY_K12:MY_K13:MY_K14:MY_K15:TMY_KEYO:MY_KEY1:MY_KEY2:MY_KEY3:LJMP MY.KEY3LJMP HY_KEY4LJMP MY.KEY5LJMP MY.KEY6LJMP MY_KEY7LJMP MY_KEY8LJMP HY_KEY9LJMP MY.KEY10LJMP MY.KEY11LJMP MY.KEY12LJMP HY_KEY13LJMP MY_KEY14LJMP
11、MY_KEY15;此處添加0號(hào)鍵程序代碼LCALL MY_R ;緩沖區(qū)顯示值左移一位MOV 30H, #0LJMP INTO.END;此處添加1號(hào)鍵程序代碼LCALL MY_RMOV 30H, #1LJMP INTOJND;此處添加2號(hào)鍵程序代碼LCALL MY_RMOV 30H, #2LJMP INTO.END;此處添加3號(hào)鍵程序代碼LCALL MY_RMOV 30H, #3LJMP INTO.ENDMY_KEY4:;此處添加4號(hào)鍵程序代碼LCALL MY_RMOV 30比 #4LJMP INTO.ENDMY_KEY5:;此處添加5號(hào)鍵程序代碼LCALL MY_RMOV 30H, #5LJM
12、P INTO.ENDMY_KEY6:;此處添加6號(hào)鍵程序代碼LCALL MY_RMOV 30H, #6LJMP INTO.ENDMY_KEY7:;此處添加7號(hào)鍵程序代碼LCALL MY_RMOV 30H, #7LJMP INTO.ENDMY_KEY8:;此處添加8號(hào)鍵程序代碼LCALL MY_RMOV 30H, #8LJMP INTO.ENDMY_KEY9:;此處添加9號(hào)鍵程序代碼LCALL MY_RMOV 30H, #9LJMP INTO.ENDMY_KEY10:;此處添加A號(hào)鍵程序代碼LCALL MY_RMOV 30H, #10LJMP INTO.ENDMY_KEY11:;此處添加B號(hào)鍵程序代碼LCALL MY_RMOV 30H,#ULJMP INTO.ENDMY_KEY12:;此處添加C號(hào)鍵程序代碼LCALL MY_RMOV 30
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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è)務(wù)r提成合同范本
- 專業(yè)美容醫(yī)院合同范本
- 公務(wù)快車租車合同范例
- 關(guān)于版權(quán)合同范例
- 2025年大數(shù)據(jù)展現(xiàn)平臺(tái)項(xiàng)目合作計(jì)劃書
- 高性能硅基鋰離子電池負(fù)極材料制備及其儲(chǔ)能特性研究
- 太行實(shí)業(yè)公司研究
- 中外合資合同范例
- 面向水利工程搶險(xiǎn)文本的實(shí)體關(guān)系聯(lián)合抽取方法研究
- 云南省臨滄市勞動(dòng)合同范例
- 江蘇2024年江蘇省新聞出版學(xué)校招聘人員筆試歷年典型考題及考點(diǎn)附答案解析
- 大酒店風(fēng)險(xiǎn)分級(jí)管控和隱患排查治理雙體系文件
- 承包經(jīng)營(yíng)食堂日控管周排查月調(diào)度記錄和管理表
- 美容衛(wèi)生管理制度打印版
- 2024CSCO非小細(xì)胞肺癌診療指南解讀
- HJ 1131-2020 固定污染源廢氣 二氧化硫的測(cè)定 便攜式紫外吸收法(正式版)
- 2023-2024學(xué)年江蘇省蘇州市蘇州地區(qū)學(xué)校八年級(jí)物理第二學(xué)期期末統(tǒng)考試題及答案解析
- (高清版)JTGT 3610-2019 公路路基施工技術(shù)規(guī)范
- 湖南省建設(shè)工程竣工驗(yàn)收備案表
- 2024老年人靜脈血栓栓塞癥防治專家共識(shí)(全文)
- 2022年江蘇省五年制專轉(zhuǎn)本考試英語真題(試卷+答案)
評(píng)論
0/150
提交評(píng)論