单片机 | 51单片机原理

这篇具有很好参考价值的文章主要介绍了单片机 | 51单片机原理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【金善愚】 单片机应用原理篇 笔记整理
课程视频 :https://space.bilibili.com/483942191/channel/collectiondetail?sid=51090


一、引脚分布介绍

1.分类

三类

  • 电源及晶振引脚(共4只)
  • 控制引脚(共4只)
  • 端口引脚(共32只)

金善愚单片机资料,51单片机,单片机,51单片机

2.电源引脚

  • Vcc(40脚):电源端,接+5V电源。
  • Vss(20脚):接地端。

金善愚单片机资料,51单片机,单片机,51单片机

3.时钟引脚(2根)

  • XTAL1(19脚):接外部晶振和微调电容的一端。
  • XTAL2(18脚):接外部晶振和微调电容的另一端。

4.控制引脚(4根)

  • RST/Vpp(9脚):复位信号/备用电源输入引脚。
    ○ 当RST引脚保持两个机器周期的高电平后,就可以使80C51完成复位操作。
    ○ 该引脚的第二功能是VBp,即备用电源的输入端,具有掉电保护功能。
    ○ 若在该引脚接+5V备用电源,在使用中若主电源VCC掉电,可保护片内RAM中的信息不丢失。 ○

  • ALE(30脚):地址锁存允许信号输出。
    ○ 当CPU访问片外存储器时,ALE输出信号控制锁存PO口输出的低8位地址,从而实现PO口数据与低位地址的分时复用。
    ○ 当80C51上电正常工作后,自动在ALE端输出频率为fosc/6的脉冲序列(fosc代表振荡器的频率)。

  • EA(31脚):外部程序存储器地址允许输入端。
    ○ 当EA接高电平时,CPU执行片内ROM指令,但当PC值超过OFFFH时,将自动转去执行片外ROM指令;
    ○ 当EA接低电平时,CPU只执行片外ROM指令。对于80C31,由于其无片内ROM,故其EA必须接低电平。

  • PSEN(29脚):片外ROM读选通信号端。

5.端口引脚(32根)

  • P0.0 ~ P0.7 (39 ~ 32脚) —— P0口
  • P1.0 ~ P1.7 ( 1 ~ 8脚) —— P1口
  • P2.0 ~ P2.7 (21 ~ 28脚) —— P2口
  • P3.0 ~ P3.7 (10 ~ 17脚) —— P3口

1、P0口既可以作为普通I/O口,又可以作为外部扩展时的数据总线和地址总线的低8位,分时复用;作为普通I/O口时,外部要接上拉电阻。
2、P1口可以作为普通I/O口使用,内部带上拉电阻
3、P2口可以作为普通I/O口使用,又可作为外部扩展时地址总线的高8位,作为普通I/O时,内部带上拉电阻
4、P3口可以作为普通I/O口使用,又具有第二功能,作为普通I/O时,内部带上拉电阻

二、存储器结构及空间分布介绍

1.存储器的划分方法

冯诺依曼结构 与 哈佛结构

金善愚单片机资料,51单片机,单片机,51单片机

(51单片机是改进的哈佛结构,分时复用,但是物理存储空间分开,总线统一。)

2.程序存储器(ROM)

  1. 作用:存放程序、表格或常数,具有非易失性
  2. 特点:片内ROM与片外ROM可有2种组合方案

方案1:4KB以内的地址在片内ROM,大于4KB的地址在片外ROM中(图中折线),两者共同构成64KB空间;
方案2:片内ROM被禁用,全部64KB地址都在片外ROM中(图中直线)。

2种组合方案由EA引脚的电平状态决定:EA=1时为方案1,EA=0时为方案2

注意:ROM有6个特殊储存器单元——用于程序引导

存器单元 存器内容
0000H 主程序入口地址
0003H INT0中断程序入口地址
000BH T0中断程序入口地址
0013H INT1中断程序入口地址
001BH T1中断程序入口地址
0023H RI/TI中断程序入口地址

中断程序执行过程:某一突发事件 → 相应中断入口地址自动装入PC → 引导两次跳转 → 执行相应中断服务程序

主程序一般应安排在0030H地址以后(有中断需要时)

3.数据存储器(RAM)

作用:存放程序运行结果

(1) 低128字节的区域

