51C語言雜記

 #include <reg52.h>

#define uchar unsigned char
#define uint unsigned int
uchar k,tt;
uchar code table[]={
0x3f  , 0x06 , 0x5b , 0x4f , 0x66 , 0x6d ,
0x7d , 0x07 , 0x7f  , 0x6f , 0x77 , 0x7c ,
0x39 , 0x5e , 0x79 , 0x71 , 0x00};
void main()
{
TMOD=1;//設置定時器0爲工作方式1
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;//開總中斷
ET0=1;//開定時器0中斷
TR0=1;//啓動定時器0
while(1)
{
P2=5;
if(tt==20)
{
k++;
if(k==16)
k=0;
P0=table[k];
//delay(50);
}
}
}
void exter0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
tt++;
}
此程序的錯誤在於:在if(tt==20)後沒有將tt置0,
P2=5;在if(tt==20)內部,數碼管初始值爲table[1];在if語句外面:數碼管初始值爲8.。
2、流水燈可以這麼寫:
P0=0xfe;
while(1)
{
delay(100);
P0=_crol_(P0,1);
}
只要報P0=0xfe;放在循環外面。不必這樣:
while(1)
{
P0=0xfe;
for(i=0;i<8;i++)
{
P0=_cror_(P0,1);
delay(10);
}
}
進行了兩次循環嵌套。
發佈了45 篇原創文章 · 獲贊 6 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章