动态数码管显示(Proteus仿真图和程序)
创作时间:
作者:
@小白创作中心
动态数码管显示(Proteus仿真图和程序)
引用
CSDN
1.
https://blog.csdn.net/Wan_shibugong/article/details/90514335
本文详细介绍了基于STC89C52RC单片机的四位一体动态数码管显示技术,包括共阳极和共阴极数码管的驱动原理、电路连接方式,并提供了具体的Proteus仿真图和C51程序代码。
一、基础理解
本博客基于STC89C52RC单片机进行编程,采用四位一体动态数码管显示。
二、共阳极数码管
- 基础介绍
- 共阳极数码管显示需要PNP三极管进行驱动电路。
- 三极管的集电极连接数码管的位选端,发射极连接电源,基极连接单片机进行控制。
- 基极高电平,集电极就低电平,基极低电平,集电极就高电平,数码管亮。
- 仿真中需要在位选端接电阻接地,否则当基极为高电平时,集电极还是高电平。
- 实际电路中位选端可以不接电阻不接电。
- Proteus仿真电路图
- C51程序
#include <reg51.h>
#define duanxuan P1 //段选接口
#define weixuan P2 //位选接口
unsigned char code wxcode[4]={0xfe,0xfd,0xfb,0xf7};
unsigned char code dxcode[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void DigDisplay(int num);
void main()
{
int num = 9876;
int t = 0;
//每隔一段时间num-1
while(1)
{
t++;
if(t == 500)
t = 0, num--;
DigDisplay(num);
}
}
//num是显示的数字
void DigDisplay(int num)
{
unsigned char i;
unsigned int j;
int gewei,shiwei,baiwei,qianwei;
gewei = num % 10;
shiwei = num / 10 % 10;
baiwei = num / 100 % 10;
qianwei = num / 1000;
for(i=0; i<4; i++)
{
weixuan = wxcode[i];
duanxuan = 0xff;
if(i == 3)
{
duanxuan = dxcode[gewei];
}
if(i == 2)
{
duanxuan = dxcode[shiwei];
}
if(i == 1)
{
duanxuan = dxcode[baiwei];
}
if(i == 0)
{
duanxuan = dxcode[qianwei];
}
j=10;
while(j--);
duanxuan=0xff;
}
}
三、共阴极数码管
- 基础介绍
- 共阴极数码管显示需要NPN三极管进行驱动电路。
- 三极管的集电极连接电源,发射极连接数码管的位选端,基极连接单片机进行控制。
- 基极高电平,发射极就高电平,基极低电平,发射极就低电平,数码管亮。
- Proteus仿真图
- C51程序代码
#include <reg51.h>
#define duanxuan P1
#define weixuan P2
unsigned char code wxcode[4]={0xfe,0xfd,0xfb,0xf7};
unsigned char code dxcode[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void DigDisplay(int num);
void main()
{
int num = 9876;
int t = 0;
while(1)
{
t++;
if(t == 500)
t = 0, num--;
DigDisplay(num);
}
}
void DigDisplay(int num)
{
unsigned char i;
unsigned int j;
int gewei,shiwei,baiwei,qianwei;
gewei = num % 10;
shiwei = num / 10 % 10;
baiwei = num / 100 % 10;
qianwei = num / 1000;
for(i=0; i<4; i++)
{
weixuan = wxcode[i];
duanxuan = 0x00;
if(i == 3)
{
duanxuan = dxcode[gewei];
}
if(i == 2)
{
duanxuan = dxcode[shiwei];
}
if(i == 1)
{
duanxuan = dxcode[baiwei];
}
if(i == 0)
{
duanxuan = dxcode[qianwei];
}
j=10;
while(j--);
duanxuan=0x00;
}
}
热门推荐
周口店遗址:历久弥新的中华文明火种
新加坡公司年审与审计全解析:合规、流程与最佳实践
防脑退化必吃14款食物 营养师大推1种超级水果 喝绿茶增强记忆力?
青少年吃什么补脑子增强记忆力
民间艺术瑰宝绽放新时代光彩 探寻天台抬阁
杭州摇号结果如何查询?这样的查询方法对购房者有何帮助?
如何调整显示器的颜色参数
Windows 11色域校准怎么做?如何精准调整?
从巅峰到没落:日本新干线如何被中国高铁超越?
人有三个“脑”
枣树什么时候开花结果
硫酸镍七水合物:性质、用途与生产工艺详解
达芬奇如何管理项目
红糖_冰糖_白砂糖_黑糖_方糖_绵白糖_赤砂糖_冰片糖_黄砂糖_原糖的区别
上海万里街道:以“五步曲”打造家门口的幸福“养老圈”
多彩贵州:游大七孔景区
古龙武侠小说《边城浪子》10大高手排名,傅红雪第7,叶开第4
易拉罐啤酒:从问世到普及的技术革新之路
耳朵胀胀的是什么原因
维生素D3 vs 维生素D2:谁才是促进钙吸收的“冠军”?
浮萍的多重用途:从环保到医药的全能植物
中国姓氏之最,张、王、李、赵到底谁第一?复姓到底多少人?
RTC--时钟芯片
芯片的功能与应用:从数据处理到智能控制
监控设备有哪些组成 监控系统结构是怎样的
往返港澳旅客注意了!未来只能携带1瓶葡萄酒免税入境
2025年云安全趋势:应对新挑战,提升安全防护
简述碘的生理功能
2025年退休金将显著增长,这些退休人群将受益最多
安全色和安全标志在工业安全中的作用是什么?