单片机做万年历数码管太多,扫描显示最后一位数总显示不对
我用单片机刚做了个万年历的雏形,年月日的显示用一个函数,时分秒的显示用了一个函数,显示每位的时候刚开始延时5ms,后来有点闪,我就改成了3ms,虽然不闪了,但最后一位总显...
我用单片机刚做了个万年历的雏形,年月日的显示用一个函数,时分秒的显示用了一个函数,显示每位的时候刚开始延时5ms,后来有点闪,我就改成了3ms,虽然不闪了,但最后一位总显示不对,而且数字到有的数动,有的数一点也不动。后来我以为是我先片选后段选的事,但是我改成先段选后片选之后,年月日显示乱码了?一共用了14位数码管
我主要想问:
1.为什么先段选后片选之后年月日显示乱码了呢?
2.为什么数码管多了扫描显示最后一位不对呢?改变延时时间也不行呢?
3.还有延时的问题我用的是proteus仿真,设置12M的晶振,TL0=(65536-10000)&0x0f,TH0=(65536-10000)&0xf0>>4;和TL0=0xf0;TH0=0xd8;是等价的吧?
4.上面的初始值是延时10ms的,但是主函数中我判断中断100次之后就加一秒,但是运行的时候秒改变的比标准的秒数走的慢是怎么回事呢?我把中断次数改到80加一秒才和正常的秒数走的速度差不多,这是怎么回事啊?
希望懂的大哥大姐能帮帮忙,小弟我是初学者很需要你们的帮忙啊!在这里先谢谢你们了 展开
我主要想问:
1.为什么先段选后片选之后年月日显示乱码了呢?
2.为什么数码管多了扫描显示最后一位不对呢?改变延时时间也不行呢?
3.还有延时的问题我用的是proteus仿真,设置12M的晶振,TL0=(65536-10000)&0x0f,TH0=(65536-10000)&0xf0>>4;和TL0=0xf0;TH0=0xd8;是等价的吧?
4.上面的初始值是延时10ms的,但是主函数中我判断中断100次之后就加一秒,但是运行的时候秒改变的比标准的秒数走的慢是怎么回事呢?我把中断次数改到80加一秒才和正常的秒数走的速度差不多,这是怎么回事啊?
希望懂的大哥大姐能帮帮忙,小弟我是初学者很需要你们的帮忙啊!在这里先谢谢你们了 展开
展开全部
是不是最后一位数码管没有设置延时关闭啊?单片机运行完数码管扫描程序后,运行其它程序,比如计算时间等等,如果最后一位数码管延时后没有关闭它的片选,就会出现最后一位显示时间长亮度高的现象,如果数码管的段选信号还有复用功能的话,肯定会引起显示乱码了。
你是怎么驱动数码管的?直接动态扫描驱动还是164芯片静态级联驱动啊?
你是怎么驱动数码管的?直接动态扫描驱动还是164芯片静态级联驱动啊?
追问
追答
其实如果那个段选IO口没有复用其它功能的话,应该不会出现乱码的,只是出现最后一位亮度偏高。但是很有可能是扫描数码管的过程完成之后,单片机的其它程序部分再次给段选IO口赋值,从而引起段信号的改变,又因为此时片选没有关闭,段选信号的变化会立即反映在数码管上,因此出现乱码。这种小问题在编程过程中很容易出现的,改正、优化一下代码就可以了。
深圳市兴威帆电子技术有限公司
2023-08-24 广告
2023-08-24 广告
实时时钟模块可以选择许多不同的制造商和型号,具体选择取决于您的应用需求和预算。一些流行的实时时钟模块品牌包括DS1302、MA电商平台6925和MCP7941。这些模块都具有精度高、稳定性好、功耗低等优点,并具有不同的功能和特性,可以满足各...
点击进入详情页
本回答由深圳市兴威帆电子技术有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询