51单片机学习摘要

本文最后更新于:2022年5月29日 上午

学习51单片机的知识点记录。

单片机主要掌握以下几点

最小系统能够运行起来的必要条件

  1. 电源

  2. 晶振

  3. 复位电路


对单片机任意IO口的随意操作

  1. 输出控制电平高低

  2. 输出检测电平高低。


定时器

重点掌握最常用的方式2

中断

外部中断、定时器中断、串口中断

串口通信

单片机之间、单片机与计算机间


### 数字电路中只有两种电平:高和低

定义单片机为TTL电平:

    高 +5V      低 0V

RS232电平:计算机的串口

     高 -12V     低+12V


### P3第二功能各引脚功能定义
Name Description
P3.0 RXD串行口输入
P3.1 TXD串行口输出
P3.2 INT0外部中断0输入
P3.3 INT1外部中断1输入
P3.4 T0定时器0外部输入
P3.5 T1定时器1外部输入
P3.6 WR外部写控制
P3.7 RD外部读控制

进制转换

二进制转十六进制:

二进制->十进制->十六进制

eg: 0001B -> 1 -> 1H


#### 十进制转十六进制 十进制: 0、1、2、3、4、5、6、7、8、9、10、11、12、13、14、15

分别对应为十六进制:0、1、2、3、4、5、6、7、8、9、 A、 B、 C、 D、 E、 F

如:0001B -> 1 -> 1H 

B表示为二进制,H为十六进制

       1001B -> 9 -> 9H

       1010B -> 10 -> AH

       0010 1100 -> 44 -> 2CH

MbpzHe.png


### C-51的运算符

与C语言基本相同:

1
2
3
4
5
6
7
8
9
10
11
12
13
+   -   *   /  (加 减 乘 除)

>   >=  <  <=  (大于  大于等于  小于  小于等于)

==  !=       (测试等于  测试不等于)

&&  ||  !      (逻辑与    逻辑或  逻辑非 )

>>  <<        (位右移    位左移)

& |          (按位与    按位或)

^ ~          (按位异或  按位取反)

### C-51的基本语句

与标准C语言基本相同:

1
2
3
4
5
6
7
8
9
10
  if               选择语句

  while           循环语句

  for            循环语句

  switch/case      多分支选择语句

  do-while         循环语句


### 单片机工作的基本时序

机器周期和指令周期

  1. 振荡周期: 也称时钟周期, 是指为单片机提供时钟脉冲信号的振荡源的周期,TX实验板上为11.0592MHZ。 

  2. 状态周期: 每个状态周期为时钟周期的 2 倍, 是振荡周期经二分频后得到的。

  3. 机器周期: 一个机器周期包含 6 个状态周期S1~S6, 也就是 12 个时钟周期。 在一个机器周期内, CPU可以完成一个独立的操作。 (1个机器周期=12 个时钟周期)

  4. 指令周期: 它是指CPU完成一条操作所需的全部时间。 每条指令执行时间都是有一个或几个机器周期组成。MCS - 51 系统中, 有单周期指令、双周期指令和四周期指令。


### 中断系统

中断请求标志

1、TCON的中断标志

Name Description
IT0(TCON.0) 外部中断0触发方式控制位。
当IT0=0时,为电平触发方式;
当IT0=1时,为边沿触发方式(下降沿有效)。
IE0(TCON.1) 外部中断0中断请求标志位。
IT1(TCON.2) 外部中断1触发方式控制位。
IE1(TCON.3) 外部中断1中断请求标志位。
TF0(TCON.5) 定时/计数器T0溢出中断请求标志位。
TF1(TCON.7) 定时/计数器T1溢出中断请求标志位。

中断允许控制

CPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的。

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

#### 中断响应条件
  • 中断源有中断请求;

  • 此中断源的中断允许位为1;

  • CPU开中断(即EA=1)。

以上三条同时满足时,CPU才有可能响应中断。


工作方式寄存器TMOD

工作方式寄存器TMOD用于设置定时/计数器的工作方式,低四位用于T0,高四位用于T1。其格式如下:

  • GATE:门控位。

    GATE=0时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时/计数器工作;

    GATA=1时,要用软件使TR0或TR1为1,同时外部中断引脚或也为高电平时,才能启动定时/计数器工作。即此时定时器的启动多了一条件。

  • C/T:定时/计数模式选择位。 

    C/T=0为定时模式;

    C/T=1为计数模式。

  • M1M0:工作方式设置位。

    定时/计数器有四种工作方式,由M1M0进行设置。


控制寄存器TCON

TCON的低4位用于控制外部中断,已在前面介绍。TCON的高4位用于控制定时/计数器的启动和中断申请。其格式如下:V1XwM4.png

TF1(TCON.7):T1溢出中断请求标志位。T1计数溢出时由硬件自动置TF1为1。CPU响应中断后TF1由硬件自动清0。T1工作时,CPU可随时查询TF1的状态。所以,TF1可用作查询测试的标志。TF1也可以用软件置1或清0,同硬件置1或清0的效果一样。

TR1(TCON.6):T1运行控制位。TR1置1时,T1开始工作;TR1置0时,T1停止工作。TR1由软件置1或清0。所以,用软件可控制定时/计数器的启动与停止。

TF0(TCON.5):T0溢出中断请求标志位,其功能与TF1类同。

TR0(TCON.4):T0运行控制位,其功能与TR1类同。


### 定时/计数器应用举例 

初始化程序应完成如下工作:

  • 对TMOD赋值,以确定T0和T1的工作方式

  • 计算初值,并将其写入TH0、TL0或TH1、TL1。

  • 中断方式时,则对IE赋值,开放中断。

  • 使TR0或TR1置位,启动定时/计数器定时或计数。


51单片机学习摘要
https://kevinloongc.github.io/posts/f2ded1dc.html
作者
Kevin Loongc
发布于
2019年4月20日
许可协议