第四十九节 单片机编程与中断《电工技术模块》湖南省(对口招生)电工电子类 知识点讲解

2026-05-06
| 19页
| 23人阅读
| 0人下载

内容正文:

湖南省(对口招生)电工电子类《电工技术模块》知识点讲解 单片机编程与中断 【考纲要求】 1.识记 MCS-51 单片机指令系统的基本格式、7 种寻址方式及常用指令功能,掌握核心指令的执行过程与结果分析。 2.理解 MCS-51 单片机中断系统的组成、5 个中断源的特性及中断优先级控制,掌握中断允许与触发方式的设置方法。 3.掌握定时器 / 计数器的 4 种工作方式,能进行定时 / 计数初值计算及初始化程序编写。 4.能编写简单的中断服务程序和定时器应用程序,具备基础的程序调试与故障分析能力。【知识网络】 【知识和技能要点】 考点 1 MCS-51 指令系统与寻址方式(识记 + 应用) 1. 指令基本格式 MCS-51 单片机指令由操作码和操作数两部分组成,标准格式为: [标号:] 操作码 [操作数1] [,操作数2] [,操作数3] [;注释] 2. 操作码:规定指令的功能(如 MOV 表示数据传送) · 操作数:指令的操作对象,可无操作数或最多 3 个操作数 2. 7 种寻址方式(高频考点) 寻址方式 操作数位置 符号标识 典型指令 易错提醒 立即寻址 指令中直接给出 # MOV A, #30H 立即数只能作源操作数,不能作目的操作数 直接寻址 内部 RAM 低 128B 或 SFR 直接地址 MOV A, 30H 注意与立即寻址的区别(无 #号) 寄存器寻址 通用寄存器 R0-R7、A、B、DPTR 寄存器名 MOV A, R0 仅指定寄存器可用,不能用 R8-R15 寄存器间接寻址 内部 / 外部 RAM,地址在寄存器中 @ MOV A, @R0 MOVX A, @DPTR R0/R1 仅寻址内部 RAM 低 128B 和外部 RAM 低 256B 变址寻址 程序存储器 @A+DPTR/@A+PC MOVC A, @A+DPTR 仅用于访问程序存储器中的常数表 相对寻址 程序存储器 rel SJMP 05H 偏移量范围 - 128~+127 位寻址 内部 RAM 位寻址区 (20H-2FH) 或 SFR 可寻址位 位地址 SETB P1.0 位地址可直接写或用 "寄存器。位" 表示 3. 常用指令分类详解 (1)数据传送类指令(最常用) · 内部 RAM 传送:MOV 目的操作数, 源操作数 例:MOV R0, #20H(将立即数 20H 送入 R0) 2. 外部 RAM 传送:MOVX(必须用 DPTR 或 R0/R1 间接寻址) 例:MOVX @DPTR, A(将 A 的内容送入外部 RAM DPTR 指向的单元) 3. 程序存储器传送:MOVC(仅变址寻址) 例:MOVC A, @A+DPTR(查表指令) · 堆栈操作:PUSH 直接地址(压栈)、POP 直接地址(弹栈) 易错点:堆栈操作遵循 "先压后弹" 原则,SP 先加 1 再压栈,先弹栈再减 1 (2)算术运算类指令 · 加法:ADD A, 源操作数(不带进位)、ADDC A, 源操作数(带进位) 2. 减法:SUBB A, 源操作数(必须带借位) · 乘除:MUL AB(A×B,低 8 位在 A,高 8 位在 B)、DIV AB(A÷B,商在 A,余数在 B) (3)控制转移类指令 · 无条件转移:SJMP(短转移,±127B)、AJMP(绝对转移,2KB)、LJMP(长转移,64KB) 4. 子程序调用:ACALL(短调用)、LCALL(长调用) · 返回指令:RET(子程序返回)、RETI(中断服务程序返回,必须用此指令) (4)位操作类指令 · 位传送:MOV C, bit、MOV bit, C · 位操作:SETB bit(置 1)、CLR bit(清零)、CPL bit(取反) 【练习题】 一、单项选择题 1.MCS-51 单片机指令中,立即寻址的操作数前必须加的符号是( ) A. # B. @ C. $ D. & 2.下列指令中,属于寄存器间接寻址的是( ) A. MOV A, R0 B. MOV A, 30H C. MOV A, @R0 D. MOV A, #30H 3.执行指令MOV A, #20H后,累加器 A 的内容是( ) A. 00H B. 20H C. 30H D. 不确定 4.下列指令中,能访问外部 RAM 的是( ) A. MOV A, 30H B. MOVX A, @DPTR C. MOVC A, @A+DPTR D. PUSH ACC 5.MCS-51 单片机中,堆栈操作的指令是( ) A. MOV 和 MOVX B. PUSH 和 POP C. ADD 和 SUBB D. RL 和 RR 6.执行指令CLR A后,累加器 A 的内容是( ) A. 00H B. FFH C. 01H D. 不确定 7.下列指令中,属于位操作指令的是( ) A. MOV A, R0 B. SETB P1.0 C. ADD A, #10H D. SJMP $ 8.执行指令MUL AB后,乘积的高 8 位存放在( ) A. 累加器 A B. 寄存器 B C. 寄存器 DPTR D. 程序计数器 PC 9.下列寻址方式中,能访问程序存储器的是( ) A. 直接寻址 B. 寄存器间接寻址 C. 变址寻址 D. 相对寻址 10.执行指令ANL A, #0FH后,累加器 A 的( ) A. 高 4 位清零,低 4 位不变 B. 低 4 位清零,高 4 位不变 C. 全部位清零 D. 全部位置 1 二、填空题 1.MCS-51 单片机指令由( )和( )两部分组成。 2.立即寻址的操作数前必须加( )符号,寄存器间接寻址的操作数前必须加( )符号。 3.MCS-51 单片机共有( )种寻址方式,其中访问外部 RAM 用( )指令。 4.执行指令MOV A, #10H后,A 的内容是( );执行指令MOV A, 10H后,A 的内容是( )。 5.堆栈操作指令中,压栈指令是( ),弹栈指令是( )。 6.乘法指令MUL AB执行后,乘积的低 8 位存放在( ),高 8 位存放在( )。 7.位寻址区位于内部 RAM 的( )单元,共( )位。 8.控制转移类指令中,原地跳转指令是( )。 9.访问程序存储器的指令是( ),只能用( )寻址方式。 10.算术运算类指令中,带进位加法指令是( ),带借位减法指令是( )。 三、综合题 1.简述 MCS-51 单片机的 7 种寻址方式,并各举一条典型指令。 2.分析下列指令序列执行后,累加器 A、R0 和内部 RAM 40H 单元的内容: (1)MOV A, #30H (2)MOV R0, #40H (3)MOV @R0, A (4)ADD A, #10H (5)XCH A, @R0 3.编写一段程序,将内部 RAM 30H 单元的内容与 31H 单元的内容进行交换。 4.编写一段程序,将外部 RAM 2000H 单元的内容传送到内部 RAM 50H 单元。 【答案】 一、单项选择题 1.A 2. C 3. B 4. B 5. B 6. A 7. B 8. B 9. C 10. A 二、填空题 1.操作码;操作数 2.#;@ 3.7;MOVX 4.10H;内部 RAM 10H 单元的内容 5.PUSH;POP 6.累加器 A;寄存器 B 7.20H~2FH;128 8.SJMP $ 9.MOVC;变址 10.ADDC;SUBB 三、综合题 1.答:7 种寻址方式及典型指令如下: (1)立即寻址:MOV A, #20H (2)直接寻址:MOV A, 30H (3)寄存器寻址:MOV A, R0 (4)寄存器间接寻址:MOV A, @R1 (5)变址寻址:MOVC A, @A+DPTR (6)相对寻址:SJMP NEXT (7)位寻址:SETB P1.0 2.答:执行结果: (1)A=30H (2)R0=40H (3)内部 RAM 40H 单元 = 30H (4)A=40H (5)A=30H,内部 RAM 40H 单元 = 40H 最终:A=30H,R0=40H,内部 RAM 40H 单元 = 40H 3.答:参考程序: MOV A, 30H XCH A, 31H MOV 30H, A 4.答:参考程序: MOV DPTR, #2000H MOVX A, @DPTR MOV 50H, A 考点 2 中断系统与定时器 / 计数器(理解 + 应用) 1. 中断系统组成 MCS-51 单片机有5 个中断源,2 级中断优先级,可实现中断嵌套。 (1)5 个中断源及特性 中断源 符号 触发方式 中断请求标志 中断向量地址 外部中断 0 INT0 低电平 / 下降沿 IE0 0003H 定时器 0 中断 T0 计数溢出 TF0 000BH 外部中断 1 INT1 低电平 / 下降沿 IE1 0013H 定时器 1 中断 T1 计数溢出 TF1 001BH 串行口中断 UART 发送 / 接收完成 TI/RI 0023H (2)核心控制寄存器 · 中断允许寄存器 IE(可位寻址,地址 A8H):控制中断的打开与关闭 · EA(IE.7):总中断允许位,置 1 允许所有中断,置 0 禁止所有中断(必须打开) 1. ET0(IE.1):定时器 0 中断允许位 2. EX0(IE.0):外部中断 0 中断允许位 例:SETB EA SETB ET0(打开总中断和定时器 0 中断) · 中断优先级寄存器 IP(可位寻址,地址 B8H):设置中断优先级 · PT0(IP.1):定时器 0 优先级位,置 1 为高优先级,置 0 为低优先级 · 高优先级中断可打断低优先级中断,同级中断不能相互打断 · 定时器 / 计数器控制寄存器 TCON(可位寻址,地址 88H):控制外部中断触发方式和定时器运行 2. IT0(TCON.0):外部中断 0 触发方式,置 1 为下降沿触发,置 0 为低电平触发 3. TR0(TCON.4):定时器 0 运行控制位,置 1 启动定时器,置 0 停止定时器 4. TF0(TCON.5):定时器 0 溢出标志位,计数溢出时置 1,申请中断 2. 定时器 / 计数器 MCS-51 单片机有两个 16 位定时器 / 计数器 T0 和 T1,可实现定时或外部脉冲计数功能。 (1)工作方式寄存器 TMOD(不可位寻址,地址 89H) · 高 4 位控制 T1,低 4 位控制 T0 · GATE 位:置 0 时仅由 TRx 控制定时器启动;置 1 时需 TRx 和 INTx 同时为 1 才能启动 · C/T 位:置 0 为定时模式(对内部机器周期计数);置 1 为计数模式(对外部脉冲计数) · M1M0 位:工作方式选择 M1M0 工作方式 位数 特点 应用场景 00 方式 0 13 位 计数范围小,兼容性设计 极少使用 01 方式 1 16 位 计数范围大,需手动重装初值 最常用,定时 / 计数 10 方式 2 8 位 自动重装初值,无需手动干预 精确脉冲产生、串口波特率 11 方式 3 双 8 位 仅 T0 可用,分为两个独立 8 位定时器 需多个定时器时 (2)定时初值计算(高频考点) 4. 机器周期:Tcy = 12 / fosc(fosc 为晶振频率,常用 12MHz,此时 Tcy=1μs) · 定时时间公式:T = (2ⁿ - X) × Tcy 其中:n 为定时器位数(方式 1 n=16,方式 2 n=8),X 为定时器初值 · 初值计算公式:X = 2ⁿ - T / Tcy 例:晶振频率 12MHz,用 T0 方式 1 定时 1ms,计算初值: Tcy=1μs,T=1ms=1000μs,n=16 X=2¹⁶ - 1000/1 = 65536-1000=64536=FC18H 所以 TH0=0FCH,TL0=18H (3)定时器初始化步骤 · 设置 TMOD 寄存器,确定工作方式 · 计算初值,写入 THx 和 TLx · 设置 IE 寄存器,打开总中断 EA 和对应定时器中断 · 设置 TRx,启动定时器 【练习题】 一、单项选择题 1.MCS-51 单片机共有( )个中断源。 A. 3 B. 5 C. 7 D. 9 2.定时器 / 计数器 0 的中断向量地址是( ) A. 0003H B. 000BH C. 0013H D. 001BH 3.下列寄存器中,用于控制中断允许的是( ) A. TCON B. TMOD C. IE D. IP 4.定时器 / 计数器工作方式 1 是( )位定时器 / 计数器。 A. 8 B. 13 C. 16 D. 32 5.晶振频率为 12MHz 时,机器周期为( ) A. 1μs B. 2μs C. 12μs D. 1ms 6.下列关于定时器方式 2 的描述,正确的是( ) A. 16 位定时器,溢出后需手动重装初值 B. 8 位自动重装初值定时器 C. 仅 T0 可用 D. 用于计数模式时不能产生中断 7.外部中断 0 的触发方式由( )位控制。 A. IT0 B. IE0 C. IT1 D. IE1 8.中断优先级寄存器 IP 中,PT0 位置 1 表示( ) A. 外部中断 0 为高优先级 B. 定时器 0 为高优先级 C. 外部中断 1 为高优先级 D. 定时器 1 为高优先级 9.启动定时器 0 的指令是( ) A. SETB TR0 B. SETB TF0 C. SETB ET0 D. SETB EA 10.中断服务程序返回必须使用的指令是( ) A. RET B. RETI C. LJMP D. SJMP 二、填空题 1. MCS-51 单片机的 5 个中断源分别是( )、( )、( )、( )、( )。 2. 中断允许寄存器 IE 中,总中断允许位是( ),定时器 0 中断允许位是( )。 3. 定时器 / 计数器的工作方式由( )寄存器设置,运行控制寄存器是( )。 4. 定时器方式 1 是( )位定时器,方式 2 是( )位自动重装初值定时器。 5. 晶振频率为 12MHz 时,用 T0 方式 1 定时 1ms,初值应为( )H,TH0=( )H,TL0=( )H。 6. 外部中断 0 的中断向量地址是( ),串行口中断的中断向量地址是( )。 7. 外部中断的触发方式有( )触发和( )触发两种。 8. 定时器 / 计数器有( )模式和( )模式两种工作模式,由 C/T 位控制。 9. 中断优先级分为( )级和( )级,通过( )寄存器设置。 10. 定时器溢出时,( )标志位置 1,( )申请中断,CPU 响应中断后该标志位。 三、综合题 1.简述 MCS-51 单片机中断响应的基本过程。 2.已知晶振频率为 12MHz,用 T0 方式 1 定时 50ms,计算定时器初值,并写出完整的初始化程序。 3.编写一段程序,实现外部中断 0(下降沿触发)控制 P1.0 引脚的 LED,每触发一次中断,LED 状态翻转一次。 4.比较定时器方式 1 和方式 2 的主要区别,并说明各自的典型应用场景。 【答案】 一、单项选择题 1.B 2. B 3. C 4. C 5. A 6. B 7. A 8. B 9. A 10. B 二、填空题 1.外部中断 0;定时器 0 中断;外部中断 1;定时器 1 中断;串行口中断 2.EA;ET0 3.TMOD;TCON 4.16;8 5.FC18;FC;18 6.0003H;0023H 7.低电平;下降沿 8.定时;计数 9.高;低;IP 10.TF(溢出);自动清零 三、综合题 1.答:中断响应基本过程: (1)中断源发出中断请求,对应中断请求标志位置 1; (2)CPU 检测到中断请求,若总中断允许位 EA=1 且对应中断允许位为 1,则响应中断; (3)CPU 自动将当前程序计数器 PC 的值压入堆栈保护; (4)自动转入对应中断源的中断向量地址执行中断服务程序; (5)执行到 RETI 指令时,自动将堆栈中的 PC 值弹出,返回原程序断点处继续执行。 2.答:初值计算: 晶振 12MHz,Tcy=1μs,T=50ms=50000μs,方式 1 n=16 X=2¹⁶ - 50000/1 = 65536-50000=15536=3CB0H 初始化程序: MOV TMOD, #01H ; 设置T0为方式1定时 MOV TH0, #3CH ; 装入初值高8位 MOV TL0, #0B0H ; 装入初值低8位 SETB EA ; 开总中断 SETB ET0 ; 开定时器0中断 SETB TR0 ; 启动定时器0 3.答:参考程序: ORG 0000H LJMP MAIN ORG 0003H ; 外部中断0中断向量地址 LJMP INT0_ISR ORG 0100H MAIN: SETB IT0 ; 设置外部中断0为下降沿触发 SETB EA ; 开总中断 SETB EX0 ; 开外部中断0 SJMP $ ; 等待中断 INT0_ISR: ; 中断服务程序 CPL P1.0 ; 翻转P1.0引脚状态 RETI ; 中断返回 4.答:主要区别及应用场景: 特性 方式 1 方式 2 位数 16 位 8 位 初值重装 溢出后需手动重装 溢出后自动重装 THx 内容到 TLx 计数范围 0~65535 0~255 精度 较高,适合长定时 极高,适合精确短定时 典型应用 秒表、延时程序、脉冲计数 串口波特率发生器、精确方波产生 【真题演练】 1.已知 MCS-51 单片机内部 RAM 中,30H=25H,R0=40H,40H=3AH,累加器A=10H,寄存器B=05H。请依次执行下列指令,写出每一步执行后A、R0、30H、40H 单元的内容,并判断每条指令的寻址方式。 1.MOV A, @R0 2.ADD A, 30H 3.MOV @R0, A 4.MUL AB 【答案】 1.执行后:A=3AH,R0=40H,30H=25H,40H=3AH;寻址方式:寄存器间接寻址 2.执行后:A=5FH,R0=40H,30H=25H,40H=3AH;寻址方式:直接寻址 3.执行后:A=5FH,R0=40H,30H=25H,40H=5FH;寻址方式:寄存器间接寻址 4.执行后:A=1DH,B=02H,R0=40H,30H=25H,40H=5FH;寻址方式:寄存器寻址 【解析】 本题考查7 种寻址方式判断和数据传送、算术运算指令执行,是湖南对口必考基础题,易错点:混淆直接寻址与寄存器间接寻址、乘法指令结果存储规则(低 8 位存 A,高 8 位存 B)。 2.MCS-51 单片机采用12MHz 晶振,使用定时器 T0 的工作方式 1实现定时 20ms,请完成: 1.计算机器周期Tcy; 2.计算定时器 T0 的初值X(十六进制形式); 3.编写 T0 的完整初始化程序(开启中断、启动定时器)。 【答案】 1.机器周期:Tcy=12/fosc=12/12MHz=1μs 2.初值计算:方式 1 为 16 位定时器,X=216−T/Tcy=65536−20000=45536=0B1E0H 即:TH0=0B1H,TL0=0E0H 3.初始化程序: MOV TMOD, #01H ; 设置T0为方式1定时模式 MOV TH0, #0B1H ; 装入初值高8位 MOV TL0, #0E0H ; 装入初值低8位 SETB EA ; 开启总中断 SETB ET0 ; 开启T0中断 SETB TR0 ; 启动定时器T0 【解析】 本题考查定时器核心计算 + 初始化编程,是湖南对口选考模块最高频考点,易错点:晶振与机器周期换算、初值十六进制转换、TMOD/IE/TCON 寄存器配置。 3.设计 MCS-51 单片机应用程序:采用外部中断 0(下降沿触发),每触发一次中断,将P1.0引脚输出电平翻转(实现 LED 亮灭切换)。 要求: 1.画出程序结构(主程序 + 中断服务程序); 2.编写完整汇编程序(包含中断向量地址配置)。 【答案】 完整汇编程序: ORG 0000H ; 程序入口地址 LJMP MAIN ; 跳转到主程序 ORG 0003H ; 外部中断0中断向量地址 LJMP INT0_PRO ; 跳转到中断服务程序 ORG 0100H ; 主程序起始地址 MAIN: SETB IT0 ; 设置INT0为下降沿触发 SETB EA ; 开启总中断 SETB EX0 ; 开启外部中断0 SJMP $ ; 原地等待中断触发 INT0_PRO: ; 外部中断0服务程序 CPL P1.0 ; 翻转P1.0引脚电平 RETI ; 中断返回(必须用RETI) END 【解析】 本题考查中断向量配置、触发方式设置、中断服务程序编写,是湖南对口中断模块核心应用题,易错点:中断向量地址写错、用 RET 代替 RETI、忘记开启总中断 EA。 原创精品资源学科网独家享有版权,侵权必究 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $

资源预览图

第四十九节 单片机编程与中断《电工技术模块》湖南省(对口招生)电工电子类 知识点讲解
1
第四十九节 单片机编程与中断《电工技术模块》湖南省(对口招生)电工电子类 知识点讲解
2
第四十九节 单片机编程与中断《电工技术模块》湖南省(对口招生)电工电子类 知识点讲解
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。