⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 comm_s.c

📁 单片机实现的遥控小汽车的设计研究论文与程序
💻 C
字号:
////////////////////////////////////////////////////////////////////
//文件名:comm.c
//功能描述:从单片机上串口通信模块
////////////////////////////////////////////////////////////////////
#include "reg52.h"
#include "comm_s.h"

//////////////////////////////////////////////////////////////////
//变量定义
data uchar temp_msg; //暂存消息,此处直存一条消息,若存多条可以设置一个消息队列

////////////////////////////////////////////////////////////////////
//串口中断处理函数
//使用高优先级
//但程序其他地方有时是关中断的
void comm(void) interrupt 4
{
        if(RI)
        {
                RI=0;
                temp_msg=SBUF;
        }
        if(TI)
        {
                TI=0;
        }
}

////////////////////////////////////////////////////////////////
//初始化串口通信
//方式2,11位异步收发方式,波特率:375Kbps
void initcomm(void)
{
        SCON=0x90;   //工作于方式2,REN=1
        PCON|=0x80;  //SMOD=1
        ES=1;        //开串口中断
        PS=1;        //置为高优先级中断
        EA=1;
}
/////////////////////////////////////////////////////////////////
//发送消息函数
void sendmsg(uchar msg,char canshu)
{
        uchar i;
        EA=0;
        if(TI)TI=0;
        if(MSG_FOUND==msg)    //若发送光源方位值,则将TB8置成1
        {                     //8位数据为光源方位
                TB8=1;
                SBUF=canshu;
        }
        else                  //若发送的是其他消息,则TB8置成0
        {                     //8位数据为消息值
                TB8=0;
                SBUF=msg;
        }
        for(i=0;i<20;i++);    //延时一段时间,等待串口发完一个字节后返回
        EA=1;
}

/////////////////////////////////////////////////////////////////
//取得消息函数
uchar getmsg(void)
{
        return temp_msg;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -