单片机数码管如何从1显示到9?

单片机数码管如何从1显示到9?,第1张

数码管的 1-9 的 对应的码算出来就好了

例如:#include <AT89X51H>
//数字0-9的字形
unsigned char code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
unsigned char dispcount;
void delay02s(void);
void main(void)
{
P1_0=0;//选通第一位数码管
while(1)
{
 for(dispcount=0;dispcount<10;dispcount++)
 {
  P0=table[dispcount];
  delay02s();
 }
}
}
void delay02s(void)
{
unsigned char i,j,k;
for(i=20;i>0;i--)
for(j=30;j>0;j--)
for(k=248;k>0;k--);
}

补充:单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机

若数码管共阳,则低电平有效,所对应的16进制表示方式,为:0-0xc0,1-0xf9,2-0xa4,3-0xb0,4-0x99,5-0x92,6-0x82,7-0xf8,8-0x80,9-0x90。若数码管共阴则高电平有效,所对应的16进制表示方式为0-0x3f,1-0x06,2-0x5b,3-0x4f,4-0x66,5-0x6d,6-0x7d,7-0x07,8-7f,9-0x6f。

字形代码为10010010解释如下:

共阳型数码管应该为低电平点亮,也就是0,数码管显示5也就是a\c\d\f\g点亮,其余熄灭不显示。对照下图数码管段位图可得。

这个是针对数码管的显示,尤其是动态显示的时候用的。
段码指的字形码,就是数码管上显示的字形。
位码指的多个数码管显示的时候,你要让那个数码管显示,设定对应的公共端的值,选择对应的数码管点亮。这个就是位码,即位置码。
希望对你有用!!!


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/13026361.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-29
下一篇2025-08-29

发表评论

登录后才能评论

评论列表(0条)

    保存