①工作寄存器区(O0H ~1FH)
②可位寻址区(20H ~2FH)
③用户RAM区(30H ~7FH)

①区共有32个存储单元;
  每个单元都有1个8位地址(字节地址)
  每个单元都有1个寄存器名称(RO~R7)
  32个单元分为4组(第0~第3组)
  CPU只能选一组为当前工作寄存器组

当前工作寄存器组取决于PSW的设置
CPU复位后RS1和RSO默认值为0,即默认第0组为当前工作寄存器组。
金善愚单片机资料,51单片机,单片机,51单片机
②区共有16个存储单元;共有128个位地址
  每个单元都有一个字节地址每个单元都有8个不同的位地址

③区共有80个存储单元;
  每个单元都有一个字节地址,但没有位地址,也没有寄存器名
  此区可作为堆栈区和中间数据存储区使用——用户RAM区

⚠️【注意】:①区和③区只能按字节进行数据存取操作,②区则可按字节和位两种方式存取操作。

  

(2)高128字节RAM区

每个存储单元都有一个字节地址,但只有其中21个单元可以使用,并有相应寄存器名称。
其中,字节地址末位是0或8的SFR,都具有位地址。
金善愚单片机资料,51单片机,单片机,51单片机

三、复位、时钟与时序

1.复位与复位电路

  1. 复位 —— 使单片机恢复原始默认状态的操作。
    复位时片内各寄存器的初始值
寄存器名称 默认复位值 寄存器名称 默认复位值
PC 0000 H TMOD 00 H
A 00 H TCON 00 H
PSW 00 H TH0 00 H
B 00 H TL0 00 H
SP 07 H TH1 00 H
DPTR 0000 H TL1 00 H
p0 ~ p3 FF H SCOM 00 H
IP xxx0 0000 B SBUF xxxx xxxx B
IE 0xx0 0000 B PCOM 0xxx0 000 B

  表中X表示可以是任意值,B表示是二进制

  在上电复位(冷启动)时的SRAM的内容为随机值,而在按键复位(热启动)时SRAM的内容保持不变。

  ⚠️注意:在用keil开发的程序中, keil 软件默认会在编译过程中加入把RAM初始化为00H

  1. 复位条件
    为使电路正确复位,需要使RST信号保持至少24个时钟周期(两个机器周期)的高电平。
    金善愚单片机资料,51单片机,单片机,51单片机

2.时钟电路

单片机需要统一的时钟控制,其时钟系统可以有两种方案。

方案一:外部时钟方式
金善愚单片机资料,51单片机,单片机,51单片机

方案二:内部时钟方式
金善愚单片机资料,51单片机,单片机,51单片机
晶振常见有:6MHz、11.0592MHz、12MHz
(其中11.0592MHz 方便对应波特率,误差小)

3.单片机时序

  1. 时序的概念
    ● 时序是对象(或引脚、事件、信息)间按照时间顺序组成的序列关系。
    ● 时序可以用状态方程、状态图、状态表和时序图4种方法表示,其中时序图最为常用。
    ● 时序图亦称为波形图或序列图,纵坐标表示不同对象的电平,横坐标表示时间(从左往右为时间正向轴),通常坐标轴可省略。

  2. 举例:
    金善愚单片机资料,51单片机,单片机,51单片机
    (1) 最左边是引脚的标识,表示该图反映了RS、R/W、E、D0~D7四类引脚的序列关系。
    (2) 交叉线部分表示电平的变化,如高电平和低电平。
    (3) 封闭菱形部分表示数据有效范围(偶尔使用文字 Valid Data)。
    (4) 水平方向的尺寸线表示持续时间的长度。

  3. 时序关系:
    ● RS和R/W端首先变为低电平;
    ● 随后D0~D7端出现有效数据;
    ● R/W低电平tsp1之后,E端出现宽度为tpw的正脉冲;
    ● E脉冲结束并延时tHD1后,RS和R/W端恢复高电平;
    ● E脉冲结束并延时tHD2后,DO~D7端的本次数据结束;
    随后DO~D7端出现新的数据,但下次E脉冲应在tc时间后才能出现根据这些信息便可以进行相应的软件编程了。

  4. 时钟的度量单位:
    时钟周期(或节拍)P、状态周期S、机器周期、指令周期
    金善愚单片机资料,51单片机,单片机,51单片机
    ● 1个状态周期(S)= 2个节拍(P)
    ● 1个机器周期 = 6个状态(S)= 12个节拍(P)
    ● 1个指令周期约为1~4个机器周期
    金善愚单片机资料,51单片机,单片机,51单片机
    机器周期是CPU完成一个操作的最短时间
    例如:晶振为11.0592M,则时钟周期 = 1/11059200s
    (12MHz→1us;6MHz→2us)

