![]() |
發布時間: 2020-1-4 14:23
正文摘要://采用8位數碼管動態顯示程序 //使用AT89C51單片機,12MHz晶振,P0輸出字段碼,P2口輸出位選碼 //用共陽極LED數碼管,key0為調時分位選擇鍵,key1為加1鍵,key2為減1鍵,key3為確定鍵 #include ... |
csmyldl 發表于 2020-1-4 20:51 是在scan函數里面,把定時器跟中斷打開嗎?按鍵操作的時候中斷跟定時器是關閉了的,定時器不工作,調好了按下key3確定鍵的時候,才會繼續走。 |
wulin 發表于 2020-1-4 21:11 加了三極管放大信號了的,有另外一組的師兄也是用的這個程序,能成功,不知道為什么我的這個就是不行 |
直接用樓主這個程序仿真結果是008.008.00,與貼圖不一致,原因是緩存數組有錯 char data dis[8]={0x00,0x00,0x0b,0x00,0x00,0x0b,0x00,0x00};//顯示緩沖區,時、分、秒初始為0,0x0b為"-"的編碼 實際在段碼數組里對應"-"的下標是0x0a,也就是10。 另外樓主在實際電路制作不成功可能是硬件搭建問題。51單片機I/O口高電平驅動能力不足以正常點亮數碼管,要附加放大器。 再者這種按鍵程序根本不適合與數碼管動態顯示配套,會導致黑屏。 |
顯示程序scan()也要改為定時中斷,放在主程序循環的時間是不定的,特別是按鍵操作的時候 |