51单片机入门(八)

目录:

1.串口通信

2.串口向电脑发送数据&电脑通过串口控制LED

1.串口通信

2.串口向电脑发送数据&电脑通过串口控制LED

这个初始化不需要配置,发送的时候写进去,接受的时候从这里读

配置的是定时器1,串口只能用定时器1,上面之前配置的是定时器0,

这里定时器配置8为自动重装,之前配置的16位,进入中断的时候把计时器赋初值

串口中使用双8位,把寄存器分开,一位中断,另以为自动重装

可以自动生成波特率:

0x50:SCON有一位是REN,50是接受使能,40 :接受不使能

不需要中断,只需要中断的溢出的波特率发生器,不用开中断了,只要有溢出,就会发生波特率

这两个是高系列的单片机,可以删除,可选的,

删除生成的留下自己配置的,串口就配置好了,定时器也配置好了

发送:

发送函数:

波特率要对应4800,不然会出错

点下复位:

16位形式逐渐递增

下面把串口模块化:

收、发

收的的话需要中断系统,我们不知道电脑啥时候发过来,不能一直检测,我们利用中断,当电脑发过来触发中断,在中断函数里面,进行中断处理,把数据拿出来

配置下寄存器:

接受使能,置1

把40改成50

配置下中断

如果中断来了吧灯点亮

中断有发送中断,接受中断,需要进行判断

0才亮

取反,0是亮,1是灭:

aa:10101010

在中断中再发送过去:

用的时候把这个中断函数复制到主函数中就行

波特率是怎么计算:

定时器配置的是自动重装,配置的是0xF3

每隔256溢出一下=13

计数值是13个数,每记13个数就溢出一次,定时器,12兆的晶振在12T的模式下,每1微妙记一次数,记13次就溢出说明,每隔13微秒就溢出一次,1/13us就是溢出率

1/13=:

我们设置的波特率倍数,SMOD0=1,是倍数,到发送接收控制器在除16是波特率

它的频率没有那么精细,有一定跨度,会有误差

文本模式对发送的数据进行编码:

相关推荐
FreakStudio11 天前
W55MH32L-EVB 上手测评:硬件 TCP/IP 加持的以太网单片机,MicroPython 零门槛开发
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机
✎ ﹏梦醒͜ღ҉繁华落℘16 天前
单片机基础知识---stm32单片机的优先级
stm32·单片机·mongodb
u1521096484916 天前
S.S.Audio PRO A2音频隔离器
嵌入式硬件·音视频·实时音视频·视频编解码·视频
zd84510150016 天前
RS485 总线详解
单片机·嵌入式硬件
半条-咸鱼16 天前
【STM32】I2C协议原理、HAL读写与OLED显示操作
嵌入式硬件·c·信息与通信
wohoo_wangzi16 天前
苏州晟雅泰电子:关于W25Q128JVSIQ这个芯片物料的参数,规格及应用领域
嵌入式硬件
✎ ﹏梦醒͜ღ҉繁华落℘17 天前
编程基础 --高内聚,低耦合
c语言·单片机
科芯创展17 天前
1A,1MHz,30VIN,XZ4115,降压恒流LED驱动芯片
单片机·嵌入式硬件
集芯微电科技有限公司17 天前
四通道2A输出集成功率电感降压模块专为紧凑型方案设计
人工智能·单片机·嵌入式硬件·生成对抗网络·计算机外设
踏着七彩祥云的小丑17 天前
嵌入式测试学习第 37 天:异常场景测试:断电、拔插、干扰、非法指令
单片机·嵌入式硬件·学习