ZKX's LAB

51单片机数码管怎样才能同时在两个数码管上面显示不同的数字?? 数码管显示不同数字

2020-10-17知识16

如何在八位数码管上同时显示不同的数字,谢谢,c语言实现 #include\"reg51.hinclude\"intrins.h\"/_nop_();延时函数用define uchar unsigned chardefine uint unsigned intdefine SEG_OUT P0/段码输出口define BIT_OUT P2/扫描口sbit dot=P2^7;LED小数点控制uchar code tab[12]=;共阳LED段码表\"0\"\"1\"\"2\"\"3\"\"4\"\"5\"\"6\"\"7\"\"8\"\"9\"\"不亮\"\"-\"*/uchar data dis_buff[8]=;待显示单元数据,共6个数据unsigned long temp;1毫秒延时程序*/delay1ms(int t){int i,j;for(i=0;i;i+)for(j=0;j;j+)}LED显示动态扫描函数*/display(){char k;char m=0xfe;for(k=0;k;k+)/8位LED扫描控制{ BIT_OUT=0xff;SEG_OUT=tab[dis_buff[k]];BIT_OUT=m;delay1ms(3);m=(m)|0x01;}dis_buff[0]=temp/10000000;dis_buff[1]=(temp%10000000)/1000000;dis_buff[2]=(temp%1000000)/100000;dis_buff[3]=(temp%100000)/10000;dis_buff[4]=(temp%10000)/1000;dis_buff[5]=(temp%1000)/100;dis_buff[6]=(temp%100)/10;dis_buff[7]=temp%10;}初始化程序*/void initiation(){TMOD=0x01;TH0=-10000/256;TL0=-10000%256;10MS定时初值(T0计时用)ET0=1;TR0=1;EA=1;}定时器0中断服务程序*/void init_timer0(void)interrupt 1{TH0=-10000/256;TL0=-。

51单片机数码管怎样才能同时在两个数码管上面显示不同的数字?? 数码管显示不同数字

2位数码管显示不同数字 只能用动态显示了。段码接一IO口,位码分别另一IO口的2 位

51单片机数码管怎样才能同时在两个数码管上面显示不同的数字?? 数码管显示不同数字

51单片机数码管怎样才能同时在两个数码管上面显示不同的数字?? 是因2113为人眼的视觉暂留效应,实际上两5261个数码管是交4102替显示的,但是因为1653交替的速度十分快,所以会有因为视觉暂留效应而看到两个数码管都是同时现实的。视觉暂留现象即视觉暂停现象(Persistence of vision,Visual staying phenomenon,duration of vision)又称“余晖效应”,1824年由英国伦敦大学教授皮特.马克.罗葛特在他的研究报告《移动物体的视觉暂留现象》中最先提出。人眼在观察景物时,光信号传入大脑神经,需经过一段短暂的时间,光的作用结束后,视觉形象并不立即消失,这种残留的视觉称“后像”,视觉的这一现象则被称为“视觉暂留”。扩展资料:led数显管分类:1、按控制方式分:分为内控方式(内部有单片机,通电自动变色)和外控方式(需要外接控制器才能变色)。2、按变化方式分:分为固定色彩的和七彩、全彩的;固定色彩的是用来勾轮廓的,全彩的可以勾轮廓,也可以组成管屏显示文字、视频等。3、按尺寸分:有D50的、D30的,这是直径;长度基本上1米的(可以定制);这个需要根据实际需要进行选择就行了。4、按内部可控性分:有1米6段的,有1米8段的和1米12段、1米16段、1米32段的。也就是1米的管子内有几段可以独立受控。1米段数越。

51单片机数码管怎样才能同时在两个数码管上面显示不同的数字?? 数码管显示不同数字

单片机如何同时控制四位数码管显示不同数字。 方法,利用人视觉惰性,2113每个时刻一个数码管亮,5261四个循环,循环大于410220HZ。你可以搜一下七段译码1653管编程实例,这种案例很多的。将四位数码管的8个信号端接到单片机一组引脚如P0,将每个数码管的公共极接到另一组引脚。主要控制的是每位数字的七段译码管的公共极(共阴还是共阳极看你译码管)。例如共阴极,在八位信号位输出高电平,而公共极为低电平时,七段译码管就是8.根据上述硬件编写程序,控制每个数码管显示的数字,并延时循环。先从信号脚P0输出第一位要显示的数字,然后控制第一个数码管公共极输出使能(如:共阴极的输出低电平,其他都高电平),其他公共极非使能,然后延时,延时时间到公共极取反,输出下一位数码管的信号P0,控制第二个数码管公共极输出使能(如:共阴极的第二个输出低电平,其他都高电平),重复上述过程,直到四位全部显示完毕回到显示第一位继续循环。如此往复,其他还有相关程序可以做为中断。还有其他方法也可以实现,比如用译码芯片等。实例很多,研究下别人的程序。

两个数码管接在同一电路上, 如图, 怎么显示不同的数字 不要用中断和定时器 怎么写啊 你的电路如果用于实际是有问题的,需要改动,共阴共阳电路不通,不过驱动数码管这类电路太多了,您随便搜下即可。假设你已经改好了电路,只说程序无论共阴还是共阳,具体原理是一样,简单说,P0口是控制数码管的笔画,而P2.1和2.2则是控制哪个数码管工作。主要代码结构大致如下:while(1){P2.1=0;开数码管1,假设数码管为共阳P0=“数据”;写数码管1的数据,视情况可加延时,下同P2.1=1;关数码管1P0=0x00;消影P2.2=0;开数码管2P0=“数据”;写数码管2的数据P2.2=1;关数码管2P0=0X00;}建议参考单片机教材中的驱动数码管的“段选、位选”知识

C51单片机如何让四位数码管分别显示四位不同的数字? 每一次只能让一个数码管位选,其他的关闭,给数码管赋值。重复4次就可以了。假设要显示“1234”:includesbit k1=P1^1;sbit k2=P1^2;sbit k3=P1^3;sbit k4=P1^4;k1-k4 4个位选开关,我假设你的电路是低电平有效uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8;0x80,0x98};共阳极1-9void delay(char t)/延时函数{char x,y;for(x=t;x>;0;x-){for(y=100;y>;0;y-);}}void main()/主函数{int i=1234;int temp;while(1){temp=i;temp=1234;显示第4位k1=k2=k3=k4=1;关闭所有未选k4=0;打开第4位位选P2=table(temp%10);假设P2口控制数码管temp=temp/10;temp=123delay(5);显示第3位k1=k2=k3=k4=1;关闭所有未选k3=0;打开第3位位选P2=table(temp%10);假设P2口控制数码管temp=temp/10;temp=12delay(5);显示第2位k1=k2=k3=k4=1;关闭所有未选k4=0;打开第4位位选P2=table(temp%10);假设P2口控制数码管temp=temp/10;temp=1;delay(5);显示第1位k1=k2=k3=k4=1;关闭所有未选k4=0;打开第1位位选P2=table(temp%10);假设P2口控制数码管delay(5);}}

怎么让单片机的8个数码管同时显示不同的数字 动态扫瞄或者静态显示。

#单片机#数码管#数字控制#led数码管

随机阅读

qrcode
访问手机版