![]() |
發布時間: 2022-1-24 22:06
正文摘要:數碼管只能顯示0 1 3 5,但是不顯示2和4,不知道自己程序哪里出了問題,希望大家幫忙看一下程序哪一步需要修改。 單片機源程序如下: #include <reg52.h> #include <intrins.h> #define uint unsigned ... |
IdeaMing 發表于 2022-1-25 14:38 看懂了。本來想著為啥只有2和4顯示不了,其他可以顯示,原來是因為這個程序的位選在for循環尾部可以重新賦值,在顯示1和3的時候,P0端口的值剛好是2和4的位選不能起作用的值。 |
程序就是多了那行代碼 void display() { uchar x; for(x=0;x<6;++x) { P0=0x00; switch1=1; switch1=0; switch2=1; P0=wela[x]; switch2=0; switch1=1; P0=table[x]; switch1=0; delay(8); // switch2=1;//刪掉這行就行了 } } |
51hei截圖20220125143738.jpg (78.1 KB, 下載次數: 38)
去掉delay(8);下面一行的switch2 =1;這句代碼 |
你把74HC573和DAC0832都接P0口肯定會有沖突啊 |
延時哪個地方多看下 |