单片机原理及应用答案(李全利)

上传人:gbs****77 文档编号:10727896 上传时间:2020-04-14 格式:DOC 页数:20 大小:1.04MB
返回 下载 相关 举报
单片机原理及应用答案(李全利)_第1页
第1页 / 共20页
单片机原理及应用答案(李全利)_第2页
第2页 / 共20页
单片机原理及应用答案(李全利)_第3页
第3页 / 共20页
点击查看更多>>
资源描述
第 0 页共 20 页 ADI 公司推出的 AD C8xx 系列高精度 ADC 单片机 LG 公司推出的 GMS90 97 系列低压高速单片机 Maxim 公司推出的 DS89C420 高速 50MIPS 单片机 Cygnal 公司推出的 C8051F 系列高速 SOC 单片机等 8 简述单片机的开发过程 答 系统需求分析 硬件方案设计 软件编程 仿真调试 实际运行 9 单片机应用系统开发方法有哪些新方法 答 在系统编程 ISP 技术 在应用编程 IAP 技术 章 2 80C51 的结构和原理 1 80C51 单片机在功能上 工艺上 程序存储器的配置上有哪些种类 答 功能上分为基本型和增强型 工艺上分为 HMOS 工艺和 CHMOS 工艺 在片内程序存储器的配置上有掩膜 ROM EPROM 和 Flash 无片内程序存储器形式 2 80C51 单片机的存储器的组织采用何种结构 存储器地址空间如何划分 各地址空间的地址范围和容量如何 在使用上有何特 点 答 采用哈佛结构 在物理上设计成程序存储器和数据存储器两个独立的空间 80C51 基本型单片机片内程序存储器为 4KB 地址 范围是 0000H 0FFFH 用于存放程序或常数 片内数据存储器为 128 字节 RAM 地址范围是 00H 7FH 用于存放运算的中间结果 暂存数 据和数据缓冲 另外在 80H FFH 还配有 21 个 SFR 3 80C51 单片机的 P0 P3 口在结构上有何不同 在使用上有何特点 答 作为通用 I O 口时 P0 P1 P2 和 P3 都是准双向口 P0 可以作为地址 数据总线 此时是一个真正的双向口 P2 口可以作为地址线的高 8 位 P3 口是双功能口 每条口线还具有不同的 第二功能 另外 P0 口的驱动能力为 8 个 TTL 负载 而其它口仅可驱动 4 个 TTL 负载 第 1 页共 20 页 4 如果 80C51 单片机晶振频率分别为 6 MHz 11 0592 MHz 12MHz 时 机器周期分别为多少 答 机器周期分别为 2 s 1 085 s 1 s 5 80C51 单片机复位后的状态如何 复位方法有几种 答 复位后 PC 内容为 0000H P0 口 P3 口内容为 FFH SP 内容为 07H SBUF 内容不定 IP IE 和 PCON 的有效位为 0 其余 的特殊功能寄存器的状态均为 00H 复位方法一种是上电复位 另一种是上电与按键均有效的复位 6 80C51 单片机的片内 片外存储器如何选择 答 80C51 的 引脚为访问片内 片外程序存储器的选择端 访问片内 片外数据存储器需要采用不同的指令加以区分 EA 7 80C51 单片机的 PSW 寄存器各位标志的意义如何 答 CY 进位 借位标志 有进位 借位时 CY 1 否则 CY 0 AC 辅助进位 借位标志 高半字节与低半字节间的进位或借位 F0 用户标志位 由用户自己定义 RS1 RS0 当前工作寄存器组选择位 OV 溢出标志位 有溢出时 OV 1 否则 OV 0 P 奇偶标志位 存于 ACC 中的运算结果有奇数个 1 时 P 1 否则 P 0 8 80C51 单片机的当前工作寄存器组如何选择 答 当前工作寄存器组的选择由特殊功能寄存器中的程序状态字寄存器 PSW 的 RS1 RS0 来决定 9 80C51 单片机的控制总线信号有哪些 各信号的作用如何 答 RST VPD 复位信号输入引脚 备用电源输入引脚 ALE 地址锁存允许信号输出引脚 编程脉冲输入引脚 VPP PROGEA 内外存储器选择引脚 片内 EPROM 或 FlashROM 编程电压输入引脚 外部程序存储器选通信号输出引脚 SEN 10 80C51 单片机的程序存储器低端的几个特殊单元的用途如何 答 0000H 单片机复位入口地址 0003H 外部中断 0 的中断服务程序入口地址 000BH 定时 计数器 0 溢出中断服务程序入口地 址 0013H 外部中断 1 的中断服务程序入口地址 001BH 定时 计数器 1 溢出中断服务程序入口地址 0023H 串行口的中断服务程序 入口地址 章 3 80C51 的指令系统 1 80C51 系列单片机的指令系统有何特点 答 执行时间短 1 个机器周期指令有 64 条 2 个机器周期指令有 45 条 而 4 个机器周期指令仅有 2 条 即乘法和除法指令 指令编码字节少 单字节的指令有 49 条 双字节的指令有 45 条 三字节的指令仅有 17 条 位操作指令丰富 这是 80C51 单片机面向控制特点的重要保证 2 80C51 单片机有哪几种寻址方式 各寻址方式所对应的寄存器或存储器空间如何 答 80C51 单片机的寻址方式有七种 即 寄存器寻址 直接寻址 寄存器间接寻址 立即寻址 基址寄存器加变址寄存器变址寻址 相对寻址和位寻址 这些寻址方式所对应的寄存器和存储空间如下表所示 序号 寻址方式 寄存器或存储空间 1 寄存器寻址 寄存器 R0 R7 A AB DPTR 和 C 布尔累加器 2 直接寻址 片内 RAM 低 128 字节 SFR 3 寄存器间接寻址 片内 RAM R0 R1 SP 片外 RAM R0 R1 DPTR 4 立即寻址 ROM 5 变址寻址 ROM A DPTR A PC 6 相对寻址 ROM PC 当前值的 127 128 字节 7 位寻址 可寻址位 内部 RAM20H 2FH 单元的位和部分 SFR 的位 3 访问特殊功能寄存器 SFR 可以采用哪些寻址方式 答 直接寻址和位寻址方式 4 访问内部 RAM 单元可以采用哪些寻址方式 答 直接寻址 寄存器间接寻址和位寻址方式 5 访问外部 RAM 单元可以采用哪些寻址方式 答 寄存器间接寻址 第 2 页共 20 页 6 访问外部程序存储器可以采用哪些寻址方式 答 立即寻址 变址寻址和相对寻址方式 7 为什么说布尔处理功能是 80C51 单片机的重要特点 答 单片机指令系统中的布尔指令集 存储器中的位地址空间与 CPU 中的位操作构成了片内的布尔功能系统 它可对位 bit 变量 进行布尔处理 如置位 清零 求补 测试转移及逻辑 与 或 等操作 在实现位操作时 借用了程序状态标志器 PSW 中的进位标 志 Cy 作为位操作的 累加器 8 对于 80C52 单片机内部 RAM 还存在高 128 字节 应采用何种方式访问 答 寄存器间接寻址方式 9 试根据指令编码表写出下列指令的机器码 1 MOV A 88H 74H 88H 2 MOV R3 50H ABH 50H 3 MOV P1 55H 75H 90H 55H 4 ADD A R1 27H 5 SETB 12H D2H 12H 10 完成某种操作可以采用几条指令构成的指令序列实现 试写出完成以下每种操作的指令序列 1 将 R0 的内容传送到 R1 2 内部 RAM 单元 60H 的内容传送到寄存器 R2 3 外部 RAM 单元 1000H 的内容传送到内部 RAM 单元 60H 4 外部 RAM 单元 1000H 的内容传送到寄存器 R2 5 外部 RAM 单元 1000H 的内容传送到外部 RAM 单元 2000H 答 1 MOV A R0 MOV R1 A 2 MOV R2 60H 3 MOV DPTR 1000H MOVX A DPTR MOV 60H A 4 MOV DPTR 1000H MOVX A DPTR MOV R2 A 5 MOV DPTR 1000H MOVX A DPTR MOV DPTR 2000H MOVX DPTR A 11 若 R1 30H A 40H 30H 60H 40H 08H 试分析执行下列程序段后上述各单元内容的变化 MOV A R1 MOV R1 40H MOV 40H A MOV R1 7FH 答 R1 7FH A 60H 30H 08H 40H 60H 12 若 A E8H R0 40H R1 20H R4 3AH 40H 2CH 20H 0FH 试写出下列各指令独立执行后有关 寄存器和存储单元的内容 若该指令影响标志位 试指出 CY AC 和 OV 的值 1 MOV A R0 2 ANL 40H 0FH 3 ADD A R4 4 SWAP A 5 DEC R1 第 3 页共 20 页 6 XCHD A R1 答 1 A 2CH 2 40H 0CH 3 A 22H CY 1 AC 1 OV 0 4 A 8EH 5 20H 0EH P 1 6 A EFH 20 08H 13 若 50H 40H 试写出执行以下程序段后累加器 A 寄存器 R0 及内部 RAM 的 40H 41H 42H 单元中的内容各为多少 MOV A 50H MOV R0 A MOV A 00H MOV R0 A MOV A 3BH MOV 41H A MOV 42H 41H 答 A 3BH R0 40H 40H 00H 41H 3BH 42H 3BH 14 试用位操作指令实现下列逻辑操作 要求不得改变未涉及的位的内容 1 使 ACC 0 置位 2 清除累加器高 4 位 3 清除 ACC 3 ACC 4 ACC 5 ACC 6 答 1 SETB ACC 0 2 ANL A 0FH 3 ANL A 87H 15 试编写程序 将内部 RAM 的 20H 21H 22H 三个连续单元的内容依次存入 2FH 2EH 和 2DH 单元 答 MOV 2FH 20H MOV 2EH 21H MOV 2DH 22H 16 试编写程序 完成两个 16 位数的减法 7F4DH 2B4EH 结果存入内部 RAM 的 30H 和 31H 单元 30H 单元存差的高 8 位 31H 单元存差的低 8 位 注意 此题与书上的题要求不一样 书中要求 31H 单元存差的高 8 位 30H 单元 存差的低 8 位 答 CLR CY MOV 30H 7FH MOV 31H 4DH MOV R0 31H MOV A R0 SUBB A 4E MOV R0 A 保存低字节相减结果 DEC R0 MOV A R0 SUBB A 2BH MOV R0 A 保存高字节相减结果 17 试编写程序 将 R1 中的低 4 位数与 R2 中的高 4 位数合并成一个 8 位数 并将其存放在 R1 中 答 MOV A R2 ANL A 0F0H ORL R1 A 18 试编写程序 将内部 RAM 的 20H 21H 单元的两个无符号数相乘 结果存放在 R2 R3 中 R2 中存放高 8 位 R3 中存放低 8 位 答 MOV A 20H MOV B 21H 第 4 页共 20 页 MUL AB MOV R3 A MOV R2 B 19 若 CY 1 P1 10100011B P3 01101100B 试指出执行下列程序段后 CY P1 口及 P3 口内容的变化情况 MOV P1 3 C MOV P1 4 C MOV C P1 6 MOV P3 6 C MOV C P1 0 MOV P3 4 C 答 CY 1 P1 10111011B P3 00111100B 章 4 80C51 的汇编语言程序设计 1 80C51 单片机汇编语言有何特点 答 汇编语言结构紧凑 灵活 汇编成的目标程序效率高 具有占存储空间少 运行速度快 实时性强等优点 它是面向机器的语 言 对于单片机硬件的操作直接 方便 有利于初学者对单片机结构的认知 但它与高级语言相比移植性不好 编程复杂 对编程人员的基础要求高 2 利用 80C51 单片机汇编语言进行程序设计的步骤如何 答 一 任务分析 首先 要对单片机应用系统的设计目标进行深入分析 明确系统设计任务 功能要求和技术指标 然后对系统的运行环境进行调研 这是应用系统程序设计的基础和条件 二 算法设计 经过任务分析和环境调研后 已经明确的功能要求和技术指标可以用数学方法 或模型 来描述 进而把一个实际的系统要求转化 成由计算机进行处理的算法 并对各种算法进行分析比较 并进行合理的优化 三 流程描述 程序的总体构建 先要确定程序结构和数据形式 资源分配和参数计算等 然后根据程序运行的过程 规划程序执行的逻辑顺序 用图形符号将程序流程绘制在平面图上 应用程序的功能通常可以分为若干部分 用流程图将具有一定功能的各部分有机地联系起来 流程图可以分为总流程图和局部流程图 总流程图侧重反映程序的逻辑结构和各程序模块之间的相互关系 局部流程图反映程序模 块的具体实施细节 3 常用的程序结构有哪几种 特点如何 答 顺序程序 无分支 无循环结构的程序 其执行流程是依指令在存储器中的存放顺序进行的 分支程序 可以改变程序的执行顺序 循环程序 按某种控制规律重复执行的程序 控制一部分指令重复执行若干次 以便用简短的程序完成大量的处理任务 4 子程序调用时 参数的传递方法有哪几种 答 利用累加器或寄存器 利用存储器 利用堆栈 5 什么是伪指令 常用的伪指令功能如何 答 伪指令是汇编程序能够识别并对汇编过程进行某种控制的汇编命令 常用的伪指令包括 ORG 功能是向汇编程序说明下面紧接的程序段或数据段存放的起始地址 END 功能是结束汇编 DB 功能是从标号指定的地址单元开始 在程序存储器中定义字节数据 DW 功能是从标号指定的地址单元开始 在程序存储器中定义字数据空间 EQU 功能是将表达式的值或特定的某个汇编符号定义为一个指定的符号名 BIT 功能是将位地址赋给指定的符号名 6 设被加数存放在内部 RAM 的 20H 21H 单元 加数存放在 22H 23H 单元 若要求和存放在 24H 25H 中 试编写出 16 位无符 号数相加的程序 采用大端模式存储 答 程序如下 第 5 页共 20 页 ORG 0000H MOV R0 21H MOV R1 23H MOV A R0 ADD A R1 MOV 25H A DEC R0 DEC R1 MOV A R0 ADDC A R1 MOV 24H A SJMP END 7 编写程序 把外部 RAM 中 1000H 101FH 的内容传送到内部 RAM 的 30H 4FH 中 答 ORG 0000H MOV DPTR 1000H MOV R0 30H MOV R7 32 LOOP MOVX A DPTR MOV R0 A INC R0 INC DPTR DJNZ R7 LOOP RET 8 编写程序 实现双字节无符号数加法运算 要求 R0R1 R6R7 60H61H 答 ORG 0000H MOV A R1 ADD A R7 MOV 61H A MOV A R0 ADDC A R6 MOV 60H A SJMP END 9 若 80C51 的晶振频率为 6MHz 试计算延时子程序的延时时间 DELAY MOV R7 0F6H LP MOV R6 0FAH DJNZ R6 DJNZ R7 LP RET 答 延时时间 2 s 1 1 2 250 2 246 2 2 0 247486 秒 含调用指令 2 个机器周期 10 在内部 RAM 的 30H 37H 单元存有一组单字节无符号数 要求找出最大数存入 BIG 单元 试编写程序实现 答 ORG 0000H BIG DATA 2FH ONE DATA 2AH TWO DATA 2BH START MOV R7 7 比较次数 MOV R0 30H 第 6 页共 20 页 LOOP MOV A R0 MOV ONE A INC R0 MOV TWO R0 CLR C SUBB A R0 JC NEXT ONE 小 TWO 大继续比下一对数 MOV R0 ONE ONE 大放后面 交换 DEC R0 MOV R0 TWO TWO 小放前面 INC R0 NEXT DJNZ R7 LOOP MOV BIG 37H SJMP END 11 编写程序 把累加器 A 中的二进制数变换成 3 位 BCD 码 并将百 十 个位数分别存放在内部 RAM 的 50H 51H 52H 中 答 单字节二进制数转换为压缩的 BCD 码仅需要 2 个字节 在将压缩的 BCD 码拆分存于 3 个单元 org 0 MOV 52H 0 MOV 51H 0 MOV 50H 0 MOV A 0FDh LCALL DCDTH SJMP DCDTH MOV R7 8 MOV R0 A 暂存于 R0 LOOP CLR C MOV A R0 RLC A MOV R0 A MOV R1 51H MOV A R1 ADDC A R1 DA A MOV R1 A DEC R1 MOV A R1 ADDC A R1 DA A MOV R1 A DJNZ R7 LOOP INC R1 50H 已是结果 R1 指向 51H 51H 单元需拆分 MOV A 00H XCHD A R1 MOV 52H A MOV A R1 SWAP A 第 7 页共 20 页 MOV R1 A RET END 12 编写子程序 将 R1 中的 2 个十六进制数转换为 ASCII 码后存放在 R3 和 R4 中 答 ORG 0 MOV R1 5BH MOV A R1 ANL A 0F0H SWAP A ACALL ASCII MOV R3 A MOV A R1 ANL A 0FH ACALL ASCII MOV R4 A SJMP ASCII PUSH ACC CLR C SUBB A 0AH POP ACC JC LOOP ADD A 07H LOOP ADD A 30H RET END 13 编写程序 求内部 RAM 中 50H 59H 十个单元内容的平均值 并存放在 5AH 单元 答 ORG 0000H MOV R7 10 MOV R0 50H MOV B 10 CLR C CLR A LOOP ADDC A R0 INC R0 DJNZ R7 LOOP DIV AB MOV 5AH A SJMP END 14 如图 4 10 所示 编制程序实现 上电后显示 P 有键按下时显示相应的键号 0 7 答 实现程序如下 TEMP EQU 30H ORG 0000H JMP START ORG 0100H START MOV SP 5FH MOV P0 8CH 正序显示 P MOV P3 0FFH 输入方式 CLR CY 第 8 页共 20 页 NOKEY MOV A P3 CPL A JZ NOKEY 无键按下 MOV TEMP P3 有键按下 CALL D10ms MOV A P3 CJNE A TEMP NOKEY 去抖动 MOV R2 0 键号计数器复位 MOV A TEMP LP RRC A JNC DONE INC R2 SJMP LP DONE MOV A R2 MOV DPTR CODE P0 MOVC A A DPTR MOV P0 A JMP NOKEY D10ms MOV R5 10 10MS D1ms MOV R4 249 DL NOP NOP DJNZ R4 DL DJNZ R5 D1ms RET CODE P0 DB 0C0H 0F9H 0A4H 0B0H 99H 92H 82H 0F8H DB 80H 90H 88H 83H 0C6H 0A1H 86H 8EH END 章 5 80C51 的中断系统及定时 计数器 1 80C51 有几个中断源 各中断标志是如何产生的 又是如何复位的 CPU 响应各中断时 其中断入口地址是多少 答 5 个中断源 分别为外中断 和 T0 和 T1 溢出中断 串口中断 INT01 电平方式触发的外中断标志与引脚信号一致 边沿方式触发的外中断响应中断后由硬件自动复位 T0 和 T1 CPU 响应中断时 由硬件自动复位 RI 和 TI 由硬件置位 必须由软件复位 另外 所有能产生中断的标志位均可由软件置位或复位 各中断入口地址 0003H T0 000BH 0013H T1 001BH RI 和 TI 0023H I0I1 2 某系统有三个外部中断源 1 2 3 当某一中断源变低电平时便要求 CPU 处理 它们的优先处理次序由高到低为 3 2 1 处理 程序的入口地址分别为 2000H 2100H 2200H 试编写主程序及中断服务程序 转至相应的入口即可 答 将 3 个中断信号经电阻线或 接 INT ORG 0000H LJMP MAIN ORG 00013H LJMP ZDFZ ORG 0040H MAIN SETB EA SETB EX1 第 9 页共 20 页 SJMP 0RG 0200H ZDFZ PUSH PSW PUSH ACC JB P1 0 DV0 JB P1 1 DV1 JB P1 2 DV2 INRET POP ACC POP PSW RETI ORG 2000H DV0 JMP INRET ORG 2100H DV1 JMP INRET ORG 2200H DV2 JMP INRET 3 外部中断源有电平触发和边沿触发两种触发方式 这两种触发方式所产生的中断过程有何不同 怎样设定 答 当 IT0 0 时 为电平触发方式 电平触发方式时 CPU 在每个机器周期的 S5P2 采样 引脚电平 当采样到低电平时 INT0 INT0 置 IE0 向 CPU 请求中断 采样到高电平时 将 IE0 清 0 在电平触发方式下 CPU 响应中断时 不能自动清除 IE0 标志 电平触发方式时 外部中断源的有效低电平必须保持到请求获得响应时为止 不然就会漏掉 在中断服务结束之前 中断源的有效 的低电平必须撤除 否则中断返回之后将再次产生中断 该方式适合于外部中断输入为低电平 且在中断服务程序中能清除外部中断请 求源的情况 当 IT0 1 时 为边沿触发方式 边沿触发方式时 CPU 在每个机器周期的 S5P2 采样 引脚电平 如果在连续的两个机器I0 I0 周期检测到 引脚由高电平变为低电平 即第一个周期采样到 1 第二个周期采样到 0 则置 IE0 1 产生中断请求 NTINT0NT 在边沿触发方式下 CPU 响应中断时 能由硬件自动清除 IE0 标志 边沿触发方式时 在相继两次采样中 先采样到外部中断输入为高电平 下一个周期采样到为低电平 则在 IE0 或 IE1 中将锁存一 个逻辑 1 若 CPU 暂时不能响应 中断申请标志也不会丢失 直到 CPU 响应此中断时才清 0 另外 为了保证下降沿能够被可靠地采样 到 和 引脚上的负脉冲宽度至少要保持一个机器周期 若晶振频率为 12MHz 为 1 微秒 边沿触发方式适合于以负脉冲形I0 式输入的外部中断请求 4 定时 计数器工作于定时和计数方式时有何异同点 答 定时 计数器实质是加 1 计数器 不同点 设置为定时器模式时 加 1 计数器是对内部机器周期计数 1 个机器周期等于 12 个振荡周期 即计数频率为晶振频率的 1 12 计数值乘以机器周期就是定时时间 设置为计数器模式时 外部事件计数脉冲由 T0 或 T1 引脚输入到计数器 在每个机器周期的 S5P2 期间采样 T0 T1 引脚电平 当某周期采样到一高电平输入 而下一周期又采样到一低电平时 则计数器加 1 更新的计数值在下一 个机器周期的 S3P1 期间装入计数器 相同点 它们的工作原理相同 它们都有 4 种工作方式 由 TMOD 中的 M1M0 设定 即 方式 0 13 位计数器 方式 1 16 位计数器 方式 2 具有自动重装初值功能的 8 位计数器 方式 3 T0 分为两个独立的 8 位计数器 T1 停止工作 5 定时 计数器的 4 种工作方式各有何特点 答 方式 0 位 13 位计数器 由 TL0 的低 5 位 高 3 位未用 和 TH0 的 8 位组成 TL0 的低 5 位溢出时向 TH0 进位 TH0 溢出时 置位 TCON 中的 TF0 标志 向 CPU 发出中断请求 计数初值计算的公式为 X 2 13 N 第 10 页共 20 页 方式 1 的计数位数是 16 位 由 TL0 作为低 8 位 TH0 作为高 8 位 组成了 16 位加 1 计数器 计数个数与计数初值的关系为 X 2 16 N 方式 2 为自动重装初值的 8 位计数方式 TH0 为 8 位初值寄存器 当 TL0 计满溢出时 由硬件使 TF0 置 1 向 CPU 发出中断请求 并将 TH0 中的计数初值自动送入 TL0 TL0 从初值重新进行加 1 计数 周而复始 直至 TR0 0 才会停止 计数个数与计数初值的关系为 X 2 8 N 方式 3 只适用于定时 计数器 T0 定时器 T1 处于方式 3 时相当于 TR1 0 停止计数 方式 3 时 T0 分成为两个独立的 8 位计数器 TL0 和 TH0 TL0 使用 T0 的所有控制位 当 TL0 计数溢出时 由硬件使 TF0 置 1 向 CPU 发出中断请求 而 TH0 固定为定时方式 不 能进行外部计数 并且借用了 T1 的控制位 TR1 TF1 因此 TH0 的启 停受 TR1 控制 TH0 的溢出将置位 TF1 6 要求定时 计数器的运行控制完全由 TR1 TR0 确定和完全由 高低电平控制时 其初始化编程应作何处理 INT 答 TMOD 中 GATE 的值不同 完全由 TR1 TR0 确定时 GATE 为 0 完全由 高低电平控制时 GATE 为 1 INT1 7 当定时 计数器 T0 用作方式 3 时 定时 计数器 T1 可以工作在何种方式下 如何控制 T1 的开启和关闭 答 T0 用作方式 3 时 T1 可以工作在方式 0 1 和 2 T1 的开启由 TR1 控制 即 TR1 1 时 T1 开始工作 TR1 0 时或者定时 计数器工作在方式 3 时 T1 停止工作 8 利用定时 计数器 T0 从 P1 0 输出周期为 1s 脉宽为 20ms 的正脉冲信号 晶振频率为 12MHz 试设计程序 答 采用定时 20ms 然后再计数 1 49 次的方法实现 a T0 工作在定时方式 1 时 控制字 TMOD 配置 M1M0 01 GATE 0 C 0 可取方式控制字为 01H T b 计算计数初值 X 晶振为 12 MHz 所以机器周期 Tcy 为 1 s N t Tcy 20 10 3 1 10 6 20000 X 2 16 N 65536 20000 45536 4E20H 即应将 4EH 送入 TH1 中 20H 送入 TL1 中 c 实现程序如下 ORG 0000H AJMP MAIN 跳转到主程序 ORG 0030H MAIN MOV TMOD 01H 设 T1 工作于方式 2 MOV TH0 4EH 装入循环计数初值 MOV TL0 20H 首次计数值 LP0 SETB P1 0 ACALL NT0 CLR P1 0 MOV R7 49 计数 49 次 LP1 ACALL NT0 DJNZ R7 LP1 AJMP LP0 NT0 MOV TH0 4EH MOV TL0 20H SETB TR0 JNB TF0 CLR TR0 CLR TF0 RET END 9 要求从 P1 1 引脚输出 1000Hz 方波 晶振频率为 12MHz 试设计程序 答 采用 T0 实现 a T0 工作在定时方式 1 时 控制字 TMOD 配置 M1M0 01 GATE 0 C 0 可取方式控制字为 01H T 第 11 页共 20 页 b 计算计数初值 X 晶振为 12 MHz 所以机器周期 Tcy 为 1 1 1000 1 10 3 s N t Tcy 0 5 10 3 1 10 6 500 X 2 16 N 65536 500 65036 FE0CH 即应将 FEH 送入 TH0 中 0CH 送入 TL0 中 c 实现程序如下 ORG 0000H AJMP MAIN 跳转到主程序 ORG 000BH T0 的中断入口地址 LJMP DVT0 ORG 0030H MAIN MOV TMOD 01H 设 T0 工作于方式 2 MOV TH0 0FEH 装入循环计数初值 MOV TL0 0CH 首次计数值 SETB ET0 T0 开中断 SETB EA CPU 开中断 SETB TR0 启动 T0 SJMP 等待中断 DVT0 CPL P1 1 MOV TH0 0FEH MOV TL0 0CH SETB TR0 RETI END 10 试用定时 计数器 T1 对外部事件计数 要求每计数 100 就将 T1 改成定时方式 控制 P1 7 输出一个脉宽为 10ms 的正脉冲 然 后又转为计数方式 如此反复循环 设晶振频率为 12MHz 答 a T1 工作在计数方式 2 时 控制字 TMOD 配置 M1M0 10 GATE 0 C 1 可取方式控制字为 60H T T1 工作在定时方式 1 时 控制字 TMOD 配置 M1M0 01 GATE 0 C 0 可取方式控制字为 10H b 计算初值 X 定时 10ms 时 晶振为 12 MHz 所以机器周期 Tcy 为 1 s N t Tcy 10 10 3 1 10 6 10000 X 2 16 N 65536 10000 55536 D8F0H 即应将 D8H 送入 TH1 中 F0H 送入 TL1 中 计数 100 时 N 100 X 2 8 N 256 100 156 9CH c 实现程序如下 ORG 0000H AJMP MAIN 跳转到主程序 ORG 001BH T1 的中断入口地址 LJMP DVT1 ORG 0030H MAIN MOV TMOD 60H T1 工作于计数方式 2 MOV TH1 9CH 装入计数初值 MOV TL1 9CH CLR P1 7 SETB ET1 T1 开中断 第 12 页共 20 页 SETB EA CPU 开中断 SETB TR1 启动 T1 SJMP 等待中断 DVT1 SETB P1 7 CLR ET1 CLR TR1 MOV TMOD 10H T1 工作于定时方式 1 MOV TH1 0D8H 装初值 MOV TL1 0F0H SETB TR1 JNB TF1 查询等待 10ms CLR TF1 CLR TR1 CLR P1 7 MOV TMOD 60H T1 工作于计数方式 2 MOV TH1 9CH 装初值 MOV TL1 9CH SETB ET1 T1 开中断 SETB TR1 启动 T1 RETI END 11 利用定时 计数器 T0 产生定时时钟 由 P1 口控制 8 个指示灯 编一个程序 使 8 个指示灯依次闪动 闪动频率为 1 次 秒 即 亮 1 秒后熄灭并点亮下一个 答 采用定时 20ms 计数 50 次实现 1 秒定时 编制 1 秒延时子程序 由主程序调用 a T0 工作在定时方式 1 时 控制字 TMOD 配置 M1M0 01 GATE 0 C 0 可取方式控制字为 01H T b 计算计数初值 X 晶振为 12 MHz 所以机器周期 Tcy 为 1 s N t Tcy 20 10 3 1 10 6 20000 X 2 16 N 65536 20000 45536 4E20H 即应将 4EH 送入 TH1 中 20H 送入 TL1 中 c 实现程序如下 ORG 0000H AJMP MAIN 跳转到主程序 ORG 0030H MAIN CLR CY MOV A 01H LP0 MOV P1 A CALL D1SEC RL A AJMP LP0 D1SEC MOV R7 50 计数 50 次 MOV TMOD 01H DL MOV TH0 4EH MOV TL0 20H SETB TR0 JNB TF0 CLR TR0 第 13 页共 20 页 CLR TF0 DJNZ R7 DL RET END 章 6 80C51 的串行口 1 80C51 单片机串行口有几种工作方式 如何选择 简述其特点 答 四种工作方式 由 SCON 中的 SM0 SM1 进行定义 方式 0 同步移位寄存器的输入输出方式 主要用于扩展并行输入或输出口 波特率固定 方式 1 10 位数据的异步通信口 波特率可变 方式 2 11 位数据的异步通信口 波特率固定 方式 3 11 位数据的异步通信口 波特率可变 2 串行通信的接口标准有那几种 答 RS 232C 接口 RS 422A 接口 RS 485 接口 3 在串行通信中通信速率与传输距离之间的关系如何 答 最大距离与传输速率及传输线的电气特性有关 当传输线使用每 0 3m 约 1 ft 有 50PF 电容的非平衡屏蔽双绞线时 传输距 离随传输速率的增加而减小 当波特率超过 1000 bps 时 最大传输距离将迅速下降 4 在利用 RS 422 RS 485 通信的过程如果通信距离 波特率固定 过长 应如何处理 答 在波特率一定的情况下 带负载数的多少 与信号能传输的最大距离是直接相关的 在总线允许的范围内 带负载数越多 信 号能传输的距离就越小 带负载数越少 信号能传输的距离就越远 故应减小通信距离或减少负载数量 5 利用单片机串行口扩展并行输入接口电路如图所示 试编写程序完成将 SW1 SW8 的状态反应在 P0 口所接的 LED 上 如 SW1 闭合时 L7 应点亮 答 电路图如下 8 9 S 5 1 R X D 5 V T X D P 0 0 1 K 8 7 4 L S 1 6 5 H G F E D C B A S L Q C L K P 0 1 1 2 3 4 5 6 7 8 O N P 0 2 P 0 3 P 1 7 P 0 4 P 0 5 P 0 6 P 0 7 2 0 1 5 8 V C C 1 0 K 8 S W 1 S W 8 L 0 L 7 ORG 0000H MOV SCON 10H LOOP CLR P1 7 NOP NOP NOP SETB P1 7 CLR RI JNB RI MOV A SUBF SJMP LOOP END 6 利用单片机串行口扩展并行输出接口电路如图所示 试编写程序完成将 SW1 SW8 的状态反应在移位寄存器 74LS164 所接的 第 14 页共 20 页 LED 上 如 SW1 闭合时 L0 应点亮 答 电路图如下 8 9 S 5 1 R X D 5 V T X D 1 K 8 1 2 3 4 5 6 7 8 O N 2 0 V C C 1 0 K 8 S W 1 S W 8 L 0 L 7 P 1 0 P 1 1 P 1 2 P 1 3 P 1 4 P 1 5 P 1 6 P 1 7 7 4 L S 1 6 4 A B C L K C L R Q A Q B Q C Q D Q E Q F Q G Q H ORG 0000H MOV SCON 00H MOV P1 0FFH LOOP MOV A P1 MOV SUBF A JNB TI CLR TI SJMP LOOP END 章 7 80C51 单片机的系统扩展 1 以 80C31 为主机 用 2 片 27C256 扩展 64K EPROM 试画出接口电路 答 O E 2 7 C 2 5 6 A 0 A 7 D 0 D 7 7 4 L S 5 7 3 O E G A L E 8 0 C 3 1 D 7 D 0 Q 7 Q 0 P S E N E A P 2 0 P 2 6 P 0 A 8 A 1 4 C E O E A 0 A 7 D 0 D 7 A 8 A 1 4 C E P 2 7 1 2 7 C 2 5 6 2 以 80C31 为主机 用 1 片 27C512 扩展 64K EPROM 试画出接口电路 答 O E 2 7 C 5 1 2 A 7 A 0 A 8 A 1 5 C E D 0 D 7 7 4 L S 5 7 3 O E G A L E 8 0 C 3 1 D 7 D 0 Q 7 Q 0 P S E N E A P 2 0 P 2 7 P 0 3 以 80C31 为主机 用 1 片 27C256 扩展 32K RAM 同时要扩展 8K 的 RAM 试画出接口电路 第 15 页共 20 页 答 O E 2 7 C 2 5 6 A 0 A 7 D 0 D 7 7 4 L S 5 7 3 O E G A L E 8 0 C 3 1 D 7 D 0 Q 7 Q 0 P S E N E A P 2 0 P 2 6 P 0 A 8 A 1 4 C E O E A 0 A 7 D 0 D 7 A 8 A 1 2 C E 6 2 C 6 4 R D W E W R 4 当单片机应用系统中数据存储器 RAM 地址和程序存储器 EPROM 地址重叠时 它们内容的读取是否会发生冲突 为什么 答 不会 由于 80C51 对 ROM 的读操作由 PSEN 控制 指令用 MOVC 类 对 RAM 读操作用 RD 控制 指令用 MOVX 所以 尽管 ROM 与 RAM 的逻辑地址是重叠的 它们内容的读取也不会发生冲突 5 根据图 7 14 电路 编程完成对 81C55 的操作 a 读 81C55 的 80H 单元 b 将立即数 88H 写入 81C55 的 30H 单元 答 a MOV DPTR 7E80H MOVX A DPTR b MOV A 88H MOV DPTR 7E30H MOVX A DPTR 6 I2C 总线的特点是什么 答 a 二线制传输 器件引脚少 器件间连接简单 电路板体积减小 可靠性提高 b 传输速率高 标准模式传输速率为 100Kb s 快速模式为 400Kb s 高速模式为 3 4Mb s c 支持主 从和多主两种工作方式 7 I 2C 总线的起始信号和终止信号是如何定义的 答 SCL 线为高电平期间 SDA 线由高电平向低电平的变化表示起始信号 SCL 线为高电平期间 SDA 线由低电平向高电平的变 化表示终止信号 起始和终止信号如图所示 S D A S C L 起始信号 S 终 止信号 P 8 I 2C 总线的数据传送方向如何控制 答 在主机发出起始信号后要再传输 1 个控制字节 7 位从器件地址 1 位传输方向控制位 用 0 表示主机发送数据 1 表示 主机接收数据 9 具备 I2C 总线接口的 E2PROM 芯片有哪几种型号 容量如何 答 典型产品如 ATMEL 公司的 AT24C 系列 型号 容量 AT24C01A 128 AT24C02 256 AT24C04 512 AT24C08A 1K AT24C16A 2K AT24C32A 4K AT24C64A 8K 第 16 页共 20 页 AT24C128B 16K AT24C256B 32K AT24C512B 64K 10 AT24C 系列芯片的读写格式如何 答 a 写操作过程 对 AT24C02 写入时 单片机发出起始信号之后再发送的是控制字节 然后释放 SDA 线并在 SCL 线上产生第 9 个时钟信号 被选中 的存储器器件在确认是自己的地址后 在 SDA 线上产生一个应答信号 单片机收到应答后就可以传送数据了 传送数据时 单片机首先发送一个字节的预写入存储单元的首地址 收到正确的应答后 单片机就逐个发送各数据字节 但每发送 一个字节后都要等待应答 单片机发出停止信号 P 后 启动 AT24C02 的内部写周期 完成数据写入工作 约 10ms 内结束 AT24C02 片内地址指针在接收到每一个数据字节后自动加 1 在芯片的 一次装载字节数 页面字节数 限度内 只需输入首地 址 装载字节数超过芯片的 一次装载字节数 时 数据地址将 上卷 前面的数据将被覆盖 要写入的数据传送完后 单片机应发出终止信号以结束写入操作 写入 n 个字节数据格式如下 S 写控制字节 A 写入首地址 A D a t a 1 A D a t a n A P b 读操作过程 对 AT24C02 读出时 单片机也要发送该器件的控制字节 伪写 发送完后释放 SDA 线并在 SCL 线上产生第 9 个时钟信号 被 选中的存储器在确认是自己的地址后 在 SDA 线上产生一个应答信号作为响应 然后 单片机再发送一个字节的要读出器件的存储区的首地址 收到器件的应答后 单片机要重复一次起始信号并发出器件地址和 读方向位 1 收到器件应答后就可以读出数据字节 每读出一个字节 单片机都要回复应答信号 当最后一个字节数据读完后 单 片机应返回以 非应答 高电平 并发出终止信号以结束读出操作 读出 n 个字节的数据格式如下图所示 S 伪写控制字节 A 读出首地址 A 读控制字节 A D a t a n P AD a t a 1 A S 章 8 80C51 单片机的模拟量接口 1 D A 与 A D 转换器的主要功能是什么 答 D A 转换器 将数字量转换为模拟量 A D 转换器 将模拟量转换为数字量 2 DAC0832 采用输入寄存器和 DAC 寄存器二级缓冲有何优点 答 可以使多路通道同步输出 3 试根据图 8 3 的接口电路编制程序 实现产生正向的锯齿波 答 设 DATA1 和 DATA2 为锯齿波的最低和最高值 有 START MOV DPTR 7FFFH MOV R7 DATA1 STEP1 MOV A R7 MOVX DPTR A INC R7 CJNE R7 DATA2 STEP1 JMP START 4 根据图 8 6 所示的接口电路 若要从该 A D 转换器的通道 1 采集数据 每隔 10ms 读入 4 个数据 并将数据存入地址为 30H 33H 的内部数据存储器中 试设计该程序 答 ORG 0 JMP MAIN ORG 0013H JMP INT1 ORG 0040H MAIN MOV SP 5FH MOV DPTR 7FF9H SETB IT1 第 17 页共 20 页 SETB EX1 SETB EA LP1 MOV R0 30H MOV R7 4 LP2 MOVX DPTR A SJMP DJNZ R7 LP2 CALL D10ms SJMP LP1 D10ms MOV R5 10 D1ms MOV R4 249 DL NOP NOP DJNZ R4 DL DJNZ R5 D1ms RET ORG 0300H INT1 MOVX A DPTR MOV R0 A RETI 章 9 80C51 单片机 C 语言程序设计 1 C51 应用程序具有怎样的结构 答 C51 程序由一个或多个函数构成 其中至少应包含一个主函数 main 程序从主函数开始执行 调用其它函数后又返回主函数 被调用函数如果位于主调函数前面 可以直接调用 否则应先说明后调用 被调用函数可以是用户自编的函数 或是 C51 编译器提供的 库函数 2 C51 支持的数据类型有哪些 答 字符型 整型 长整型 浮点型 位型 访问 SFR 3 C51 支持的存储器类型有哪些 与单片机存储器有何对应关系 答 见表 9 2 所示 4 C51 有哪几种编译模式 每种编译模式的特点如何 答 SMALL 小模式 变量默认在片内 RAM 空间小 速度块 COMPACT 紧凑模式 变量默认在片外 RAM 的页 256 字节 页号由 P2 口决定 LARGE 大模式 变量默认在片外 RAM 的 64KB 范围 空间大 速度慢 5 中断函数是如何定义的 各种选项的意义如何 答 interrupt n 用于定义中断函数 n 为中断号 可以为 0 31 通过中断号可以决定中断服务程序的入口地址 常用的中断源对应的中断号 中断源 外中断 0 定时器 0 外中断 1 定时器 1 串行口 中断号 0 1 2 3 4 6 C51 应用程序的参数传递有哪些方式 特点如何 答 参数传递可以采用寄存器 固定存储器位置方式 寄存器传递方式最多可以传递 3 个参数 这种参数传递可以产生高效的代码 当无寄存器可用时 参数可以采用固定的存储器位置传递 在 SMALL 模式下 参数传递在内部 RAM 中完成 在 COMPACT 和 LARGER 模式下 参数的传递要在外部 RAM 中完成 7 一般指针与基于存储器的指针有何区别 答 定义时未指定它所指向的对象的存储器类型时 该指针变量就被认为是一般指针 一般指针占用 3 个字节 第一个字节存放该 指针的存储器类型编码 由编译模式的默认值确定 第二和第三个字节分别存放该指针的高位和低位地址偏移量 第 18 页共 20 页 定义时就指定了它所指向的对象的存储类型时 该指针变量就属于基于存储器的指针 基于存储器的指针可以高效访问对象 类型 由 C51 源代码中存储器类型决定 且在编译时确定 8 关键字 bit 与 sbit 的意义有何不同 答 Bit 用于定义位变量的名字 编译器会对其分配地址 位变量分配在内部 RAM 的 20H 2FH 单元相应的位区域 位地址范围是 00 7FH 共 128 个 sbit 用于定义位变量的名字和地址 地址是确定的且不用编译器分配 它是 SFR 中的可以进行位寻址的确定位 也可以是内部 RAM 的 20H 2FH 单元中确定的位 9 单片机汇编程序与 C51 程序在应用系统开发上有何特点 答 采用 C51 进行程序设计 对系统硬件资源的分配比用汇编语言简单 且程序的阅读和修改比较容易 适于编写较大一点的程序 汇编语言生成的目标程序占存储空间少 运行速度快 具有效率高 实时性强的优点 适于编写短小高效的程序 章 10 80C51 应用系统设计方法 1 单片机应用系统的设计有那些要求 答 a 可靠性要高 b 使用和维修要方便 c 性能价格比要高 2 单片机应用系统的设计有那些步骤 答 a 确定任务 b 方案设计 c 硬件设计 d 软件设计 3 提高单片机应用系统的可靠性有那些措施 答 a 电源干扰 交流电源干扰及其抑制 直流电源抗干扰措施 b 地线干扰及其抑制 接地问题 频率小于 1MHz 时 采用一点接地 频率高于 10MHz 时 采用多点接地 频率处于 1 至 10MHz 时 若采用一点接地 其地线长度不应超过波长的二十分之一 否则 应采用多点接地 数字地和模拟地应分别接地 印刷电路板的地 线分布原则 TTL CMOS 器件的接地线要呈辐射网状 避免环形 板上地线的宽度要根据通过的电流大小而定 最好不小于 3mm 在 可能的情况下 地线尽量加宽 旁路电容的地线不要太长 功率地通过电流信号较大 地线应较宽 必须与小信号地分开 信号电缆屏 蔽层的接地 信号电缆可以采用双绞线和多芯线 又有屏蔽和无屏蔽两种情况 双绞线具有抑制电磁干扰的作用 屏蔽线具有抑制静电 感应干扰的作用 c 其它提高系统可靠性的方法 4 数据采集系统的模拟通道有那些环节 各环节的功能是什么 答 a 传感器 把被测的物理量 如温度 压力等 作为输入参数转换为电量 电流 电压 电阻等 输出 b 多路开关 多路开关的作用是可以利用一个 A D 转换器进行多路模拟量的转换 c 放大器 放大器通常采用集成运算放大器 在环境条件较差时 可以采用数据放大器 也称为精密测量放大器 或传感器接口专 用模块 d 采样保持器 采样保持器具有采样和保持两个状态 在采样状态时 电路的输出跟随输入模拟信号变化 在保持状态时 电路的 输出保持着前一次采样结束前瞬间的模拟量值 使用采样保持器的目的是使 A D 转换器转换期间输入的模拟量数值不变 从而提高 A D 转换的精度 e A D 转换器 A D 转换器的主要指标是分辨率 A D 转换器的位数与其分辨率有直接的关系 A D 转换器的另一重要指标是转换 时间 选择 A D 转换器时必须满足采样分辨率和速度的要求 5 什么情况下可以不用采样保持器 答 当输入信号的变化与 A D 转换器的转换时间慢得多时 可以不用采样保持器 6 模拟信号的放大应注意哪些问题 答 当信号的数值符合 A D 转换器的输入等级时 可以不用放大器放大 当信号的数值不符合 A D 转换器的输入等级时 就需要放 大器放大 第 19 页共 20 页 7 多路模拟开关的选择要注意什么 答 正确选择多路开关的种类 注意多路开关与相关电路的合理搭配与协调 保证各电路单元有合适的工作状态
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!