实验目的与要求
能在数码管上动态显示数字(数码管动态显示)
二、实验环境
硬件环境:实验盒;软件环境:keil
三、实验原理
首先我们来看一下开发板上的电路原理图:
本开发板上使用的是,通过P22、P23、P24控制3-8译码器来对数码管进行位选,通过P0口经过573的驱动控制数码管的段选,通过P13控制573的使能端,为低电平时573才会有输出。
动态显示数码管是一种数码管显示技术,它的工作原理是利用人眼的视觉暂留效应和发光管的余晖,使得多个数码管在交替显示时,看起来像是同时显示。
具体来说,动态显示数码管是将所有数码管的段选线并联,由位选线控制是哪一位数码管有效。通过轮流点亮单个数码管,实现多位数码管整体显示的效果。这种方法的优点是节省IO引脚,但缺点是显示亮度比静态显示低,因此在选择限流电阻时应略小于静态显示电路。
在动态显示中,每个数码管的显示时间需要控制在一定的范围内,通常为1-2ms,这样人眼就无法察觉到数码管的闪烁,从而实现稳定的显示效果。同时,由于动态显示需要轮流点亮每个数码管,因此扫描时间间隔也需要控制在一定的范围内,通常建议为20ms以内,以避免人眼感到闪烁。
总的来说,动态显示数码管是一种有效的数码管显示技术,它可以在节省IO引脚的同时实现多位数码管的稳定显示。
四、实验内容
实验步骤:先用数据线接上电脑和实验盒子,然后在软件中添加对应的源程序编译后的pro.hex文件,断电添加,然后运行一瞬间打开电源。
接线图:
实验程序:
#include<reg51.h>
//--定义使用的IO--//
#define GPIO_DIG P0
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
//--定义全局变量--//
unsigned char code DIG_CODE[17]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
//0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的显示码
unsigned char DisplayData[8];
//用来存放要显示的8位数的值
//--声明全局函数--//
void DigDisplay(); //动态显示函数
/**********************************************************
* 函 数 名 : main
* 函数功能 : 主函数
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void main(void)
{
unsigned char i;
for(i=0;i<8;i++)
{
DisplayData[i]=DIG_CODE[i];
}
while(1)
{
DigDisplay();
}
}
/**********************************************************
* 函 数 名 : DigDisplay
* 函数功能 : 使用数码管显示
* 输 入 : 无
* 输 出 : 无
********************/
void DigDisplay()
{
unsigned char i;
unsigned int j;
for(i=0;i<8;i++)
{
switch(i) //位选,选择点亮的数码管,
{
case(0):
LSA=0;LSB=0;LSC=0; break;//显示第0位
case(1):
LSA=1;LSB=0;LSC=0; break;//显示第1位
case(2):
LSA=0;LSB=1;LSC=0; break;//显示第2位
case(3):
LSA=1;LSB=1;LSC=0; break;//显示第3位
case(4):
LSA=0;LSB=0;LSC=1; break;//显示第4位
case(5):
LSA=1;LSB=0;LSC=1; break;//显示第5位
case(6):
LSA=0;LSB=1;LSC=1; break;//显示第6位
case(7):
LSA=1;LSB=1;LSC=1; break;//显示第7位
}
GPIO_DIG=DisplayData[i];//发送段码
j=10; //扫描间隔时间设定
while(j--);
GPIO_DIG=0x00;//消隐
}
}
输入数据:无
输出数据:动态显示数码管
实验结果:由于docx无法显示动图,只能显示第一张图
五、实验分析
检测中,若被测数码管为共阳极类型,则需将红、黑表笔对调才能测出上述结果,在判别结构类型时,操作时要灵活掌握,反复试验,直到找出公共端为止,大家只要懂得了原理,检测出各个引脚便不在是问题了。成功输出是动态显示数码管,也就是数字一直在跳动。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。