功能:51单片机用一位数码管循环显示0-9,A-f ,十六位字,变换间隔为一秒
程序:主要使用查表的方法(从程序存储器里装载数据)
ORG 00H
START: SETB P2.7;打开位选锁存器
MOV P0,#0FEH;载入位选信号,第一位显示
CLR P2.7;关闭位选锁存器
MOV R0,#0;这一句和下一句是将A清零操作(初始化)
LOOP: MOV A,R0;将A清零操作
MOV DPTR,#TAPE ;装载表头
MOVC A,@A+DPTR;查表取数据
SETB P2.6;打开段选锁存器
MOV P0,A;输出数据到P0口
CLR P2.6;关段选锁存器
CALL DELAY;延时一秒
INC R0;将R0自加一(准备取下一表头数据)
CJNE R0,#16,LOOP;比较指令,看否取到了十六位否 则继续取表数据
JMP START;跳到"START开始
DELAY:MOV R5,#50;延时一秒子程序
D1:MOV R6,#100
D2:MOV R7,#100
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET;子程序返回
TAPE: DB 3FH,6H,5BH,4FH;表头
DB 66H,6DH,7DH,7H
DB 7FH, 6FH,77H,7CH
DB 39H,5EH,79H,71H
END ;结束
|