Bay_# 2019-11-23 15:38 采纳率: 0%
浏览 639
已采纳

小白学习写51单片机串口通信控制led闪烁频率,死循环了怎么破?

额,想用while写小灯循环,可是发现这样写直接进死循环了,没有返回值,也就改变不了频率了。求助求助

#include<intrins.h>


typedef unsigned char u8;
typedef unsigned int u16;

u8 i;

sbit led=P0^0;

void delay(u16 a)
{
    while(a--);
}


void UsartInit()  
{
     SCON=0X50;
     TMOD=0X20; 
     PCON=0X80; 
     TH1=0XF3;
     TL1=0XF3;      
     ES=1;
     EA=1;
     TR1=1;
}

void Uart() interrupt 4   
{
    u8 receiveData;

    i=SBUF;



         switch(i)
         {
          case'0':led=0;break;
          case'1':led=1;break;
          case'2':
                 {  
                  while(1)
                 {
                 led=0;
                 delay(45000);
                 led=1;
                 delay(45000);
                 }
                 break;              
                 }

          case'3':
                 {
                 while(1)
                 {
                 led=0;
                 delay(25000);
                 led=1;
                 delay(25000);
                 }
                 break;}
          case'4':
                 {
                  while(1)
                  {
                  led=0;
                  delay(15000);
                  led=1;
                  delay(15000);
                  }
                  break;
                  }

         }



    receiveData=SBUF;
    RI=0;


    SBUF=receiveData;
    while(!TI);
    TI=0;
}

void main()
{
   UsartInit();
   while(1);
}

  • 写回答

1条回答 默认 最新

  • DQN_master 2019-11-23 16:01
    关注

    你的while在case里面当然会死循环呀,把while放到switch的外面来,就可以了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 11月26日

悬赏问题

  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能
  • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面
  • ¥50 NT4.0系统 STOP:0X0000007B
  • ¥15 想问一下stata17中这段代码哪里有问题呀