四、并行I/O接口

51单片机有32只I/O引脚,分属于4个端口(P0~P3)

  • 可作为并行I/0输出通道(例如,数码管显示器连接通道)
  • 可作为并行I/0输入通道(例如,按键/开关连接通道)
  • 可作为串行通信通道(例如,双机通讯的连接通道)
  • 可作为外部设备的连接通道(例如,存储器扩展通道)

金善愚单片机资料,51单片机,单片机,51单片机

由于工作任务不同,4个端口的内部结构也不同。
了解4类端口的内部结构对于正确使用这些I/O端口非常重要。
以下按照先易后难的原则进行学习,即P1→P3→P0→P2

1.P1口

1个位的内部结构
金善愚单片机资料,51单片机,单片机,51单片机

(1)输出信号
复位时,锁存器自动置1,默认以高电平输出

(2) 读引脚
读引脚置1时,读入引脚值
⚠️在读入前在内部总线先写1,保证场效应管是截止的状态,使外部引脚不受影响,以免出错。

(3) 读锁存器
P1.0 = ~ P1.0; //靠读锁存器实现的

P1口的要点:
1、P1口具有通用I/O口方式,可实现输出、读引脚(输入)和读锁存器三种功能;
2、P1口为准双向通用口,作为通用输入口时应先使P1.n→1,作为通用输出口时是无条件的。

2.P3口

1个位的内部结构

金善愚单片机资料,51单片机,单片机,51单片机

P3口的第二功能:
金善愚单片机资料,51单片机,单片机,51单片机

(1)输出信号
作为通用I/O口时,第二输出功能置1。外部引脚电平由内部总线决定。
作为第二功能时,内部总线保持为1。外部引脚电平由第二输出功能端决定。

(2) 读引脚
读引脚置1时,读入引脚值
⚠️在读入前在内部总线先写1,保证场效应管是截止的状态,使外部引脚不受影响,以免出错。

(3) 读锁存器
P1.0 = ~ P1.0; //靠读锁存器实现的

P3口的要点:
1、P3口具有通用I/O口方式,可实现输出、读引脚(输入)和读锁存器三种功能;
2、P3口为准双向通用口,作为通用输入口时应先使P3.n→1,作为通用输出口时应先使第二输出端→1;
3、P3口具有第二功能方式,可实现第二输出和第二输入两种功能。

3.P0口

金善愚单片机资料,51单片机,单片机,51单片机

控制端置1时,P0口作为 地址和数据总线(低8位)

P0口的要点:
1、P0口具有通用IO口方式,可实现输出、读引脚(输入)和读锁存器三种功能;
2、P0口为准双向通用口,作为通用输入口时应先使P0.n→1,作为通用输出口时应先使第二输出端→1 ;
3、作为通用I/O口方式时,需要外接上拉电阻;
4、P0口具有地址/数据分时复用方式,可实现地址/数据输出、数据输入两种功能;
5、地址/数据分时复用方式时无需外接上拉电阻;
6、分时复用方式的数据输入时无需程序写1操作。

4.P2口

金善愚单片机资料,51单片机,单片机,51单片机

控制端置1时,P2口作为 地址和数据总线(高8位)

P2口的要点:
1、P2口具有通用I/O口方式,可实现输出、读引脚(输入)和读锁存器三种功能;
2、P2口为准双向通用口,作为通用输入口时应先使P2.n→1,作为通用输出口时应先使控制端→1;
3、作为通用I/O口方式时,无需外接上拉电阻;
4、P2口具有地址输出方式,可实现地址输出功能。

五、中断基本概念

1.中断

中断系统是为使CPU具有对外界紧急事件的实时处理能力而设置的。

举例:用日常生活的中断现象

金善愚单片机资料,51单片机,单片机,51单片机

中断是指在突发事件到来时先中止当前正在进行的工作,转而去处理突发事件,待处理完成后,再返回到原先被中止的工作处,继续进行随后的工作。

