![]() |
發布時間: 2022-12-5 13:23
正文摘要:單片機源程序如下: #include<reg51.h> #define uchar unsigned char uchar a0=16,b0=16,c0=16,d0=16,e0=16,f0=16,wei,temp,key,i,j,k; uchar jia,jian,cheng,chu,dengyu,jia0,jian0,cheng0,chu0,qingli ... |
在display函數里的table前都加一個~ |
所有控制輸出全部按位取反就好了!!!! |
把這個換成共陽極的值就好 |
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00}; //陰極編碼 |
送出的顯示數據求反一下,然后再送出。 |
輸出段和位都取反一下就OK。 |
xianfajushi 發表于 2022-12-6 15:41 這個做法不合理,會增加單片機運算量。應該在table定義位置,每個初值前面加~,這樣取反操作是編譯器完成的,不會讓單片機去操作取反。 |
display函數內P0=的后面, 沒有波浪加波浪(~) 有波浪不要波浪 |
把共陰極的值換成共陽極就行了 |
zyeyz 發表于 2022-12-5 13:27 這是位值 |
數碼管段值取反即可 P0=table[a],改為 P0=~table[a], |
|