四位数码管动态显示
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验名称:实验名称四位数码管动态显示
一、实验目的
1.通过AT89C52单片机控制四位数码管动态显示数字“3210”。
2.用Protues设计、仿真以AT89C52为核心的四位数码管动态显示实验装置。
3.掌握四位数码管的控制方法。
二、实验任务
P1端口接动态数码管的字形码笔段,P2端口接动态数码管的数位选择端,接通电源时,显示“”字样;
三、实验设备
微机1台、Proteus软件1套、GL10型51单片机学习开发板1台。
四、实验电路绘制
五、汇编语言程序设计
1.设计原理
动态接口采用各数码管循环轮流显示的方法,当循环显示频率较高时,利用人眼的暂留特性,看不出闪烁显示现象,这种显示需要一个接口完成字形码的输出(字形选择),另一接口完成各数码管的轮流点亮(数位选择)。在进行数码显示的时候,要对显示单元开辟4个显示缓冲区,每个显示缓冲区装有显示的不同数据即可。对于显示的字形码数据我们采用查表方法来完成。
2.程序框图
3.汇编程序
ORG 0000H ;初始化
START:MOV R0,#0FFH ;控制段选,给R0传递一个初值1111 1111
MOV DPTR,#TABLE ;将表头的地址传递给数据指针
NEXT:MOV A,R0 ;R0的值传给累加器A
MOVC A,@A+DPTR ;查表指令,将TABLE的值按底标给A
MOV P2,A ;A的值传给P2接口,显示数字0
LCALL DELAY ;调用延时函数,延时
INC R0 ;R0加一,
MOV A,R0 ;R0的值再次传给A,控制位选移动
MOV P1,A ;A的值传给P1口,
CJNE R0,#04,NEXT ;判断R0是否等于4,若不等于,转NEXT继续执行,若等于,继续执行下一条程序SJMP START,相当于将值初始化,重新开始。
SJMP START ;跳转到START,R0,R1初始化,重新执行一轮。
DELAY:MOV R6,#4 ;延时程序
DL2:MOV R7,#248
DL1:DJNZ R7,$
DJNZ R6,DL2
RET
TABLE:DB 3FH,06H,5BH,4FH ;以table为表头地址,依次存入二进制的
0.1.2.3
END
六、Proteus软件模拟仿真
七、GL10单片机仿真系统
1.实验板连线
2.实验操作步骤
先把“单片机系统”区域中的P1.0/AD0-P1.7/AD7用8芯排线连接到“动态数码显示”区域中的a-h端口上;再把“单片机系统”区域中的P2.0/A8-P2.3/A15用4芯排线连接到“动态数码显示”区域中的0-N端口上。
八、实验结果
四位数码管显示出“0123”。
九、总结与体会
这个实验让我了解了keil软件的编程过程,同时对于protues的电路仿真过程有了更加深入的了解,知道了四位数码管如何进行片选和段选。