51单片机的中断:
金善愚单片机资料,51单片机,单片机,51单片机

2.中断源

中断源数量和种类越多,MCU处理突发事件的能力就越强。

80C51单片机共有5种中断源。

外部中断(2个) —— 中断源信号由外部引脚P3.2和P3.3输入(低电平触发、下降沿触发【程序设定】)
定时器中断(2个)—— 定时的时候是对内部机器周期进行计数,不需要外部引脚;计数(频率测量)的时候,需要外部引脚P3.4和P3.5【可扩展】
串口中断(1个)—— 引脚P3.0和P3.1

  • 中断事件出现后,系统将调用与该中断源相对应的中断函数进行中断处理
  • 汇编语言中规定了5个特殊的ROM单元用于引导中断程序的调用,这些单元的地址称为中断向量。
  • 汇编编程时,需要在此单元处放置一条指向中断程序入口地址的跳转语句,以便引导中断程序的执行。
  • 对于C51语言,调用中断函数时不用中断向量,而要用到与中断源相应的中断号。
  • 80C51的中断源、中断向量及中断号的对应关系如下表所示。
51单片机的中断源 中断源名称 中断向量 中断号
P3.2 引脚的电平/脉冲状态 INT0 ‾ \overline{\text{INT0}} INT0 0003H 0
定时/计数器0的溢出标志位状态 T0 000BH 1
P3.3 引脚的电平/脉冲状态 INT1 ‾ \overline{\text{INT1}} INT1 0013H 2
定时/计数器1的溢出标志位状态 T1 001BH 3
串口数据缓冲器的工作状态 TX/RX 0023H 4

3.中断的几个概念

  • 中断源:中断管理系统能够处理的突发事件;
  • 中断请求:中断源向CPU提出的处理请求;
  • 中断响应过程:由中断管理系统处理突发事件的过程;
  • 中断函数:针对中断源和中断请求提供的服务函数;
  • 中断嵌套:在中断服务过程中执行更高级别的中断服务。

4.中断实现的功能

  1. 分时操作
    CPU可以使多个外设同时工作,并分时为各外设提供服务,从而大大提高了CPU的利用率和输入/输出的速度。
  2. 实时处理
    当计算机用于实时控制时,请求CPU提供服务是随机发生的。有了中断系统,CPU就可以立即响应并加以处理。
  3. 故障处理
    当计算机运行中出现如电源断电、存储器校验出错、运算溢出等错误时,CPU可及时转去执行故障处理程序,减小或消除故障产生的影响。

六、80C51中断的系统结构

1.中断系统的结构

80C51系列单片机的中断系统有5个中断源,两个优先级,可实现二级中断服务嵌套。

金善愚单片机资料,51单片机,单片机,51单片机

中断信号分别沿5条水平路径由左向右进行传送。其中,TCON、SCON、IE、IP是相关SFR。

IT0、IT1 选1 是下降沿触发,选0是低电平触发【程序】。触发后IE0随之置1【硬件】。

2.中断请求标志

金善愚单片机资料,51单片机,单片机,51单片机

TCON的中断标志

金善愚单片机资料,51单片机,单片机,51单片机

SCON的中断标志

金善愚单片机资料,51单片机,单片机,51单片机

中断的控制

金善愚单片机资料,51单片机,单片机,51单片机

  • EX0(IE.0):外部INT0中断允许位。
  • ET0(IE.1):定时/计数器T0中断允许位
  • EX1(IE.2):外部INT1中断允许位。
  • ET1(IE.3):定时/计数器T1中断允许位
  • ES (IE.4):串行口中断允许位
  • EA (IE.7):CPU 中断允许(总允许)位

中断优先级的控制

金善愚单片机资料,51单片机,单片机,51单片机

  • PX0 (IP.0):外部中断INT0中断优先级设定位。
  • PT0 (IP.1):定时/计数器 T0中断优先级设定位。
  • PX1 (IP.2):外部中断INT1中断优先级设定位。
  • PT1 (IP.3):定时/计数器T1中断优先级设定位。
  • PS (IP.4):串行口中断优先级设定位。

3.中断的优先级(默认)

各中断源响应优先级 及 中断服务程序入口表

金善愚单片机资料,51单片机,单片机,51单片机

