数字歇后语
第一篇单片机数码管:如何用单片机控制数码管(带原理图程序注释)说起数码管这个器件时,你可能会对它产生好奇,是怎样控制它显示数字字母的,也许正是因为这个好奇心驱使我们总想去了解它使用它。数码管:由多个发光二极管封装在一起组成8字结构,引线已在内部完成,我们只需引出他们的各个笔画,公共电极。数码管实际
单片机数码管

第一篇单片机数码管:如何用单片机控制数码管(带原理图程序注释)

说起数码管这个器件时,你可能会对它产生好奇,是怎样控制它显示数字字母的,也许正是因为这个好奇心驱使我们总想去了解它使用它。
数码管:由多个发光二极管封装在一起组成8字结构,引线已在内部完成,我们只需引出他们的各个笔画,公共电极。数码管实际上由七个发光二极管组成“8”字型结构,加上小数点就是8个,这些段位分别由a,b,c,d,e,f,g,dp来表示。
数码管(图片来源于网络)
数码管(图片来源于网络)
数码管(图片来源于网络)
在市场上可以分为两种数码管,分别为共阳极,共阴极,共阳极顾名思义就是把LED的正极端连在一块,在点亮的时候只需要把另一端通过单片机的指令让其接地即可,共阳极也是如此(本篇中为共阴极)。
原理图如下:
原理图
原理图
在单片系统中扩展LED数码管多用共阳极数码管,原因就是选用共阴极数码管在用单片机驱动时,所用的驱动功率较大,共阳极就避免了这个问题,在使用的时候为了避免电流过大,还需在每个字段要串联一个电阻。
但是在使用的时候由于数码管端口较多,想要控制多个数码管的话,还需加74H573锁存器,在本篇讲解中使用该锁存器,数码管采用共阴极。
74H573
原理图
如果想让上图中第一个数码管显示字母"b",则只需要控制相应的位拉高(既c,d,e,f,g),其余为低电平即可,转化成二进制就是0111 1100。
控制代码如下
#include
sbit duan=P2^6;//定义段选
sbit wei=P2^7;//定义位选
main()
{
P0=0x07;//0111 1100--b
duan=1;//锁存IC失能
duan=0;
P0=0xfe;//1111 1110
wei=1;//锁存IC使能
wei=0;
while(1);
}
在程序中出现断选和位选,所谓断选就是控制数码管显示什么,位选是控制哪一个数码管亮,文章中是想让第一个数码管点亮,在程序中只需让第一个数码管是低电平,其余是高电平即可,转化为二进制就是1111 1110,另外程序中还有让断选或位选等于0和等于1的那句话,这可以理解为锁存器的启动,这样可以把数据写进去而且后期不能随便修改。
小伙伴们你们学会了吗?敢不敢来试试,点亮第三个数码管,显示数字9,把你的答案写在评论区,分享一下吧!

第二篇单片机数码管:单片机数码管码段

之前高了段时间的单片机,感觉玩着挺嗨的....这篇文章就将数码管的对应码段列举出来,以便大家参考
从0--9,从A--F最后一个是无显示共阴极码段为:0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d,              0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c,        0x39, 0x5e, 0x79, 0x71, 0x00从1--9,从A--F最后一个是0共阳极码段为: 0xf9, 0xa4, 0xb0, 0x93, 0x92, 0x82,        0xf8, 0x00, 0x90, 0x88, 0x83, 0xc6,       0xa1, 0x86, 0x8e, 0xc0从0--9从A--Y共阳极数码管码段(带小数点)  0x40, 0x79, 0x24, 0x30, 0x19, 0x12,  0x02, 0x78, 0x00, 0x10, 0x08, 0x03,  0x66, 0x21, 0x06, 0x0e, 0x0c, 0x09,  0x11

第三篇单片机数码管:初学单片机,数码管显示函数要带个表

前文《设计一款的编程思路交通灯控制系统>》中提到了一个关键的函数:数码管显示函数,那么我们今天就聊一下数码管的段码表如何制作。
图一.数码管字段排列对应单片机管脚图
上面的图片中,上半部分是从我们先前画的PCB原理图中截图出来的,可以看出单片机管脚对应数码管段码的关系;下半部分是一个数码管段码生成软件的界面截图。
数码管的字段排列:
从图中可以看出,数码管的显示字段是按照固定格式排列的,参考上图的左下红色部分。
数码管的引脚排列:
但是不同品牌/型号的实物管脚是不标准排列的。因此,使用哪种型号的数码管,就要先通过器件手册或者实际测量来确定管脚排列图(表),例如上图中的右上部分就是本文采用的数码管引脚排列图。
单片机的引脚连线:
通常单片机的引脚排列是根据布线的情况来改变的,而不是按I/O口的bit位顺序对应数码管的段码顺序。因此这个连线一般都在PCB布线的时候对原理图做修改,以达到最优的PCB布线效果。当然也完全可以按照单片机管脚顺序来对应数码管段码顺序。
假如我们要显示一个数字“0”,如何设计单片机程序呢?
图二. 数字“0”对应的数码管字段数值
从上图可以看出,对于一个共阳极数码管来说,字段引脚为低电平0点亮,为高电平1关闭。那么显示一个数字“0”就要关闭字段“g”和“h”,对应到单片机的P0口就是一个从bit高位到低位(10000100)的值,换算成十六进制就是“0x84”。
同样,我们可以得到0~9数字的值,把它定义为数组表格,在c51程序中调用取值。
图三. 数码管显示一位数字“0”的代码片段
当然实际程序中要复杂很多,但是拆解到每一个功能的实现都是很容易理解的。
以上是最笨的也是最简单的方法之一,是单片机初学者应该掌握的基础。当然还有一种更简单且一劳永逸的方法,不需要软件生成代码,如果对我们前面聊的宏定义弄熟悉了,就很容易实现了。

单片机数码管

https://m.shanpow.com/xhy/414839/

推荐访问:单片机数码管显示
《单片机数码管.doc》
将本文的Word文档下载,方便收藏和打印
推荐:
下载文档
下一篇: 生男孩计算器
相关阅读数字歇后语 
热点推荐