因为在有参调用中,程序开头有一些计算过程,例如计算要显示的每一位数值,要占用较长的时间,动态扫描到最后一个数码管后重新循环时再次计算程序开头的计算过程,这段时间都是最后一个数码管在显示,所以最后一个数码管显示时间较其他数码管长,比较亮。或者是在主程序中,display()前有一段代码要执行,占用较长时间,效果和前面讲的相同。
单片机数码管动态显示程序最后一位很亮是怎么回事?
因为在有参调用中,程序开头有一些计算过程,例如计算要显示的每一位数值,要占用较长的时间,动态扫描到最后一个数码管后重新循环时再次计算程序开头的计算过程,这段时间都是最后一个数码管在显示,所以最后一个数码管显示时间较其他数码管长,比较亮。或者是在主程序中,display()前有一段代码要执行...
...的单片机数字电压表动态显示电压值会抖动而且最后一个数很亮...
根据我的判断,应该是延时时间方面可能有问题。理论上5ms更新一次数据,人的眼睛是感觉不到显示抖动的,最多是看到数字在变化。能感觉到抖动,说明数码管暗的时间超过42ms了。人的眼睛一般在30ms以下,看到的就是连续变化的。
...双位或四位LED显示,为什么最后一位特别亮,前面的好像电压不足似的...
在每位数码管的延时后再送一次数据,这个数据主要为关闭显示(把所有位选置为无效)。如果没有关闭,那么在显示最后一位数码管后会执行别的子程序,这些子程序对最后一位数码管来说相当于又延时了一下。这样看来最后一位数码管的延时时间比其它几位的要长,当然会亮很多了。另外你可以参考一下我的博...
使用单片机驱动4位数码管,亮度不一样,第一位很亮,其他很暗,为什么?
程序里没有做鬼影处理。你每次显示一位数码管之后,在delay之后都将P1和P3口清空,当然是按照你的电路来写,目的就是让数码管什么也不显示。然后再次赋值显示下一位的值。建议使用定时器来显示,这样能保证每一位的亮度完全相同。
单片机控制两段数码管,按键长按时只有后面那段亮,求指导啊!
delay(10);if(key1==0){ n++;if(n>1)n=0;} while(!key1);} 虽然你是定时器扫描按键,但是你加上while(!key1);这句话这不找死么,长按肯定会一直卡在这,再者 把后面的程序用大括号括起来。最好的办法就是定时器扫描数码管,主函数中扫描按键程序,绝对不闪,不乱,望采纳 ...
51单片机数码管倒计时!自己写的程序但输入后怎么都亮!#include<reg52...
首先指出程序中明显的问题:1.数字只能显示1~8,下面修改后显示0~9;当然这个不是问题;2.主要问题:混淆了两位数码管动态显示的时间逻辑;显示的数字变化没有单独设置时间,以至于数字变化和数码管的短时间动态显示混淆了。也就是数码管动态显示是根据人眼视觉效应原理,快速改变点亮第一个和点亮第二个...
数码管动态显示一边暗一边亮还有重叠怎么回事?代码哪里不对?
一个是位选锁存器,一个是段选锁存器。打开位选锁存器,选中你要点亮的数码管。然后再关闭位选锁存器。接着打开段选锁存器,然后输出你要亮的数字,再关闭段选锁存器。再加一个while(1);以上我说的是静态显示。你先把这个亮起来吧。你的动态显示有头文件#include"intrins.h",可是你的移位...
单片机连接74hc595驱动数码管 但是亮度不均匀,最高位正常显示,后几位就...
你的led_caculate函数写的有问题,两片595级联驱动8位数码管是使用动态扫描的方式显示,如果每位数码管的显示时间不同,就会造成亮度不均的现象,而且一位数码管连续两次显示的时间间隔不应该大于20ms(50hz),要不然会看到数码管有明显的闪烁。
数码管动态显示的时候不该亮的地方也亮了,比该亮的地方暗一点,是怎么...
解释:当你显示第一个数码管,这时段码和位码都是开启的,当显示完第一个数码管,由于段码连在一起,没有关闭段码,这时开启第二位位码,在交替的瞬间第二个数码管上就显示第一个的数字,于是就出现第一位的暗影,假如第一位是2,第二位是1,这样显示1的数字不该亮的部分出现了2的暗亮,如果多个数码管扫描的快,...
Keil写的数码管程序,为啥只有一个亮?
仿真图有问题,有两处错误,见下图74HC138的ABC与单片机引脚没连接上,把三条导线都删干净(其实每条线是两段,中间是断的),再重新画。P0.7脚上的网络标号是A8,应该是A7。另外一个是写程序的习惯问题了,与显示一位没关。下图中红框内的两个变量应声明成unsigned char 型,不要声明成int型,...