中断优先级处理有三条原则:
1、CPU同时接收到几个中断时,首先响应优先级别最高的中断请求。
2、正在进行的中断过程不能被新的同级或低优先级的中断请求所中断。
3、正在进行的低优先级中断服务,能被高优先级中断请求所中断。

⚠️注意:单片机复位时,IP初值为0 —— 默认所有中断源均为低级中断。

举例:

  • 80C51单片机的INT0、INT1引脚分别输入 压力超限 及 温度超限 中断请求信号,定时器/计数器0作为 定时检测 的实时时钟,用户规定的中断优先权排队次序为 :
  • 压力超限 → 温度超限 → 定时检测
  • 要求确定IE、IP的内容,以实现上述要求

答案:
IE:1xx0 0111 (87H)
IP:xxx0 0101 (05H)

七、定时/计数器的结构及原理

定时/计数器是单片机系统一个重要的部件,其工作方式灵活、编程简单、使用方便,可用来实现定时控制、延时、频率测量、脉宽测量、信号发生、信号检测等。此外,定时/计数器还可作为串行通信中波特率信号发生器。

1.结构

金善愚单片机资料,51单片机,单片机,51单片机

C/T*位 置0 为定时功能;置1 为 计数功能;

计满后TCON中的TF位自动置1,表示溢出事件;

  • 定时器:对片内机器时钟(周期方波)进行计数
  • 计数器:对Tx引脚输入的脉冲进行计数

2.工作原理

  1. 80C51内部两个16位的定时/计数器  T0 T1
    注:单片机型号不同,内部定时器个数也不同

  2. T0由两个8位的 SFR TH0 和 TL0 构成 T1由两个8位的 SFR TH1 和 TL1 构成

  3. 具有定时或事件计数的功能,可用于:1)内部定时控制   2)外部事件计数和检测等

  4. 定时/计数器的实质是:加一计数器

  5. 每个定时/计数器都可以由软件设置为
    定时工作方式(C/T*)= 0
    计数工作方式(C/T*)= 1

  6. T0和T1受特殊功能寄存器TMOD和TCON控制

  7. 定时/计数器一旦启动(TRx=1),便可和CPU并行工作,对提高CPU工作效率和简化外围电路大有益处

3.工作方式之定时

  1. 定时方式时,定时器计数脉冲由51单片机的片内振荡器经12分频后产生的。
  2. 每经过一个机器周期,定时器(T0或T1)的数值加1,直至计数满产生溢出。

4.工作方式之计数

  1. 计数方式时,通过引脚P3.4 (T0)或 P3.5 (T1)对外部脉冲信号进行计数。
  2. 当输入脉冲信号产生由1至0的下降沿时,定时器的值加1,在每个机器周期,CPU采样引脚P3.4 (T0)和P3.5 (T1)的输入电平。若前一个机器周期采样值为高,下一个机器周期采样值为低,则计数器加1。
  3. 由于检测一个1至0的跳变需要2个机器周期,故最高计数频率为振荡频率的二十四分一。
  4. 虽然对输入信号的占空比无特殊要求,但为了确保某个电平在变化之前至少被采样-次,要求电平保持时间至少是一个完整的机器周期。

5.与定时/计数器相关的SFR

SFR 含义
TH (Timer High) 定时器/计数器0高字节(8Ch)
TL0 (Timer Low) 定时器/计数器0低字节(8Ah)
TH1 定时器/计数器1高字节(8Dh)
TL1 定时器/计数器1低字节(8Bh)

八、定时/计数器的工作方式

定时器方式寄存器 TMOD

TMOD——定时器模式寄存器的位分配(地址0x89、不可位寻址)金善愚单片机资料,51单片机,单片机,51单片机

有四种工作方式,由M0、M1控制

1.工作方式0

M0、M1为00时,是工作方式0,表示使用 13位的定时/计数器

金善愚单片机资料,51单片机,单片机,51单片机

2.工作方式1

M0、M1为10时,是工作方式1,表示使用16位的定时/计数器

金善愚单片机资料,51单片机,单片机,51单片机

3.工作方式2

M0、M1为01时,是工作方式2,表示使用8位自动重装的定时/计数器

金善愚单片机资料,51单片机,单片机,51单片机

4.工作方式3

