新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 按鍵計數(shù)器

按鍵計數(shù)器

作者: 時間:2011-02-25 來源:網(wǎng)絡 收藏
知識要點:理解熟悉散轉(zhuǎn)結(jié)構(gòu)的程序

;運行結(jié)果:按P3.2或3.3(低4位的任意一個鍵盤)第一位數(shù)碼管加1直到9循環(huán)

; 開始顯示0把P3送OFH,判斷有沒有按鍵,沒有則反復循環(huán),有按R0加1,如到10

;那么則清除, 最后根據(jù)R0的值散轉(zhuǎn).

ORG 0000H;

LJMP MAIN;程序開始

ORG 030H;

MAIN: MOV P0,#028H;數(shù)碼管顯示0

clr p2.1 ;打開第一個數(shù)碼管

MOV R0,#00H;r0送0fh

ST: MOV P3,#0FH;p3 送0fh

MOV A,P3;

CJNE A,#0FH,F1;如果p3口的值等于0f,那么按鍵沒有按,

ACALL DEL;

AJMP ST;繼續(xù)檢測

F1: ACALL DEL;

CJNE A,#0FH,F2;再次判斷有沒有按

AJMP ST;繼續(xù)檢測

F2: INC R0;r0加1

CJNE R0,#0AH,F3;如果r0等于10轉(zhuǎn)道f3;OAH就是10, 到這里轉(zhuǎn)移重新

MOV R0,#00H;

F3: MOV DPTR,#JPTAB;取地址

MOV A,R0;

CLR C;清除進位

RLC A;a的內(nèi)容右移

JNC NADD;判斷有沒有進位, 有向下無到NDDA

INC DPH;有進位DPH加1

NADD: JMP @A+DPTR;根據(jù)A的內(nèi)跳轉(zhuǎn)到PR1,PR2....

JPTAB: NOP;

NOP;

AJMP PR1;

AJMP PR2;

AJMP PR3;

AJMP PR4;

AJMP PR5;

AJMP PR6;

AJMP PR7;

AJMP PR8;

AJMP PR9;

DEL: MOV R7,#04H;延時子程序

DEL1: MOV R6,#0FFH;

DEL2: MOV R5,#01FH;

DEL3: DJNZ R5,DEL3;

DJNZ R6,DEL2;

DJNZ R7,DEL1;

RET;

PR1: MOV P0,#7eH;顯示1

ACALL DEL;

AJMP ST;

PR2: MOV P0,#0a2H;顯示2

ACALL DEL;

AJMP ST;

PR3: MOV P0,#62H;顯示3

ACALL DEL;

AJMP ST;

PR4: MOV P0,#74H;顯示4

ACALL DEL;

AJMP ST;

PR5: MOV P0,#61H;顯示5

ACALL DEL;

AJMP ST;

PR6: MOV P0,#21H;

ACALL DEL;

AJMP ST;

PR7: MOV P0,#7aH;

ACALL DEL;

AJMP ST;

PR8: MOV P0,#20H;

ACALL DEL;

AJMP ST;

PR9: MOV P0,#60H;

ACALL DEL;

AJMP ST;

END

程序在倚天版運行的狀態(tài)按鍵顯示數(shù)字2

程序在倚天版運行的狀態(tài)按鍵顯示數(shù)字4



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