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

发布网友 发布时间:2022-04-23 19:44

我来回答

5个回答

热心网友 时间:2023-10-05 10:10

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

例如:#include <ATX51.H>
//数字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的高速单片机

热心网友 时间:2023-10-05 10:11

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

例如:#include <ATX51.H>

//数字0-9的字形码

unsigned char code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};

void main(void)

P1_0=0;//选通第一位数码管

while(1)

P0=table[dispcount];

delay02s();

unsigned char i,j,k;

for(i=20;i>0;i--)

for(j=30;j>0;j--)

for(k=248;k>0;k--);

}

结构

led数码管(LED Segment Displays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。led数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。

位数有半位,1,2,3,4,5,6,8,10位等等,led数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。

以上内容参考:百度百科-数码管

热心网友 时间:2023-10-05 10:11

把 数码管的 1-9 的 对应的码算出来就好了 循环显示 每次显示完一个数字 等一会 再显示第二个还有你的数码管是共阳极的还是阴极的 试一下就知道了

热心网友 时间:2023-10-05 10:12

给你发个程序...以前做的从1到8...照着改下数字就行,添加一个while函数...#include<reg52.h>
#define uchar unsigned char
sbit p1=P2^1; /定义蜂鸣器等号后面的字母“P”一定要大写!“p1”可以任意字母表示/

热心网友 时间:2023-10-05 10:13

这个真没有,人家怎么又没数据手册

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com