Ⅰ 怎样用一个单片机控制8个数码管
动态扫描,如下例,P0送段码,P2送位码,共阳极。
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code DSY_CODE[]=
{
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90
};
void DelayMS(uint x)
{
uchar i;
while(x--)
{
for(i=200;i>0;i--);
}
}
void main()
{
uchar i,k=0x80;
while(1)
{
for(i=8;i>0;i--)
{
P2=0xff;
k=_crol_(k,1);
P0=DSY_CODE[8-i];
P2=k;
DelayMS(3);
}
}
}
Ⅱ 51单片机加74hc595驱动多个数码管静态显示的程序设计
1、首先数码管分为1位,4位,8位,4位和8位的又分为共阴和共阳数码管。
Ⅲ 单片机需要几个端口控制8个单独的数码管
这个要分情况的,静态数码管也有4位,7位,对4位的BCD数码管,32个IO口就可以了,对7位的则需要56个IO口才行。
Ⅳ 单片机怎么和数码管相连
数码管分共阴和共阳两种,公共端接电源或者地,其他ABCDEFGH接单片机的IO,数码管的断怎么分配看数码管的引脚图,之后通过单片机的IO可以驱动数码管,多个数码管的话要采用动态扫描方式,可以详细看看相关的教程,这个不难。
Ⅳ 51系列单片机驱动多个数码管
用六片 595,即可静态显示时、分、秒。
但是,这时分秒的公共端,还要用一位接口来控制。
类似于动态显示的位选。
当换另一个位时,再让这六片 595,显示年、月、日。
当换另一个位时,再让这六片 595,显示星期、温度、湿度。
当换另一个位时,再让这六片 595,显示某某节日的倒计时,或农历。
595 用单片机的三条引线,位选,用四条。共七个引脚,即可驱动 24 位数码管。
并且,仅仅是四位的动态显示,因此,毫无闪烁的现象。
单片机,使用仅有 15 个 IO 引脚的 AT89C2051,即可够用。
Ⅵ 要实现数码管的动态显示,数码管的公共端和各段选线应该怎么和单片机连接
位选,就是选择想要点亮哪个数码管;
段选,就是选择想要点亮哪个数码管的哪个一段。
如果有几个数码管,为了节省接口,将每个数码管的对应段连在一起,需要那只数码管亮,控制的就是“位选”。
段选就是让数码管里的八段里的哪一段亮,位选就是让一些数码管里的哪一个数码管亮,你程序应该是四个数码管的。通过位选,段选来达到让不同的数码管显示不同的字符。
Ⅶ 51单片机几个数码管都接在一个p0口上是如何现实的分开显示的
有段选和位选,段是要显示的数据,位是选择打开哪只管。所以需要一只只数码管轮流打开关闭,一旦每只管显示时间达到25HZ以上,因为视觉暂留,看起来就像是都在显示的效果。