【期末复习02】客观题知识点总结

目录

1、寄存器总结

1.1 常用 SFR 汇总表格

1.2、TCON(定时器控制寄存器)1.3、TMOD(定时器模式寄存器)

一、基本概述

二、寄存器 8 位位定义(从高位到低位:D7 ~ D0)

三、逐位功能详解

1. 定时器 / 计数器相关位(D7~D4,T1、T0)

(1)TF1(D7):定时器 1 溢出中断标志位

(2)TR1(D6):定时器 1 运行控制位

(3)TF0(D5):定时器 0 溢出中断标志位

(4)TR0(D4):定时器 0 运行控制位

2. 外部中断相关位(D3~D0,INT1、INT0)

(1)IE1(D3):外部中断 1 中断请求标志

(2)IT1(D2):外部中断 1 触发方式选择

(3)IE0(D1):外部中断 0 中断请求标志

(4)IT0(D0):外部中断 0 触发方式选择

四、常用操作示例(C51)

五、核心总结

1.3、TMOD(定时器模式寄存器)

二、每一位功能

1)C/T 定时 / 计数选择

2)GATE 门控

3)M1 M0 4 种模式

三、最常用配置

1. T0 定时器 16 位模式(模式 1)

2. T1 定时器 16 位模式(模式 1)

3. T0 定时 + T1 定时 都用 16 位

4. T1 8 位自动重装(串口波特率用)

四、一句话记忆口诀

五、总结

1.3、中断允许寄存器 IE(Interrupt Enable)/ 中断优先级寄存器 IP(Interrupt Priority)

一、中断允许寄存器 IE(Interrupt Enable)

1. IE 各位定义

取值

2. 最常用配置(直接背)

二、中断优先级寄存器 IP(Interrupt Priority)

1. IP 各位定义

2.中断号必须记住

3. 优先级规则

4. 常用设置

三、超简记忆口诀

四、一句话总结

五、51 单片机 定时器 0 中断 完整标准代码

2、中断总结

2.1 外部中断

一、两个外部中断

二、核心寄存器

三、配置三步法

四、中断服务函数示例代码

五、速记口诀

3、IO端口总结

一、51 有哪 4 个 IO 口?

二、最重要特性(考点 + 实用)

四、4 个 IO 口对比总结表

五、一句话速记


1、寄存器总结

1.1 常用 SFR 汇总表格

SFR类别寄存器功能
定时器/计数器TCON定时器控制
定时器/计数器TMOD定时器模式设置
中断系统IE中断允许控制
中断系统IP中断优先级设置
串行通信SCON串口控制

1.2、TCON(定时器控制寄存器)1.3、TMOD(定时器模式寄存器)

一、基本概述

TCON(Timer Control)是 51 单片机定时器 / 计数器控制寄存器,字节地址 88H,可位寻址,用来控制定时器启停、区分中断标志


二、寄存器 8 位位定义(从高位到低位:D7 ~ D0)

位序D7D6D5D4D3D2D1D0
位名TF1TR1TF0TR0IE1IT1IE0IT0

三、逐位功能详解

1. 定时器 / 计数器相关位(D7~D4,T1、T0)
(1)TF1(D7):定时器 1 溢出中断标志位
  • 定时器 1 计数溢出时,硬件自动置 1
  • 进入中断服务程序后,硬件自动清 0
  • 若用查询方式,需软件手动清 0
(2)TR1(D6):定时器 1 运行控制位
  • TR1 = 1:启动定时器 / 计数器 T1
  • TR1 = 0:关闭定时器 / 计数器 T1
(3)TF0(D5):定时器 0 溢出中断标志位

功能同 TF1,对应定时器 T0 溢出标志。

(4)TR0(D4):定时器 0 运行控制位

功能同 TR1,控制 T0 启停:

  • TR0 = 1:启动 T0
  • TR0 = 0:关闭 T0

2. 外部中断相关位(D3~D0,INT1、INT0)

这四位不属于定时器,是外部中断控制位,集成在 TCON 中:

(1)IE1(D3):外部中断 1 中断请求标志

有中断触发时硬件置 1,响应中断后硬件清 0。

(2)IT1(D2):外部中断 1 触发方式选择
  • IT1 = 0低电平触发
  • IT1 = 1下降沿触发
(3)IE0(D1):外部中断 0 中断请求标志

有中断触发时硬件置 1,响应中断后硬件清 0。

(4)IT0(D0):外部中断 0 触发方式选择
  • IT0 = 0低电平触发
  • IT0 = 1下降沿触发

四、常用操作示例(C51)

TR0 = 0; //启动定时器0
TR1 = 1; //关闭定时器1
TF0 = 0; //软件清除T0溢出标志(查询模式)
TCON = 0X01; //TR0=1,启动T0

五、核心总结

  • 控制定时器启停只看:TR0、TR1(最常用)
  • 判断定时器是否溢出看:TF0、TF1
  • 低四位为外部中断控制,和定时器功能无关。

