51单片机串口通信发送以及接收代码详解1
#include <reg51.h> //实验现象:单片接收电脑发送的字符串,并发回给PC端的代码.//函数声明
void uart_init(void);
void uart_seng_byte(unsigned char c);
void delay(void);
void uart_seng_string(unsigned char *str);
//主函数
void main(void)
{uart_init(); //第一步:初始化串口到正确状态uart_seng_string("\r\n");//第二步:通过串口发送字符串;字符串用双引号“”;换行字符:\r\ndelay(); //让A发送的不要太快while(1);
}//预设一个串口条件:8位数据位、1停止位、0效验位、波特率2400
//初始化主要用于设置相关寄存器到我们所需要的模式以及参数
//初始化串口函数
void uart_init(void)
{SCON=0x50; //串口工作在模式1,开启允许接收PCON=0x00; //波特率不加倍TMOD=0x20; //设置T1在模式2:M1=1,M0=0;8位自动重装模式TH1=TL1=243; //8位自动重装的意思:TH1用完后下一个周期,TL1自动重装到TH1里面去TR1=1; //开启计数器ES=1; //开启串口中断EA=1; //开启总中断
}//通过串口发送1个字节出去
void uart_seng_byte(unsigned char c)
//SBUF=c表示将变量c的值赋给SBUF,unsigned char c为8位无符号字符,是一个字节的大小,表示变量c的值是1个字节大小的。
//在内存中间开辟一个1字节的空间,标记为c,把字符A存进去
{SBUF=c; //第一步:发送一个字节出去:写入即可自动发出 //参数c容量为1个字节大小的值赋给SBUF用来规定缓存区的容量,防止缓存区溢出while(!TI); //第二步:确认串口8位数据发送结束,TI硬件自动置位TI=0; //第三步:软件复位TI
}
void uart_seng_string(unsigned char *str)
{while (*str !='\0')// '\0' 为字符串结束符{uart_seng_byte(*str); //发送一个字符串str++; //让指针指向下一个字符串}
}
//延时函数
void delay(void)
{unsigned char a,b;for(a=0;a<100;a++)for(b=0;b<100;b++);
}void uart_sir(void) interrupt 4
{unsigned char tmp;if(RI) //进入中断后标志位RI就置位=1{tmp=SBUF; //读取SBUF,其实就是电脑发送,单片机串口读取(接收)的1字节RI=0; //软件复位RI//但是单片机无法显示给人看,所以我们要加下面这行代码进行测试uart_seng_byte(tmp);//测试代码:把单片机接收到的消息回发给PC端}
}
上述代码的对比代码文章:51单片机串口通信发送以及接收代码详解2
51单片机串口通信发送以及接收代码详解1相关推荐
- 51单片机串口通信发送以及接收代码详解2
#include <reg51.h> //实验现象:在电脑端没按下发送的时候,单片一直给电脑发送aaa字符串: //实验现象:在电脑端按下发送的时候,结束字符串aaa的发送代码,执行单片接 ...
- 51单片机串口通信--发送字符、接收字符、发送字符串、接收字符串
相关寄存器 SCON:串口控制寄存器(可位寻址) 串行控制寄存器SCON用于选择串行通信的工作方式和某些控制功能.其格式如下: SM0.SM1: SM2:允许方式2或方式3多机通信控制位: REN:允 ...
- 51单片机串口通信(字符串接收和发送)
转自:http://www.cnblogs.com/weifeng727/category/845655.html #include<reg52.h>//----------------- ...
- 51单片机之蜂鸣器模拟钢琴(代码详解)——起风了
目录 前言 正文 乐理 程序 补充 前言 最近心血来潮,想要用蜂鸣器播放音乐(全损音质),于是最初的想法诞生了,但是我总不能每次想听歌都敲一遍蜂鸣器的代码吧,有没有什么办法只需要敲一遍的代码便可以实现 ...
- 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单片机~串口通信 (一)计算机串行通信原理: 综上:所以在设置的时候,经常将SCON设置为0X50==0101 0000 ,使用方式1. (二)工作: 中断控制 led灯,每发送一条指令灯亮或灭( ...
- 51单片机串口通信模板_51单片机串口通信
51 单片机串口通信 51 单片机串口通信(转载) 2009-03-03 18:22 一.串口通信原理 串口通讯对单片机而言意义重大,不但可以实现将单片机的数据传输到计 算机端,而且也能实现计算机对单 ...
- 51单片机串口通信【收集学习向】
本篇整理了学习51串口通信过程中看到的一些比较好的文章,有很多的超链接.并根据自己遇到的情况分析了串口传输乱码的一些原因. 目录 1.原理知识 2.测试程序和虚拟仿真 3.电路设计与公母口连线 电路设 ...
最新文章
- Scrapy_splash组件的使用
- Javascript JQuery获取当前元素的兄弟元素/上一个/下一个元素(转)
- sql中的where 1=1有什么用?
- android通过用户名密码访问服务器获取信息_MySQL ------ 管理用户对数据库的访问控制(GRANT 与 REVOKE)(二十九)...
- spring集成struts2
- 一个简单JavaAgent的实现
- 新的恶意软件将后门植入微软 SQL Server 中
- jQuery 图片轮播插件–GalleryView
- 概率论数理统计笔记01(对应教材——《概率论与数理统计》(同济大学出版社出版))
- 山东大学软件学院概率论与数理统计(考试)——期末考试回忆版
- 计算机二级报考哪个科目比较好?
- 何时是使用代码报表的最佳方法,何时采用frx格式
- 基于Mybatis的语音播报随机点到系统
- (干货,建议收藏)备战2021年软考中级网络工程师-02操作系统
- outlook邮箱邮件大小限制_outlook邮箱附件大小限制怎么办_outlook超出邮箱附件大小限制如何处理-win7之家...
- 【AUTOSAR-CP-CAN-2】AUTOSAR COM
- 全国计算机竞赛保送清华,保送清华北大,带你看看信息学奥林匹克竞赛的魅力...
- web 报表轻松实现数据异常预警功能
- 基于vue的后台管理 内容篇 之 代理列表(某一导航项) 前篇
- RedisDesktopManager 应用程序无法正常启动