一、 实验目的:
1、 看懂电路原理图,明白4个共阳数码管的编程方式。
2、 看懂参考程序,学会使用扫描法来对4个数码管进行扫描显示。学会使用定时器。
二、 实验设备:
51通用实验板一个,51仿真器一个,40针仿真头一个,12V电源一个,串口线一条。
三、 实验电路原理图:

四、 实验内容:
4个数码管一次显示4个数字,下一次加4进行显示,数字最大为9,到9再从0重新进行显示。中间有一定的时间延时。改变数据用定时器进行设置。
五、 实验步骤:
安实物图的形式把实验设备连接在一起。
六、 参考程序:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;4个数码管的显示实验;使用70H,71H,72H,73H进行数码管显示数据存储。75H进行定时器定时时间设置,发光二极管L1进行亮灭显示改变数据标志。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SETTIM EQU 75H;定时时间长短设定
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP TIM0;定时器0中断
ORG 0030H
MAIN: ;主程序
MOV SP,#07H
MOV SETTIM ,#00H
LCALL INIT;初始化数据
MOV TMOD,#01H;设值定时器0
MOV TH0,#00H;定时初值
MOV TL0,#00H
SETB EA;开总中断
SETB ET0;开中断
SETB TR0;开始定时器
STAR:
LCALL DISP
LJMP STAR
;****************************************;显示子程序
DISP: MOV R0,#0FEH
MOV R1,#70H
DISP1:
MOV A,R0
MOV P2,A
MOV A,@R1
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P0,A
LCALL DLYS
INC R1
MOV A,R0
RL A
MOV R0,A
JB ACC.4,DISP1
RET
;***************************************;定时器0中断程序
TIM0:
CLR TR0
CLR EA
MOV A,SETTIM
INC A
CJNE A,#9,TM1
LCALL CHG
MOV A,#00H
CPL P1.0;定时器运行标志,使L1灯不断闪动
TM1: MOV SETTIM,A
MOV TH0,#00H
MOV TL0,#00H
SETB EA
SETB TR0
RETI
;****************************改变要显示的值
CHG:
MOV R0,#70H
MOV R3,#04H
CH1:
MOV A,@R0
INC A
CJNE A,#0AH,CH2
MOV A,#00H
CH2:MOV @R0,A
INC R0
DJNZ R3,CH1
RET
;********************************************;初始化程序
INIT: ;初始化70H---73H中的数据,使用R0,R1,R3
MOV R0,#00H;数据初值
MOV R3,#04H
MOV R1,#70H;4个数码管数据存储地址
IN0:MOV A,R0
MOV @R1,A
INC R0
INC R1
DJNZ R3,IN0
RET
;*****************************************;延时程序
DLYS: MOV R6,#5
DLYS0:MOV R5,#150
DJNZ R5,$
DJNZ R6,DLYS0
RET
;*****************************************;数据表
TAB:
DB 0C0H,0F9H,0A4H,0B0H; 0,1,2,3
DB 99H,92H,82H,0F8H;?,5,6,7
DB 80H,90H,88H,83H;?,9,A,B
DB 0C6H,0A1H,86H,8EH;C,D,E,F
DB 8CH,89H,07fh,0bFH;P,H,.,-11001011
END
七、 思考:
修改一下程序,使用定时器2进行定时改变数据进显示。
|