1.3、TMOD(定时器模式寄存器)

  • 作用:设置 T0、T1 的工作方式
  • 地址:89H不可位寻址(只能整体赋值)
  • 结构:8 位,分高 4 位 (T1) + 低 4 位 (T0
    高4位:控制 T1
    低4位:控制 T0
    
    D7 D6 D5 D4   D3 D2 D1 D0
    T1门控 T1模式  T0门控 T0模式
    


    二、每一位功能

    符号功能
    D7GATE1T1 门控位
    D6C/T1T1 定时 / 计数选择
    D5 D4M1 M0T1 工作模式
    D3GATE0T0 门控位
    D2C/T0T0 定时 / 计数选择
    D1 D0M1 M0T0 工作模式
    1)C/T 定时 / 计数选择
    • 0 = 定时器 (对系统时钟分频计数)
    • 1 = 计数器 (对外部引脚脉冲计数)
    2)GATE 门控
    • 0 = 软启动 → TRx=1 就启动
    • 1 = 硬启动 → TRx=1 INTx = 高电平 才启动
    3)M1 M0 4 种模式
    M1 M0模式说明
    00模式 013 位定时器
    01模式 116 位定时器(最常用)
    10模式 28 位自动重装(波特率用)
    11模式 3拆分模式(仅 T0 可用)

    三、最常用配置

    1. T0 定时器 16 位模式(模式 1)
    TMOD = 0x01;
    
    • 定时功能
    • 16 位
    • 软件启动
    2. T1 定时器 16 位模式(模式 1)
    TMOD = 0x10;
    
    3. T0 定时 + T1 定时 都用 16 位
    TMOD = 0x11;
    
    4. T1 8 位自动重装(串口波特率用)
    TMOD = 0x20;
    

    四、一句话记忆口诀

    高四位管T1,低四位管T0
    0是定时,1是计数
    00模式0,01模式1,10模式2,11模式3
    门控0软启动,1硬启动
    

    五、总结

    TMOD 用来设置定时器怎么工作

    • 8 位寄存器
    • 分 T1、T0 两组
    • 最常用:0x01(T0 模式 1 定时)0x10(T1 模式 1 定时)0x20(T1 自动重装)

    1.3、中断允许寄存器 IE(Interrupt Enable)中断优先级寄存器 IP(Interrupt Priority)

    一、中断允许寄存器 IE(Interrupt Enable)

    作用:控制总中断 + 各个分中断 的 “开 / 关”

    • 位寻址:可以单独开关某一个中断
    • 核心口诀:用哪个中断,必须开总中断 + 开对应分中断
    1. IE 各位定义
    符号功能
    D7EA总中断允许
    D4ES串口中断
    D3ET1定时器 T1 中断
    D2EX1外部中断 1
    D1ET0定时器 T0 中断
    D0EX0外部中断 0
    取值
    • 1 = 允许中断
    • 0 = 禁止中断

    2. 最常用配置(直接背)

    开总中断 + 开定时器 T0 中断

    c

    运行

    EA = 1;    // 开总中断
    ET0 = 1;   // 开 T0 中断
    

    开总中断 + 开定时器 T1 中断

    c

    运行

    EA = 1;
    ET1 = 1;
    

    开总中断 + 开串口中断

    c

    运行

    EA = 1;
    ES = 1;
    


    二、中断优先级寄存器 IP(Interrupt Priority)

    作用:设置中断优先级(高 / 低)

    • 51 单片机:2 级优先级

      • 1 = 高优先级

      • 0 = 低优先级

    1. IP 各位定义
    IP 寄存器:
    D7    D6    D5    D4    D3    D2    D1    D0
    --   --   PT2   PS    PT1   PX1   PT0   PX0
    

    2.中断号必须记住

    中断源

    中断号

    外部中断 0

    0

    定时器 0 中断

    1

    外部中断 1

    2

    定时器 1 中断

    3

    串口中断

    4


    3. 优先级规则
    1. 高优先级 > 低优先级

    2. 同优先级:按硬件默认顺序

    默认优先级顺序(从高到低)

    外部中断 0 → 定时器 0 → 外部中断 1 → 定时器 1 → 串口中断


    4. 常用设置

    让定时器 T0 为高优先级

    c

    PT0 = 1;
    

    让定时器 T1 为高优先级

    c

    PT1 = 1;
    


    三、超简记忆口诀

    IE(允许)

    • EA=1 总开关

    • ET0=1 T0 中断

    • ET1=1 T1 中断

    • EX0、EX1 外部中断

    • ES 串口中断

    IP(优先级)

    • 1 = 高,0 = 低

    • PT0、PT1 定时器优先级

    • PX0、PX1 外部优先级

    • PS 串口优先级


    四、一句话总结

    • IE:决定 “允不允许” 中断

    • IP:决定 “谁优先” 执行

    • 必须先 EA=1 开总中断,否则所有中断都无效

    五、51 单片机 定时器 0 中断 完整标准代码

    步骤:TMOD 设模式 → 装初值 → EA 开总中断 → ET0 开分中断 → PT0 设优先级 → TR0 启动 → 中断函数写功能

    #include <reg52.h>
    
    // 定义引脚(举例:LED闪烁)
    sbit LED = P1^0;
    
    // 定时器0初始化函数 【最标准模板】
    void Timer0_Init(void)
    {
        // 1. 设置 TMOD 模式
        TMOD = 0x01;  // T0 模式1:16位定时器
        
        // 2. 设置初值(11.0592MHz → 50ms中断一次)
        TH0 = 0x4C;   // 高8位
        TL0 = 0x00;   // 低8位
        
        // 3. 开中断(IE 中断允许)
        EA  = 1;      // 开总中断
        ET0 = 1;      // 开 T0 中断
        
        // 4. 设置优先级(IP)
        PT0 = 1;      // T0 高优先级
        
        // 5. 启动定时器
        TR0 = 1;
    }
    
    // 定时器0中断服务函数
    void Timer0_ISR(void) interrupt 1
    {
        // 重新装初值(模式1必须手动重装)
        TH0 = 0x4C;
        TL0 = 0x00;
        
        // 中断要做的事
        LED = ~LED;   // LED翻转
    }
    
    // 主函数
    void main(void)
    {
        Timer0_Init();  // 初始化
        
        while(1)
        {
            // 主程序其他任务
        }
    }

    2、中断总结

    2.1 外部中断

    一、两个外部中断

    • INT0:外部中断 0(引脚 P3.2),中断号 0

    • INT1:外部中断 1(引脚 P3.3),中断号 2


    二、核心寄存器

    1. TCON(触发方式)

    • IT0:INT0 触发选择

      • IT0=0低电平触发

      • IT0=1下降沿触发

    • IT1:INT1 触发选择

      • IT1=0:低电平触发

      • IT1=1:下降沿触发

    2. IE(中断允许,开关)

    • EA = 1总中断打开

    • EX0 = 1:使能外部中断 0

    • EX1 = 1:使能外部中断 1


    三、配置三步法

    1. 开总中断:EA = 1;

    2. 开对应外部中断:EX0=1 / EX1=1

    3. 设置触发方式:IT0=1 / IT1=1


    四、中断服务函数示例代码

    示例 1:外部中断 0(下降沿触发)

    #include <reg51.h>
    sbit LED = P1^0;
    
    void Init_INT0(void)
    {
        EA  = 1;    // 开总中断
        EX0 = 1;    // 使能外部中断0
        IT0 = 1;    // 下降沿触发
    }
    
    // 外部中断0服务函数
    void INT0_ISR() interrupt 0
    {
        LED = ~LED; // 翻转LED
    }
    
    void main(void)
    {
        Init_INT0();
        while(1)
        {
            // 主循环
        }
    }

    示例 2:外部中断 1

    EA  = 1;
    EX1 = 1;
    IT1 = 1;
    
    void INT1_ISR() interrupt 2
    {
        // 功能代码
    }

    五、速记口诀

    总中断 EA 必开,EX0/EX1 分开关; IT 设为 1,下降沿最安全; 中断号记牢,0 是 INT0、2 是 INT1。

    3、IO端口总结

    一、51 有哪 4 个 IO 口?

    P0、P1、P2、P3 共 4 个 8 位并行口

    • P0:P0.0 ~ P0.7

    • P1:P1.0 ~ P1.7

    • P2:P2.0 ~ P2.7

    • P3:P3.0 ~ P3.7


    二、最重要特性(考点 + 实用)

    1. P0 口

    • 开漏输出,无内部上拉

    • 字节地址:80H

    • 输入时,先写入FF

    • 读引脚时,先向锁存器写“1”

    • 输出低电平:可以

    • 输出高电平:必须外接上拉电阻

    • 功能:通用 IO / 地址数据总线

    2. P1 口

    • 准双向口,带内部上拉

    • 字节地址:90H

    • 最常用、最简单,直接做 IO

    • 功能:通用 IO

    3. P2 口

    • 准双向口,带内部上拉

    • 字节地址:A0H

    • 功能:通用 IO / 高 8 位地址总线

    4. P3 口

    • 准双向口,带内部上拉

    • 字节地址:B0H

    • 双功能口(IO + 第二功能)

    • 常用第二功能:

    引脚第二功能说明
    P3.0RXD串口接收
    P3.1TXD串口发送
    P3.2INT0外部中断 0
    P3.3INT1外部中断 1
    P3.4T0定时器 0 外部输入
    P3.5T1定时器 1 外部输入
    P3.6WR外部写控制
    P3.7RD外部读控制

    四、4 个 IO 口对比总结表

    端口上拉电阻功能特点
    P0数据 / 地址总线需上拉,驱动强
    P1通用 IO最简单
    P2高地址总线扩展用
    P3第二功能中断、串口、定时器

    五、一句话速记

    • P0 开漏,要上拉

    • P1 最简单,纯 IO

    • P2 同 P1,可做地址

    • P3 双功能,带中断串口

    • 输入先写 1

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值