新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 按键计数器

按键计数器

作者:时间:2011-02-25来源:网络收藏
知识要点:理解熟悉散转结构的程序

;运行结果:按P3.2或3.3(低4位的任意一个键盘)第一位数码管加1直到9循环

; 开始显示0把P3送OFH,判断有没有按键,没有则反复循环,有按R0加1,如到10

;那么则清除, 最后根据R0的值散转.

ORG 0000H;

LJMP MAIN;程序开始

ORG 030H;

MAIN: MOV P0,#028H;数码管显示0

clr p2.1 ;打开第一个数码管

MOV R0,#00H;r0送0fh

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

MOV A,P3;

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

ACALL DEL;

AJMP ST;继续检测

F1: ACALL DEL;

CJNE A,#0FH,F2;再次判断有没有按

AJMP ST;继续检测

F2: INC R0;r0加1

CJNE R0,#0AH,F3;如果r0等于10转道f3;OAH就是10, 到这里转移重新

MOV R0,#00H;

F3: MOV DPTR,#JPTAB;取地址

MOV A,R0;

CLR C;清除进位

RLC A;a的内容右移

JNC NADD;判断有没有进位, 有向下无到NDDA

INC DPH;有进位DPH加1

NADD: JMP @A+DPTR;根据A的内跳转到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

程序在倚天版运行的状态按键显示数字2

程序在倚天版运行的状态按键显示数字4



评论


相关推荐

技术专区

关闭