- 功能: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 ;结束
|