![]() |
發布時間: 2019-11-26 22:12
正文摘要:單片機萌新發問,搞了個測溫系統(用的stc89c52rc),其中的數碼管顯示遇到了困難,顯示測試時發現顯示完全相同的四個數字沒問題,只要有不同的數字就會出現數字重疊現象 大佬們幫看看唄 |
wojiaodongrui 發表于 2019-11-27 23:46 你的電路是IO直接驅動數碼管位的,第二個程序是支持移位寄存器的參考代碼 |
huwqly 發表于 2019-11-27 05:03 謝謝大佬批評,但是這程序有點問題,第一個程序我讓它顯示4321但顯示的是反著的6、8、9、8.第二個程序我讓他顯示4321但顯示的是111滅。最后還是很感謝。 |
消隱是段位控制的,你用的位碼,所有的P0=0XFF,改P2=0XFF,就O了 |
刷新之前清一下緩存 |
你真執著也真懶,寧可截屏都不拷代碼,你的硬件電路應該帶移位寄存器吧,P0送消隱P0=0xff后要送P2顯示一下的,下面2種方式,你看哪一個適合你; 1: P0=0xff; P2=0x8f; P0=d[4]; P2=0x8f; delay(300); P0=0xff; P2=0x4f; P0=d[4]; P2=0x4f; delay(300); P0=0xff; P2=0x2f; P0=d[4]; P2=0x2f; delay(300); P0=0xff; P2=0x1f; P0=d[4]; P2=0x1f; delay(300); 2硬件電路應該有移位寄存器: P0=d[4]; P2=0x8f; P0=d[4]; P2=0x4f; P0=d[4]; P2=0x2f; P0=d[4]; P2=0x1f; delay(300); P0=0xff; P2=0x8f; P2=0x4f; P2=0x2f; P2=0x1f; |
只需在每一位輸出顯示前先消除上次顯示的數據即可,電路中采用共陽數碼管,程序中P0=d[];語句前各加一條P0=0xff;即可 |