四位数码管动态显示

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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的电路仿真过程有了更加深入的了解,知道了四位数码管如何进行片选和段选。

相关文档
最新文档