历史上的今天
今天是:2025年10月17日(星期五)
2022年10月17日 | 51单片机基础之数码管(二)
2022-10-17 来源:csdn
原理:
因为数码管有8个,我们必须采用38译码器来节省单片机的资源,这里先简单介绍一下38译码器的原理,之后会慢慢补充常用芯片的原理和工作方法。
功能:38译码器有三个信号输入端,2的3次方就是8,有八种输出情况,每种情况对应一个输出,八个数码管分别连接八个输出,三个输入就可以实现八个数码管的动态显示。

真值表:

代码:
#include #define SMG P0 typedef unsigned int u16; //对系统默认数据类型进行重定义 typedef unsigned char u8; //配置38译码器,到时候要用 sbit LSA=P2^2; sbit LSB=P2^3; sbit LSC=P2^4; u8 SMG_code[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //数码管显示0到F,但是实验只需要八个,即0到7 void delay(u16 i) { while(i--); } void SMG_show(void) { u8 i; for(i=0;i<8;i++) //循环八次,依次替换 { switch(i) //位选 { case 0:LSC=1;LSB=1;LSA=1;break; //当111时,第一个输出高电平,别的都是低电平,其他以此类推 case 1:LSC=1;LSB=1;LSA=0;break; case 2:LSC=1;LSB=0;LSA=1;break; case 3:LSC=1;LSB=0;LSA=0;break; case 4:LSC=0;LSB=1;LSA=1;break; case 5:LSC=0;LSB=1;LSA=0;break; case 6:LSC=0;LSB=0;LSA=1;break; case 7:LSC=0;LSB=0;LSA=0;break; } SMG=SMG_code[i]; //让P0端口输出电平 delay(100); //其实你看到八个数码管都在显示,是假的,他们是依次亮的,只是人眼看不出来。 SMG=0x00; //减少闪烁 } } void main(void) { while(1) { SMG_show(); //引用显示函数 } } 运行结果:
上一篇:51单片机基础之LCD1602
下一篇:51单片机基础之数码管(一)
史海拾趣
|
1 引言 汽车仪表是驾驶员与汽车的信息交流界面,对汽车安全以及经济行驶具有重要作用。近年来,随着汽车电子技术的发展,汽车仪表显示信息也不断增加,而传统机械指针式汽车组合仪表则无法满足现在使用需求。特别是计算机、微电子和 ...… 查看全部问答> |
|
WINCE如何拖动图片像IPHONE一样的效果。效果内详。实在没分了。有分了再补 往上或往下滑动屏幕。当放开触摸屏时。按一定的速率继续往滑动方向。直至停止。需要有加速度般的感觉。 希望高手有代码的贴下代码。。不然来点实质性的思路和想法… 查看全部问答> |
|
extern ROMChain_t *OEMRomChain; 这段编译错误 在eboot main.c 添加 multibin xip 过程中, 添加 InitRomChain() 函数中,引用了 全局变量 extern ROMChain_t *OEMRomChain; OEMRomChain 指针对应是 public\\common\\oak\\inc\\Bcoemglobal.h 文件中 #define OEMRomChain g_pOemGlobal->pRO ...… 查看全部问答> |
|
个人求有PHS基站控制器软件开发经验辅导老师(可兼职,深圳) 本人欲从事PHS基站控制器软件开发,因无此方面的经验,想请位有这方面经验的辅导老师。 主要工作是帮助本人分析一个现有PHS基站控制器软件源程序,然后修正程序中的一些BUG。 时间方面可以是灵活按排(工作日、业余均可),报酬可以按时/日/周/月等 ...… 查看全部问答> |
|
是一个虚拟的USB软驱,有INF和SYS文件,通过WINDOWS弹出的检测界面可以安装成功。我想在我的安装程序里直接将驱动按上,而在插入U盘时就能自动检测到设备ID后自动加载驱动。哪位有类似的程序和方法,请赐教。… 查看全部问答> |
|
各位大虾 我在.NET2005下开发WinCE程序(VB.net),现在需要把按钮上的字符靠左显示,在Windows下的按钮有设置靠左的属性,但是在WinCE下没有这个属性,请问该怎么做??… 查看全部问答> |
|
看了一下之前的每日一问,有些是版主发表的,有些是坛友发表的,但都是些专业性的问题,我看了下,都不太会··· 我呢,菜鸟一个,连个Z430—RF2500的驱动问题都解决不了,因此还没开始开 ...… 查看全部问答> |
|
我的现在的想法是 用串口助手 第一次输入 十六进制的 ff 第二次 fe 第三次 fd 然后 我想把 他们存放在一个 数组中 buffer[ ] 里面 存储后 在 去调用 显示出来 SBUF=buffer[ i ] 显示 ff 后 延时 200 ms 显示 fe 再延时 400ms 显示 fd void Com ...… 查看全部问答> |
|
TI为其产品线的处理器目前提供了全套的解决方案,这个系列电源方案被称作:SIMPLE SWITCHER Nano Modules and Regulators对应于MSP430和Cortex-M系列ARM提供了从5V到24V输入的各类电源方案。对于C2000系列、C6000系列和Sitara ARM系列提供了12V到24 ...… 查看全部问答> |




