历史上的今天
今天是:2025年10月11日(星期六)
2022年10月11日 | 51单片机基础之串口通信
2022-10-11 来源:csdn
原理:
这里需要解释一下,串口通信是需要占用定时器1的,所以使用了串口通信就不能使用定时器1,除非是代码优化。
这个需要配置几个寄存器,都比较简单,TMOD寄存器设置定时器计数器的工作方式,SCON则是设置串口通信的工作方式,PCON则是波特率加倍操作,都是比较简单的。
计时器初始值的设置有专门的工具
链接:https://pan.baidu.com/s/1BSi8YCaRWtBGLaV2gslpSw
提取码:1234
使用方法:
设置定时器工作方式,单片机晶振,所需波特率,是否开启倍频,最好让误差为零。
代码:
#include typedef unsigned int u16; //对系统默认数据类型进行重定义 typedef unsigned char u8; void uart_init(u8 baud) { TMOD|=0X20; //设置计数器工作方式2 SCON=0X50; //设置为工作方式1 PCON=0X80; //波特率加倍 TH1=baud; //计数器初始值设置 TL1=baud; ES=1; //打开接收中断 EA=1; //打开总中断 TR1=1; //打开计数器 } void main() { uart_init(0XFA);//波特率为9600 while(1) { } } void uart() interrupt 4 //串口通信中断函数 { u8 rec_data; RI = 0; //清除接收中断标志位 rec_data=SBUF; //存储接收到的数据 SBUF=rec_data; //将接收到的数据放入到发送寄存器 while(!TI); //等待发送数据完成 TI=0; //清除发送完成标志位 } 运行结果: 发给单片机什么,单片机就回复你什么。
下一篇:51单片机基础之五线四相步进电机
史海拾趣
|
求助高手:步步高DVD机DV985--VIPER22A电源维修 求高手指点: 步步高DVD机,此机器曾送厂家维修点回不到半年,旧病复发,不能开机,查电源无输出,保险未烧,310V正常,电源芯片是VIPER22A,查各脚电压好像正常,电源次级无短路。更换电源芯片后,空载各 ...… 查看全部问答> |
|
大伙,帮我看看程序错在哪里? CCP输入捕捉的 void interrupt CCP1INT (void) { if(CCP1IF==1) { CCP1IF=0; if(LastCaptureData==0) &nb ...… 查看全部问答> |
|
在eboot下载Wince 的image到ram之前,是否需要对nand flash进行分区,分区的start和end addr,是根据什么来确定的,帮帮小弟;因为我下载wince image的时候出现了 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ...… 查看全部问答> |
|
EVC4.0下出现cannot open file 'mfcs42d.lib'如何处理??? 我新建了一个基于对话框的MFC,但是为什么一编译现如下的错误: LINK : fatal error LNK1104: cannot open file \'mfcs42d.lib\' 不知道我应该如何做才能解决这个问题呢??… 查看全部问答> |
|
本人正在郁闷中,定义了一个结构体变量,去看不到找不到它对应的寄存器,DEBUG时添加变量后WATCH里却显示是SYMBOL IS NOT FOUND! 兄弟姐妹们,走过路过的,帮我解决这个问题吧,谢谢,不甚感谢!!!… 查看全部问答> |
|
//****************************************************************************** // MSP430F20xx Demo - Timer_A, Toggle P1.0, CCR0 Up Mode ISR, DCO SMCLK // // Description: Toggle P1.0 using software and TA ...… 查看全部问答> |
|
拿到lauchpad后一直没有看看板子上那个例程是什么样。今天有空进行了研究了一下。 1、 根据实验指导书内的连接下载GUI界面。具体位置里面说的很详细。下载回来后你的电脑可能找不开,提示找不到javaw.exe这个东西。去这个网址下载一个java ...… 查看全部问答> |
|
汽车安全辅助驾驶方面最近比较热。 最近看见沃尔沃 骑车人检测系统,号称第一次做的. 本人好几年前也有在做这方面的研究,现先将车辆检测发布, 后期会将骑车人,行人检测一起加上,同时,也会针对需求,将车距,车速估计放上, 精度方面,会慢 ...… 查看全部问答> |
|
1. 学会写简单的makefile 2. 编一应用程序,可以用makefile跑起来 3. 学会写驱动的makefile 4. 写一简单char驱动,makefile编译通过,可以insmod, lsmod, rmmod. 在驱动的init函数里打印hello world, insmod后应该能够通过dmesg看到输出。 5. ...… 查看全部问答> |








