




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 主要复习知识点 第一章 微机计算机系统的基本知识 1 单片机就是在一片硅片上集成了中央处理器 随机存储器 只读存储器 中断系统 定时 计数器和多种 I O 口的微型计算机系统 该系统不带外部设备 从组成和功能上看 它已经具 备了计算机系统的基本属性 所以也可以称其为单片微型计算机 简称单片机 2 微型处理器是单片机的核心 它主要由三部分组成 寄存器阵列 运算器和控制器 3 程序计数器 PC 专门用于存放现行指令的 16 位地址 CPU 就是根据 PC 中的地址到 ROM 中读 取程序指令 每当取出现行指令一个字节后 PC 就自动加 1 PC 1 PC 当遇到转移指令或子 程序时 PC 内容会被指定的地址取代 实现程序转移 PC 用于存放 CPU 下一条要执行的指令 地址 是一个 16 位的专用寄存器 PC 的功能与作用 4 运算器用来完成算术运算和逻辑运算操作 是处理信息的主要部件 运算器主要由累加器 A 状态寄存器 PSW 算术运算单元 ALU 组成 累加器 A 用来存放参与算术运算和逻辑运算的一个操作数和运算结果 状态字寄存器 用来保存 ALU 操作运算的条件标志 如进位标志 奇偶标志等 算术运算单元 ALU 由加法器和其他逻辑电路组成 其基本功能是进行加法和移位运算 由 此实现其他各种算术和逻辑运算 领红包 打开支付宝首页搜索 512371172 即可领红包 领下面余额宝红包才是大红包 一般都是 5 10 元 支付的时候把支付方式转为余额宝就行呢 没钱 往里冲点 每天都可以领取哟 5 控制器是分析和执行指令的部件 控制器只要由程序计数器 PC 指令寄存器和指令译码器 组成 6 总线是用于传送信息的公共途径 总线可以分为数据总线 地址总线 控制总线 7 数据总线 DB 数据线 D0 D7 共 8 位 由 P0 提供 分时输送低 8 位地址 通过地址锁存器锁 存 和 8 位数据信息 数据总线是双向的 可以从 CPU 输出 也可以从外部输入到 CPU 8 地址总线 AB 地址线 A0 A15 共 16 位 P2 口提供高 8 位地址 A8 A15 P0 口经地址锁存器提 供低 8 位地址 A0 A7 片外存储器可寻址范围达到 64KB 即 65536 字节 9 控制总线 CB 控制总线由 P3 口的第二功能 P3 6 P3 7H 和 3 根独立的控制线ALE 和EA 组成 PSEN 10 存储器是用来存储数据和程序的部件 按其功能来分 存储器可以分为随机存储器 RAM 和只读存储器 ROM 两大类 QQ374289236 2 11 RAM 可以随机写入读出 读写速度快 读写方便 缺点是电源断电后 被存储的信息会丢 失 RAM 主要用于存放各种数据 12 ROM 一般用来存放固定的数据和程序 其特点是信息写入后 能长期保存 不会因断电而 丢失 所谓 只读 指不能写入 13 基本了解 ROM 的 5 种不同形式 MaskROM 淹膜 ROM OTPROM EPROM E PROM FlashROM 14 单片机程序设计语言可分为三类 机器语言 汇编语言和高级语言 机器语言 机器语言是计算机可以识别和直接执行的语言 它由一组二进制代码组成 不同 的微处理器机器语言也不同 汇编语言 用助记符替代机器语言中的操作码 用十六进制数代替二进制数 计算执行时 必须将汇编语言翻译成机器语言 汇编语言和机器语言一样 微处理器不同 汇编语言也不同 即不同的微处理器采用不同的汇编语言 思考与练习 思考与练习 1 1 什么是单片机 答 单片机就是在一片硅片上集成了中央处理器 随机存储器 只读存储器 中断系统 定时 计数器和多种 I O 口的微型计算机系统 该系统不带外部设备 从组成和功能上看 它已经 具备了计算机系统的基本属性 所以也可以称其为单片微型计算机 简称单片机 1 2 单片机的基本组成有哪些 答 单片机由中央处理器 随机存储器 只读存储器 中断系统 定时 计数器和多种 I O 口 组成 第二章 单片机的硬件结构 重点复习 15 15 简答题 简答题 80C51 单片机有 4 个 8 位的双向并行输入 输出 I O 端口 称为 P0 口 P1 口 P2 口和 P3 口 P0 口 P0 口是一个双功能的 8 位并行 I O 口 可用作输入 输出端口 又可作地址 数据总 线分时传输时低 8 位地址和 8 位数据 P1 口 P1 口是单一功能的并行 I O 口 只用作通用的数据输入 输出口 P2 口 P2 口是一个双功能的 8 位并行 I O 可用作通用的输入 输出口 又可用作高 8 位地 址总线 P3 口 P3 口是一个双功能的 8 位并行 I O 口 它的第一功能是通用输入 输出口 作第二功 能用时 各引脚定义如下 P3 0 RXD 串行口输入 P3 1 TXD 串行口输出 P3 2 外部中断 0 输入 QQ374289236 3 P3 3 外部中断 1 输入 P3 4 T0 定时 计数器 0 外部计数脉冲输入 P3 5 T1 定时 计数器 1 外部计数脉冲输入 P3 6 片外数据存储器写选通讯号输出 P3 7 片外数据存储器读选通讯号输出 16 基本时序单位 单片机的时序单位有 振荡周期 晶振的振荡周期 又称时钟周期 为最小的时序单位 状态周期 振荡频率经单片机内的二分频器分频后提供给片内 CPU 的时钟周期 因此 一个 状态周期包含 2 个振荡周期 机器周期 1 个机器周期由 6 个状态周期即 12 个振荡周期组成 是计算机执行一种基本操 作 如取指令 读存储器 写存储器等 的时间单位 指令周期 执行一条指令所需的时间 一个指令周期由 1 4 个机器周期组成 依据指令不 同而不同 4 种时序单位中 振荡周期和机器周期是单片机内计算其他时间值 例如 波特率 定时 器的定时时间等 的基本时序单位 例 单片机外接晶振频率 fosc 12MHZ 时的各种时序单位 振荡周期 1 fosc 1 12MHZ 0 0833us 状态周期 2 fosc 2 12MHZ 0 167us 机器周期 12 fosc 12 12MHZ 1us 指令周期 1 4 机器周期 1 4us 17 MCS 51 的存储器结构与常见的微型计算机的配置方法不同 采用哈佛结构它将程序存储器 和数据存储器分开 各有自己的寻址方式 控制信号和功能 程序存储器用来存放程序 始终 要保留的表格 常数 数据存储器存放程序运行中所需要的数据和结果 常数和变量 18 从物理空间 实际结构 看 MCS 51 有四个存储器地址空间 片内数据存储器 片外数据存储器 片内程序存储器 片外程序存储器 19 从逻辑上 使用角度 看 MCS 51 有三个存储器空间 片内 片外统一编址的程序存储器 片外数据存储器 片内数据存储器 20 程序存储器中的几个特殊地址的使用 地址 用途 0000H 复位操作后的程序入口 0003H 外部中断 0 服务程序入口 000BH 定时器 0 中断服务程序入口 0013H 外部中断 1 服务程序入口 QQ374289236 4 001BH 定时器 1 中断服务程序入口 0023H 串行口中断服务程序入口 21 外部数据存储器作用 用于存放随机读写的数据 外部数据存储器包括两部分空间 外部 RAM 扩展的 I O 口地址 内部数据存储器 单元数少 但最复杂 特殊功能寄存器空间 离散分布 作数据缓冲器 标志位等 22 程序存储器与外部数据存储器的比较 相同 地址线 A15 A0 不同 访问的指令不同 读写信号不同 访问程序寄存器的指令为 MOVC 指令 访问外部数 据存储器的指令为 MOVX 指令 程序寄存器 只读 PSEN 作为外部 ROM 读信号 外部数据存储 器 可读写 RD 作为读信号 WR 作为写信号 23 工作寄存器区的选择 RS1 程序状态寄存器 PSW 的 D4 位 RS0 程序状态寄存器 PSW 的 D3 位 RS1 RS0 寄存器区R0 R7所占单元的地址 0 0 0区00H 07H 0 1 1区08H 0FH 1 0 2区10H 17H 1 1 3区18H 1FH 复位时 自动选中 0 区 一旦选中其中一个区 其它三区只能作为普通 RAM 单元使用 而不能 作为工作寄存器使用 设置多个工作寄存器区可以方便保护现场 24 字节地址与位地址在使用上如何区别 例 MOV C 20H MOV A 20H 位操作指令 MOV C 20H 位地址只有 1bit 小圆区域 字节操作指令 MOV A 20H 字节地址共 8bit 大椭圆区域 25 位地址空间组成及位地址表示法 内部数据存储器的 20H 2FH 共 16 个单元可按位寻址 128 位 例 1 位地址 1EH 23H 6 即字节单元 23H 的 D6 位 QQ374289236 5 专用寄存器地址能被 8 整除的可按位寻址 例 2 位地址 D4H D0H 4 PSW 4 RS1 26 特殊功能寄存器的地址分配 名称必须记住 27 累加器 ACC 累加器为 8 位的寄存器 是程序中使用最频繁的寄存器 是用于存放中间 结果和数据传送的渠道 程序状态字寄存器 PSW PSW 也称为标志寄存器 CY 进 借位标志 CY 1 有进 借位 CY 0 无进 借位 AC 辅助进位标志 反映高半字节与低半字节之间的进 借位 AC 1 有进 借位 AC 0 无进 借位 QQ374289236 6 F0 用户标志位 RS1 RS0 工作寄存器的控制位 OV 溢出标志位 有溢出 OV 1 无溢出 OV 0 P 奇偶标志位 运算结果有奇数个 1 P 1 偶数个 1 P 0 D1 无效位 一般不用 数据指针 DPTR 数据指针 DPTR 是一个 16 位的专用寄存器 DPTR 主要用来存放 16 位地址 PC 用于存放 CPU 下一条要执行的指令地址 是一个 16 位的专用寄存器 27 访问不同的存储器空间使用不同的指令 程序存储器 使用 MOVC 指令 外部数据存储器 使用 MOVX 指令 内部数据存储器 使用 MOV 指 令 特殊功能寄存器 使用 MOV 指令 位地址空间 使用 MOV SETB CLR 等指令 28 堆栈是在单片机内部 RAM 中从某个选定的存储单元开始划定的一个地址连续的区域 堆栈 操作是在内存 RAM 区专门开辟出来的按照 先进后出 原则进行数据存取的一种工作方式 主 要用于子程序调用及返回和中断处理断点的保护和返回 SP 用来指示堆栈所处的位置 当数 据堆入栈区后 SP 的值也自动随之变化 51 单片机属于向上生长型堆栈 即向高地址方向生 成 29 用一个称为堆栈指针 SP 的特殊功能寄存器来给出栈顶存储单元的地址 堆栈指针 SP 中存 储的总是堆栈栈顶存储单元的地址 即堆栈指针 SP 总是指向堆栈栈顶 30 向上生长型堆栈出栈入栈的操作原则是 先进后出 或 后进先出 31 实现复位操作 必须使 RST 引脚 9 保持两个机器周期以上的高电平 32 复位是单片机的初始化操作 其主要功能是程序计数器 PC 值变为 0000 好 使单片机从 0000H 开始执行程序 上电复位后 RAM 的内容是随机的 寄存器 初始状态 寄存器 初始状态 PC 0000H ACC 00H PSW 00H SP 07H 思考与练习 思考与练习 2 1 51 单片机内部包括哪些主要部件 答 51 单片机包括中央处理器 CPU 数据存储器 RAM 只读存储器 ROM 并行输入输出口 P1 P3 口 串行口 并行口 定时 计数器 中断系统及特殊功能寄存器等 8 个部件 2 2 80C51 单片机的存储器有哪几种类型 可以划分为哪几个部分 QQ374289236 7 答 80C51 单片机的存储器按功能可以划分为两大类 随机存储器 RAM 和只读存储器 ROM 可以划分为以下五部分 片内程序存储器 片外程序存储器 片内数据存储器 特 殊功能寄存器 片外数据存储器 2 3 80C51 如何确定和改变当前工作寄存器区 答 在选择工作寄存器区时 可通过对特殊功能寄存器中的程序状态寄存器 PSW 的 RS1 和 RS0 的状态设置 来选择哪一组工作寄存器作为当前的工作寄存器组 单片机复位时 当前工作寄 存器默认为 0 组 2 4 位地址和字节地址如何区分 位地址 00H 7FH 与片内 RAM 的字节地址编址相同 容易混淆 区分方法 在 80C51 的指令系统中 有专门的位操作指令和字节操作指令来区分 位操作指 令 MOV C 20H 位地址只有 1bit 字节操作指令 MOV A 20H 字节地址共 8bit 2 6 PC 在执行指令过程中 起什么作用 答 PC 在执行指令过程中 PC 用于存放 CPU 下一条要执行的指令地址 是一个 16 位的专用寄 存器 第三章 51 单片机的指令系统 33 计算机所有的指令集合称为该计算机的指令系统 34 指令是基本格式 标号 操作码 目的操作数 源操作数 注释 标号 指令的符号地址 操作码 规定指令的操作功能 是指令格式中唯一不能空缺的部分 操作数 用于给指令的操作提供数据或地址 把左边的操作数称为目的操作数 右边的操作 数称为源操作数 注释 注释是对语句或程序段功能的说明 注释用 开头 可空缺 35 按指令的功能分类 数据传送指令 28 条 算术运算类指令 24 条 逻辑运算与移位 类指令 25 条 控制转移类指令 17 条 位操作类指令 17 条 36 36 寻址方式寻址方式 立即寻址立即寻址 指令中跟在操作码后面的数据就是实际参与运算的操作数 称为立即数 MCS 51 指令系统中 允许使用 8 位和 16 位立即数 立即数之前加 予以标识 例 MOV A 6DH MOV A 3AH MOV DPTR 0DFFFH MOV 40H 30H MOV A 60H MOV DPTR 3400H MOV 30H 40H 直接寻址直接寻址 QQ374289236 8 指令中包含了操作数的地址 该地址直接给出了参加运算或传送的单元的地址 直接寻址可访问两种地址空间 特殊功能寄存器 SFR 又叫做专用寄存器 内部数据存 储器 RAM 中的 128 个字节单元 例 MOV A 52H MOV A P1 MOV 30H 20H MOV P0 P1 寄存器寻址寄存器寻址 把指定的某一可寻址的工作寄存器 R0 R7 或 A B 乘 除指令中 DPTR 的内容作为操作 数 例 MOV 53H A MOV B A MOV 20H R1 MOV P0 R0 寄存器间接寻址寄存器间接寻址 指令指定的某一寄存器的内容作为操作数地址 可用来间接寻址的寄存器有 R0 R1 和数据指 针 DPTR 前面加 表示间接寻址 可访问内部 RAM 或外部数据存储器 堆栈指针 SP 在执行指 令中也起到寄存器间接寻址的作用 但它不出现在指令表达形式中 实现间接寻址的地址指针 1 Ri R0 R1 寻址对象为片内 RAM 的 128 个单元 1 DPTR 寻址对象为外部数据存储器 例 MOV A R0 MOV B R1 MOVX A DPTR PUSH 20H POP ACC MOV R0 A MOVX A R1 MOVX DPTR A 变址寻址变址寻址 基址寄存器 DPTR 或 PC 存放基准地址 变址寄存器 A 存放偏移量 基址寄存器的内容与变址 寄存器的内容的和为可寻址单元的地址 该类寻址方式用于访问程序存储器 对查表访问特别 有用 注意 A 中内容为无符号数 例 MOVC A A DPTR MOVC A A PC JMP A DPTR 位寻址位寻址 采用位寻址方式的操作数是 8 位二进制数中的某 1 位 指令中给出的是位址 寻址对象 片内数据存储器位寻址区中 位地址为 00H 7FH 的 128 位 11 个可位寻址的特 殊功能寄存器中的 82 个有效可寻址位 例 MOV C 3AH SETB PSW 4 MOV C 00H MOV C 20H 思考与练习 思考与练习 3 4 下列哪些指令是非法指令 并改正 CJNE A 30H ABC 合法 CJNE A 30H ABC 合法 CJNE 30H A ABC 非法 CJNE A 30H ABC QQ374289236 9 CJNE R7 30H ABC 合法 CJNE R5 30H ABC 合法 CJNE A R4 ABC 非法 不存在这种格式 CJNE A R4 ABC 非法 不存在这种格式 CJNE A data rel CJNE A direct rel CJNE Ri data rel CJNE Rn data rel DJNZ ACC ABC 合法 DJNZ 30H ABC 合法 DJNZ Rn rel DJNZ direct rel INC DPTR 合法 INC A INC direct INC Ri INC Rn INC DPTR MOV A R3 合法 MOVX A DPTR 非法 MOVX A DPTR MOVX A DPTR MOVX A Ri MOVX DPTR A MOVX Ri A DEC DPTR 非法 不存在这种格式 DEC A DEC direct DEC Ri DEC Rn JB 70H 非法 不存在这种格式 JB bit rel ADDC B DIRECT1 非法 不存在这种格式 ADDC A data ADDC A direct ADDC A Ri ADDC A Rn 3 5 指出源操作数的寻址方式 MOV A 30H 立即寻址 MOV A B 直接寻址 MOV P0 P1 直接寻址 DIV AB 寄存器寻址 MOVC A A DPTR 变址寻址 MOV 30H A 寄存器寻址 PUSH 30H 直接寻址 PUSH B 寄存器寻址 POP ACC 寄存器间接寻址 3 7 写出下列程序执行的结果 40H FFH MOV 50 40H 50H 40H MOV R1 50H R1 50H MOV A R1 A 40H MOV R0 A R0 40H MOV 60H R0 60H FFH MOV 30H 60H 30H FFH QQ374289236 10 3 9 分析下面程序执行的结果 MOV SP 2FH SP 2FH MOV A 30H A 30H MOV B 31H B 31H PUSH A SP 30H 30H 30H PUSH B SP 31H 31H 31H POP A SP 30H A 31H POP B SP 2FH B 30H 3 10 分析执行下列程序后 A 和标志位 C AC OV 及 P 的结果 MOV A 0DH A 0DH MOV R7 3DH R7 3DH ADD A R7 A 4AH C 0 AC 1 OV 0 P 1 第四章 51 单片机的汇编语言程序设计 37 37 伪指令伪指令 在对汇编语言进行翻译的过程中 需要提供一些有关汇编的信息指令 这些指令 在汇编时起到控制作用 但其自身不产生机器代码 伪指令就是汇编程序能够识别的汇编命令 它是程序员发给汇编程序的命令 只在汇编过程中起作用 它不是单片机要执行的指令 所以 没有机器码 起始伪指令 ORG ORIGIN 格式 ORG 功能 出现在源程序的开头 用于规定目标程序存放的起始地址 例 程序如下 ORG 0000H START MOV A 20H ADD A 08H MOV 20H A HERE SJMP HERE 结束伪指令 END END OF ASSEMBLY 格式 END 功能 汇编终止命令 本命令用于终止源程序的汇编工作 例 程序如下 ORG 0000H START MOV A 20H ADD A 08H QQ374289236 11 MOV 20H A HERE SJMP HERE END 赋值伪指令 EQU EQUATE 格式 EQU 功能 本命令用于给标号赋值 例 程序如下 PP EQO R0 QQ EQU 30H MOV A PP 把 R0 中的值送给 A MOV B QQ 把 30H 中的值送给直接地址 F0H 定义字节伪指令 DB DEFINE BYTE 格式 DB 功能 定义字节命令 本命令用于从指定的地址开始 在程序存储器的连续单元中定义字节数 据 例 程序如下 ORG 0000H TAB DB 00H 45H 67H 78H DB 78H 58H 90H 57H 汇编后结果 0000H 00H 0001H 45H 0002H 67H 0003H 78H 0004H 78H 0005H 58H 0006H 90H 0007H 57H 定义字伪指令 DW DEFINE WORD 格式 DW 功能 定义数据字命令 本命令用于从指定地址开始 在程序存储器的连续单元中定义 16 位 的数据字 该命令将字数据表中的数据依从左到右的顺序存放在指定的存储单元中 数据字的 高 8 位放在低地址单元 低 8 位放在高地址单元 例 程序如下 ORG 0030H TAB DW 6789H 3456H DW 1234H 5678H 汇编后的结果 0030H 67H 0031H 89H 0032H 34H 0033H 56H 0034H 12H 0035H 34H 0036H 56H 0037H 87H QQ374289236 12 位定义命令 BIT 格式 BIT 功能 本命令用于给字符名称赋以位地址 例 程序如下 AQ BIT P0 0 DEF BIT P1 0 汇编结果 把 P0 0 的位地址赋给 AQ 把 P1 0 的位地址赋给 DEF 38 程序设计举例 例 4 2 设在片内 RAM 中 20H 和 21H 单元各存放有一个 8 位数据 要求拼装一个新字节 并送 30H 保存 其低 5 位取自 20H 单元中的低 5 位 高 3 位取自 21H 单元中的低 3 位 实现程序如下 MOV 30H 20H 20H 单元中的数据送入 30H 单元 ANL 30H 00011111B 屏幕高 3 位 MOV A 21H 21H 单元中的数据送入 A SWAP A 将 A 中的数据高低 3 位交换 循环左移 4 次 RL A 将 A 中数据再循环左移 1 次 ANL A 11100000B 屏蔽 A 中数据的低 5 位 ORL 30H A 完成拼装 例 4 6 设在外部 RAM 的 3 个连续存储单元 ST1 ST2 和 ST3 中 ST1 和 ST2 存放着两个不 带符号的二进制数 请找出其中的大数并存在 ST3 中 程序如下 START CLR C 进位位清 0 MOV DPTR ST1 设置数据指针 MOVX A DPTR 取第一个数 MOV R7 A 暂存 R7 INC DPTR 数据指针加 1 MOVX A DPTR 取第二个数 SUBB R7 比较两数的大小 JNC BIG1 第二个数大转移 XCH A R7 第一个数大送 A BIG0 INC DPTR 数据指针加 1 MOVX DPTR A 存大数 RET QQ374289236 13 BIG1 MOVX A DPTR 第二个数送 A 例 4 11 有一数据块从片内 RAM 的 30H 单元开始存入 设数据块长度为 10 个单元 根据 下式 求出 Y 的值 将 Y 值存入 31H 单元 程序如下 ORG 1000H MOV A 30H 取数 JB ACC 7 NEG 负数 转 NEG JZ ZERO 为零 转 ZERO ADD A 02H 为正数 求 X 2 AJMP SAVE 转到 SAVE 保存数据 ZERO MOV A 64H 数据为零 Y 100 AJMP SAVE 转到 SAVE 保存数据 NEG DEC A CPL A 求 X SAVE MOV 31H A 保存数据 SJMP 暂停 例 4 13 在外部 RAM 首地址为 table 的数据表中 有 10 个字节的数据 编程将每个字节 的最高位无条件的置 1 实现程序如下 MOV DPTR table 送数据表首地址 MOV R7 OAH 置处理次数 LOOP MOVX A DPTR 取数据 ORL A 10000000B 最高位置 1 MOV X DPTR A 送回 INC DPTR 地址加 1 DJNZ R7 LOOP 未处理完返回 SJMP QQ374289236 14 例 4 20 编写一程序 实现下图中逻辑运算电路 其中 P3 1 P1 1 P1 0 分别是单片机 端口线上的信息 RS0 RS1 是 PSW 寄存器的两个标志位 30H 31H 是两个位地址 运算结果 由 P1 0 输出 程序如下 ORG 0000H MOV C P3 1 ANL C P1 1 CPL C MOV 20H C 暂存数据 MOV C 30H ORL C 31H ANL C RS1 ANL C 20H ANL C RS0 MOV P1 0 C 输出结果 SJMP 思考与练习 思考与练习 4 5 编程 把内部 RAM20H 单元开始有 8 个数 试找出其中最大的数 送入 MAX 单元 答 程序如下 MAX EQU 2AH SMAX MOV R0 20H 置数据区首地址 MOV MAX R0 读第一个数暂作最大数 MOV R7 7 置数据长度 N 1 LOOP INC R0 指向下一个数 MOV A R0 读下一个数 CJNE A MAX NEXT 数值比较 在 C 中产生大小标志 NEXT JC LOP1 C 1 表明 A 值小 转 QQ374289236 15 MOV MAX A C 0 表明 A 值大 大数送 MAX LOP1 DJNZ R7 LOOP 判数据比完否 未完比较下一个 RET 数据比完 退出循环 4 11 编程实现逻辑运算 Y G H C D E X 答 假设各个变量 对应的计算机引脚如下两式 Y G H C D E X P1 0 P1 1 P1 2 P1 3 P1 4 P1 5 P1 6 程序如下 MOV C P1 2 取来 H ORL C P1 3 或上 C ANL C P1 1 与上 G MOV PSW 5 C 暂时存放 MOV C P1 5 取来 E ORL C P1 6 或上 X ANL C P1 4 与上 D ORL C PSW 5 或上前面结果 MOV P1 0 C 输出到 Y 第五章 51 单片机的中断系统 39 51 单片机共有 5 个中断源 2 个中断优先级 可以实现两级中断嵌套 40 中断源就是引起中断的来源 也可认为是中断的原因 51 单片机提供了 5 个中断源 两个 外部中断请求和 两个片内计数器 定时器中断 T0 和 T1 另一个为片内串行口中0INT1INT 断 41 外部中断源 表 TCON 寄存器位结构 位置 D7D6D5D4D3D2D1D0 位地址 8F8E8D8C8B8A8988 位符号 TF1TR1TF0TR0IE1IT1IE0IT0 IT0 是触发方式控制位 即选择外部中断 0 是电平触发方式还是下降沿触发方式 此位0INT 可由软件置位和复位 IE0 是中断下降沿请求标志位 IT1 和 IE1 分别为外部中断 1 的0INT 触发方式控制位和下降沿中断请求标志位 42 内部中断源 1 定时器 计数器中断源 QQ374289236 16 TF0 是片内定时器 计数器 0 溢出时中断申请标志位 TF1 是片内定时器 计数器 1 溢出时中断申请标志位 功能与 TF0 相同 2 串行口中断 表 SCON 寄存器位结构 位置 D7D6D5D4D3D2D1D0 位地址 9FH9EH9DH9CH9BH9AH99H98H 位符号 SM0SM1SM2RENIB8RB8TIRI TI 是串行口发送完毕中断标志位 当 TI 1 时 就向 CPU 申请中断 表示数据发送完毕 RI 是串行口接收完毕中断标志位 RI 1 表示串行口接收器向 CPU 申请中断 43 计算机中断系统中有两种不同类型的中断 一种称为非屏蔽中断非屏蔽中断 另一种称为可屏蔽中断可屏蔽中断 对非屏蔽中断 用户不能用软件方法加以禁止 一旦有中断申请 CPU 必须予以响应 但对可 屏蔽中断 用户则可以通过软件方法来控制是否允许某中断源的中断 51 系列单片机的 5 个 中断源都是可屏蔽中断的 44 表中断允许寄存器 IE 的位结构 位置 D7D6D5D4D3D2D1D0 位地址 AFHADHACHABHAAHA9HA8H 位符号 EA ESET1EX1ET0EX0 EA 是 CPU 中断总允许位 当 EA 1 时 开放中断 而每个中断是开放还是屏蔽分别由各自的 允许位确定 EA 0 禁止所有中断 不论其他为是否为 1 ES 是串行口中断允许位 ES 1 允许串行口的接收和发送中断 ES 0 禁止串行口中断 ET1 是开放或禁止定时器 1 溢出中断位 ET1 0 则禁止定时器 1 中断 置位则开启其中断 EX1 是外部中断 1 的中断允许位 EX1 0 则禁止外部中断 1 中断 EX 1 则开启其中断 ET0 是开放或禁止定时器 0 溢出中断位 ET0 0 则禁止定时器 0 中断 置位则开启其中断 EX0 是外部中断 0 的中断允许位 EX0 0 则禁止外部中断 0 中断 置位则开启其中断 45 表中断优先级寄存器 IP 的位结构 位置 D7D6D5D4D3D2D1D0 位地址 BDHBCHBBHBAHB9HB8H 位符号 PSPT1PX1PT0PX0 PS 串行口优先级设定位 PS 1 时 则编程为高优先级 PT1 定时器 1 优先级设定位 PT1 1 时 则编程为高优先级 QQ374289236 17 PX1 外部中断 1 优先级设定位 PX1 1 时 则编程为高优先级 PT0 定时器 0 优先级设定位 PT0 1 时 则编程为高优先级 PX0 外部中断 0 优先级设定位 PX0 1 时 则编程为高优先级 46 单片机对中断优先级的处理原则 CPU 同时接收到几个相同优先级的中断请求时 首先响应优先权最高的中断请求 低优先级中断可以被高优先级中断所中断 中断不能被与它同级和比它低级的中断所中断 当同一级中断同时申请中断时 按单片机系统内部硬件查询顺序确定优先级 用户无法自行 更改 47 各中断源的入口地址 熟记 中断源入口地址 外部中断 0 0003H 定时器 计数器 T0 000BH 外部中断 1 0013H 定时器 计数器 T1 001BH 串行口中断 0023H 48 中断响应条件 相应的中断是开放的 没有同级的中断或更高级别的中断正在处理 正在执行的指令必须执行完最后 1 个机器周期 若正在执行 RETI 或正在访问 IE 或 IP 寄存器 则必须执行完当前指令的下一条指令 后方 能响应中断 49 设置中断的初始化工作 单片机中断系统初始化包括设置堆栈 选择中断触发方式 对外 中断而言 开中断 设置中断优先级等 对定时器 计数器还要对运行控制位 TR 置位 50 中断服务程序的编写 在中断入口地址处设置一条跳转指令 转移到中断服务程序的实际入口处 保护现场 中断服务主体程序 若是外中断电平触发方式 应有中断信号撤除操作 若是串行收发中断 应有对 RI TI 清 0 指令 恢复现场 中断返回 思考与练习 思考与练习 5 7 简述中断初始化过程 QQ374289236 18 答 设置堆栈指针 SP 定义中断优先级 IP 选择外中断触发方式 TCON 开放 相应中断允许 IE 安排好等待中断或中断发生前主程序应完成的操作内容 如设置计数 器 串行口的有关参数等 5 8 中断服务程序的设计要考虑哪些因素 答 在中断入口地址处设置一条跳转指令 转移到中断服务程序的实际入口处 保护现场 中断服务主体程序 若是外中断电平触发方式 应有中断信号撤除操作 若是串行收发中 断 应有对 RI TI 清 0 指令 恢复现场 中断返回 第六章 51 单片机的定时器 计数器 51 定时器 计数器结构框图 从图中可以看出 51 计数器是一个加 1 计数器 其计数源来自两个 一个是端口 T0 的外部中 断源 另一个是系统振荡器的 12 分频 计数源开关 可实现两个计数源的转换 另一个开 关为 控制开关 用来决定加 1 计数器的开启 这两个模拟开关都是位开关 通过对特殊功 能寄存器 TMOD 与 TCON 的对应位置 1 或清 0 来实现开关功能 52 所谓计数是指对外部事件进行的计数 计数功能的实质就是对外部输入脉冲进行计数 53 定时功能实际上也是通过计数器的计数来实现的 此时的计数脉冲源是通过对振荡器 12 分 频得到 即一个机器周期产生一个计数脉冲 换句话说就是每个机器周期计数器加 1 因此计 数频率为振荡频率的 1 12 54 16 位计数器 它的最大值为 65535 16 进制数为 0FFFFH 加 1 计数器不断进行对脉冲个 数的累加 最终会达到这个最大值 如果此时计数器再加 1 就会使 16 位计数器的值变为 0 并使中断标志位置 1 触发中断 这就是定时器 计数器的 溢出 xTF 55 定时方式寄存器 TMOD 的位结构 位置 D7D6D5D4D3D2D1D0 QQ374289236 19 位地址 GATEC TM1M0GATE C TM1M0 位符号定时器 T1定时器 T0 GATE 选通控制位 当 GATE 0 时 由寄存器 TCON 中的运行控制位 TRx 启动定时器 X 当 DATE 1 时 只有外中断 请求信号为高电平且 TRx 置位时 才启动定时器 X xINT C 定时方式或计数方式选择位 T C 0 为定时器工作方式 C 1 为计数器工作方式 TT M1M0 工作方式选择位 当 M1M0 00 时 为方式 0 13 位定时器 计数器工作方式 当 M1M0 01 时 为方式 1 16 位定时器 计数器工作方式 当 M1M0 10 时 为方式 2 常数自动装入的 8 位定时器 计数器工作方式 当 M1M0 11 时 为方式 3 仅适用于定时器 T0 为两个 8 位定时器 计数器工作方式 在 方式 3 时 定时器 T1 停止计数 56 定时控制寄存器 TCON 既参与中断控制又参与定时控制 TF0 定时器 0 计数溢出标志位 TR0 定时器 0 运行控制位 TR 0 关闭定时器 计数器 0 反之则开启 TF1 定时器 1 计数溢出标志位 TR1 定时器 1 运行控制位 57 定时器 计数器初值计算 1 计数初值计算 方式 0 X 213 S 方式 1 X 216 S 方式 2 或方式 3 X S 其中 X 值计数初值 即时间常数 S 指输入脉冲数 8 2 2 定时初值计算 定时时间 t S TM 2N X 12 fosc 其中 t 指计满溢出时间 S 指输入脉冲数 TM指 机器周期 2N指计数器位数 X 指计数初值即时间常数 fosc 指振荡频率 定时方式 0 计数初值 X 213 t fosc 12 定时方式 1 计数初值 X 216 t fosc 12 定时方式 2 或 3 计数初值 X 28 t fosc 12 58 定时器 计数器初始化步骤 1 根据定时器 计数器的工作方式 设置 TMOD QQ374289236 20 2 计算定时器 计数器的初值 写入 T0 TH0 TL0 T1 TH1 TL1 3 设置 IE IP 以开放相应的中断和设定中断优先级 4 使 TR0 TR1 置位 启动定时 计数器 59 定时器 计数器的工作方式 方式 0 此时的计数器是一个 13 位寄存器结构 方式 1 方式 1 是 16 位计数结构的工作方式 方式 2 方式 2 与方式 0 1 的区别除了计数位数不一样外 方式 2 是 8 位计数结构 最 显著的区别就是计数器计数溢出时 能够自动装载初值 思考与练习 思考与练习 6 7 已知单片机系统时钟频率为 6MHz 利用定时器 0 控制 P2 1 口 使其输出周期为 60ms 占空比为 2 1 的方波 答 设定时间基准为 20ms 即定时时间为 20ms 则定时初值 高电平的软件计H0F8D5553612 10 6 10 202 t2X 631616 机T 数为 2 低电平的软件计数为 1 主程序如下 ORG 0000H LJMP MAIN ORG 000BH LJMP INT0 MAIN SETB P2 1 MOV R2 02H MOV TMOD 01H MOV TH0 D8H MOV TL0 0F0H SETB ET0 SETB EA SETB TR0 SJMP INT0 PUSH PSW PUSH ACC MOV TH0 D8H MOV TL0 0F0H DJNE R2 EXIT CPL P2 1 JNB P2 1 MOV R2 02H SJMP EXIT L1 MOV R2 01H POP ACC POP PSW EXIT RETI END 6 9 利用定时器定 0 循环点亮 8 个发光二极管 每个持续时间 0 5s 试画出电路图并编 写程序 QQ374289236 21 答 假设单片机晶振频率为 12MHZ 那么模式 1 最多能定时 65 526ms 对于 1 秒的定时 必须设置一个软件计数器 进行软硬结合进行定时 假定让定时器定时 50ms 软件计数 器 R7 初值为 10 这样定时中断 10 次就是 0 5 秒 0 5 秒后才让 P1 闪一次 如此循环 ORG 0000H SJMP MAIN ORG 000BH SJMP ISO T0 ORG 0030H MAIN MOV TMOD 01H MOV TH0 3CH MOV TL0 0B0H SETB TR0 MOV R7 10 MOV A 01H SJMP ISO T0 MOV TH0 3CH MOV TL0 0B0H DJNZ R7 NEXT MOV R7 10 MOV P1 A RL A NEXT RETI END 这里假设晶振频率为 12MHZ 定时器定时 50ms 则定时初值为 3CB0H1553650000 65536s50000us 1u 2T 16 0 第八章 单片机的系统扩展 60 常用于程序存储器的芯片种类有 ROM EPROM E PROM FLASH 等 其中 ROM 是不可擦除的 一般用于大批量生产产品 而其他三个是可以擦除再写的 EPROM 是用紫外线擦除 E PROM 和 FLASH 是用电擦除 61 常用的 EPROM 芯片有 2716 2KB 2732 4KB 2764 8KB 27128 16KB 27256 32KB 27512 64KB 62 常用的 SRAM 型号有 6116 2K 8 位 6264 8K 8 位 及 62256 32K 8 位 QQ374289236 22 63 常用专用扩展接口有 8255 和 8155 8255 是 Intel 公司生产的一种通用的可编程并行接口电 路 8155 也是一种可编程的并行接口芯片 64 工作方式 8255A 的工作方式是通过读 写控制逻辑和方式控制字选择来实现的 8255A 有 三种工作方式 即方式 0 方式 1 和方式 2 1 工作方式 0 基本的输入 输出方式 方式 0 是一种基本是输入 输出方式 在此方式下 输出具有锁存功能 输入没有锁存 只有 选通和读信号有效后 输入信号才能取消 否则会造成输入数据丢失 2 工作方式 1 应答式输入 输出工作方式 A 口和 B 口的输入数据或输出数据都可以被锁存 3 工作方式 2 应答式双向输入 输出工作方式 65 8255A 作为主机与外设交换信息的桥梁 一方面与主机相连 另一方面还要和外设相连 66 控制字设置 基本了解 控制字有方式选择控制字和 C 口置位 清零控制字 这两个控制字都是写入到 8255A 的控制寄 存器中的 它们之间通过判断控制字最高位 D7 的值来区分 当 D7 1 时 控制字为工作方式控 制字 当 D7 0 时 控制字为 C 口置位 复位控制字 工作方式控制字 QQ374289236 23 67 例 8 5 根据图 P160 图 8 21 试编写出程序使 8255 各个端口为下列工作状态 A 口 方式 0 输出 B 口 方式 1 输入 C 口 方式 0 输入 解 根据图 9 13 此时控制字为工作方式控制字 所以 D7 1 A 口在方式 0 输出时 D6 D5 0 D4 0 B
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 交通银行2025扬州市秋招群面案例总结模板
- 2025养老金融行业市场分析与发展
- 2025行业绿色技术发展前景
- 工商银行2025上海市秋招半结构化面试题库及参考答案
- 中国银行2025金昌市秋招笔试英语题专练及答案
- 邮储银行2025雅安市数据分析师笔试题及答案
- 中国银行2025丹东市秋招群面案例总结模板
- 建设银行2025酒泉市秋招半结构化面试题库及参考答案
- 班组安全知识培训小结课件
- 建设银行2025淄博市秋招笔试专业知识题专练及答案
- 第2课 树立科学的世界观《哲学与人生》(高教版2023基础模块)
- 流水别墅案例分析
- 录入与排版教学计划
- 2023免拆底模钢筋桁架楼承板图集
- 云计算技术基础应用教程(HCIA-Cloud)PPT完整全套教学课件
- 呼吸衰竭小讲课课件
- 成人学士学位英语1000个高频必考词汇汇总
- GB/T 5271.29-2006信息技术词汇第29部分:人工智能语音识别与合成
- 全屋定制家居橱柜衣柜整装安装服务规范
- 沥青及沥青混合料试验作业指导书
- 义务教育阶段学生艺术素质测评指标体系小学音乐
评论
0/150
提交评论