单片机没有反应,是程序哪里出错了吗?
2019-07-15 08:02发布
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
#include <STC12C5A60S2.H>
sbit ADDR0=P2^0;
sbit ADDR1=P2^1;
sbit ADDR2=P2^2;
sbit ADDR3=P2^3;
sbit ENLED=P1^1;
unsigned char code Ledrcha[]={0x90,0x80,0xF8,0x82,0x92,0x99,0xB0,0xA4,0xF9,0xC0};
unsigned char LedBuff[6]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};
unsigned char i=0;
unsigned char flagls=0;
unsigned char cnt=0;
void main()
{
unsigned long sec=0;
EA=1;
ENLED=0;
ADDR3=1;
TMOD=0x01;
TH0=0xF4;
TL0=0x48;
TR0=1;
ET0=1;
while(1)
{
if(flagls==1)
{
flagls=0;
sec++;
LedBuff[0]=Ledrcha[sec%10];
LedBuff[1]=Ledrcha[sec/10%10];
LedBuff[2]=Ledrcha[sec/100%10];
LedBuff[3]=Ledrcha[sec/1000%10];
LedBuff[4]=Ledrcha[sec/10000%10];
LedBuff[5]=Ledrcha[sec/100000%10];
}
}
}
void Interrupttimer0() interrupt 1
{
TH0=0xF4;
TL0=0x48;
cnt++;
if(cnt>=1000)
{
cnt=0;
flagls=1;
}
P0=0xFF;
switch(i)
{
case 0: ADDR2=1;ADDR1=0;ADDR0=1;i++;P0=LedBuff[0];break;
case 1: ADDR2=1;ADDR1=0;ADDR0=0;i++;P0=LedBuff[1];break;
case 2: ADDR2=0;ADDR1=1;ADDR0=1;i++;P0=LedBuff[2];break;
case 3: ADDR2=0;ADDR1=1;ADDR0=0;i++;P0=LedBuff[3];break;
case 4: ADDR2=0;ADDR1=0;ADDR0=1;i++;P0=LedBuff[4];break;
case 5:
ADDR2=0;ADDR1=0;ADDR0=0;i=0;P0=LedBuff[5];break;
default :break;
}
}
一周热门 更多>