|
51单片机学习网(深圳学林电子有限公司)从0开始来学单片机...入门教程
前言:单片机是一门实践性非常强的学科,为此我们突破传统思路,全面围绕单片机试验,从简单的流水灯开始,
逐步的带领大家从这些简单的几行或者10几行的程序,来熟悉和理解单片机的指令......未经允许禁止转载!如需转载,请著名出处,并保留网站联接!
;10该程序的功能是用按键计数器
;知识要点:理解熟悉散转结构的程序
;运行结果:按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
返回单片机教学栏目
返回51单片机学习网(深圳学林电子有限公司)主页
我要参加讨论
|