M0、M1为11时,是工作方式3,表示使用8位自动重装的定时/计数器
金善愚单片机资料,51单片机,单片机,51单片机工作方式3只适用于定时/计数器T0,是将T0分成两个独立的8位计数器TL0和TH0,计数器T1在工作方式3时相当于TR1=0,停止计数。

5.定时器使用方法

初始化完成以下工作:
第一:设置特殊功能寄存器TMOD,使之工作在需求的状态。
第二:设置计数寄存器的初值,精确设定好定时时间。
第三:置ETx=1,允许定时/计数器中断
第四:置EA=1,CPU开中断
第五:设置特殊功能寄存器TCON,通过打开TRx来让定时器进行工作。

九、串行通信基本概念

单片机通信是指单片机与计算机单片机与单片机之间的信息交换,通常单片机与计算机之间的通信我们用的较多。

通信有并行通信串行通信两种行式。在单片机系统及现代单片机测控系统中,信息的交换多采用串行通信方式。

1.通信形式

(1)并行通信

金善愚单片机资料,51单片机,单片机,51单片机

(2)串行通信金善愚单片机资料,51单片机,单片机,51单片机

2.通信制式

51单片机是全双工制

金善愚单片机资料,51单片机,单片机,51单片机

3.串行通信方式

(1)同步通信

金善愚单片机资料,51单片机,单片机,51单片机

(2)异步通信

金善愚单片机资料,51单片机,单片机,51单片机

异步串行通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。为使双方收、发协调,要求发送和接收设备的时钟尽可能一致。异步通信是以字符(构成的帧)为单位进行传输。

异步通信一帧字符信息由四部分组成:起始位、数据位、奇偶校验位和停止位。有的字符信息也有带空闲位形式,即在字符之间有空闲字符。

金善愚单片机资料,51单片机,单片机,51单片机

十、串行口结构及工作原理

51单片机有一个可编程的全双工的异步串行通信接口(具有通用异步收发器的全部功能,UART)能同时进行数据的发送和接收,也可作为同步移位寄存器使用。

1.传输速率

  • 常用串口波特率:300、600、1200、2400、4800、9600、19200…115200;
  • 波特率:就是发送一位数据的速率,每秒传送的位数称为波特率,即发送一个数据的持续时间=1/baud;以此衡量传送的速度
  • 1波特 = 1位/秒,单位是bps(位/秒)
  • 如每秒传送240个字符,而每个字符格式包含10位(1个起始位、1个停止位、8个数据位),这时的波特率为10位X240个/秒=
    2400bps。

2.通信协议

基本的通信约定:
为了保证串行通信的可靠接收,通信双方在字符帧格式,波特率,电平格式,校验方式等方面采用统一的标准即双方需要共同遵守的通信协议。

软件通信约定:
确定收发双方串口传送的数据的具体的含义。
1)用户自定义通信协议
2)标准的通信协议

3.通信校验

  1. 奇偶校验
    在发送数据时,数据位尾随的奇偶校验位(1或0)。
    奇校验时,数据中“1"的个数与校验位"1"的个数之和应为奇数;偶校验时,数据中"1"的个数与校验位"1"的个数之和应为偶数。接收字符时,对"1"的个数进行校验,若发现不一致,说明传输数据过程中出现了差错。

  2. 和校验
    和校验是发送方将所有发送数据块求和(或各字节异或),产生一个字节的校验字符(校验和)附加到数据块末尾。
    接收端接收数据时同时对数据块(除校验字节外)求和(或各字节异或),将所得的结果与发送方的"校验和"进行比较,若相符则正确;否则,认为数据传送过程中出错。

  3. CRC校验(循环冗余校验)
    CRC校验通过某种数学运算实现有效信息与校验位之间的循环校验,这种校验方法纠错能力强.广泛应用于通信中。
    附 CRC校验 小工具 :http://www.ip33.com/crc.html

4.51单片机串行口结构

金善愚单片机资料,51单片机,单片机,51单片机

51单片机的串行口主要由两个独立的串行数据缓冲寄存器SBUF(一个发送缓冲寄存器,一个接收缓冲寄存器)和发送控制器、接收控制器、输入移位寄存器及若干控制门电路组成。

5.UART的四种模式

模式0:为同步移位寄存器的输入/输出方式,主要用于扩展并行输入或输出口。

