1.配置串口工作模式为模式1。即设置SCON寄存器(SM0,SM1,REN位),SCON |= 0X50;(SM0 = 0,SM1 = 1,REN =1).
SM0 = 0,SM1 = 0 方式0:同步移位串行方式:波特率= SYSclk / 12.
SM0 = 0,SM1 = 1 方式1:8位UART,波特率可变: 波特率 = (2^SMOD / 32) * (定时器1的溢出率)
SM0 = 1,SM1 = 0 方式2:9位UART: 波特率 = (2^SMOD / 64) * (SYSclk系统工作时钟频率)
SM0 = 1,SM1 = 1 方式3: 8位UART,波特率可变: 波特率 = (2^SMOD / 32) * (定时器1的溢出率)
注意:
当单片机工作在12T模式时,定时器1的溢出率 = SYSclk / 12 / (256 - TH1);
当单片机工作在1T模式时,定时器1的溢出率 = SYSclk / 6 / (256 - TH1);
SMOD默认为0。具体作用参考数据手册。
2.配置定时器1为模式2,即自动重装载模式。TMOD &= 0X0F; TMOD |= 0X20.
3.根据波特率计算TH1,TL1的初值,如果有需要可使用PCON进行波特率加倍(PCON最高位为波特率加倍位)。
计算公式:TH1 = TL1 = 256 - 晶振值 / 12 / 2 / 16 / 波特率;
如果波特率加倍则:PCON |= 0X80; 计算公式:TH1 = TL1 = 256 - 晶振值 / 12 / 16 / 波特率;
4.打开定时器控制寄存器TR1,启动定时器。
5.如果需要开串口中断,则 ES =1;
while(1)
{
while(!RI);// 等待接收完一字节数据
RI = 0; // 需软件清零
SBUF = SBUF +1;// 把接收的数据+1再发送出去
while(!TI);// 等待发送完一字节数据
TI = 0; // 需软件清零
}
注意:如果定时器1作为串口波特率发生器后不可再用作普通定时器。
一般我们可以准备好要发送的数据,TI = 1,会立即进入串口发送中断,可在串口发送中断中发送要发的数据。RI一旦为1表示接受中断发生,进中断取数据。
关键字:51单片机 串口配置
引用地址:
51单片机串口配置
推荐阅读最新更新时间:2024-03-16 16:26
基于51单片机的出租车计价器的设计
引言 在科学技术和经济水平快速发展的21世纪,乘坐出租车和网约车出行已经成为一种非常重要的交通出行方式。行业的转型发展让出租车行业迎来了一场新纪元。但是在出租车行业迅速发展的同时,也出现了很多问题。经营管理不善,司机服务不规范,随意定价收款的现象也是层出不穷。为了根治这种现象,出租车计价器孕育而生。出租车计价器的问世不仅减少了行业的乱象,而且让管理者和经营者更加诚信的服务乘客,在很大程度上改善了行业风气。 但是目前国内广泛使用的出租车计价器功能单一,不能满足人们的需求,人们更致力于一种功能齐全,生产成本低的出租车计价器。伴随着科技水平的提高,出租车计价器也迎来了新的变革,这时第二代出租车计价器问世了。 设计选用宏晶公司生产的STC
[单片机]
基于51单片机控制的数字可调高效开关稳压电源设计
为研究模拟PWM与数字电路相结合后的优点,本文设计实现了一个由 51单片机 控制的输出 可调 的高效 开关稳压 电源。通过理论分析设计了基于BOOST升压电路的DC-DC变换器、PWM控制芯片及其外围电路、单片机最小系统以及键盘/显示电路。通过仿真和实际电路调试使该电源实现稳压、限流、输出设定和输出值的显示功能。结果证明模拟PWM与数字电路相结合后,可以在不牺牲模拟控制所具备的精度和无限分辨率的情况下,提供数字控制所具有的特性。
[电源管理]
单片机成长之路(51基础篇)51单片机寄存器功能一览表
21个特殊功能寄存器(52系列是26个)不连续地分布在128个字节的SFR存储空间中,地址空间为80H-FFH,在这片SFR空间中,包含有128个位地址空间,地址也是80H-FFH,但只有83个有效位地址,可对11个特殊功能寄存器的某些位作位寻址操作(这里介绍一个技巧:其地址能被8整除的都可以位寻址)。 在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SFR)。这样的特殊功能寄存器51单片机
[单片机]
51单片机应用系统软件设计经验
在进行应用系统的总体设计时,软件设计和硬件设计应统一考虑,相结合进行。当系统的 电路 设计定型后,软件的任务也就明确了 ,系统中的软件是根据系统功能要求设计的。 一般地讲,软件的功能可分为两大类。一类是执行软件,它能完成各种实质性的功能,如测量,计算,显示,打印,输出控制等;另一类是监控软件,它是专门用来协调各执行模块和操作者的关系,在系统软件中充当组织调度角色。由于应用系统种类繁多,程序编制者风格不一,因此应用软件因系统而异。尽管如此,作为优秀的系统软件还是有其共同特点和其规律的。设计人员在进行程序设计时应从以下几个方面加以考虑: 根据软件功能要求,将系统软件分成若干个相对独立的部分,根据它们之间的联系和时间上的
[单片机]
51单片机+74hc595锁存器驱动一个静态数码管
实验开发板HC6800 v2.8 (淘宝可以查到) 将JP2 与JP3相连即可,注意排线要反接 代码如下: /* * 标题: 试验数码管上如何显示数字(共阳极) * * * * 连接方法:P2 与P3 用8PIN排线连接 * * * * * / #include reg51.h #include intrins.h void delay(unsigned int i); //函数声名 // 此表为 LED 的字模,0~F un
[单片机]
51单片机智能窗帘
电路原理图如下: 10UF电解电容 C2 47UF电解电容 C6 光敏电阻 R10 限位开关 K1, K2 微动开关 KEY1, KEY2, KEY3, KEY4, KEY5 步进电机 P1 DC-002电源插座 P2 LCD1602液晶 Q1 红外一体接头 Q5 10K色环电阻 R1, R4, R5, R6, R8, R9 10K电位器 R2 10k排阻 R3 双掷开关 SW1 2Pi插针 U2 STC89C52单片机 U3 ADC0832模数转换芯片 U4 ULN2003电机驱动芯片 U5 DS1302时钟芯片 U6 12MHZ晶振 Y1 32.768KHZ晶振 Y2 单片机源程序如下
[单片机]
基于MCS-51单片机的三个存储空间及划分解析
1.前言 MCS-51的存储器有片内RAM、片外RAM 和 ROM 三个空间。 MCS-51单片机在物理结构上有四个存储空间 1、片内程序存储器(片内ROM) 2、片外程序存储器(片外ROM) 3、片内数据存储器(片内RAM) 4、片外数据存储器(片外RAM) 在逻辑上(即从用户的角度上)MCS-51单片机有三个存储空间 1、片内外统一编址的64K的程序存储器(ROM)地址空间(MOVC) 2、256B的片内数据存储器(片内RAM)的地址空间(MOV) 3、以及64K片外数据存储器(片外RAM)的地址空间(MOVX) 注:在访问三个不同的逻辑空间时,应采用不同形式的指令以产生不同的存储器空间的选通信号。 2.存储空间划分
[单片机]
51单片机控制步进电机-让电机转起来
摘要: 本节介绍用简单的方式,让步进电机转起来。其目的之一是对电机转动有直观的感受,二是熟悉整个开发流程 本系列教程必要的51单片机基础包括IO口操作、中断、定时器三个部分,相关基础教程网上很多,可以自行学习 一、软件清单 需要用到的软件有keil5编译软件、STC程序烧录软件 二、控制原理 根据TB6600驱动器原理,向PUL口发送脉冲,每发送一个脉冲,电机就转一步。通过单片机延时的方式,切换PUL口电平产生脉冲,从而控制电机转动。 三、程序代码 //毫秒延时函数 void delay(unsigned int z) { unsigned int x,y; for(x=z;x 0;x--) for(y
[单片机]