標(biāo)題:
單片機(jī)驅(qū)動(dòng)8*8點(diǎn)陣顯示出現(xiàn)錯(cuò)誤
[打印本頁]
作者:
科技論2
時(shí)間:
2018-2-8 21:42
標(biāo)題:
單片機(jī)驅(qū)動(dòng)8*8點(diǎn)陣顯示出現(xiàn)錯(cuò)誤
又來寫一遍,好煩啊。大家可以看一下圖片和程序,按照正常的思路數(shù)字“0”在8*8點(diǎn)陣第一行應(yīng)該是0x00,第二行應(yīng)該是0x18,我按照這種思路用delay函數(shù)寫過一遍結(jié)果是正常的,用定時(shí)器就出現(xiàn)上面這中情況,先謝謝大家了。
789.JPG
(91.66 KB, 下載次數(shù): 44)
下載附件
2018-2-8 21:35 上傳
單片機(jī)源程序如下:
#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-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
while(1)
{
P2=hang[j][i];
P1=lie[i];
i++;
if(i==8)
{
i=0;
}
if(TF0==1)
{
TF0=0;
a++;
if(a==10)
{
a=0;
j++;
if(j==3)
{
j=0;
}
}
}
}
}
復(fù)制代碼
作者:
wacke
時(shí)間:
2018-2-16 21:36
1 把輸出語句放到時(shí)間標(biāo)識(shí)內(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;
}
}
}
}
}
作者:
jizi
時(shí)間:
2018-2-17 01:35
你的t呢????
TMOD=0x01
你的屬于t0的定時(shí)器的中斷函數(shù)呢????
改過來
上面的定時(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;
}
大哥還是回去多看看書先吧
尤其是中斷部分
作者:
zl2168
時(shí)間:
2018-2-17 19:03
板凳說得有理:還是回去多看看書先吧 尤其是中斷部分
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1