![]() |
發(fā)布時間: 2018-2-8 21:42
正文摘要:又來寫一遍,好煩啊。大家可以看一下圖片和程序,按照正常的思路數(shù)字“0”在8*8點陣第一行應(yīng)該是0x00,第二行應(yīng)該是0x18,我按照這種思路用delay函數(shù)寫過一遍結(jié)果是正常的,用定時器就出現(xiàn)上面這中情況,先謝謝大家了 ... |
板凳說得有理:還是回去多看看書先吧 尤其是中斷部分 |
你的t呢???? TMOD=0x01 你的屬于t0的定時器的中斷函數(shù)呢???? 改過來 上面的定時器初始化 EA=1;ET0=1; t0的中斷函數(shù) void t0()interrupt 1 { TR0=0; TH0=(65536-50000)/256; TL0=(65536-50000)%256; a++; if(a==10) { a=0; j++; if(j==3) j=0; } TR1=1; } 大哥還是回去多看看書先吧 尤其是中斷部分 |
1 把輸出語句放到時間標(biāo)識內(nèi), 2 增加消隱處理。 3 更新的速度不能太快,一般在100Hz左右就可以了。 #include<reg52.h> unsigned char lie[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; unsigned char hang[3][8]={0x00,0x18,0x24,0x24,0x24,0x24,0x18,0x00, //數(shù)字0 0x00,0x3c,0x20,0x38,0x04,0x24,0x38,0x00, //數(shù)字5 0x00,0x00,0x36,0x49,0x49,0x49,0x36,0x00}; //數(shù)字8 int a,i,j; void main() { TMOD=0x01; TH0=(65536-5000)/256; TL0=(65536-5000)%256; TR0=1; while(1) { if(TF0==1) { P1=0xff; P2=hang[j][i]; P1=lie[i]; i++; if(i==8) { i=0; } TF0=0; a++; if(a==100) { a=0; j++; if(j==3) { j=0; } } } } } |
Powered by 單片機教程網(wǎng)