已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 桂桂 林林 电电 子子 科科 技技 大大 学学 单片机最小应用系统单片机最小应用系统 设设 计计 报报 告告 指导老师 指导老师 吴 兆 华 学学 生 生 冯焕焕 学学 号 号 2 前言前言 近年来随着科技的飞速发展 单片机的应用正在不断地走向深入 同时带动传统控 制检测日新月益更新 在实时检测和自动控制的单片机应用系统中 单片机往往是作为一个 核心部件来使用 仅单片机方面知识是不够的 还应根据具体硬件结构 以及针对具体应用对 象特点的软件结合 加以完善 单片机是指在一个芯片上集成了中央处理器 存储器和各种 I O 接口的微型计算机 它主要面向控制性应用领域 因此又称为嵌入式微控制器 单片机诞生 30 多年以来 其品 种 功能和应用技术都得到飞速的发展 单片机的应用已深入国民经济和日常生活的各个 领域 本次课程设计目的主要是培养学生综合运用所学知识 发现 提出 分析和解决实际问题 锻 炼实践能力的重要环节 是对学生实际工作能力的具体训练和考察过程 随着科学技术发展 的日新日异 单片机已经成为当今计算机应用中空前活跃的领域 在生活中可以说得是无 处不在 因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的 本课程设计实在学完单片机原理及课程之后综合利用所学单片机只是完成一个单片机 应用系统设计并在实验室实现 该课程设计的主要任务是通过解决一 两个实际问题 巩 固和加深 单片机原理和应用 课程中所学的理论知识和实验能力 基本掌握单片机应用 电路的一般设计方法 提高电子电路的设计和实验能力 加深对单片机软硬知识的理解 获的初步的应用经验 为以后从事生产和科研工作打下一定的基础 3 摘要摘要 单片机微型计算机是微型计算机的一个重要分支 也是颇具生命力的机种 单片机微型 计算机简称单片机 特别适用于控制领域 故又称为微控制器 单片机是 20 世纪中期发展 起来的一种面向控制的大规模集成电路模块 具有功能强 体积小 可靠性高 价格低廉 等特点 在工业控制 数据采集 智能仪表 机电一体化 家用电器等领域得到了广泛的 应用 极大的提高了这些领域的技术水平和自动化程度 单片机应用的意义绝不仅限于它 的广阔范围以及带来的经济效益 更重要的意义在于 单片机的应用正从根本上改变着传 统的控制系统的设计思想和设计方法 从前必须由模拟电路或数字电路实现的大部分控制 功能 现在使用单片机通过软件就能实现了 随着单片机应用的推广普及 单片机控制技 术将不断发展 日益完善 本文是设计频率 脉冲宽度的测量与显示的硬件电路与程序的编 制 它可以测量脉冲信号的脉冲宽度 频率等参数 利用定时器的门控信号 GATE 进行控制 可以实现脉冲宽度的测量 利用定时器 T0 定时 T1 计数来测量由 P3 5 口输入的脉冲信号的 频率 在单片机应用系统中 为了便于对 LED 显示器进行管理 需要建立一个显示缓冲区 显示时采用动态扫描的方式将将各位数的 BCD 码依序输入到 LED 中 并连续扫描 2 秒钟 通过采用 STC89C52RC 单片机为中心器件来设计脉冲宽度测量器 并运用 MCS 51 52 单片 机计数功能 选择好工作模式 对脉宽进行计数 在现有的单片机仿真机系统上掌握相关 软硬件设计与调试知识 并在计算机上编写汇编程序调试运行 关键词 门控信号 GATE 脉冲宽度 扩展测量范围 脉冲频率 4 ABSTRACT Along with the large scale integrated circuit technology and the computer technology rapid development the computer logic unit and the controller namely CPU the memory and the many kinds of interfaces integration the chip which becomes together on the chip is a monolithic integrated circuit The monolithic integrated circuit is published for 20 years development speed swift and violent the application scope was broad is formerly any technology all is unable to compare The monolithic integrated circuit achievement inserts declines controller its application to be very popular This ticle introduced the monolithic integrated circuit concept the classification the developing process and use the MCS 51 monolithic integrated circuit and the CD4094 monolithic integrated circuit design multipurpose square wave form oscillator hardware electric circuit and the control circuit and has carried on the software programming to the monolithic integrated circuit causes manufacture and production multipurpose square wave signal generating device which the user may facilitate The this article first chapter simply introduced the monolithic integrated circuit developing process and the application domain Second chapter take the MCS 51 monolithic integrated circuit as the example specifically introduces the monolithic integrated circuit the structure as well as the principle of work Third chapter uses the MCS 51 monolithic integrated circuit and the CD4094 monolithic integrated circuit design multipurpose square wave form oscillator hardware electric circuit and the control circuit and carries on the software programming Key word Microprocessor monolithic integrated circuit MCS 51 monolithic integrated circuit multipurpose signal generating device electric circuit multipurpose signal generating device program Key words Microprocessor 5 目录目录 前言前言 3 摘要摘要 3 目录目录 4 一 设计原理一 设计原理 4 1 1 脉冲宽度测量原理 6 1 1 脉冲频率测量原理 7 1 2 扩展测量范围原理 7 二 实验课题内容及要求二 实验课题内容及要求 8 三 实验目的及意义三 实验目的及意义 9 四 四 系统硬件电路系统硬件电路 10 4 1 硬件电路说明 10 4 2 系统调试及结果分析 13 4 3 最小系统控制部分 15 4 3 1 晶振电路 6 4 3 2 复位电路 7 五 软件设计五 软件设计 26 5 1 程序流程图 27 5 2 程序源代码 28 六 注意事项及解决问题的方案六 注意事项及解决问题的方案 31 七 心得体会七 心得体会 32 八 参考文献八 参考文献 34 6 一 设计原理一 设计原理 1 T0T0 工作方式工作方式 通过设置 TMOD 使其为定时器模式 在做定时器使用时 将 T0 定时为 0 001S 当 GATE 1 时 为门控方式 只有 TR0 设置为 1 且同时外部中断引脚也为高电平时 才能启动 T0 开始计数工作 把脉冲信号从 P3 2 脚引入 T0 设为定时器方式工作 并工作在门控方式 GATE 1 在待测信号高电平期间 T0 对内部周期脉冲进行计数 在待测脉冲高电平结束时 其下降 沿向 P3 2 发中断 在外部中断 0 的中断服务程序中 读取 TH0 TL0 的计数值 该值就是 待测脉冲的脉宽 随后 清零 TH0 和 TL0 以便下一个脉宽的测量 计算方法计算方法 脉冲宽度 计数值 0 01s 将脉冲宽度的数值转换为压缩 BCD 码 再将压缩 BCD 码转换为非压缩 BCD 码用于显示 最后调用显示程序 读取脉冲宽度 2 T2T2 捕捉工作方式捕捉工作方式 使用 T2 的捕捉方式 TH2 TL2 的初值设为 0 待测信号从 T2EX P1 1 引入 采用定 时器 T0 定时 0 001s 刚开始待测信号为高电平或低电平时等待 再次检测为高电平时 T2 开 始计数 定时器 T0 每定时 0 001s 通过串口 P1 0 的开关状态使 T2 的计数值增一并将计数 值存入 RCAP2H 和 RCAP2L 两个寄存器中 计算方法 计算方法 脉冲宽度 计数值 0 001s 再将得到的表示脉冲宽度的十六进制转换为压 缩 BCD 码 再将压缩 BCD 码转换为非压缩 BCD 码用来显示 读取 LED 上显示的数据即 为要测量的脉冲宽度 1 11 1 脉冲宽度测量脉冲宽度测量 利用定时器的门控信号 GATE 进行控制可以实现脉冲宽度的测量 对定时器 T1 来讲 如果 GATE 0 必须使软件控制位 TR1 1 且 INT1 为高电平方可启动定时器 T1 即定时器 T1 的启动要受外部中断请求信号 INT1 的影响 利用此特点 被测脉冲信号从 INT1 端引入 其上升沿启动 T1 计数 下降沿停止 T1 计数 定时器的计数值乘以机器周期即为脉冲宽度 下图中给出了脉冲宽度测量的原理图 7 为低时启动 T1 下降沿停止计数 被检测脉冲信号 INT1 为高则等待 上升沿开始计数 图 1 脉冲宽度测量过程 图 2 系统原理图 1 21 2 脉冲频率测量脉冲频率测量 频率测量实际上就是在 1s 内对脉冲个数进行计数 计数值就是信号频率 令定时器 T0 工作在方式 1 得到 100ms 的定时间隔 再进行软件计数 10 次 形成一个 1s 的测量闸 门信号 在测量闸门信号期间令计数器 T1 工作在计数方式 1 对脉冲信号的频率计数 计 数值存入 COUNT COUNT 1 和 COUNT 2 单元 计数值通过 6 位动态数码管显示出来 1 31 3 扩展测量范围原理扩展测量范围原理 上述系统被测脉冲宽度范围最大为 65535us 扩展计数器的位数可提高脉冲宽度的测 8 量范围 令定时器 T1 工作在方式 1 定时 GATE 1 用 COUNT 单元 COUNT 1 单元即定时器 T1 的计数单元 TH1 和 TL1 组成一个 32 位的计数器对脉冲宽度进行测量 并且在定时器 T1 溢出时 给 COUNT 2 赋值 01H 并将 THI 和 TH0 置零 重新开始计数 以扩展系统测量范围 使可以达到 130ms 的任务要求 同时在进行频率测量时 当计数器 T1 溢出时 给 COUNT 2 赋值 01H 并将 THI 和 TH0 置零 重新开始计数 以扩展系统测量范围使可以达到 100KHZ 的任务要求 二 实验课题内容及要求二 实验课题内容及要求 2 12 1 要求要求 用 8031 单片机控制可测方波 100 1000Hz 并测量方波宽度 2 22 2设计内容设计内容 利用单片机及 4 位 LED 数码管做成四位脉宽显示 在一个脉宽期间对内部周期进行计 数 得到的一个高电平脉冲内的计数值显示在四位数码管上 并达到相应的技术指标要求 技术指标 1 输入脉冲幅度 0 5V 2 脉宽测量范围 0 1 50ms 3 测量精度 1 4 显示方式 四位数字显示 计数 被检测脉冲信号 为高则开始计数 为低时停止计数 T0 把脉冲信号从 P3 2 脚引入 T0 设为定时器方式工作 并工作在门控方式 GATE 1 在待测信号高电平期间 T0 对内部周期脉冲进行计数 在待测脉冲高电平结 束时 其下降沿向 P3 2 发中断 在外部中断 0 的中断服务程序中 读取 TH0 TL0 的计数 值 计算出所测 随后 清零 TH0 和 TL0 以便下一个脉宽的测量 显示 将数码管的段 控信号与 P 口与六位 LED 数码管相连 9 T2 使用 T2 捕捉方式时将脉冲信号加到 P1 1 引脚 并且同时开通 T0 定时器 将数码 管的段控信号与 P0 口与六位 LED 数码管相连 将位控信号 P2 与键盘相连 三 实验目的三 实验目的及意义及意义 目的 目的 1 加深外部中断指令的基本使用方法 2 熟悉外部中断处理程序的编程方法 3 进一步熟悉 8051 内部定时 计数器的初始化 使用方法及编程 法 4 进一步掌握 8051 中断处理程序的编程方法和应用 5 掌握 I O 接口的基本方法 6 学会使用并熟练掌握电路绘制软件 Protel99SE 或 DXP 7 基于 STC89C52RC 单片机测量脉冲宽度 8 研究分别使用定时计数器 0 1 的 GATE 模式和定时计数器 2 的捕捉 功能完成外部脉冲宽度测量 9 通过 6 位 LED 显示计数值 时间精确到 0 1 秒 并熟悉了解试验箱的应 用 提高动手能力 意义 意义 1 通过单片机的综合设计 能够将所学的知识融会贯通 锻炼独立设计 制作和调 试单片机的应用系统能力 领会单片机应用系统的软件 硬件调试方法和系统的研制开发 过程 为进一步的科研实践活动打下一定的基础 2 通过单片机综合设计更加熟悉的掌握 51 单片机的应用 掌握了方波频率计算以及 形成的原理 更加进一步的学习方波宽度的测量 并且对软件编程及硬件设计方法更加好 的掌握 掌握根据课题要求 提出并选择设计方案 查找确定所用元器件 设计并搭制硬 件电路 编程写入并调试等的一系列 掌握单片机应用的基本方法与步骤 3 通过单片机的综合设计 对输出方波的原理有很大的了解 掌握方波频率的计算 方法 同时对其脉冲测量过程学习到很多 在设计中对系统原理图也有很好地掌握 实验 中和本组队员努力配合 明白团队的努力是伟大的 四 系统硬件电路四 系统硬件电路 整个设计主要包括单片机基本的晶振电路 按键复位电路 设计中需要的 10 LED 管 开关 按键等 具体的电路图如下图 1 所示 XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0 0 AD0 39 P0 1 AD1 38 P0 2 AD2 37 P0 3 AD3 36 P0 4 AD4 35 P0 5 AD5 34 P0 6 AD6 33 P0 7 AD7 32 P1 0 1 P1 1 2 P1 2 3 P1 3 4 P1 4 5 P1 5 6 P1 6 7 P1 7 8 P3 0 RXD 10 P3 1 TXD 11 P3 2 INT0 12 P3 3 INT1 13 P3 4 T0 14 P3 7 RD 17 P3 6 WR 16 P3 5 T1 15 P2 7 A15 28 P2 0 A8 21 P2 1 A9 22 P2 2 A10 23 P2 3 A11 24 P2 4 A12 25 P2 5 A13 26 P2 6 A14 27 U1 AT89C51 C1 22p C2 22p X1 CRYSTAL R1 10k C3 1u5 图 1 系统设计总电路图 4 14 1 硬件电路说明硬件电路说明 本次硬件系统包括单片机最小系统 外部中断电路 LED 显示电路三部分在下面 介绍中对每一部分都有详细的说明 AT89C51 单片机简介 AT89S51 单片机是美国 ATMEL 公司生产的低功耗 高性能 CMOS 8 位单片机 片内含 4K bytes 的可系统编程的 Flash 只读程序存储器 器件采用 ATMEL 公司的高密度 非易失 性存储技术生产 兼容标准 8051 指令系统及引脚 它集 Flash 程序存储器 既可在线编程 ISP 也可用传统方法进行编程及通用 8 位微处理器于单片芯片中 ATMEL 公司的功能强 大 低价 AT89S51 单片机可为您提供许多高性价比的应用场合 可灵活应用于各种控制领 域 11 图 2 AT89S51 引脚图 AT89S51 是一个低功耗 高性能 CMOS 8 位单片机 片内含 8k Bytes ISP In system programmable 的可反复擦写 1000 次的 Flash 只读程序存储器 器件采用 ATMEL 公司的高 密度 非易失性存储技术制造 兼容标准 MCS 51 指令系统及 89C51 引脚结构 芯片内集成 了通用 8 位中央处理器和 ISP Flash 存储单元 功能强大的微型计算机的 AT89S51 可为许 多嵌入式控制应用系统提供高性价比的解决方案 1 AT89S51 具有如下特点 40 个引脚 8k Bytes Flash 片内程序存储器 128 bytes 的随机存取数据存储器 RAM 32 个外部双向输入 输出 I O 口 5 个中断优先级 2 层中断嵌套中断 2 个 16 位可编程定时计数器 2 个全双工串行通信口 看门狗 WDT 电路 片内时钟振荡器 2 AT89S51 的运行模式 1 空闲模式 在空闲模式下 CPU 处于睡眠状态 振荡器和所有片内外围电路仍然有效 空闲模式 可由软件设置进入 设 IDL 1 在这种模式下 片内 RAM 和 SFR 中的内容保持不变 空 闲模式可通过任何一个允许中断或硬件复位退出 若用硬件复位方式结束空闲模式 则在片内复位控制逻辑发生作用前长达约两个机器 周期时间内 器件从断点处开始执行程序 片内硬件禁止访问内部 RAM 但不禁止访问端 口 为避免采用复位方式退出空闲模式时对端口的不应有的访问 在紧随设置进入空闲指 令 即设 IDL 1 的后面 不能是写端口或外部 RAM 的指令 2 掉电模式 引起掉电模式的指令是执行程序中的最后一条指令 使 PD 1 的指令 12 在掉电模式下 振荡器停止工作 CPU 和片内所有外围部件均停止工作 但片内 RAM 和 SFR 中的内容保留不变 直到掉电模式结束 退出掉电模式可用硬件复位或任何一个有效的外部中断 INT0 和 INT1 复位可重新设 置 SFR 中的内容 但不改变片内 RAM 中的内容 在 Vcc 电源恢复到正常值并维持足够长 的时间之后 允许振荡器恢复并达到稳定 方可进行复位 以退出掉电模式 3 MCS 51系列单片机的并行I O口 接口电路是微机必不可少的组成部分 并行输入确出接口是 CPU 和外部进行信息交换 的主要通道 MSC 51 系列单片有 4 个 8 位并行双向 I O 口 P0 P3 共 32 根 I O 线 每一 根线能独立用作输入或输出 单片机可以外接键盘 显示器等外围设备 还可以进行系统 扩展 以解决硬件资源不足问题 4 个并行口都是双向口 既可以输入又可以输出 P0 P2 口经常作外部扩展存储器时的数据 地址线 P3 口除作 I O 口外 每一根都有第二 功能 这 4 个 I O 口结构基本相同 但仍存在差别 1 P1 口是最常用的 I O 口如图 3 所示 因为不作数据地址线 其结构中没有数据 地址线 也没有多路开关 MUX 输出驱动电路接有上拉电阻 P1 口输入输出时与 P0 作 I O 时相似 输出数据时 先写入锁存器 经 Q 端反相 再经场效应管反相输出到引脚 输入 时 先向锁存器写 l 使 v 管截止 外部引脚信号由下方读缓冲器送入内部总线 完成读 引脚操作 P1 口也可以读锁存器 外部提升电阻将引脚拉升至高电平 但输人的低电平信 号能将其拉低 不会影响低电平的输入 图3 P1口一位结构 2 P3 口为双功能口 当 P3 口作为通用 I O 口使用时 它为准双向口 且每位都可 定义为输入或输出口 其工作原理同 P1 口类似 3 P3 口还具有第二功能 其引脚描述 P3 口特殊功能 13 口线特殊功能信号名称 P3 0RXD串行输入口 P3 1TXD串行输出口 P3 2 外部中断 0 输入口 P3 3 外部中断 1 输入口 P3 4T0 定时器 0 外部输入 口 P3 5T1 定时器 1 外部输入 口 P3 6WR写选通输出口 P3 7RD读选通输出口 4 2 系统调试及结果分析系统调试及结果分析 1 硬件调试 硬件电路板中器件连接好后 先用万用表测试电路中有无虚焊短接之处 测试无误后 将板子通电 进行静态调试 取好两跟短的导线 一根导线的其中一端接地 另一端接 P2 3 P2 0 口中的一个口 若数码管亮 再用另一根导线 其中异端接地 另一端与 P0 0 P0 7 依次接触 看数码管 各段的亮灭情况 从而判断每个数码管各段的好坏及电路的是否正确 硬件的测试首先是检查电路的逻辑线路是否正确 如果正确再检查原理图的线路连接 是否正确 电路的布局安排是否合理等等 软件的测试只要是检查程序的语法是否正确 数据结构安排是否妥当 时序是否正确 整体流程安排是否合理 上面两部检查妥当后 就到了系统调试最关键的一步 软硬件的协同调试 问题往往在此才能被发现 2 软件调试 在软硬件协同调试时 硬件问题比较少 主要体现在上拉电阻的使用 滤波电容的使 用等 极少发生逻辑上的错误 硬件的问题往往是致命的问题 其不易察觉 发现之后电 路更改也不容易 这就需要我们不断的实验 在实战中摸索出规律 吸取经验教训 在以 后的电路设计中能设计出稳定的抗干扰能力强的电路 软件问题是调试中遇到问题最多的 此系统中出现过的问题有以下几处 1 键盘中断处理程序中中断入口后 没有关掉外部中断 出现键值读取不正确 不能 正确操作键盘 解决方法 在中断入口处关掉外中断 并在出口时再开外中断 14 2 键盘扫描前没有软件延时消抖 出现键值读取不准确 解决方法 在键盘中断入口 后在键值扫描前软件延时 5ms 消去键盘抖动所带来的误操作 3 程序中有个别地方将 与 混淆 造成结果不准确 解决办法 仔细查找 将混淆出更正 再把到计时设定时子程序加进来 看是否能通过菜单正确调用 返回 能否修改到计 时 整个调试完毕 3 结果分析 因为从设计程序分析 数码管显示器动态到秒的频率约为 167HZ 实际使用观察时完 全没有闪烁 由于计时中断程序中加了中断延时误差处理 所以 实际设计时精度非常的 高 4 3 最小系统控制部分最小系统控制部分 4 3 1 单片机最小系统单片机最小系统 单片机各功能部件的运行都是以时钟频率为基准的 有条不紊地进行工作 因而时钟 频率直接影响单片机的速度 时钟电路的质量也直接影响单片机系统的稳定性 常用的时 钟电路方式有两种 一种是内部时钟方式 一种是外部时钟方式 这里采用的是内部时钟 方式 外接晶振 时钟电路由片外晶体 微调电容和单片机的内部电路组成 选取频率为 11 0592MHz 的晶振 微调电容是瓷片电容 89S52 单片机的 P0 7 口作为波形输出口 若接示波器 则可通过示波器来观察波形 是一个矩形波 此单元电路包括时钟电路 复位电路 具体电路如图 2 所示 15 小键盘接口电路 小键盘如图 3 所示 它包括 8 个键 系统中用到的键只有 5 个 分别为 0 号 1 号 2 号 3 号 4 号键 其中 0 号键是状态键 采用外部中断控制 用它来确定其它几个键的按 键功能 具体作用在前述的系统功能中已做介绍了 另外 4 个键为功能键 调节频率与占 空比的 小键盘中引出的 6 根线依次分别接单片机的 P1 0 P1 1 P1 2 P1 3 P1 4 P1 5 口 16 4 3 2 晶振电路晶振电路 电源引脚 Vcc 和 Vss Vcc 电源端 接 5V Vss 接地端 时钟电路引脚 XTAL1 和 XTAL2 XTAL1 接外部晶振和微调电容的一端 在片内它是振荡器倒相放大器的输入 若使 用外部 TTL 时钟时 该引脚必须接地 XTAL2 接外部晶振和微调电容的另一端 在片内它是振荡器倒相放大器的输出 若使 用外部 TTL 时钟时 该引脚为外部时钟的输入端 系统扩展时 ALE 用于控制地址锁存器锁存 P0 口输出的低 8 位地址 从而实现数据与 低位地址的复用 17 图 4 系统晶振电路 系统的时钟电路设计是采用的内部方式 即利用芯片内部的振荡电路 如图 5 所示 AT89S 单片机内部有一个用于构成振荡器的高增益反相放大器 引脚 XTAL1 和 XTAL2 分别 是此放大器的输入端和输出端 这个放大器与作为反馈元件的片外晶体谐振器一起构成一 个自激振荡器 外接晶体谐振器以及电容 C1 和 C2 构成并联谐振电路 接在放大器的反馈 回路中 对外接电容的值虽然没有严格的要求 但电容的大小会影响震荡器频率的高低 震荡器的稳定性 起振的快速性和温度的稳定性 因此 此系统电路的晶体振荡器的值为 12MHz 电容应尽可能的选择陶瓷电容 电容值约为 22 F 在焊接刷电路板时 晶体振荡 器和电容应尽可能安装得与单片机芯片靠近 以减少寄生电容 更好地保证震荡器稳定和 可靠地工作 外部程序存储器读选通信号 是读外部程序存储器的选通信号 低电平有效 程序存储器地址允许输入端 VPP 当为高电平时 CPU 执行片内程序存储器指令 但当 PC 中的值超过 0FFFH 时 将自 动转向执行片外程序存储器指令 当为低电平时 CPU 只执行片外程序存储器指令 输入 输出口引脚 P0 P1 P2 和 P3 P0 口 P0 0 P0 7 该端口为漏极开路的 8 位准双向口 负载能力位 8 高 LSTTL 负 载 它为 8 位地址线和 8 位数据线的复用端口 P1 口 P1 0 P1 7 它是一个内部带上拉电阻的 8 位准双向 I O 口 P1 口的驱动能 力为 4 个 LSTTL 负载 P2 口 P2 0 P2 7 它为一个内部带上拉电阻的 8 位准双向 I O 口 P2 口的驱动能 力也为 4 个 LSTTL 负载 在访问外部程序存储器时 它作存储器的高 8 位地址线 P3 口 P3 0 P3 7 P3 口同样是内部带上拉电阻的 8 位准双向 I O 口 P3 口除了 作为一般的 I O 口使用之外 其还具有特殊功能 3 3 3 复位电路 复位使单片机处于起始状态 并从此状态开始运行 MCS5 51 单片机 RST 引脚为复位端 该引脚连续保持 2 个机器周期 24 个时钟振荡周期 以上的高电平 可使单片机复位 本论 文使用的是外部复位电路 单片机在启动后要从复位状态开始运行 因此上电时要完成复 18 位工作 称上电复位 如图 6 a 所示 上电瞬间电容两端的电压不能发生突变 只 RST 端 为高电平 5v 上电后电容通过及 RC 电路放电 RST 端电压逐渐下降 直至低电平 0V 如 图 6 c 所示 适当选择 R C 的值 使 RST 端的高 I 电平维持 2 个机器周期以上即可完成 复位 单片机 L 在运行过程中 出于本身或外并干扰的原因会导致出错 这时可按复位键 以重新开始远行 按键复位可分为按键电平复位或按健脉冲复位 如图 6 b 所示 按键脉 冲复位和上电平复值的原理是一样的 都是利用 RC 电路的放电原理 如图 6 d 所示 让 RST 端能保持一段时间的高电平 以完成复位 按键电平复位时 按键时间也应保持在两 个机器周期以上 a 上电复位 19 b 按键电平复位 c RC放电过程 20 d 电平复位过程 图5 单片机常用复位电路 根据设计要求和计算简便的原则 我们选择 12M 的石英晶振 30PF 的电容 5V 电源 最小系统如下 21 图 6 最小系统连接图 4 44 4 数码管显示电路数码管显示电路 数码管按段数分为七段数码管和八段数码管 八段数码管比七段数码管多一个发光 二极管单元 多一个小数点显示 按能显示多少个 8 可分为 1 位 2 位 4 位等 等数码管 按发光二极管单元连接方式分为共阳极数码管和共阴极数码管 共阳数码管 是指将所有发光二极管的阳极接到一起形成公共阳极 COM 的数码管 共阳数码管在 应用时应将公共极 COM 接到 5V 当某一字段发光二极管的阴极为低电平时 相应字段 就点亮 当某一字段的阴极为高电平时 相应字段就不亮 共阴数码管是指将所有 发光二极管的阴极接到一起形成公共阴极 COM 的数码管 共阴数码管在应用时应将 公共极 COM 接到地线 GND 上 当某一字段发光二极管的阳极为高电平时 相应字段就 点亮 当某一字段的阳极为低电平时 相应字段就不亮 数码管要正常显示 就要用驱动电路来驱动数码管的各个段码 从而显示出我们要 的数字 因此根据数码管的驱动方式的不同 可以分为静态式和动态式两类 静态显示驱动 静态驱动也称直流驱动 静态驱动是指每个数码管的每一个段 码都由一个单片机的 I O 端口进行驱动 或者使用如 BCD 码二 十进制译码器译码进 行驱动 静态驱动的优点是编程简单 显示亮度高 缺点是占用I O 端口多 如驱动 5 个数码管静态显示则需要 5 8 40 根 I O 端口来驱动 要知道一个 89S51 单片机 可用的 I O 端口才 32 个呢 实际应用时必须增加译码驱动器进行驱动 增加了硬 22 件电路的复杂性 动态显示驱动 数码管动态显示接口是单片机中应用最为广泛的一种显示方 式之一 动态驱动是将所有数码管的8 个显示笔划 a b c d e f g dp 的同名端连 在一起 另外为每个数码管的公共极COM 增加位选通控制电路 位选通由各自独立的 I O 线控制 当单片机输出字形码时 所有数码管都接收到相同的字形码 但究竟是那 个数码管会显示出字形 取决于单片机对位选通COM 端电路的控制 所以我们只要将 需要显示的数码管的选通控制打开 该位就显示出字形 没有选通的数码管就不会亮 通过分时轮流控制各个数码管的的COM 端 就使各个数码管轮流受控显示 这就是动 态驱动 在轮流显示过程中 每位数码管的点亮时间为1 2ms 由于人的视觉暂留 现象及发光二极管的余辉效应 尽管实际上各位数码管并非同时点亮 但只要扫描的速 度足够快 给人的印象就是一组稳定的显示数据 不会有闪烁感 动态显示的效果和静 态显示是一样的 能够节省大量的I O 端口 而且功耗更低 图 7 四位数码管引脚图 四位数码管引脚如上图所示 在实际判别中 让有小数点的端对着自己 上面引脚的 功能为 1 a f 2 3 b 下面引脚为 e d p c g 4 根据七段数码管的连接原则 可以将 abcdefg 分别依次连接在 P0 口 然后由 P2 口控 制片选信号就可以了 内部的四个数码管共用 a dp 这 8 根数据线 为人们的使用提供了方便 因为里面有 四个数码管 所以它有四个公共端 加上 a dp 共有 12 个引脚 下面便是一个共阴的四 位数码管的内部结构图 共阳的与之相反 引脚排列依然是从左下角的那个脚 1 脚 开始 以逆时针方向依次为 1 12 脚 下图中的数字与之一一对应 系统各模块 信号产生电路 被测信号 单片机 显示 2 硬件装备图 23 器件参数 数码管 4 个 排阻 74LS07 芯片 74LS00 芯片 电阻 510 欧 电容 uf 4 7uf 20pf 晶振 导线诺干 4 管脚说明 VCC 供电电压 GND 接地 P0 口 P0 口为一个 8 位漏级开路双向 I O 口 每脚可吸收 8TTL 门电流 当 P1 口的管 脚第一次写 1 时 被定义为高阻输入 P0 能够用于外部程序数据存储器 它可以被定义为 数据 地址的第八位 在编程时 P0 口作为原码输入口 当进行校验时 P0 输出原码 此 时 P0 外部必须被拉高 P2 口 P2 口为一个内部上拉电阻的 8 位双向 I O 口 P2 口缓冲器可接收 输出 4 个 TTL 门电流 当 P2 口被写 1 时 其管脚被内部上拉电阻拉高 且作为输入 并因此作 为输入时 P2 口的管脚被外部拉低 将输出电流 这是由于内部上拉的缘故 P2 口当用于 外部程序存储器或 16 位地址外部数据存储器进行存取时 P2 口输出地址的高八位 在给 出地 1 时 它利用内部上拉优势 当对外部八位地址数据存储器进行读写时 P2 口输 出其特殊功能寄存器的内容 P2 口在编程和校验时接收高八位地址信号和控制信号 P3 口也可作为 89C51 的一些特殊功能口 在本次课程设计中用到的 P3 口如下所示 P3 2 INT0 外部中断 0 24 RST 复位输入 当振荡器复位器件时 要保持 RST 脚两个机器周期的高电平时间 XTAL1 反向振荡放大器的输入及内部时钟工作电路的输入 XTAL2 来自反向振荡器 的输出 硬件焊接 先根据装备图进行各元件排版 然后根据元件的排放进行布线 尽量导线不要叠加 然后把元器件焊在板子上 用导线全部焊接一起 焊接完后 再仔细检查 五 软件设计五 软件设计 5 1 程序流程图程序流程图 方波发生器的软件设计包括主程序 延时子程序 系统初始化程序 显示子程序 键 盘扫描程序 定时器中断子程序 其中主程序用来控制整个程序的执行 它与各子程序紧 密相联 共同实现方波发生器各种功能的执行 25 开始 启动定时器 缓存区初始化 调用数字转 换程序 调用显示程序 END 一分钟 5 25 2 程序源代码程序源代码 26 LED1 equ 40h LED2 equ 41h LED3 equ 42h 存放三个数码管段码 org 0003h 外部中断 0 入口地址 Ljmp T0 INT org 1bh 定时器 1 中断入口 jmp t1 int org 0000h ljmp main org 0030h main MOV R1 00H SETB EA SETB EX0 外部中断 SETB ET1 定时器中断 setb it0 外部中断 0 在下降沿时工作 mov tmod b 1 作定时器 setb tr1 激活定时器 MOV TL1 00H MOV TH1 4CH MOV SP 60H mov R0 200 延迟 10S MOV R3 40H BCD mov A R1 mov B 100 DIV AB DA A MOV LED3 A 存百位 MOV A B MOV B 10 DIV AB DA A MOV LED2 A 存十位 MOV LED1 B 存个位 27 LCALL DISPLAY LJMP BCD DISPLAY MOV P0 0FFH MOV R4 B MOV R3 3 LOOP MOV A R4 MOV P2 A MOV R5 LED1 MOV A R5 MOV A R5 MOV A LED1 MOV DPTR TAB MOVC A A DPTR MOV P0 A LCALL DELAY MOV A R4 RLC A MOV R4 A INC R5 MOV LED1 LED2 INC LED1 DJNZ R3 LOOP JB ACC 3 DISPLAY RETI t0 int 外部中断 0 PUSH PSW PUSH ACC INC R1 POP ACC POP PSW RETI t1 int 定时器中断 PUSH PSW PUSH ACC DJNZ R0 GO CLR EX0 28 GO POP ACC POP PSW RETI delay 5MS MOV R6 10 D1 MOV R7 250 DJNZ R7 DJNZ R6 D1 RET tab db 3fh 06h 5bh 4fh 66h 6dh 7dh 07h 7fh 6fh 数码管的显示码表 end 5 35 3 系统实现功能系统实现功能 在电源正确接入的前提下 由 RC 震荡器产生信号从 P3 2 口输入 利用内部脉冲对外 部信号进行计数 计数值经过二 十转换后 判断高位是否为零 如果为零即显示低四位 如果不为零即显示高四位 通过数码管显示计数脉冲的个数 其个数即为脉冲宽度 简单的流程为 主程序扫描键盘 将设置信息输入 处理后 输出到 LED 显示器显示 单片机的晶振为 11 0592MHz 用到了两个定时器 即定时器 0 与定时器 1 分别进行 频率与占空比的定时 两个定时器都是工作在方式 1 根据计算定时器初值的公式 计算出定时器 0 与定时器 1 所要装入的初值 频率及占空比的显示电路由 74LS164 构成的驱动电路和 LED 数码显示管组成 利用八 个数码管来显示 有五位是用来显示频率的 有两位是显示占空比的 在频率与占空比显 示管中间有一个 LED 数码管是用来显示 的 用以区分频率显示与占空比显示的 此电路的键盘是由一个状态键 四个功能键 调节频率与占空比的增减 组成 其特 殊之处在于利用外部中断实现键盘扫描 状态键有三种状态 当其处于状态 0 时 则其它 的键会处于无用状态 当其处于状态 1 时 可通过按四个调节键来调节频率 处于第三种 状态时 按四个调节键中的前两个便可对占空比进行调节了 29 六 注意事项与解决问题的方案六 注意事项与解决问题的方案 1 硬件部分 1 在排版方面 由于线比较多 而且某些节点上要连 2 到 3 根导线 造成了导线交 叉 后来引出了一根长线 把这麻烦解决了 2 在数码管显示部分 d e f 一起亮一起暗 经检查 是这三根线短路了 将导线 重新焊接后问题解决了 3 硬件与示波器连接后 出来的方波不是很完整 将 74LS00 中的与非门全部用上 滤波 最后出来的波形很完整 2 软件部分 1 开始写的程序很乱 老师建议我们用调用子程序的方法 一步一步分开来写 发 现这方法很有用 2 在编写软件时经常会漏掉一些简单的口令 在编译时出现错误 才更正过来 3 软件编写完后 数码管显示的数字一闪一闪很不稳定 经过分析 是延时程序没 有编写正确 后来修改了延时时间 数码管正确的显示了 3 焊接部分 1 焊接之前 应事先画好硬件原理图 细化到每一根接线 以及芯片内部 的各个引脚 合理布局好元器件 这样才能使硬件电路板布线美观 焊接时要注意防 止虚焊的产生 在两个较近的焊点之间要注意不要短接 2 焊接时要注意焊接工艺 由于是通用板 质量不是太高 如果不注意 上面 的小铜片很容易损坏 容易导致虚焊 焊完后 要用万用表检测 以免出现虚焊漏焊 短 接等现象 检查无误后再通电检测 焊接完一部分后 最好先观察一下该部分的波形是否 正确 若有错误 可以方便修改 3 板子及仿真机接电源时 要注意正负极 以免损坏板子或仿真机 4 仿真机一旦与计算机进行连接之后 就不要经常再拔下 以确保正常通信 5 编写程序时 要注意各指令的合理应用 若程序过长 可以先编写子程序 再将其进行组合 以免出现不必要的错误和困扰 6 在插拔器件以及接线过程中 为避免仪器损坏应该在断电的前提下操作 七 设计总结七 设计总结 Protues 功能强大 为我们进行电子电路原理图和仿真提供了良好的操作环境 用 Protues 进行电路设计分为两大部分 原理图的设计和电路板的设计 用 protues 进行电路板设计的第一步是其原理图的设计 显然 原理图决定整个电路 30 的基本功能 具体步骤如下 1 图面设置 Protues 允许用户根据电路的规模设置图面的大小 按照偏好和习惯设置图面的样式 实际上 设置图面就是设置了一个工作平面 以后的工作就要在这个平面上进
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年文昌市人民医院医护人员招聘考试备考试题及答案详解
- 2026年湖北中医学院附属医院医护人员招聘笔试备考试题及答案详解
- 2026年湖南中医药高等专科学校附属第一医院医护人员招聘考试参考题库及答案详解
- 2026年扬州大学附属苏北人民医院医护人员招聘笔试参考题库及答案详解
- 2026年天津医科大学第二附属医院医护人员招聘笔试备考试题及答案详解
- 2026年辽宁中医学院附属医院医护人员招聘考试参考题库及答案详解
- 2026年山东省立医院医护人员招聘笔试参考试题及答案详解
- (2026年)班主任工作计划
- 2026年中信银行(北京总行)人员招聘笔试参考试题及答案详解
- 2026年南昌市第一医院医护人员招聘考试参考题库及答案详解
- 疑似预防接种异常反应个案调查表
- 炼钢理论基础(炼钢工艺)
- 第7章医学图像可视化
- 汽煤柴油加氢装置操作工(技师)考试复习题库宝典(含答案)
- 花篮式上拉式悬挑脚手架监理实施细则(图文范本)
- 素养立意-《义务教育数学课程标准(2022年版)》的理念与目标解读 论文
- 小学综合实践活动-保护牙齿教学课件设计
- 污水处理厂运营维护方案
- 仙剑三外传问情篇完美图文+支线+攻略
- 市中心血站实验室改扩建及能力提升工程可行性研究报告
- GB/T 8572-2010复混肥料中总氮含量的测定蒸馏后滴定法
评论
0/150
提交评论