您的位置 首页 传感器

单片机动态数码管的规划

一、数码管动态显示动态显示LED数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c

一、数码管动态显现

动态显现

LED数码管动态显现接口是单片机中使用最为广泛的一种显现方法之一,动态驱动是将一切数码管的8个显现笔划”a,b,c,d,e,f,g,dp”的同名端连在一起,别的为每个数码管的公共极COM添加位选通操控电路,位选通由各自独立的I/O线操控,当单片机输出字形码时,单片机对位选通COM端电路的操控,所以咱们只需将需求显现的数码管的选通操控翻开,该位就显现出字形,没有选通的数码管就不会亮。经过分时轮番操控各个数码管的的COM端,就使各个数码管轮番受控显现,这便是动态驱动。在轮番显现过程中,每位数码管的点亮时刻为1~2ms,因为人的视觉暂留现象及发光二极管的余辉效应,虽然实际上各位数码管并非一起点亮,但只需扫描的速度足够快,给人的形象便是一组安稳的显现数据,不会有闪耀感,动态显现的作用和静态显现是相同的,可以节约很多的I/O端口,并且功耗更低。

二、Proteus仿真试验

源程序:

#include//C51头文件
#include//函数头文件
#define uchar unsigned char//宏界说uchar=unsigned char
#define uint unsigned int//宏界说uint=unsigned int

uchar duan_code[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f
};//共阴极数码管段码0~9
uchar wei_code[]={0xFE,0XFD}; //共阴极数码管位码

void delay_ms(uint z)//ms级推迟函数,z表明形参,是几便是几ms推迟
{
uint x,y;
for(x=z;x>0;x–)
for(y=99;y>0;y–)
{ _nop_();
_nop_();
}
}

void main(void)//主函数
{
uint i=23;//初始化数码管显现的值
P0=0X00;//初始化P0口为低电平
P2=0XFF;
while(1)
{
P2=0XFE;//十位显现
P0=duan_code[i/10];//经过对i取整,求出十位显现的数字
delay_ms(5);//每次距离2ms
P2=0XFF;

P2=0XFD;//个位显现
P0=duan_code[i];//经过对i取余,求出个位显现的数字
delay_ms(5);//每次距离2ms
P2=0XFF;

}
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/chuanganqi/258570.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部