![]() |
發(fā)布時間: 2019-3-14 16:08
正文摘要:單片機源程序如下: #include<reg52.h> #define uint unsigned int #define uchar unsigned char void delay(uint z); sbit wela=P2^7; sbit dula=P2^6; void delay(uint z); uchar code table[]={ 0x3f ... |
陳立123 發(fā)表于 2019-3-15 14:36 TX-1C開發(fā)板段、位碼共用P0+573驅(qū)動數(shù)碼管,如果書上這么寫的話那就是錯的,共陰數(shù)碼管消隱要用P0=0x00; 共陽數(shù)碼管消隱要用P0=0xff; 否則鬼影更嚴重!如果要完全消除鬼影還可以這樣寫: P0=0x00; dula=1;//送段消隱 dula=0; P0=0xfe; wela=1;//送位碼 wela=0; P0=table[bai]; dula=1;//送段碼 dula=0; delay(2);//2ms延時不要太長,否則會閃爍 下同 |
wulin 發(fā)表于 2019-3-15 11:21 你好,你這代碼和我在書上看的代碼都是為了避免出現(xiàn)亂碼么 你的代碼 P0=0xfe; wela=1; wela=0; P0=table[bai]; dula=1; dula=0; delay(5); 書上的代碼 dula=1; P0=table[bai]; dula=0; P0=0xff; //多出來的代碼 wela=1; P0=0xfe; wela=0; delay(5); |
你錯的不是一點點,給你改好了。 #include<reg52.h> #define uint unsigned int #define uchar unsigned char //void delay(uint z); sbit wela=P2^7; sbit dula=P2^6; void delay(uint z); uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; //uint bai,shi,ge,temp,numdu; uchar bai,shi,ge,temp; void main() { // numdu=0; temp=111; // bai=temp%100; bai=temp/100; shi=temp%100/10; ge=temp%10; while(1) { P0=0xfe; wela=1; wela=0; P0=table[bai]; dula=1; dula=0; delay(5); // P0=0xfe; P0=0xfd; wela=1; wela=0; P0=table[shi]; dula=1; dula=0; delay(5); // P0=0xfe; P0=0xfb; wela=1; wela=0; P0=table[ge]; dula=1; dula=0; delay(5); } } void delay(uint z) { uint x,y; // for(x=z;x>0;x++) // for(y=110;y>0;y++); for(x=z;x>0;x--) for(y=110;y>0;y--); } |
XIUAOJEI 發(fā)表于 2019-3-14 22:15 謝謝 |
2678254412 發(fā)表于 2019-3-14 18:56 謝謝 |
你一直在原地踏步,他怎么會動呢? |
P0=0xfe; 一直位選第一位。。。。 |
因為你始終讓位選信號P0=0xfe了 |
Powered by 單片機教程網(wǎng)