微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 新手求助为何加了中断以后整个程序变得非常卡顿。

新手求助为何加了中断以后整个程序变得非常卡顿。

时间:10-02 整理:3721RD 点击:
如题。做毕业设计中。51单片机和TC35 GSM模块的。
目前遇到的问题是 当写了串口触发的中断函数以后整个程序变得非常卡,主要体现在proteus的仿真上,按键和LCD1602的显示和识别都显得非常卡顿滞后,
部分程序如下~
/////////////////////////////////////////
Ini_UART(void)//串口初始化、定时器初始化
{
    SCON = 0x50 ;  
    TMOD |= 0x20 ;
    PCON |= 0x80 ; //SMOD=1;
    TH1 = 0xFA ;   //Baud:19200 fosc="11".0592MHz
    TL1=0xFA;
    IE |= 0x90 ;     //Enable Serial Interrupt
    TR1 = 1 ;       // timer 1 run
    TI=1;
    ES=1;
}
////////////////////////////////////////////
void main()
{
  num=0;
  Ini_UART(); //串口神马的初始化
while(1)
   {
      if(KEY1==0)
       {delay(10);
        if(KEY1==0)
            {Print_Str(baojin);         //串口输出数据
                    delay(100);
         clearBuff(); }
           }
            
       if(KEY2==0)
       {delay(10);
        if(KEY2==0)
            {Print_Str(qiujiu);        //串口输出数据
                   delay(100);
         clearBuff();}
           }
          
           if(KEY3==0)
       {delay(10);
        if(KEY3==0)
            {  
                delay(10);
                key();}         //4*4矩阵键盘程序
           }         
         
    }
}       
void ser() interrupt 4
{
    if(RI==1)              
    {  ff[j]=SBUF;
        RI=0;
        j++;
    }
}
困扰一整天

这个中断主要是用来读串口数据的,程序中涉及到很多串口的发送与接收,但是在其他没有涉及到串口的操作中,反应也特卡。中断函数删了以后特流畅。包括串口发送

“体现在proteus的仿真上”,说明软件问题呗。

还没烧到硬件试过,,,

我是来学习的  

我是来学习的。TOO

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top