![]() |
發(fā)布時間: 2021-11-12 21:18
正文摘要:大家好,本人初學(xué)51單片機,按照B站中RunesKee的51單片機入門教程中DS1302時鐘的教程編寫,時鐘的進位有問題,第八位滿十進位到第四位,第四位滿十進位到第二位,但是0報錯0警告。各位大佬,可能是什么原因呢? |
188610329 發(fā)表于 2021-11-13 02:03 已經(jīng)解決了,感謝大佬 |
自由的飛雞 發(fā)表于 2021-11-13 01:04 進位錯了, 你這是38譯碼器吧? A是低位,C是高位, 你把 LSA 和 LSC 對換一下 |
jialishoushi 發(fā)表于 2021-11-12 23:48 void DigDisplay() { u8 i; for(i=0;i<8;i++) { switch(i) { case(0): LSA=0;LSB=0;LSC=0;break; case(1): LSA=0;LSB=0;LSC=1;break; case(2): LSA=0;LSB=1;LSC=0;break; case(3): LSA=0;LSB=1;LSC=1;break; case(4): LSA=1;LSB=0;LSC=0;break; case(5): LSA=1;LSB=0;LSC=1;break; case(6): LSA=1;LSB=1;LSC=0;break; case(7): LSA=1;LSB=1;LSC=1;break; } P0=DisplayData[7-i]; delay(100); P0=0x00; } } void main() { Ds1302Init(); while(1) { datapros(); DigDisplay(); } } 大佬能幫我看看數(shù)碼管顯示函數(shù)有問題嗎?還有位選口該如何調(diào)換呢?謝謝 ![]() |
188610329 發(fā)表于 2021-11-12 23:42 void DigDisplay() { u8 i; for(i=0;i<8;i++) { switch(i) { case(0): LSA=0;LSB=0;LSC=0;break; case(1): LSA=0;LSB=0;LSC=1;break; case(2): LSA=0;LSB=1;LSC=0;break; case(3): LSA=0;LSB=1;LSC=1;break; case(4): LSA=1;LSB=0;LSC=0;break; case(5): LSA=1;LSB=0;LSC=1;break; case(6): LSA=1;LSB=1;LSC=0;break; case(7): LSA=1;LSB=1;LSC=1;break; } P0=DisplayData[7-i]; delay(100); P0=0x00; } } void main() { Ds1302Init(); while(1) { datapros(); DigDisplay(); } } 這是我的數(shù)碼管顯示函數(shù),我感覺數(shù)碼管顯示應(yīng)該沒問題吧? |
如果走時正確 單純只是顯示錯位 把位選口調(diào)換一下 |
到底是時鐘進位有問題, 還是你數(shù)碼管顯示有問題,這,你搞明白沒有? |
Powered by 單片機教程網(wǎng)