找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1537|回复: 0
打印 上一主题 下一主题
收起左侧

51单片机串口通信

[复制链接]
跳转到指定楼层
楼主
ID:341346 发表于 2018-5-31 16:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <REG52.H>
#define uchar unsigned char
uchar a,flag,i;
uchar code table[]="I Love ";
void main()
{
        TMOD=0x20;//定时器工作方式,8位数据自动重装
        TH1=0xFD;//高8位,低8位装入的初值一样
        TL1=0xFD;//串口通信方式为1,波特率为9600bps,装入初值;
                 //SMOD所在的PCON寄存器中的值默认为0,所以SMOD为0;
        TR1=1;//打开定时器
        REN=1;//打开串口允许接收位
        SM0=0;//串口通信方式为1
        SM1=1;       
        EA=1;//打开总中断
        ES=1;//串口中断允许位
        while(1)
        {
                if(flag==1)//中断函数开始
                {
                        ES=0;//关闭中断允许位,防止出错
                        for(i=0;i<7;i++)//传送固定字符位
                        {
                                SBUF=table[i];
                                while(!TI);//判断有无中断申请
                                TI=0;//传输数据后清零
                        }
                        SBUF=a;//将期望字符送给传送SBUF缓冲寄存器
                        while(!TI);//传输申请中断
                        TI=0;//清零
                        ES=1;//串口中断允许位
                        flag=0;//标志位清零
                }

        }
       
}
void ser() interrupt 4
{
       
        RI=0;//将要接收数据中断申请,RI清零
        P1=SBUF;
        a=SBUF;//SBUF中为接收的数据
        flag=1;//标志位置1       
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表