|
如下這段程序是用T0定時器來讓動態(tài)數(shù)碼管間隔0.5s顯示1到8;程序編譯沒有錯誤,但就是無法運行,數(shù)碼管一直不亮燈。
請教下這是哪里的問題?謝謝!
單片機源程序如下:
#include <reg51.h>
typedef unsigned char uchar;
typedef unsigned int uint;
uint tt,a;
sbit LSA=P1^0;
sbit LSB=P1^1;
sbit LSC=P1^2;
uchar code DM[8]={0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x27,0x7F}; //共陰數(shù)碼管
void main()
{
while(1)
{
TMOD=0x01; //設(shè)置定時器0的工作方式
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1; //開啟總中斷,
ET0=1; //開啟T0的中斷
TR0=1; //開啟定時器T0;
tt=0;
P0=0x00;
a=0;
tt=0;
if(tt==10)
{
switch(a)
{
case 0:LSA=0;LSB=0;LSC=0;break;
case 1:LSA=0;LSB=0;LSC=1;break;
case 2:LSA=0;LSB=1;LSC=0;break;
case 3:LSA=0;LSB=1;LSC=1;break;
case 4:LSA=1;LSB=0;LSC=0;break;
case 5:LSA=1;LSB=0;LSC=1;break;
case 6:LSA=1;LSB=1;LSC=0;break;
case 7:LSA=1;LSB=1;LSC=1;break;
}
P0=DM[a];
a++;
if(a>7) a=0;
tt=0;
}
}
}
void T0l() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256; //定時器設(shè)置50ms
tt++;
}
|
|