微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 51单片机串口通信不能反悔主函数

51单片机串口通信不能反悔主函数

时间:10-02 整理:3721RD 点击:
请各位大侠给看看,51单片机串口通信,中断后,不能返回主函数继续,请各位指点:
#include <reg52.h>
//第一区:初始化单片机自身及快速的外设,避免。
void init_chuankou()
{
        SCON=0x50;  //设定工作在8位UART模式;REN=1,串口接收信号。
        TMOD=0x20;  //设定定时器1工作在8位自动重装载模式。
        PCON=0x80;  //设定波特率加倍。
        TH1=0xF3;  //设定定时器的初始值是0xF3。因为是8位定时器,高低位一致即可。
        TL1=0xF3;  //设定定时器的初始值是0xF3。因为是8位定时器,高低位一致即可。
        EA=1;  //CPU总中断开启。
        ES=1;  //串口中断开启。
        TR1=1;  //定时器1开始运行。
}
void delay10ms(void)   //误差 0us
{
    unsigned char a,b,c;
    for(c=5;c>0;c--)
        for(b=4;b>0;b--)
            for(a=248;a>0;a--);
}
void init_extent()
{
       
}
void uart_send_byte(unsigned char aa)
{
        SBUF=aa;
        while(!TI);
        TI=0;
}
void uart_send_string(unsigned char *str)
{
        while(*str!='\0')
        {
                uart_send_byte(*str);
                str++;
        }
}
void uart_isr(void) interrupt 4 using 1
{
        unsigned char tmp;
        tmp=SBUF;
        if(RI)
        {
                uart_send_byte(tmp);
                RI=0;  //接收中断请求标志位。
        }
}
void main(void)
{
        init_chuankou();
        delay10ms();
        init_extent();
        while(1)
        {       
                uart_send_string("山东浪潮云服务集团\n");
        }
}

不胜感激!

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

网站地图

Top