




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第 1 页 共 45 页 第第 1 章章 思考题及习题思考题及习题参考答案参考答案 1 写出下列二进制数的原码 反码和补码 设字长为 8 位 1 001011 2 100110 3 001011 4 111111 答 1 原码 00001011 反码 00001011 补码 00001011 2 原码 00100110 反码 00100110 补码 00100110 3 原码 10001011 反码 11110100 补码 11110101 4 原码 10111111 反码 11000000 补码 11000001 2 已知 X 和 Y 试计算下列各题的 X Y 补和 X Y 补 设字长为 8 位 1 X 1011 Y 0011 2 X 1011 Y 0111 3 X 1000 Y 1100 答 1 X 补码 00001011 Y 补码 00000011 Y 补码 11111101 X Y 补 00001110 X Y 补 00001000 2 X 补码 00001011 Y 补码 00000111 Y 补码 11111001 X Y 补 00010010 X Y 补 00000100 3 X 补码 00001000 Y 补码 00001100 Y 补码 11110100 X Y 补 00010100 X Y 补 11111100 3 微型计算机由那几部分构成 答 微型计算机由微处理器 存储器和 I O 接口电路构成 各部分通过地址总线 AB 数 据总线 DB 和控制总线 CB 相连 4 8086 的寻址范围有多大 其物理地址是如何形成 答 8086有20根地址总线 它可以直接寻址的存储器单元数为1M字节 其地址区域为00000H FFFFFH 物理地址是由段地址与偏移地址共同决定的 物理地址 段地址 16 偏移地址其中段地址通 常来自于段寄存器 CS 物理地址来自于 IP 5 什么叫单片机 它有何特点 答 单片机就是在一块硅片上集成了 CPU RAM ROM 定时器 计数器和多种 I O 口 如并 行 串行及 A D 变换器等 的一个完整的数字处理系统 单片机主要特点有 品种多样 型 号繁多 存储容量大 频率高 速度快 控制功能强 集成度高 功耗低 配套应用软件多 第 2 页 共 45 页 第第 2 2 章章 思考题及习题思考题及习题参考答参考答案 案 2 1 说明 ROM EPROM EEPROM 和 FLASH 之间的主要区别 解 ROM 为只读存储器 在一般情况下只能读出所存信息 而不能重新写入 信息的写入是 通过工厂的制造环节或采用特殊的编程方法进行的 一旦写入 就能长期保存 EPROM 芯片 一般允许用户多次编程和擦除 擦除时 通过向芯片窗口照射紫外光的方法来进行 EEPROM 也称 E2PROM 该类芯片允许用户多次编程和擦除 擦除时 可采用加电方法在线进行 FLASH 是一种新型的大容量 速度快 电可擦除可编程只读存储器 2 2 EPROM PROM 动态 RAM 静态 RAM 等存储器中 哪几类是可以随时读写的 解 动态 RAM 静态 RAM 这几类是可以随时读写的 2 3 某 ROM 芯片中有 12 根地址输入端和 8 个数据输出端 该芯片的存储容量是多少位 解 芯片的存储容量是 4K 8 位 第 3 页 共 45 页 2 4 说明动态 RAM 和静态 RAM 的主要区别 使用时应如何选用 解 静态 static RAM 即 SRAM 它以触发器为基本存储单元 所以只要不掉电 其所存信 息就不会丢失 该类芯片的集成度不如动态 RAM 功耗也比动态 RAM 高 但它的速度比动态 RAM 快 也不需要刷新电路 在构成小容量的存储系统时一般选用 SRAM 在微型计算机中普 遍用 SRAM 构成高速缓冲存储器 动态 Dynamic RAM 即 DRAM 一般用 MOS 型半导体存储器件构成 最简单的存储形式以单 个 M0S 管为基本单元 以极间的分布电容是否持有电荷作为信息的存储手段 其结构简单 集成度高 但是 如果不及时进行刷新 极间电容中的电荷会在很短时间内自然泄漏 致使 信息丢失 所以 必须为它配备专门的刷新电路 动态 RAM 芯片的集成度高 价格低廉 所 以多用在存储容量较大的系统中 目前 微型计算机中的主存几乎都是使用动态 RAM 2 5 说明 NOR FLASH 与 NAND FLASH 的主要区别 使用时应如何选用 解 NOR Flash 具有以下特点 1 程序和数据可存放在同一芯片上 拥有独立的数据总线和地址总线 能快速随机读取 允许系统直接从 Flash 中读取代码执行 而无需先将代码下载至 RAM 中再执行 2 可以单字节或单字编程 但不能单字节擦除 必须以块为单位或对整片执行擦除操作 在对存储器进行重新编程之前需要对块或整片进行预编程和擦除操作 但是 NOR Flash 的擦除和编程速度较慢 块尺寸又较大 因此擦除和编程操作所花费的时间 很长 在纯数据存储和文件存储的应用中 NOR 技术显得力不从心 NAND Flash 具有以下特点 1 以页为单位进行读和编程操作 1 页为 256 或 512B 字节 以块为单位进行擦除操 作 1 块为 4K 8K 或 16KB 具有快编程和快擦除的功能 其块擦除时间是 2ms 而 NOR 技 术的块擦除时间达到几百 ms 2 数据 地址采用同一总线 实现串行读取 随机读取 速度慢且不能按字节随机编程 3 芯片尺寸小 引脚少 是位成本 bit cost 最低的固 态存储器 将很快突破每兆字节 1 美元的价格限制 4 芯片包含有失效块 其数目最大 可达到 3 35 块 取决于存储器密度 失效块不会影响有效块的性能 但设计者需要将失 效块在地址映射表中屏蔽起来 NOR Flash 具有可靠性高 随机读取速度快的优势 在擦除和编程操作较少而直接执行代码 的场合 尤其是纯代码存储的应用中广泛使用 如 PC 的 BIOS 固件 移动电话 硬盘驱动器 的控制存储器等 NAND Flash 结构的闪速存储器适合于纯数据存储和文件存储 主要作为 SmartMedia 卡 CompactFlash 卡 PCMCIA ATA 卡 固态盘的存储介质 并正成为闪速磁盘技术的核心 2 6 现有 2K 8 位的 RAM 芯片若干片 若用线选法组成存储器 有效的寻址范围最大是多少 KB 若用 3 8 译码器来产生片选信号 则有效的寻址范围最大又是多少 若要将寻址范围扩 展到 64KB 应选用什么样的译码器来产生片选信号 解 以 8086 为例 8086 有 20 条地址线 用 11 条地址线寻址一片 2K 8 位的 RAM 余下的 9 条地址线做线选法的线 故可以并联 9 个芯片 故寻址最大范围是 20KB 若用 3 8 译码器 来产生片选信号 9 条地址线可以控制 3 个 3 8 译码器这样就可以控制 24 个芯片最大范围 是 50KB 若要将寻址范围扩展到 64KB 可选用 4 16 地址译码器来产生片选信号 2 7 什么是地址重叠区 它对存储器扩展有什么影响 解 基本地址和前面全译码连接的地址范围是相同的 但两者还是有区别的 区别在于全译 码连接时各芯片的地址是唯一的 而部分译码连接时各芯片地址不是唯一的 也就是可以由 第 4 页 共 45 页 若干个地址都选中同一芯片的同一单元 既所谓的地址重叠区 由于存在的地址重叠 影响 了地址区的有效使用 也限制了存储器的扩展 因此 在选用部分译码时 也要尽可能多选 一些高位地址线来作为译码器的输入 2 8 如图 2 22 若用 1K 8 位片子来扩展 3K 8 位 RAM 试核算各片的地址范围为多少 图 2 22 1K 8 位片子扩展的 3K 8 位 RAM 系统 解 A15 A14 A13 A12 A11 A10 A9 A8 A7A6A5A4 A3A2A1A0 地址 G1 A B C 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 片 1 A000H 1 0 1 0 0 0 11 1 1 1 1 1 1 1 1 片 1 A3FFH A15 A14 A13 A12 A11 A10 A9 A8 A7A6A5A4 A3A2A1A0 地址 G1 A B C 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 片 2 B000H 1 0 1 1 0 0 11 1 1 1 1 1 1 1 1 片 2 B3FFH A15 A14 A13 A12 A11 A10 A9 A8 A7A6A5A4 A3A2A1A0 地址 G1 A B C 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 片 3 B400H 1 0 1 1 0 1 11 1 1 1 1 1 1 1 1 片 3 B7FFH 第 5 页 共 45 页 所以各片地址范围为 片 1 A000H A3FFH 片 2 B000H B3FFH 片 3 B400H B7FFH 2 9 现有 8K 8 位 RAM 多片 1 片 3 8 译码器 要构成容量为 16K 8 位的存储器 请用线 译码 部分译码 全译码 3 种方式分别设计 画出连接图 并指出寻址范围 解 线译码法 寻址范围 2000H 5FFFH 部分译码寻址范围 0000H 3FFFH 全译码 寻址范围 0000H FFFFH 第 6 页 共 45 页 2 10 如何检查扩展的 RAM 工作是否正常 试编一个简单的 RAM 检查程序 要求此程序能记 录有多少个 RAM 单元工作有错 且能记录出错的单元地址 解 TEST CONST EQU 5AH TEST RAM EQU 03H ORG 0000H LJMP INITIAL ORG 0050H INITIAL MOV R0 253 MOV R1 3H TEST ALL RAM MOV R2 0FFH TEST ONE RAM MOV A R2 MOV R1 A CLR A MOV A R1 CJNE A 2H ERROR DISPLAY DJNZ R2 TEST ONE RAM INC R1 DJNZ R0 TEST ALL RAM OK DISPLAY MOV P1 11111110B WAIT1 SJMP WAIT1 ERROR DISPLAY MOV A R1 MOV P1 A WAIT2 SJMP WAIT2 END 第 7 页 共 45 页 第第 3 章章 思考题及习题参考答案思考题及习题参考答案 1 80C51 单片机的 P0 P3 口在通用 I O 口时操作要注意哪些 P0 P3 口不做通用 I O 口时是 什么功能 在使用上有何特点 P0 P3 驱动能力如何 答 1 作为通用 I O 口时 P0 P3 都是准双向口 输入引脚信息时都必须先向其锁存器写 1 作为输出口时 P0 口需结上拉电阻 2 P0 可以作为地址 数据总线 P2 口可以作为地址线的高 8 位 P3 口是双功能口 每条 口线还具有不同的第二功能 3 P0 口的驱动能力为 8 个 TTL 负载 而其它口仅可驱动 4 个 TTL 负载 2 MCS 51 单片机运行出错或程序进入死循环 如何摆脱困境 答 通过复位电路复位 3 单片机的复位 RST 操作有几种方法 复位功能的主要作用是什么 答 单片机的复位操作方式有 1 上电复位 2 手动复位 复位功能的主要作用是 复位时 PC 初始化为 0000H 使 MCS 51 单片机从 0000H 开始执行 程 4 简述程序状态寄存器 PSW 寄存器中各位的含义 答 程序状态字寄存器 PSW 8 位 其各位的意义为 CY 进位 借位标志 有进位 借位时 CY 1 否则 CY 0 AC 辅助进位 借位标志 高半字节与低半字节间的进位或借位 F0 用户标志位 由用户自己定义 RS1 RS0 当前工作寄存器组选择位 共有四组 00 01 10 11 第 8 页 共 45 页 OV 溢出标志位 有溢出时 OV 1 否则 OV 0 P 奇偶标志位 存于累加器 ACC 中的运算结果有奇数个 1 时 P 1 否则 P 0 5 80C51 单片机的当前工作寄存器组如何选择 答 由特殊功能寄存器中的程序状态寄存器 PSW 的 RS1 RS0 来决定 当 RS1 RS0 为 00 时 选择 0 组 为 01 时 选择 1 组 为 10 时选择 2 组 为 11 时选择 3 组 6 80C51 单片机的控制总线信号有哪些 各信号的作用如何 答 80C51 单片机的控制总线信号有以下 4 个 各信号的作用为 RST VPD 复位信号输入引脚 备用电源输入引脚 ALE PROG 地址锁存允许信号输出引脚 编程脉冲输入引脚 EA Vpp 内外存储器选择引脚 片内 EPROM 或 FlashROM 编程电压输入引脚 PSEN 外部程序存储器选通信号输出引脚 7 8051 单片机中 EA 引脚的作用是什么 答 访问内部或外部程序存储器的选择端当 EA 接高电平的时候程序从内部 ROM 开始执行 当 EA 为低电平的时候 从外部 ROM 开始执行 8 程序计数器 PC 的作用是什么 答 程序计数器 PC 是一个 16 位的计数器 他总是存放着下一个要取的指令的 16 位存储单 元地址 用来存放下一条指令的地址用来存放下一条指令的地址的 当执行一条指令时 首 先需要根据 PC 中存放的指令地址 将指令由内存取到指令寄存器中 此过程称为 取指令 与此同时 PC 中的地址或自动加 1 或由转移指针给出下一条指今的地址 此后经过分析指 令 执行指令 完成第一条指令的执行 而后根据 PC 取出第二条指令的地址 如此循环 执行每一条指令 9 堆栈有哪些功能 堆栈指示器 SP 的作用是什么 在程序设计时 为什么要对 SP 重 新赋值 答 堆栈在中端过程中用来保护现场数据 复位后 SP 7H 而堆栈一般设置在通用 ROM 区 30H 7FH 在系统初始化时候要从新设置 10 内部 RAM 低 128 单元划分为哪 3 个主要部分 说明各部分的使用特点 答 80C51 内部 128B 的数据 RAM 区 包括有工作寄存器组区 可直接位寻址区和数据缓 冲区 各区域的特性如下 00H 1FH 为工作寄存器组区 共分 4 组 每组占用 8 个 RAM 字节单元 每个单元作为一个工 作寄存器 每组的 8 个单元分别定义为 8 个工作寄存器 R0 R7 当前工作寄存器组的选择是 由程序状态字 PSW 的 RS1 RS0 两位来确定 如果实际应用中并不需要使用工作寄存器或不 需要使用 4 组工作寄存器 不使用的工作寄存器组的区域仍然可作为一般数据缓冲区使用 用直接寻址或用 Ri 的寄存器间接寻址来访问 20H 2FH 为可位寻址区域 这 16 个字节的每一位都有一个地址 编址为 00H 7FH 当然 位寻址区也可以用作字节寻址的一般数据缓冲区使用 3 30H 7FH 为堆栈 数据缓冲区 11 简述 MCS 51 单片机存储区的划分 答 MCS 51 单片机的存储器从物理结构上分为 片内和片外数据存储器 片内和片外程序 存储器 2 从逻辑上分别可划分为 片内统一寻址的 64K 程序存储器空间 0000H FFFFH 64KB 的片外数据存储器空间 0000H FFFFH 256B 的片内数据存储器空间 00H FFH 12 MCS 51 基本型单片机的中断入口地址各为多少 答 外部中断 0 中断入口地址 0003H 定时 计数器 0 中断入口地址 000BH 第 9 页 共 45 页 外部中断 1 中断入口地址 0013H 定时 计数器 1 中断入口地址 001BH 串行接口 中断入口地址 0023H 13 什么是指令周期 机器周期和时钟周期 答 指令周期 指令的执行时间 机器周期 CPU 完成一个最简单的指令所需要的时间 时钟周期 晶振信号周期就是时钟周期 14 已知一 MCS51 单片机系统使用 6MHZ 的外部晶体振荡器 计算 该单片机系统的状态 周期与机器周期各为多少 解 由于晶振为 6MHz 所以机器周期为 2us 因为一个机器周期由 6 个状态周期组成 所 以状态周期 1 3us 15 8031 单片机需要外接程序存储器 实际上它还有多少条 I O 线可以用 当使用外部存 储器时 还剩下多少条 I O 线可用 答 8031 系统必须外接程序促成器 原则上说 P0 和 P2 口要用作数据和地址总线 所以只 有 P1 和 P3 口可用作 I O 口 共 16 条 I O 线 在使用外部存储器时 除了占用 P0 和 P2 口 外 还需要用 P3 口 RD P3 7 和 WR P3 6 两条控制线 所以这种情况下就只剩下 14 条 I O 线可用了 第第 4 4 章章 思考题及习题参考答案思考题及习题参考答案 1 寻址方式是什么 答 寻址方式是寻找操作数或操作数地址的方式 2 89C51 指令系统有哪几种寻址方式 答 89C51 的寻址方式有七种 即 寄存器寻址 直接寻址 寄存器间接寻址 立即寻址 基址寄存器加变址寄存器变址寻址 相对寻址和位寻址 3 访问特殊功能寄存器 SFR 可以采用哪些寻址方式 答 直接寻址和位寻址方式 4 访问 RAM 单元可以采用哪些寻址方式 访问外部 RAM 单元有哪些指令 答 直接寻址 寄存器间接寻址和位寻址方式 访问外部 RAM 单元的指令有 4 条 MOVX A DPTR MOVX A Ri MOVX DPTR A MOVX Ri A 5 访问外部程序存储器可以采用哪些寻址方式 访问外部程序存储器有哪些指令 答 立即寻址 变址寻址和相对寻址方式 访问外部程序存储器的指令有 2 条 MOVC A A DPTR MOVC A A PC 第 10 页 共 45 页 6 试写出完成以下每种操作的指令序列 1 将 R0 的内容传送到片内 RAM 20H 2 将 R1 的内容传送到 R0 3 内部 RAM 单元 10H 的内容传送到外部 RAM 单元 1000H 4 外部 RAM 单元 1000H 的内容传送到 R5 5 外部 ROM 单元 1000H 的内容传送到 R5 6 外部 RAM 单元 2000H 的内容传送到外部 RAM 单元 2001H 答 1 MOV 20H R0 2 MOV A R1 MOV R0 A 3 MOV A 10H MOV DPTR 1000H MOVX DPTR A 4 MOV DPTR 1000H MOVX A A DPTR MOV R5 A 5 MOV DPTR 1000H MOV A 00H MOVC A A DPTR MOV R5 A 6 MOV DPTR 2000H MOVX A DPTR INC DPTR MOVX DPTR A 7 设内部 RAM 30H 60H 60H 10H 10H 20H R1 22H P1 0AH 分析以下程序执 行后 30H 60H 10H A B P2 每条指令的机器 码为多少 MOV R0 30H MOV A R0 MOV R1 A MOV B R1 MOV R1 P1 MOV P2 P1 MOV 10H 90H 答 MOV R0 30H R0 30H 78 30 MOV A R0 A 60H E6 MOV R1 A R1 60H F9 MOV B R1 B 10H 87 F0 MOV R1 P1 60H 0AH A7 90 MOV P2 P1 P2 0AH 85 90 A0 第 11 页 共 45 页 MOV 10H 90H 10H 90H 75 10 90 30H 60H 60H 0A H 10H 90H A 60H B 10H P2 0AH 8 设外部 RAM 2030H 0FH 分析以下指令执行后 DPTR 30H 2030H A 每 条指令的机器码为多少 MOV DPTR 2030H MOVX A DPTR MOV 30H A MOV A 3FH MOVX DPTR A 答 MOV DPTR 2030H DPTR 2030H 90 20 30 MOVX A DPTR A 0FH E0 MOV 30H A 30H 0FH F5 30 MOV A 3FH A 3FH 74 3F MOVX DPTR A 2030H 3FH F0 执行结果为 DPTR 2030H 30H 0FH 2030H 3FH A 3FH 9 编写指令实现下列位操作 1 使累加器的最高 2 位清零 2 屏蔽 清零 20H 的高 4 位 3 将 E0H 的低 4 位取反 高 4 位不变 4 将 P0 的低 2 位置 1 5 将 10H 的内容取补后存放到 20H 答 1 CLR ACC 7 CLR ACC 6 2 ANL 20H 0FH 3 XRL E0H 0FH 4 ORL P0 03H 5 XRL 10H 0FFH INC 10H MOV 20H 10H 10 在外部程序存储器中 从 1020H 单元开始依次存放 0 9 的平方值 0 1 4 9 81 要求依据累加器 A 中的值 0 9 来查找所对应的平方值 试设计程序实现 答 MOV DPTR 1020H MOVC A A DPTR 11 设 R0 20H 20H 40H A 58H 则 执行 XCH A R0 后 A 20H 若执行 XCHD A R0 后 A 20H 答 执行 XCH A R0 后 A 40H 20H 58H 若执行 XCHD A R0 后 A 50H 20H 48H 第 12 页 共 45 页 12 试编写程序序列 完成两个 16 位数的减法 30H 31H 10H 11H 30H 31H 答 CLR C MOV A 31H SUBB A 11H MOV 31H A MOV A 30H SUBB A 10H MOV 30H A 13 试编写程序 将 R0 中的低 4 位数与 R1 中的高 4 位数合并成一个 8 位数 并将其存放在 R0 中 答 MOV A R0 ANL A 0FH MOV B A MOV A R1 ANL A 0F0H ORL A B MOV R0 A 14 设计双字节无符号数加法程序实现 R0 R1 R2 R3 R4 R5 R0 R2 R4 存放 16 位数的高字节 R1 R3 R5 存放低字节 假设其和不超过 16 位 答 MOV A R1 ADD A R3 MOV R5 A MOV A R0 ADDC A R2 MOV R4 A 15 设计双字节无符号数相减程序实现 R0 R1 R2 R3 R4 R5 R0 R2 R4 存放 16 位数的高字节 R1 R3 R5 存放低字节 答 MOV A R1 CLR C SUBB A R3 MOV R5 A MOV A R0 SUBB A R2 MOV R4 A 17 设 2 个 BCD 码数存在外部 RAM 的 2000H 和内部 RAM 的 20H 设计程序实现 2 个 BCD 码相 加 其结果的十位和个位送到外部 RAM 的 2000H 单元 结果的百位值送 F0 位 答 MOV DPTR 2000H 第 13 页 共 45 页 MOVX A DPTR ADD A 20H DA A MOVX DPTR A MOV F0H CY 18 设变量 X 存放在片内 10H 单元中 函数 Y 存放在片内 20H 单元 编写程序实现如下函 数功能 80H X 0 Y 50 X 0 FFH X0 则转移到 POSI MOV A 0FFH 若 X0 时 A 80H COMP MOV 20H A 存函数 Y 值 SJMP 结束 19 利用位逻辑指令 模拟下图硬件逻辑电路功能 试编写程序实现 答 MOV CY P1 0 ANL CY P1 1 CPL CY MOV F0 CY MOV CY P1 1 ORL CY P1 2 ANL CY F0 CPL CY MOV F0 CY 20 若 CY 0 P1 10110111B 试指出执行下列程序段后 CY P1 口内容的变化情况 MOV P1 2 C MOV C P1 4 JBC P1 7 SS 第 14 页 共 45 页 ORL C P1 6 SS CPL P1 3 ANL C P1 3 MOV P1 0 C 答 CY 0 P1 0011 1010B 第第 5 5 章章 思考题及习题参考答案思考题及习题参考答案 1 80C51 单片机汇编语言有何特点 答 优点 源程序结构紧凑 灵活 汇编成的目标程序效率高 具有占存储空间少 运行速 度快 实时性强等优点 缺点 由于它的是面向机器的语言 所以它缺乏通用性 编程复杂繁琐 但应用相当广泛 2 利用 80C51 单片机汇编语言进行程序设计的步骤如何 答 1 需要对单片机应用系统预先完成的任务进入深入的分析 明确系统的设计任务 功能要求 技术指标 2 要对系统的硬件资源和人工作环境进行分析和熟悉 3 利用数学方法或数学模型来对其进行描述 从而把一个实际问题转化成由计算机进行 处理的问题 4 对各种算法进行分析比较 并进行合理的优化 3 常用的程序结构有哪几种 特点如何 答 常用的程序结构有以下几种 1 顺序程序结构 顺序结构是按照逻辑操作顺序 从某一条指令开始逐条顺序进行 直到某一条指令为止 比如数据传送与交换 查表程序和查表程序的设计等 在顺序结构中 没有分支 也没有子程序 但它是组成复杂程序的基础和主干 2 分支程序结构 它的主要特点是程序执行流程中必然包含有条件判断指令 符合条 件要求的和不符条件合要求的有不同的处理程序 第 15 页 共 45 页 3 循环程序结构 它在本质上只是分支程序中的一个特殊形式 它由循环初始化 循环体 循环控制和结束部分构成 在循环次数已知情况下 采用计数循环程序 其特点是 必须在初始部分设定计数的初始值 循环控制部分依据计数器的值决定循环次数 根据控制 循环结束的条件 决定是否继续循环程序的执行 4 子程序 它的主要特点是 在执行过程中需要由其它的程序来调用 执行完后又需 要把执行流程返回到调用该子程序的主程序 4 子程序调用时 参数的传递方法有哪几种 答 在 80C51 单片机中 子程序调用时 参数的传递方法由三种 1 利用累加器 A 或寄存器 2 利用存储器 3 利用堆栈 5 什么是伪指令 常用的伪指令功能如何 答 伪指令是汇编程序能够识别并对汇编过程进行某种控制的汇编命令 常用的伪指令有 1 起始地址设定伪指令 ORG 该指令的功能是向汇编程序说明下面紧接的程序段或 数据段存放的起始地址 2 汇编结束伪指令 END 该指令的功能是汇编程序遇到 END 伪指令后立即结束汇编 3 字节数据定义伪指令 DB 该指令的功能是从标号指定的地址单元开始 在程序存 储器中定义字节数据 4 字数据定义伪指令 DW 该指令的功能是从标号指定的地址单元开始 在程序存储 器中定义字数据 5 空间定义伪指令 DS 该指令的功能是从标号指定的地址单元开始 在程序存储器 中保留由表达式所指定的个数存储单元作为备用空间 并都填以零值 6 赋值伪指令 EQU 该指令的功能是将表达式的值或特定的某个汇编符号定义为一 个指定的符号名 7 位地址符号定义伪指令 BIT 该指令的功能是将位地址赋给指定的符号名 6 把外部 RAM 的 2000 20FFH RAM 空间置零 程序如下 ORG 000H MOV R0 00H MOV DPTR 2000H 空间首地址送 DPTR LOOP MOV A 00H MOVX DPTR A 清零 INC DPTR DPTR 加 1 INC R0 字节数加 1 CJNE R0 00H LOOP 连续清 256 个字节 LOOP1 SJMP LOOP1 END 第 16 页 共 45 页 7 录入并调试一个排序子程序 其功能为用冒泡法将内部 RAM 中从 50H 开始的十个单字节 无符号正整数 按从小到大的次序重新排列 程序如下 用冒泡法进行数据排序 ORG 0000H MOV R3 50H LOOP0 MOV A R3 MOV R0 A 指针送 R0 MOV R7 0AH 长度送 R7 CLR 00H 标志位为 0 MOV A R0 LOOP1 INC R0 MOV R2 A CLR C MOV 22H R0 CJNE A 22H LOOP2 相等吗 SETB C LOOP2 MOV A R2 JC LOOP3 小于或等于不交换 SETB 00H XCH A R0 DEC R0 XCH A R0 INC R0 大于交换位置 LOOP3 MOV A R0 DJNZ R7 LOOP1 JB 00H LOOP0 一次循环中有交换继续 LOOP SJMP LOOP 无交换退出 END 第 17 页 共 45 页 8 设被加数存放在内部 RAM 的 20H 21H 单元 加数存放在 22H 23H 单元 若要求和存放 在 24H 25H 中 试编写出 16 位数相加的程序 答 ORG 1000H MOV R1 21H MOV R2 23H MOV R3 25H CLR C LP MOV A R2 ADDC A R1 MOV R3 A DEC R1 DEC R2 DEC R3 DJNE R1 1FH LP SJMP 9 编写一段程序 把外部 RAM 中 1000H 1030H 单元的内容传送到内部 RAM 的 30H 60H 单元 中 答 ORG 0030H MOV R1 49 MOV R0 30H 第 18 页 共 45 页 MOV DPTR 1000H LOOP MOVX A DPTR MOV R0 A INC DPTR INC R0 DJNZ R1 LOOP SJMP END 10 编写程序 实现双字节无符号数加法运算 要求 R1R0 R7R6 61H60H 答 MOV A R0 ADD A R6 MOV 60H A MOV A R1 ADDC A R7 MOV 61H A SJMP 11 用 R0 和 R1 作数据指针 R0 指向第一个加数 并兼作 和 的指针 R1 指向另一个加 数 字节存放到 R2 中作计数初值 答 主程序 JAFA MOV R0 20H 指向加数最低字节 MOV R1 29H 指向另一加数最低字节 MOV R2 04H 字节数作计数值 ACALL JASUB 调用加法子程序 AJMP RTE 多字节加法子程序 JASUB CLR C JASUB1 MOV A R0 取出加数的一个字节 无符号数加数 ADDC A R1 加上另一数的一个字节 MOV R0 A 保存和数 INC R0 指向加数的高位 INC R1 指向另一加数的高位 DJNZ R2 JASUB1 全部加完了吗 RET 12 在内部 RAM 的 21H 单元开始存有一组单字节不带符号数 数据长度为 30H 要求找出最 大数存入 BIG 单元 答 START MOV R7 30H DEC R7 MOV R0 21H MOV A R0 第 19 页 共 45 页 LOOP INC R0 CLR C SUBB A R0 JNC NEXT MOV A R0 NEXT DJNZ R7 LOOP MOV BIG A SJMP END 13 求双字节补码程序 设双字节数放在内部 RAM 的 30H 和 31H 单元 高字节在低地址 将其取补后存入 40H 存 放高字节 和 41H 存放低字节 单元 答 START MOV A 31H CPL A ADD A 01H MOV 41H A MOV A 30H CPL A JNC DONE ADD A 01H DONE MOV 30H A SJMP 14 编程统计累加器 A 中 1 的个数 答 MOV R1 0 PUSH ACC LOOP1 JZ DONE CLR C RLC A JNC LOOP1 INC R1 SJMP LOOP1 DONE POP ACC SJMP END 15 编程序实现 1 2 3 100 答 汇编代码如下 H Byte EQU R4 保存结果 高 8 位 L Byte EQU R5 保存结果 低 8 位 Max Adder EQU 100 最大的加数 第 20 页 共 45 页 ORG 0000H LJMP MAIN ORG 0030H MAIN MOV R2 1 加数 MOV R4 0 MOV R5 0 START MOV A Max Adder CLR CY SUBB A R2 JC RESULT MOV A R2 ADD A L Byte MOV L Byte A 保存低位 MOV A H Byte ADDC A 0 MOV H Byte A 保存高位 INC R2 JMP START RESULT SJMP 只用于调试 END C 语言代码如下 include at89x51 h 由于这里只是计算结果 所以这行代码可以去掉 void main void unsigned char i 1 unsigned int result 0 for i 1 i 100 i result i while 1 这里用于调试 第 21 页 共 45 页 第第 6 6 章章思考题及习题思考题及习题参考答案 1 什么是中断 中断源 中断服务程序 中断程序入口地址 答 当有中断源申请中断 并允许响应时 处理暂停当前执行的程序转去执行中断服务子 程序的过程叫中断 导致中断产生的事件和原因统称为中断源 处理暂停主程序后转去执行 的 用来处理中断事件的程序成为中断服务子程序 中断程序入口地址是指的中断服务子程 序的第一条指令所在的地址 2 中断优先权有什么作用 中断嵌套是什么 答 中断优先权可以用来解决多个中断源同时申请中断时 处理器响应中断的优先顺序 中 断嵌套是指处理器正在执行中断服务子程序时 被新的中断打断 转去执行新的中断而出现 的一个中断嵌套到另一个中断中的现象 3 保护断点是保护什么 怎么保护的 中断返回后的下一步到到哪里去 答 保护断点是保护主程序暂停时的下一条将要执行的指令的地址 保护方法是将下一条 指令的地址值入栈 中断返回后 断点地址从堆栈中弹出到程序计数器或指令指针寄存器 继续执行主程序 4 保护现场有什么作用 需要保护哪些内容 怎么保护的 5 80C51 单片机有 个中断源 分别是 和 答 5 INT0 INT1 T0 T1 串口 第 22 页 共 45 页 6 80C51 单片机中断有 个优先权等级 最多可以实现 级嵌套 答 2 2 7 80C51 中断嵌套的原则是什么 答 80C51 中断嵌套的原则是 高级中断可以打断低级中断 低级中断不能打断高级中断 同级中断不可以打断同级中断 8 80C51 响应中断的条件有哪些 答 80C51 响应中断的条件有 中断申请的对应中断使能控制位有效 全局中断使能控制位有效 中断申请时没有更高级别的中断服务程序正在执行 9 80C51 的各个中断源是如何撤销中断申请的 答 80C51 各中断源的中断申请撤销方法是 定时 计数器中断 在中断被响应后 由硬件自动清零中断申请标志位 串口中断 由软件清零中断申请标志位 边沿触发时的外部中断 中断被响应后 由硬件自动清零中断申请标志位 电平触发的外部中断 需要设计专门的电路 通过软件编程通知外部中断源 由外 部中断源撤销申请 10 80C51 单片机中有 个定时 计数器 定时 计数 0 有 种工作方式 定时 计 数 1 有 种工作方式 答 2 4 3 11 80C51 单片机中有与定时 计数器相关的特殊功能寄存器有哪些 各自有什么作用 答 有 TMOD 和 TCON 的高 4 位 TMOD 用来设置定时 计数的工作方式 选择计数时钟的来源 具体格式如下 定时 计数器 1 定时 计数器 0 D7 D6 D5 D4 D3 D2 D1 D0 名称 GATE C T M1 M0 GATE C T M1 M0 TCON 的高 4 位用来控制定时 计数器的启动和停止 并设置中断标志位 向处理器 申请中断 具体格式如下 位地址 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H 位名称 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 12 80C51 单片机中的定时 计数器用作定时器和计数器时 有什么区别 答 用作定时器时 通常选择内部时钟 也可使用外部时钟 应用中 通常需要根据定时 要求设定计数初值 并查询等待定时时间结束 或者在定时时间结束后向处理器申请中断 用作计数器时 只能选择外部时钟 通常设置计数初值为零 而且需要读取计数结果 13 80C51 单片机中的定时 计数器的门控设置位 GATE 有什么作用 第 23 页 共 45 页 答 GATE 用来设置外部中断输入引脚 INT0 或 INT1 是否影响定时 计数器的启动和停止 当 GATE 有效时 只有 INT0 或 INT1 为高时 相应计数器才可能启动 当 GATE 无效时 INT0 或 INT1 不影响计数器的启停 14 80C51 单片机中的定时 计数器的方式 0 和方式 1 有什么共同点和不同点 答 方式 1 和方式 0 都是不能自动重装的定时 计数器方式 基本结构相同 不同的是 方 式 1 是 16 位定时 计数器 而方式 0 是 13 位定时 计数器 其中计数寄存器低字节的高 3 位不使用 15 当定时 计数器 T0 工作在方式 3 时 T1 可以工作在哪些方式 与 T0 不工作在方式 3 时 T1 的工作方式有什么差异 答 T0 工作在方式 3 时 T1 可以工作在方式 0 方式 1 方式 2 相对于 T0 不工作在方式 3 时 T1 没有了启动控制位 TR1 没有了中断申请标志位 TF1 只有设置成方式 3 才能停止计 数 设置在其它方式都会不停计数 16 要求设置单片机的定时器 1 工作在中断模式 方式 1 计数器模式 软件启动 定时器 0 未使用 使用外部中断 0 下降沿触发中断 外部中断 1 闲置 串口关闭 要求设置定时 器 1 的中断优先级最高 那么 IE IP TMOD IT0 答 89H 或 10001001B 08H 或 00001000B 50H 或 01010000B 1 17 执行以下代码的作用是 ANL TMOD 0F0H ORL TMOD 02H 答 设置定时 计数器 0 工作在方式 2 定时器模式 仅由软件启动 18 若某单片机系统的晶振为 12MHz 使用定时 计数器 0 进行 700us 定时 可以使用哪些 工作方式 要求只要软件就可以启动 且通过查询方式实现 写各种方式下的初始化程序 答 晶振频率为 12MHz 则计数器时钟周期为 1us 定时时间为 700us 则需要计数 700 方 式 0 的最大计数为 8192 方式 1 为 65536 方式 2 和方式 3 为 256 因此可以选择方式 0 和 方式 1 一 选择方式 0 方式 0 为 13 位计数器 计数初值为 100B11101010007492 12 107001012 8192 12 20 66 13 tf T osc 初值 TH0 11101010B 0EAH TL0 00100B 04H 定时 计数器 0 工作在方式 0 定时器模式 软件启动 则 TMOD 00000000B 00H 查询方式 下 不需要打开中断使能控制位 复位后 IE 0 所以不需要初始化 IE 初始化程序为 MOV TMOD 00H 第 24 页 共 45 页 MOV TH1 0EAH MOV TL1 04H SETB TR0 二 选择方式 1 方式 1 为 16 位计数器 计数初值为 FD44H64836 12 107001012 65536 12 20 66 16 tf T osc 初值 TH0 0FDH TL0 44H 定时 计数器 0 工作在方式 1 定时器模式 软件启动 则 TMOD 00000001B 01H 查询方式 下 不需要打开中断使能控制位 复位后 IE 0 所以不需要初始化 IE 初始化程序为 MOV TMOD 01H MOV TH1 0FDH MOV TL1 43H SETB TR0 19 某单片机系统的晶振为 12MHz 编程使用定时 计数器 0 工作在方式 3 从 P1 0 输出周 期为 200us 占空比 50 方波 从 P1 1 输出周期为 100us 占空比 50 使用定时 计数器 1 工作在方式 2 从 P1 2 输出周期 80us 占空比 50 的方波 提示 定时 计数器 1 没有了 中断申请标志位 需要读取计数数据 进行判断 答 参考程序如下 ORG 0000H AJMP MAIN START ORG 000BH 定时 计数器 0 中断入口 AJMP INT TL0 HANDLE ORG 001BH 定时 计数器 1 中断入口 但作为了 T0 的 TH0 定时中断入口 AJMP INT TH0 HANDLE ORG 0030H INT TL0 HANDLE MOV TL0 9CH TL0 产生 200us 方波 CPL P1 0 RETI INT TH0 HANDLE MOV TH0 0CFH TH0 产生 100us 方波 CPL P1 1 RETI ORG 0100H MAIN START MOV TMOD 23H T0 方式 3 T1 方式 2 SETB ET0 开 T0 中断 SETB ET1 开 T1 中断 注 TH0 使用 MOV TL0 9CH 赋初值 MOV TH0 0CFH 第 25 页 共 45 页 MOV TH1 0D8H MOV TL1 0D8H MOV P1 00H 输出清零 SETB EA 开全局中断 SETB TR0 TL0 开始计数 SETB TR1 TH0 开始计数 T1 计数从方式确定就开始了 READ T1 产生 80us 方波 MOV A TL1 读 T1 的计数值 CLR C SUBB A 0DFH 计数小于初值 7 则让输出翻转 由于读取 TL1 的计数值 并不是每个计数值都能读到 所以判断时需要给一个大的 范围 只要发生了初值重转 则计数已经溢出 JNC READ T1 大于则继续读数 直到计数溢出 CPL P1 2 AJMP READ T1 END 说明 此程序可以直接运行 但是实际测试结果 只能近似输出题目要求波形 定时 计数器 0 是由于软件初值重转的问题 计时器 1 则是由于每次读数时 由于中断的执行 导 致错过读数 所以输出波形的频率是不稳定的 第第 7 章习题章习题与思考题与思考题参考答案参考答案 7 1 简述 MCS 51 单片机串行口的四种工作方式的接收和发送数据的过程 答 略 7 2 串行口有几种工作方式 各工作方式的波特率如何确定 答 它有四种工作方式 方式 0 1 2 3 帧格式有 10 位 11 位 方式 0 和方式 2 的波特率是 固定的 方式 1 和方式 3 的波特率是可变的 由定时器的溢出率决定 7 3 若晶体的振荡频率为 11 0592MHz 串行口工作于方式 1 波特率为 4800bit s 计算用 T1 作为波特率发生器的方式控制字和计数初值 解 方式 1 和方式 3 的波特率由定时器的溢出率控制 是可变的 表示为 波特率 2SMOD 32 定时器 T1 的溢出
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中英语自然拼读法在英语戏剧表演比赛中的实践与探索论文
- 中国医药行业市场分析报告
- 节假曰车辆管理制度
- 苯板房安全管理制度
- 茶艺师销售管理制度
- 《小公鸡和小鸭子》课件
- 财务预算管理与财务知识分析
- 高尔夫移动卡项目商业计划书
- 管理学案例分析闲可钓鱼与无暇吃鱼
- 见证取样手册(四川省质安站)
- 2025年高考英语全国二卷试题含答案
- 2025江苏扬州宝应县“乡村振兴青年人才”招聘67人笔试备考题库及完整答案详解一套
- 抚州市乐安县招聘城市社区工作者笔试真题2024
- 仪器仪表制造职业技能竞赛理论题库
- 网络服务器配置与管理(微课版) 教案 项目02 虚拟化技术和VMware-2
- 税收分析试题及答案
- 2025年西式面点师(中级)面包烘焙实操考试试卷
- 回迁楼房买卖合同协议书
- 国家开放大学2025年《创业基础》形考任务3答案
- SL631水利水电工程单元工程施工质量验收标准第1部分:土石方工程
- 江岸区2023-2024学年下学期期末七年级数学试卷(含答案)
评论
0/150
提交评论