模式1:10位数据的异步通信,1位起始位0,8位数据位(一个字节),1位停止位1。其传输波特率是可变的。对于51单片机,波特率由定时器1(T1)的溢出率决定。通常我们在做单片机与单片机串口通信,单片机与计算机串口通信时,基本都选择方式1。

模式2和3:为11位数据的异步通信。原理和模式1一样,只是添加了一位奇偶校验位(防止通信出错)。

SCON
金善愚单片机资料,51单片机,单片机,51单片机
PCON
金善愚单片机资料,51单片机,单片机,51单片机

SCON含义如下表:

名称 状态 作用
SM0 SM1-工作方式选择位 00 方式0:同步移位寄存器方式(通常用于扩展I/O口)
01 方式1:10位异步收发(8位数据),波特率可变(由定时器1溢出率控制)
10 方式2:11位异步收发(9位数据),波特率固定
11 方式3:11位异步收发(9位数据),波特率可变(由定时器1溢出率控制)
SM2 - 多机通信控制位 0 不论收到的RB8是0还是1均可以使收到的数据进入SBUF,并激活RI(此时RB8不具有控制RI激活功能)
1 可以利用收到的RB8来控制是否激活RI(RB8=0时不激活RI,收到信息丢弃;RB8=1时收到的信息进入SB诈并激活RI,进而在中断服务中将数据从SBUF读走)
REN - 允许串行接收位 0 禁止串行口接收数据
1 允许串行口接收数据
TB8 - 方式2,3中发送数据的第9位 \ 在方式2或方式3中,是发送数据的第9位,可以用软件规定其作用。可以用做数据的奇偶校验位。或在多机通信中,作为地址帧/数据帧的标志位。在方式0和1中,该位未使用。
RB8 - 方式2,3中发送数据的第9位 \ 在方式2或方式3中,是接收数据的第9位。可作为奇偶校验位或地址帧/数据帧的标志位。在方式1时,若SM2=0,则RB8是接收到的停止位。
TI - 发送中断标志位 \ 在方式0时,当串行发送第8位数据结束时,或在其他方式,串行发送停止位的开始时,内部硬件使其置1,向CPU发出中断申请,在中断服务程序中,必须用软件将其清0,取消中断申请。
RI - 接收中断标志位 \ 在方式0时,当串行发送第8位数据结束时,或在其他方式,串行接收停止位的中间时,内部硬件使其置1,向CPU发出中断申请,在中断服务程序中,必须用软件将其清0,取消中断申请。

⚠️注意:TI 、RI必须手动软件清零

6.波特率计算方式

  • 方式0的波特率 = fosc / 12
  • 方式1的波特率 = (2SMOD / 32) x (T1溢出率)
  • 方式2的波特率 = (2SMOD /64) x fosc
  • 方式3的波特率 = (2SMOD /32) x (T1溢出率)

式中, fosc为系统晶振频率,通常为12MHz或11.0592MHz,SMOD是PCON寄存器的最高位。
T1溢出率是定时器T1溢出的频率,只要算出T1定时器每溢出一次所需要的时间T,那么T的倒数1/T就是它的溢出率。
如:设定时器T1每50ms溢出一次,那么其溢出率 t 就是20Hz。则 初值 = 2N - t / T机器周期

附:常用波特率初值表

金善愚单片机资料,51单片机,单片机,51单片机

  • 常用的波特率通常按规范取为1200、2400、4800、9600…若采用12MHz或6MHz计算出的T1的定时初值将不是一个整数,这样通信时便会产生积累误差,进而产生波特率误差,影响串行通信的同步性能。
  • 解决的方法只有调整单片机的时钟频率,通常采用11.0592MHz晶振。因为用它能够非常准确的计算出T1的定时初值。

总结

以上就是本文要讲的内容。文章来源地址https://www.toymoban.com/news/detail-780846.html

