在单片机中编写数码管的动态显示时,如何使延时不影响单片机程序中数码管扫描显示的蜂鸣器的控制?有一个开关。只要用定时器每10ms判断一次,时间到100ms就关掉蜂鸣器,89C
在单片机中编写数码管的动态显示时,如何使延时不影响单片机程序中数码管扫描显示的蜂鸣器的控制?有一个开关。只要用定时器每10ms判断一次,时间到100ms就关掉蜂鸣器,89C52单片机的静态显示和动态显示消失,静态显示和动态显示的区别在于硬件电路,动态消失是因为这次显示的数据会短暂出现在最后一个数码管里。
请粘贴中断函数。首先,显示程序的消隐部分不需要每显示一位就做一次。展示一段时间后做一次就够了。尽量精简显示部分。的,的,的,的。可能是消失时间太短,数据在消失前就更新了。修改如下:P0dis_7没错!除非位选择打开,否则数据不会显示在数码管上。延迟是为了让你看到显示的数据,不然你会看到几个重叠的显示!延迟时间取决于目视停留,大于它。不会乱的。打开段选,端口是最后一个位选的数据。不过端口会马上给新的短选数据,你的位选还没开,不会乱。书上写的不好。我的方法是关闭位选择,发送数据并打开相应的位选择。另外,我从不在我的程序中添加延迟功能,除非有通信延迟。
按照你的顺序,当你输出下一个数字时,会在前一个数字的数码管上显示一段时间,因为你先打开了段选。所以在发送下一段选择信号时,位选择仍然保存在最后一位数码管中,但由于程序运行速度很快,你只看到最后一位数码管会模糊地显示下一位数字;由于显示正确数据的延迟,正确显示时间较长,所以可以看得很清楚。虽然增加了下一位的数据,但是显示时间较短(大约1uS,取决于晶振的频率),所以你会看到数码管会模糊地显示下一位数字。
p 10 xff;//le D1;//尝试用这种方式改变P0table的静态显示和动态显示。区别在于硬件电路。懂了电路就懂了消隐问题。你们都知道动态需要消失,那为什么没有想过为什么动态需要消失?动态消失是因为这次显示的数据会短暂出现在最后一个数码管里。长此以往,最后一位数码管上会有阴影。所以有必要消除阴影(通过关闭位选择或段选择)。静态数码管,通常为一位。没有数码管这种东西。如果是多位静态数码管,那么都是用锁存器,数据互不影响。
一般原因是选择下一位时没有关闭上一个数据,导致上一个数据被带到下一位;所以显示完后数码管一般是关闭的,这样下次扫描时数据就不会粘在一起了。建议你在中断中处理被扫描的程序,在主循环中处理计算b1~b6的内容。我觉得余辉的问题是你在扫描的时候延迟控制不一致造成的。
4、单片机程序中如何做到延时不影响数码管扫描显示有一个蜂鸣器控制开关。只要用一个定时器判断时间达到10ms蜂鸣器就会关闭,如果没有开关,你就要通过线程来解决,就是在你的循环中加入子任务,每个任务就是一个线程,每个线程在一个循环中占用的时间控制在1ms到5ms以内,这样每个任务就可以依次执行。这个循环相当于一个多任务管理器,把数码管显示程序加到你的延时程序里,就这样。我希望它能被采纳,谢谢你。