标题: 单片机串口收发程序分享 [打印本页]

作者: 彦尘    时间: 2020-12-29 10:50
标题: 单片机串口收发程序分享
/*
,把发送的数据接收后用P1口的LED灯以二进制的形式显示
并且蜂鸣器发出提示音,再把接收的数据加1并发出。
使用STC ISP软件界面上的串口助手,选择对应的串口号,
设置波特率为9600,选择HEX模式发送和接收
*/
#include <reg52.h>

#define uchar unsigned char
#define uint  unsigned int

sbit beep = P2^3;//蜂鸣器接口
uchar num;//发送暂存变量

void delay(uint z)
{
        uint x,y;
        for(x = z; x > 0; x--)
                for(y = 114; y > 0 ; y--);
}        
void UART_init()
{
        TMOD = 0x20;          //T1工作模式2  8位自动重装
        TH1 = 0xfd;
        TL1 = 0xfd;         //比特率9600
        TR1 = 1;                //启动T1定时器
        SM0 = 0;
        SM1 = 1;                 //串口工作方式1 10位异步
        REN = 1;                //串口允许接收
        EA  = 1;                //开总中断
        ES  = 1;                //串口中断打开
}
void main()
{
        UART_init(); //串口初始化
        while(1);        
}


void UART() interrupt 4
{
        if(RI)        //检测是否接收完成
        {
                num = SBUF;          //num 取出接收缓存器的值
                P1 = SBUF;
                beep = 0;
                delay(100);
                beep = 1;//蜂鸣器发出滴提示音
                num++;//把接收的数据加1并发送
                RI = 0;
                SBUF = num;        
                while(!TI);
                TI = 0;
        }
}






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1