动态数码管显示(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;
}
}
热门推荐
F1中国大奖赛倒计时,赛事绿色发展也有“上海模式”
如何在黄金投资中运用技术分析?这种技术分析如何结合基本面分析来提高准确性?
超慢跑和爬楼梯:适合所有人的高效运动方式
哪些工作会被AI做成“标本”?
开车逆行的危害-怎么处罚-逆向行驶的几种情况
Unity3D开发:在RawImage上投射相机视野的完整教程
极致的酒文化,茅台是如何炼成的?
劳动合同终止有补偿吗
口干口渴舌尖上火的对策是什么
耗资19亿美元,台湾省最高建筑,台北101大厦是如何建造的?
建筑施工安全生产法律法规汇编及其合规要点解析
美的抽油烟机清洗方法(简单高效的清洁技巧助你保持清新厨房)
危!油锅起火引燃油烟机,这个卫生死角你家也有
活血之圣药——血竭
新型Vo1d恶意软件曝光,超130万台安卓电视设备已中招
流传天下的《红楼梦》如何从"朋友圈文学"走向经典?
卢布对人民币汇率历史记录:走势分析和预测趋势
诸葛亮北伐的最后一战"五丈原之战"对战过程是怎样的
社保卡的使用指南及法律规定
医生解答:减肥期间能否食用巴旦木?
网络主播避坑指南——主播签约时应该注意哪些法律问题?
扶老人是否留证据的法律探讨
热心救助摔倒老人 “扶起”社会正能量
2025年中国铜行业全景图谱:从产业链到竞争格局的全面解析
汽车上的二线制和三线制霍尔传感器的区别
BLDC霍尔安装角度你知道多少?
口苦、口臭是因为幽门螺旋杆菌感染导致的吗
癌症发生前都会给你机会,这些警报信号一定要把握,很多人还不知道
为什么我们的身体会带静电? 3种方法防止静电攻击
清晨阅读丨浅析两宋青绿山水画意象色彩及其承接与兴盛