单片机/MCU论坛
直播中

沐子礼

6年用户 5经验值
私信 关注
[问答]

单片机没有反应,是程序哪里出错了吗?

#include

***it ADDR0=P2^0;

***it ADDR1=P2^1;

***it ADDR2=P2^2;

***it ADDR3=P2^3;

***it 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;

                  }

            }


回帖(2)

沐子礼

2018-8-29 18:46:57
已解决,cnt 定义的类型错误
举报

人中狼

2018-8-29 19:14:33
假设你的程序是每秒改变一次数值,那么应该是数码管刷新的太快了,把定时器的定时时间加长,先有了显示,在调整sec的变化
1 举报

更多回帖

发帖
×
20
完善资料,
赚取积分