![]() |
發布時間: 2023-12-26 00:10
正文摘要:代碼怎么把共陰改成共陽啊,還有這個仿真圖還需要改什么呀,單片機代碼如下: #include<at89x51.h> #define uchar unsigned char #define uint unsigned int char s; uchar num=0; char time=20;&nb ... |
將dispcode[]部分是數字顯示的控制,輸出時取反。將dispbitcode[]部分是數字顯示的控制,輸出時取反。還需要將電路中驅動的三極管由PNP改成NPN接地。 |
共陰數碼管:段碼高電平,位碼低電平點亮,共陽則相反。 |
18531215831 發表于 2023-12-26 23:42 輸出是對的,第一圖P0的值是~0x71。在數據表格里面。是你把表格對應共陰還是共陽弄反了。 |
csmyldl 發表于 2023-12-26 09:01 改完也不行啊,所有的P0和P2都改嗎還是只有后面是tablewe和tabledu的才改, |
cnos 發表于 2023-12-26 08:58 你的回答雖然對,但是~運算是在單片機執行時進行的,代碼數量以及代碼執行時間都有所增加。
這樣改,~運算是編譯期間進行的,單片機不會進行運算,改之前和改之后,代碼數量和運算時間都不會改變,跟原來一樣,效率更高。 |
把字模取反就好了 |
P0=tabledu[num]; //顯示幾號搶到了 P2=tablewe[0]; 把這兩名改為: P0=~tabledu[num]; //顯示幾號搶到了 P2=~tablewe[0]; |
把所有的P0=tabledu替換為P0=~tabledu 把所有的P2=tablewe替換為P2=~tablewe |