A. 图是89C52单片机控制共阴极四位数码管显示时间,这电路是怎么工作的具体写一下信号的传输。
你的图不是很清楚,根据你图上的功能来看,器件应该是:
单片机(51系列) -> 8路缓冲器(74HC245) -> 数码管(四位)
1、由于单片机IO口的驱动能力有限,在单片机和数码管中间增加了缓冲器
这样可以有效的保护单片机,提高了驱动能力。
2、接法:四位数码管有四个选择端,保证统一时间只A-G字段,只对一个数码管有效。
3、点亮数码管,通过选取不同的选择端,选择好某一位数码管,通过A-G字段点亮。
B. 51单片机控制的数码管原理是什么
数码管其实是由发光二极管组成,有共阴极和共阳极之分,对于共阳极来说,一位数码管由8个二极管组成,他们的阳极接在一起接+5v电源,而各个阴极与某个端口,如p1的8个引脚相连,当某个引脚输出低电平的时候数码管对应的二极管亮。
问题补充:
因为人的眼睛具有迟滞性,如果给一位数码管接通0.3秒地时间,然后再给另一个接通0.3秒,不断地给几个数码管轮流接通0.3秒,因为人眼的迟滞,就显示出您所要求显示的数,当然具体接通时间,要看数码管的位数等情况自己调节。
C. 单片机电路图P2端口控制码真值表 4x4矩阵原理 数码显示器工作原理分别是什么
这个电路就是P0端口的复用,通过选通信号分别实现键盘操作、数码管段码、位码输出的功能;
如通过设置 P2.5=0、P2.6=0、P2.7=0,就让P0口仅接通键盘;
当设置 P2.5=1、P2.6=1、P2.7=0,就让P0口仅接通数码管的段数据线,可让P0输出段码;
当设置 P2.5=1、P2.6=0、P2.7=1,就让P0口仅接通数码管的位数据线,可让P0输出位码;
还不明白的请追问;
D. 如何利用单片机让4位数码管显示
程序如下(用的是STC89C52芯片):
#include<reg52.h>//52系列单片机头文件
#defineucharunsignedchar
#defineuintunsignedint
uintx,y;
ucharcodetable[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};//共阴极数码管编码
voiddisplay(uchar,uchar,uchar,uchar);//声明子函数
voiddelay(int);//声明子函数
voidmain()
{
while(1)
{
display(1,2,3,4);//主程序始终调用数码管显示子程序
}
}
voiddisplay(uchara,ucharb,ucharc,uchard)
{
P2=0xef;
P0=table[a];//给第一个数码管送"a"
delay(1);//延时1ms
P2=0xdf;
P0=table[b];//给第二个数码管送"b"
delay(1);//延时1ms
P2=0xbf;
P0=table[c];//给第三个数码管送"c"
delay(1);//延时1ms
P2=0x7f;
P0=table[d];//给第三个数码管送"d"
delay(1);//延时1ms
}
voiddelay(uintz)//延时子函数
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
(4)单片机四位数码管工作原理扩展阅读
led数码管是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。led数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。
位数有半位,1,2,3,4,5,6,8,10位等等,led数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。
E. 4位共阳极led数码管动态显示驱动原理
要是数码管显示数字,有两个条件:1.是要在VT端加合适的电源(一般每颗LED还需串上合适的电阻,起限流作用);2.要使(a,b,c,d,e,f,g,dp)端接低电平或“0”电平。这样才能显示的
能够点亮数码管后,就可以通过单片机控制数码管显示数字或字母。为了控制方便,我们将数码管的a~dp引脚依次连接单片机的P10-P17引脚
F. 用单片机控制数码管显示电路图的运行原理
单片机控制数码管显示电路图的运行原理是利用人眼“视觉暂留”的原理来实现的。
1、根据科学论断,人眼视觉暂留时间是一帧也就是1/24秒,大约42毫秒时间。
2、在多个数码管显示电路中,控制上是通过扫描显示也就是分别分时给每个数码管送显示数据(段码+位码),而全部数码管的一次扫描时间不超过1/24秒。
3、要想达到稳定显示,经过试验,每个数码管数据暂留时间又不能太少,一般不少于3毫秒。因此一个单片机的扫描控制流程最多可以控制14个数码管。
4、扫描控制,一般用定时器来实现,51单片机有2个定时器,因此,最多可以同时控制28个数码管稳定显示。
G. 问一下 单片机 数码管接线原理
首先,这数码管是四位一体共阴型的,用单片机的P0口做段控,因P0口需要加上拉电阻,所以那8个电阻就上拉电阻。P2口做位控,这是一个典型的动态显示电路。按这个图画仿真图是可以的,但做实物就不行了,因P2驱动电流很小,无法驱动数码管正常显示。所以,这只是一个原理图而已。
H. 51单片机控制的数码管原理是什么
数码管其实是由发光二极管组成,有共阴极和共阳极之分,对于共阳极来说,一位数码管由8个二极管组成,他们的阳极接在一起接+5v电源,而各个阴极与某个端口,如p1的8个引脚相连,当某个引脚输出低电平的时候数码管对应的二极管亮。
问题补充:
因为人的眼睛具有迟滞性,如果给一位数码管接通0.3秒地时间,然后再给另一个接通0.3秒,不断地给几个数码管轮流接通0.3秒,因为人眼的迟滞,就显示出您所要求显示的数,当然具体接通时间,要看数码管的位数等情况自己调节。
I. 使用单片机实现四位八段的数码管显示,显示出852.6如何实现,请写出实现流程
有两种方式,一种是动态扫描,假设你数码管有COM1,COM2,COM3,COM4,然后有8个段,常见的是7个控制数码管段还有一个小数点一共8个段
那么这里就描述单片机一次扫描4位的过程,首先,如果你的数码管是共阳,那么显示第一位就将COM1引脚拉到高电平,然后8个引脚接到单片机IO口上,你说你要显示852.6,那么第一位是8,7个段全亮,所以7个IO全部拉低电平就行,随后延迟差不多1ms左右
接下来就是显示第二个数码管,和之前一样,COM2拉高,然后你要显示5的话有两个段是不亮的,所以哪两个脚你不想让他亮,你直接把对应的IO拉高就行,你要让剩下哪5个段亮直接拉高电平即可,随后再延时1ms左右
接下来两位和上面一样,对应位的COM口拉高电平,对应的字段IO你要让哪个段亮就把哪个拉低电平,哪个段不想亮就拉高电平,最后延时1ms就行
最后程序外面套个while(1)就可以实现无限循环了
还有一种方式就是用74HC595和4个数码管连接起来,74HC595是一个串行锁存寄存器,只需要4个74HC595和4个数码管就行,最少只占用单片机2个IO
这里就说明一下74HC595的控制方式
首先74HC595应该有个EN口,拉低,然后时钟拉高,循环8次,再把时钟信号拉低,用一个AND运算,如你要传输一个0XAA,那么就是
void InputData(0XAA)
{
for(int i=0;i<8;i++)
{
if(dat&0x01==1)
{
digitalWrite(SCK,LOW);
digitalWrite(DAT,HIGH);
delayMicroseconds(10);
}
else
{
digitalWrite(SCK,LOW);
digitalWrite(DAT,LOW);
delayMicroseconds(10);
}
dat=dat>>1;
digitalWrite(SCK,HIGH);
}
}
这里我是直接复制我以前写的一个arino驱动74HC595的程序,SCK是时钟,DAT是数据
建议你把单片机和你数码管的电路图发出来,你说如何实现我不知道你是怎么接的数码管