Uart1_Drive.h
#ifndef Uart1_Drive
#define Uart1_Drive

extern void Uart1_Init();
extern void Uart1_Up_Data_Drive();
extern u8 xdata Uart1_Up_Num_Buffer[10]; //数字部分

#endif

Uart1_Drive.c

#include “all.h”
bit Uart1_Flag=1;
u8 code Uart1_Up_Symbol_Buffer[30]={"\n\r温度: 遥控解码: 超声波:mm"}; //\0是空字符 \n是换行 \r是回车
u8 xdata Uart1_Up_Num_Buffer[10];

//***************************************************************************
//函数:串口发送数据初始化
//功能:初始化串口,配置串口寄存器
//出口:void
//入口:void
//***************************************************************************
void Uart1_Init()
{
SM0=1;
SM1=1; //上述两个指定串行通信的工作方式.9
REN=1; //串口接收允许位。上面三个配置,相当于SCON=0x50;

PCON&=0x3f;   //0011 1111  AUXR|=0x01;   //0000 0001
AUXR|=0x14;   //0001 0100
T2H=0xfc;
T2L=0xf3;
ES=1;

}

//***************************************************************************
//函数:串口发送数据
//功能:发送串口数据
//出口:void
//入口:void
//***************************************************************************

void Uart1_Up_Data_Drive()
{
static u8 xdata count=0;
if(Uart1_Flag)
{
Uart1_Flag=0;
count++;

    switch(count){case 1:SBUF=Uart1_Up_Symbol_Buffer[0];break;case 2:SBUF=Uart1_Up_Symbol_Buffer[1];break;case 3:SBUF=Uart1_Up_Symbol_Buffer[2];break;case 4:SBUF=Uart1_Up_Symbol_Buffer[3];break;case 5:SBUF=Uart1_Up_Symbol_Buffer[4];break;case 6:SBUF=Uart1_Up_Symbol_Buffer[5];break;case 7:SBUF=Uart1_Up_Symbol_Buffer[6];break;  //排序发送到温度后面的分号:case 8:SBUF=Uart1_Up_Num_Buffer[0];break;case 9:SBUF=Uart1_Up_Num_Buffer[1];break;case 10:SBUF=Uart1_Up_Num_Buffer[2];break;case 11:SBUF=Uart1_Up_Num_Buffer[3];break;   //显示温度case 12:SBUF=Uart1_Up_Symbol_Buffer[7];break;case 13:SBUF=Uart1_Up_Symbol_Buffer[8];break;case 14:SBUF=Uart1_Up_Symbol_Buffer[9];break;case 15:SBUF=Uart1_Up_Symbol_Buffer[10];break;case 16:SBUF=Uart1_Up_Symbol_Buffer[11];break;case 17:SBUF=Uart1_Up_Symbol_Buffer[12];break;case 18:SBUF=Uart1_Up_Symbol_Buffer[13];break;case 19:SBUF=Uart1_Up_Symbol_Buffer[14];break;case 20:SBUF=Uart1_Up_Symbol_Buffer[15];break;case 21:SBUF=Uart1_Up_Symbol_Buffer[16];break;case 22:SBUF=Uart1_Up_Symbol_Buffer[17];break;case 23:SBUF=Uart1_Up_Num_Buffer[5];break;case 24:SBUF=Uart1_Up_Num_Buffer[6];break;case 25:count=0;;break;}}

}

void Uart1_Routine() interrupt 4
{
static char Uart1_ser_n=0;
if(RI) //接收中断,单片机发送信息给电脑
{
RI=0;
Uart1_Flag=1;
if(SBUF==0x7f) //9600波特率
{
Uart1_ser_n++;
if(Uart1_ser_n>=10)
{
Uart1_ser_n=0;
IAP_CONTR|=0xe0;

        }}
}if(TI)    //发送中断,电脑发信息给单片机
{TI=0;Uart1_Flag=1;Uart1_Up_Data_Drive();}

}

main.c
//***************************************************************************
//函数:Uart1_Allot() 串口发送数据程序
//功能:发送串口数据
//出口:void
//入口:void
//***************************************************************************
void Uart1_Allot()
{
static xdata u8 count=0;
count++;
if(count>250) //间隔时间太短会出现错误。
{
count=0;
Uart1_Up_Num_Buffer[0]=0x30+Ds18B20_Read_Buffer[0]/10; //加一个0x30数据才可以变成ASIC码。
Uart1_Up_Num_Buffer[1]=0x30+Ds18B20_Read_Buffer[0]/10%10;
Uart1_Up_Num_Buffer[2]=’.’;
Uart1_Up_Num_Buffer[3]=0x30+Ds18B20_Read_Buffer[1]/10%10;
Uart1_Up_Num_Buffer[5]=0x30+Ray_Read_Buffer[2]/16;
Uart1_Up_Num_Buffer[6]=0x30+Ray_Read_Buffer[2]%16;
Uart1_Up_Data_Drive();
}

}

单片机--串口通信---11相关推荐

  1. 基于PC与单片机串口通信的温度监控系统程序设计

    基于PC与单片机串口通信的温度监控系统程序设计 1.系统介绍 1)本系统主要讲解基于PC与单片机串口通信的温度监控系统程序设计(如图1),上位机采用常用的PC机,下位机使用的是STC89C52单片机, ...

  2. 蓝桥杯单片机串口通信学习提升笔记

    今日得以继续蓝桥杯国赛备赛之旅: 有道是 "不知何事萦怀抱,醒也无聊,醉也无聊,梦也何曾到谢桥." 那我们该如何 让这位诗人纳兰 "再听乐府曲 ,畅解相思苦"呢 ...

  3. 51单片机串口通信模板_深入理解51单片机串口通信及通信实例

    串口通信的原理 串口通信(SerialCommunications)的概念非常简单,串口按位(bit)发送和接收字节.尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一 ...

  4. 51单片机串口通信原理、相关寄存器配置与简单串口收发程序代码

    目录 1. 串口通信原理 2. 51单片机串口通信 2.1 串口简要模式图 2.2 相关寄存器 (1)PCON.SCON.SBUF (2)IE.IPH.IP (3)配置T1定时器 2.3 波特率和系统 ...

  5. 51单片机串口通信【收集学习向】

    本篇整理了学习51串口通信过程中看到的一些比较好的文章,有很多的超链接.并根据自己遇到的情况分析了串口传输乱码的一些原因. 目录 1.原理知识 2.测试程序和虚拟仿真 3.电路设计与公母口连线 电路设 ...

  6. 《单片机串口通信及测控应用实战详解》——6.3 PC端程序设计

    本节书摘来异步社区<单片机串口通信及测控应用实战详解>一书中的第6章,第6.3节,作者:李江全,聂晶,梁习卉子,刘新英,更多章节内容可以访问云栖社区"异步社区"公众号查 ...

  7. 上位机作图软件 监测温度,单片机串口通信无压力

    上位机作图软件 监测温度,单片机串口通信无压力 本帖最后由 zb12138 于 2018-11-11 13:11 编辑 功能 1.与串口调试助手一样,可设串口,自动扫描串口,波特率等等,可收发汉字 2 ...

  8. 普中单片机---串口通信(1)--通过按键控制发送

    普中单片机-串口通信(1)–通过按键控制发送 软件代码 #include <reg52.h>#define jingzhen 12000000UL /*使用12.0M晶体*/ #defin ...

  9. Android 驱动CH340实现和单片机串口通信

    前言 最近项目中需要加一个体温检测的模块 需要用到android的串口通信知识点 遇到的问题 之前没有深入了解过 串口通信 在查询知识点的时候 查到了google的demo Google公司在2011 ...

最新文章

  1. mysql python安装错误_mysql-python安装致命错误
  2. 字节跳动凌晨发半个月奖金,网友:我酸了,又是别人家的公司!
  3. oracle如何进入管理器,oracle 启动管理器
  4. eclipse配置mysql教程_在Eclipse连接mysql-----配置jbdc_MySQL
  5. Windows 2000 Active Directory FSMO 角色
  6. 运行报错 Permission denied: user=Admin, access=WRITE, inode=/:root:supergroup:drwxr-xr-x
  7. ~~~~我是一棵小树苗~~~~
  8. c 加密 java解密错误_java解密出错
  9. Java面向对象和面向过程有什么区别?网友:傻傻分不清楚……
  10. python if break_python_if_else,while,break
  11. windbg-获取结构体大小(常用的两种方式)
  12. 定时器时间动态变化(变速)
  13. oracle什么时候使用静态监听,Oracle监听之动态监听与静态监听特点
  14. 拜托,面试别再问我堆(排序)了!
  15. 人脸识别技术开发解决方案,人脸识别智慧工地应用开发
  16. 5568 -- 【BJOI2018】治疗之雨
  17. win10系统重置网络后,以太网没了,适配器显示为空了,电脑完全没网,这种情况怎么办?
  18. 18. Zigbee应用程序框架开发指南 - 应用框架V6
  19. 【PowerJob】值得你拥有的新一代分布式任务调度与计算框架
  20. 用vb脚本语言找出c盘所有文件及其子文件中后缀名为.txt的文档,2012年3月计算机二级VB练习题及答案:文件...

热门文章

  1. Windows驱动编程基础教程
  2. Python 的while正反三角和(菱形)
  3. 初识自定义View-View的弹性滑动
  4. Altium Designer基础PCB布局布线
  5. 044-JAVA输入/输出流-File类的应用
  6. 多彩M618XSD垂直立式人体工学鼠标拆解
  7. CSTC—基于零仲裁证明的价值协议
  8. csv导出文件名乱码解决
  9. lisp语言cond和if套用_LISP语言入门(CLISP)
  10. PermissionError: [Errno 13] Permission denied: ‘C:\\Users\\langxu\\AppData\\Local\\Temp