单片机--串口通信---11
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相关推荐
- 基于PC与单片机串口通信的温度监控系统程序设计
基于PC与单片机串口通信的温度监控系统程序设计 1.系统介绍 1)本系统主要讲解基于PC与单片机串口通信的温度监控系统程序设计(如图1),上位机采用常用的PC机,下位机使用的是STC89C52单片机, ...
- 蓝桥杯单片机串口通信学习提升笔记
今日得以继续蓝桥杯国赛备赛之旅: 有道是 "不知何事萦怀抱,醒也无聊,醉也无聊,梦也何曾到谢桥." 那我们该如何 让这位诗人纳兰 "再听乐府曲 ,畅解相思苦"呢 ...
- 51单片机串口通信模板_深入理解51单片机串口通信及通信实例
串口通信的原理 串口通信(SerialCommunications)的概念非常简单,串口按位(bit)发送和接收字节.尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一 ...
- 51单片机串口通信原理、相关寄存器配置与简单串口收发程序代码
目录 1. 串口通信原理 2. 51单片机串口通信 2.1 串口简要模式图 2.2 相关寄存器 (1)PCON.SCON.SBUF (2)IE.IPH.IP (3)配置T1定时器 2.3 波特率和系统 ...
- 51单片机串口通信【收集学习向】
本篇整理了学习51串口通信过程中看到的一些比较好的文章,有很多的超链接.并根据自己遇到的情况分析了串口传输乱码的一些原因. 目录 1.原理知识 2.测试程序和虚拟仿真 3.电路设计与公母口连线 电路设 ...
- 《单片机串口通信及测控应用实战详解》——6.3 PC端程序设计
本节书摘来异步社区<单片机串口通信及测控应用实战详解>一书中的第6章,第6.3节,作者:李江全,聂晶,梁习卉子,刘新英,更多章节内容可以访问云栖社区"异步社区"公众号查 ...
- 上位机作图软件 监测温度,单片机串口通信无压力
上位机作图软件 监测温度,单片机串口通信无压力 本帖最后由 zb12138 于 2018-11-11 13:11 编辑 功能 1.与串口调试助手一样,可设串口,自动扫描串口,波特率等等,可收发汉字 2 ...
- 普中单片机---串口通信(1)--通过按键控制发送
普中单片机-串口通信(1)–通过按键控制发送 软件代码 #include <reg52.h>#define jingzhen 12000000UL /*使用12.0M晶体*/ #defin ...
- Android 驱动CH340实现和单片机串口通信
前言 最近项目中需要加一个体温检测的模块 需要用到android的串口通信知识点 遇到的问题 之前没有深入了解过 串口通信 在查询知识点的时候 查到了google的demo Google公司在2011 ...
最新文章
- mysql python安装错误_mysql-python安装致命错误
- 字节跳动凌晨发半个月奖金,网友:我酸了,又是别人家的公司!
- oracle如何进入管理器,oracle 启动管理器
- eclipse配置mysql教程_在Eclipse连接mysql-----配置jbdc_MySQL
- Windows 2000 Active Directory FSMO 角色
- 运行报错 Permission denied: user=Admin, access=WRITE, inode=/:root:supergroup:drwxr-xr-x
- ~~~~我是一棵小树苗~~~~
- c 加密 java解密错误_java解密出错
- Java面向对象和面向过程有什么区别?网友:傻傻分不清楚……
- python if break_python_if_else,while,break
- windbg-获取结构体大小(常用的两种方式)
- 定时器时间动态变化(变速)
- oracle什么时候使用静态监听,Oracle监听之动态监听与静态监听特点
- 拜托,面试别再问我堆(排序)了!
- 人脸识别技术开发解决方案,人脸识别智慧工地应用开发
- 5568 -- 【BJOI2018】治疗之雨
- win10系统重置网络后,以太网没了,适配器显示为空了,电脑完全没网,这种情况怎么办?
- 18.	Zigbee应用程序框架开发指南 - 应用框架V6
- 【PowerJob】值得你拥有的新一代分布式任务调度与计算框架
- 用vb脚本语言找出c盘所有文件及其子文件中后缀名为.txt的文档,2012年3月计算机二级VB练习题及答案:文件...
热门文章
- Windows驱动编程基础教程
- Python 的while正反三角和(菱形)
- 初识自定义View-View的弹性滑动
- Altium Designer基础PCB布局布线
- 044-JAVA输入/输出流-File类的应用
- 多彩M618XSD垂直立式人体工学鼠标拆解
- CSTC—基于零仲裁证明的价值协议
- csv导出文件名乱码解决
- lisp语言cond和if套用_LISP语言入门(CLISP)
- PermissionError: [Errno 13] Permission denied: ‘C:\\Users\\langxu\\AppData\\Local\\Temp