行业新闻
Group news
江苏宏丰木业有限公司    您的位置: 首页  >  行业新闻  >  正文

51单片机知识分享之数码管模块开发

2019年11月01日 文章来源:网络整理 热度:127℃ 作者:刘英

数码管内部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的亮暗组合成字符。常见数码管有10跟管脚。其中有两个公共端,根据内部发光二极管的接线形式可分为共阴极和共阳极两种。使用时,共阴极数码管公共端接地,共阳极数码管公共端接电源。参照下图:

51单片机知识分享之数码管模块开发

??????? 通过给每个管脚高低电平即可控制数码管的亮灭。还是举个例子吧,以共阴极数码管为例,让数码管显示数字0,只要个abcdef六个管脚输入一个高电平即可让数码管显示数字0。

?????????LED显示器工作方式有两种:静态显示方式和动态显示方式。静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。通过以上介绍,大家应该清楚数码管显示的基本原理了吧。下面我看些具体的东西。

??????? 下面三个图为开发板的原理图,此开发板用了两个74HC573寄存器可减少单片机io口的使用。锁存器U8用来控制位选,即控制哪个数码管。U9控制段选,即控制数码管显示什么。数码管和锁存器接在单片机的P0口。

51单片机知识分享之数码管模块开发

51单片机知识分享之数码管模块开发

51单片机知识分享之数码管模块开发

接下来看静态显示和动态显示的程序。

1、数码管静态显示:

#include??

#define?uchar?unsigned?char??

#define?uint??unsigned?int??

sbit?dula=P2^6;???//声明U9锁存器的锁存端??

sbit?wela=P2^7;???//声明U8锁存器的锁存端??

??

/*???//点亮第一位数码管?

void?main()?

{?

????wela=1;?????//打开U8锁存端?

????P0=0xfe;?//送入位选信号?

????wela=0;??//关闭U8锁存端?

?????

????dula=1;?????//打开U9锁存端?

????P0=0x7f;?//送入段选信号?

????dula=0;??????//关闭U8锁存端?

????while(1);?

}???*/??

??

//八个数码管循环显示0~F??

uchar?code?table[]={??

0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,??

0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}?;??

uchar?i;??

?//N毫秒延时??

delay_ms(uint ms)?? ??? ?{?? ?uint i,j;??? for(i=ms;i>0;i--)??????? for(j=114;j>0;j--);}void main(){wela=1;P0=0x00;wela=0;while(1){for(i=0;i0;i--)??

????????for(j=114;j>0;j--);??

}??

uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71 }; //八个数码管显示0~Funsigned char code list[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //数码管的位选void main(){uchar i;while(1){for(i=0;i

上一篇:资深工程师编程经验之掌握把所有编程语言融会贯通


下一篇:如何进行过热保护电路分析?

友情链接
Links
鸿运国际官网_鸿运国际备用网址