到了这里,关于单片机 | 51单片机原理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 126、仿真-基于51单片机16×16点阵滚动显示仿真设计(Proteus仿真+程序+配套资料等)

    方案选择 单片机的选择 方案一:STM32系列单片机控制,该型号单片机为LQFP44封装,内部资源足够用于本次设计。STM32F103系列芯片最高工作频率可达72MHZ,在存储器的01等等待周期仿真时可达到1.25Mip/MHZ(Dhrystone2.1)。内部128k字节的闪存程序存储器,也就是说代码量可以写到128k字

    2024年02月17日
    浏览(38)
  • 208、仿真-51单片机脉搏心率与心电报警Proteus仿真设计(程序+Proteus仿真+配套资料等)

    目录 一、硬件设计 二、设计功能 三、Proteus仿真图 四、程序源码 资料包括: 需要完整的资料可以点击下面的名片加下我,找我要资源压缩包的百度网盘下载地址及提取码。 方案选择 单片机的选择 方案一:STM32系列单片机控制,该型号单片机为LQFP44封装,内部资源足够用于

    2024年02月12日
    浏览(30)
  • 【MCS-51】51单片机结构原理

    至今为止,MCS-51系列单片机有许多种型号的产品:其中又分为普通型51(8031、8051、89S51)和增强型52(8032、8052、89S52等)。它们最大的区别在于存储器配置各有差异。下面我举例子的都是8051这一系列的单片机。 目录 8051单片机的构成 CPU 🐱计算器 🎈计算单元及其寄存器 🎈

    2024年02月02日
    浏览(36)
  • 单片机原理与应用课程设计-基于51单片机的时钟日历

    摘 要 本课程设计是基于51单片机的日历时钟设计。作为嵌入式系统中常用的控制器,单片机在各种电子设备和系统中广泛应用。日历时钟作为一个常见的功能模块,在现代生活中具有重要意义。因此,设计一个基于51单片机的日历时钟,不仅有助于我们掌握单片机编程技术和

    2024年02月20日
    浏览(47)
  • 122、仿真-基于51单片机的电量监测电压电流和温度报警系统设计(Proteus仿真+程序+流程图+配套资料等)

    方案选择 单片机的选择 方案一:STM32系列单片机控制,该型号单片机为LQFP44封装,内部资源足够用于本次设计。STM32F103系列芯片最高工作频率可达72MHZ,在存储器的01等等待周期仿真时可达到1.25Mip/MHZ(Dhrystone2.1)。内部128k字节的闪存程序存储器,也就是说代码量可以写到128k字

    2024年02月16日
    浏览(35)
  • 51单片机蓝牙模块(HC05)运行原理

    在所有工作进行之前首先看一看自己的蓝牙模块是否是正常的,这一步很重要。一块正常的蓝牙模块是所有后续工作的基础! 首先把蓝牙模块链接到51单片机上 这时需要注意!!!我们需要将 蓝牙模块的RXD和单片机上的P30(RXD)引脚连接,将蓝牙模块的TXD和单片机上的P31(

    2023年04月08日
    浏览(51)
  • 51单片机P0~P3口工作原理

    多路开关MUX决定P0.x是作数据/地址引脚还是作通用I/O引脚。 三态缓冲器BUF1,BUF2由C1,C2控制是读锁存器还是读引脚 控制线置1,MUX连通地址/数据线,此时作P0.x数据/地址引脚 发出信号 数据/地址线置1,V1导通,V2截止。P0.x输出1的数据/地址信号; 数据/地址线置0,V1截止,V2导通。

    2024年04月12日
    浏览(31)
  • 基于51单片机的电子时钟(原理图,代码)

    所需要使用的元器件:  代码:(使用的是keil5) #include reg52.h             //调用单片机头文件 #define uchar unsigned char  //无符号字符型 宏定义    变量范围0~255 #define uint  unsigned int     //无符号整型 宏定义    变量范围0~65535   //数码管段选定义      0     1    2    

    2024年02月07日
    浏览(34)
  • 51单片机静态数码管原理及代码

    单个数码管有 8个LED灯 ,通过输入电平点 亮a~g可显示数字 ,以下为原理图:   数码管原理图分为共阴极与共阳极两种 : ① 共阴极 :a~dp位于发光二极管的阳极(即高电平的一端)部分,左接GND端 ② 共阳极 :a~dp位于发光二极管的阴极(即低电平的一端)部分,右接VCC电源

    2024年02月06日
    浏览(52)
  • 定量分析计算51单片机复位电路工作原理 怎么计算单片机复位电容和电阻大小

    下面画出等效电路图  可以知道单片机内必然有一个电阻RX,为了简化分析,我们假设他是线性电阻(不带电容,电感的支路) 还有一个基础知识: 电容器的充电放电曲线: 还需要知道电容电压的变化是连续的,(高数知识)无法跳变。 一个很大的误区就是认为电容一上电

    2024年02月12日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包