1,实验目的:(1)了解数码管与单片机的借接口方法; (2)了解数码管性能及动态显示编程方法; (3)了解单片机系统中定时器控制的基本方法;
2,实验内容: 用定时器实现定时,六位数码管动态显示123456. 3,实验接线图:
实验链接图
4,实验程序流程: 主程序:数码管初始化->LED灯初始化->定时器初始化->第一位数码管循环显示等待。 中断服务程序:定时器重新赋初值->切换LED灯状态->改变数码管显示位->改变数码管显示值
5,实验步骤: 将试验箱和电脑连接即可。 6,参考程序: ORG 0000H LJMP SE13
ORG 000BH ;中断入口地址 LJMP INTERRUPT
ORG 05E0H SE13: MOV SP,#53H MOV P2,#0ffh MOV A,#81H MOV DPTR,#0FF23H MOVX @DPTR,A ;选中数码管
MOV 7EH,#01H MOV 7DH,#02H MOV 7CH,#03H MOV 7BH,#04H MOV 7AH,#05H MOV 79H,#06H
T_INIT: MOV TMOD,#01H ;定时器0工作方式1 ORL IE,#82H ;中断使能 MOV TL0,#0B0H MOV TH0,#3CH ;定时器初始化 MOV R5,#20 SETB TR0 ;开定时
SSEE: MOV 30H,#20H ;数码管位选 MOV 31H,#7EH ;数码管段选 MOV R7,#06H ;数码管显示个数
SSE1: MOV DPTR,#0FF20H MOV A,30H CPL A MOVX @DPTR,A ;位选送入数据 MOV R0,31H MOV A,@R0 MOV DPTR,#TAB MOVC A,@A+DPTR MOV DPTR,#0FF21H ;字形码 MOVX @DPTR,A ;段选送入数据 MOV A,30H RR A ;切换数码管显示位 MOV 30H,A DEC 31H ;改变数码管显示数值 MOV A,#0FFH MOVX @DPTR,A DJNZ R7,SSE1;
LJMP SSEE ;
INTERRUPT: ;PUSH A MOV TL0,#0B0H MOV TH0,#3CH ;重新赋初值 ;MOV A,23H DJNZ R5,RETU ;1秒到了? MOV R5,#20 ;延时计数复位
MOV 78H,79H MOV 79H,7AH MOV 7AH,7BH MOV 7BH,7CH MOV 7CH,7DH MOV 7DH,7EH MOV 7EH,78H
RETU:RETI
TAB: ;数码管显示0~F对应值 DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH END
0 0 1 0 0 0 0 0 B 0 0 0 1 0 0 0 0 1 1 0 1 1 1 1 1 B 1100 0000
|