




已阅读5页,还剩67页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
洛阳理工学院毕业设计 论文 I 毕业设计论文 可编程脉冲信号发生器的设计 摘 要 基于单片机的可编程脉冲信号发生器 通过 4x4 的非编码矩阵键盘键入脉冲 信号的指标参数频率 占空比和脉冲个数 在单片机的控制处理下发出满足信号 指标的脉冲信号 并在液晶显示屏的制定位置显示出相关参数 复位电路采用上 电复位和手动复位的复合复位方式 保证单片机在上电和程序运行进入死循环时 单片机均能正常复位 利用在工作方式 1 下的定时器和计数输出低频脉冲信号 以及在工作方式 2 下能够自动重复赋初值的定时器输出高频脉冲信号 从而使频 率和占空比满足指标要求 通过程序设计 使单片机每次发出信号后等到重置信 号进行下一次脉冲信号的输出 有效的提高了单片机的使用效率 本课题设计利用单片机技术 通过相应的软件编程和较简易的外围硬件电路 来实现 其产生的脉冲信号干扰小 输出稳定 可靠性高 人机界面友好 操作 简单方便 成本低 携带方便 扩展性强 关键的是 脉冲信号频率 脉冲个数 和脉冲占空比可调节 可通过键盘输入并由显示器显示出来 本课题设计所要达到的指标要求 1 脉冲信号频率 0 1HZ 到 50KHZ 可调并在液晶显示屏指定位置显示 2 脉冲信号个数 0 到 9999 可调并在液晶显示屏指定位置显示 3 脉冲信号占空比任意可调并在液晶屏显屏指定位置示出来 关键词 单片机 脉冲信号 频率 脉冲个数 占空比 洛阳理工学院毕业设计 论文 II Programmable pulse signal generator design ABSTRACT The programmable pulse signal generator based on single chip through the 4x4 non coding matrix keyboard inputing pulse signal parameters of frequency duty cycle and pulse number pulse signal is sent to meet the targets of signal processing chip The related parameters are displayed on the setting position on the liquid crystal The reset circuit by power on reset and manual reset ensure the SCM in power and run into dead circulation can be reset Use in work mode 1 timer and counter output low frequency pulse signal and in work mode 2 to timer output high frequency pulse signal automaticly repeat initialization so as to make the frequency and duty ratio meet the requirements Through the program design the microcontroller each signal and then wait for the reset signal the signal at the output of the pulse next time effectively improve the efficiency in the use of single chip microcomputer The subject of the use of single chip technology which achieved through the corresponding software and the simple peripheral hardware circuit The advantages of which are the small interference of the pulse signal output stability high reliability friendly man machine interface easy operation low cost portability scalability strong The keys pulse frequency pulse number and pulse duty ratio are adjustable which can be inputed through the keyboard and displayed through LCD The requirements of this topic design 1 The pulse signal frequency of 0 1HZ to 50KHZ is adjustable and can be displaied on the specify location in the LCD screen 2 Pulse signal number of 0 to 9999 is adjusted and can be displaied on the specify location in the LCD screen 3 Pulse duty ratio is adjustable and can be displaied on the specify location in the LCD screen KEY WORDS single chip computer pulse hardware circuit pulse number duty 洛阳理工学院毕业设计 论文 III ratio 洛阳理工学院毕业设计 论文 IV 目 录 前 言 1 第 1 章可编程脉冲发生器的相关模块 4 1 1 AT89C51 单片机 4 1 1 1 AT89C51 单片机的结构 4 1 1 2 AT89C51 单片机的引脚功能 5 1 1 3 AT89C51 单片机的中断系统 9 1 1 4 AT89C51 单片机的定时 计数器 11 1 2 SMC 1602A LCD 液晶显示屏 12 第 2 章 可编程脉冲信号发生器的硬件设计 14 2 1 硬件系统的总体设计 14 2 1 1 系统的总体框图 14 2 1 2 原理阐述 14 2 2 硬件系统各部分构成 14 2 2 1 电源电路 14 2 2 2 矩阵键盘 15 2 2 3 脉冲信号输出电路 16 2 3 系统电路原理图 19 第 3 章 可编程脉冲信号发生器的软件设计 20 3 1 矩阵键盘的程序设计 20 3 2 液晶屏显示的程序设计 21 3 3 脉冲生成的程序设计 23 3 3 程序流程图 24 3 3 1 主程序流程图 24 3 3 2 键盘分析子程序流程图 25 3 3 3 显示子程序流程图 26 3 3 3 数值处理子程序流程图 27 3 3 3 脉冲信号生成子程序流程图 28 3 3 源程序 28 洛阳理工学院毕业设计 论文 V 第 4 章 可编程脉冲信号发生器的程序编译 调试及仿真 29 4 1 系统程序的编译 29 4 2 系统调试 30 4 2 1 硬件调试 30 4 2 2 软件调试 30 4 3 系统仿真 32 4 3 1 系统仿真图 32 4 3 2 系统的改善 35 结 论 36 谢 辞 37 参考文献 38 附 录 39 外文资料翻译 57 洛阳理工学院毕业设计 论文 1 前 言 信号发生器是一种能产生标准信号的电子仪器 是工业生产和电工 电子实 验中经常使用的电子仪器之一 信号发生器的种类比较多 性能也千差万别 但 它们都可以产生不同频率的调频波信号 调幅波 正弦波 以及各种锯齿波 三 角波 方波和正负脉冲波等信号 脉冲信号发生器作为一种常见的应用电子仪器设备 一般可以完全由硬件电 路搭建而成 如采用555振荡电路发生方波的电路即是可行的方法之一 而不依 靠单片机来实现 但是这种电路存在波形质量差 控制难度大 调整范围小 电 路结构复杂以及体积大等缺点 在科学研究和生产实践中 如工业生产过程控制 生物医学 地震模拟 机械振动等领域 也常常需要用到低频信号源 而由硬件 电路构成的低频信号发生器性能难以令人满意 而且由于低频信号源所需的RC要 很大 体积大 漏电 大电阻 大电容在制作上亦有很大的难度 损耗显著更是 其致命的弱点 一旦工作需求功能有增加 则电路复杂程度也会大大增加 在现代测试与控制中常常需要频率可调的脉冲发生器 利用单片机内可编程 定时 计数器即可实现 脉冲信号发生器是电子测量中的一种重要仪器 随着微 电子技术的高速发展 脉冲信号发生器向着集成化 数字化 智能化的方向发展 利用单片机采用程序设计方法来产生信号 其频率底线很低 具有线路相对 简单 结构紧凑 价格低廉 频率稳定度高 抗干扰能力强 用途广泛等优点 并且能够对波形进行细微调整 改良波形 使其满足系统的要求 只要对电路稍 加修改 调整程序 即可完成功能的升级 在数字电路或系统中常常需要各种脉 冲波形 例如时钟脉冲 控制过程中的定时信号等 单片机是实现各种控制策略 和算法的载体 在现代测试与控制中常常需要频率可调的脉冲信号发生器 利用 单片机内可编程定时 计数器可以实现 本课题设计运用单片机技术 通过相应的软件编程和较简易的外围硬件电路 设计来实现 和用分立式元件设计的脉冲发生器相比而言 其产生的脉冲信号干 扰小 输出稳定 可靠性高 人机界面友好 操作简单方便 成本低 携带方便 扩展性强 关键的是 脉冲信号频率 占空比和脉冲个数可以调节 可通过键盘 洛阳理工学院毕业设计 论文 2 输入并由显示器显示出来 本课题运用单片机技术解决以下问题 1 清楚单片机的中断 定时 计数等常用功能 产生频率 个数 占空比可 调整的脉冲信号 2 画出以单片机为核心 以矩阵键盘为输入设备 以液晶显示屏为显示设备 产生脉冲信号的硬件原理电路图 3 画出相应的软件流程图 并写出键盘驱动 液晶显示屏驱动以及产生频 率 个数 占空比可以调整的 C 语言源程序 4 指标要求 1 脉冲信号频率参数由键盘输入频率范围 0 1HZ 到 50KHZ 可调并由液晶 显示屏在指定位置显示 2 脉冲信号个数参数由键盘输入脉冲个数 0 到 9999 可调并由液晶显示 屏指定位置显示 3 脉冲信号占空比参数由键盘输入任意占空比的脉冲信号 并由液晶 屏指定位置显示 5 用 PROTEUS 软件做出硬件电路仿真调试结果 并加以说明 针对不同的 问题 有针对性的采用不同的方法解决 1 查阅形成脉冲信号的相关资料 结合所学 51 系列单片机的基础知识 用工 作方式 1 下的定时加计数的方法实现对低频信号指标的控制 用自动重复赋初值 的工作方式 2 下的定时器实现对高频信号指标的控制 用计数的方法实现对生发 信号个数的控制 2 查阅与单片机最小系统硬件开发相关的资料 从网上那个下载单片机应用 实例 在 PROTEUS 软件上进行仿真实验 熟悉硬件开发环境 掌握电气原理图绘 制的基本原理 对程序设计过程有更深层次的了解 3 查看与 C 语言程序设计相关的资料 主要研究程序设计的基本方法 掌握 C 语言中基本指令的使用方法 认识程序设计过程中关键指令使用时的注意事项 熟悉程序开发设计的过程 4 在完成电气原理图设计及 C 语言源程序设计后 通过在 PROTEUS 和 KeiL uVision4 软件上进行联机仿真调试 发现电气原理图设计和 C 语言程序设计中存 在的问题 查看问题出现的原因 并在此基础上进行完善 通过 PROTEUS 和 KeiL uVision4 软件上进行联机仿真调试 查看生成的脉冲信号并与指标要求进 洛阳理工学院毕业设计 论文 3 行对比 在 KeiL uVision4 软件上进行单步运行找出误差出现的原因 通过对程 序的结构或者所用的指令进行调整进一步完善程序 再进行联机仿真调试 直到 误差在允许的范围内 通过进一步整理 完成在完成电气原理图设计及 C 语言源 程序设计 洛阳理工学院毕业设计 论文 4 第 1 章 可编程脉冲发生器的相关模块 1 1 AT89C51 单片机 1 1 1 AT89C51 单片机的结构 AT89C51单片机的内部结构包括CPU 存储器 并行接口 串行接口 定时计 数器 其系统结构图如图1 1所示 在一个芯片上集成了单片机的各个组成部分 其功能如下 1 一个八位中央处理器CPU 包括可以进行8位算术运算和逻辑运算的AIU单 元 8位累加器ACC 寄存器B和程序状态寄存器PSW等 2 片内数据存储器RAM 128B 用于存放可以读 写的数据 如运算中间的 结果 最终结果或预显示的数据等 3 片内程序存数器ROM EPROM 用于存放原始数据 程序和表格 4 四个 8 位并行 I O 接口 P0 P3 端口 每个接端口可用于输入或输出 T0 T1 内部总线 P0 P1 P2 P3 TXD RXD INT0 INT1 图 1 1 AT89C51 单片机系统结构图 5 两个 16 位定时 计数器 其中每一个定时 计数器可以设置成为计数方式 EOMRAM计数 定时器 中断系统串行接口并行接口 CPU 时钟电路 STR 洛阳理工学院毕业设计 论文 5 用来对外部事件计数 也可以设置成为定时方式并且可以根据定时或计数的结果 去控制计算机 6 五个中断源 具有两个优先级别的中断嵌套结构 两个外部中断源和 INTO 三个内部中断源即两个定时计数中断和一个串行口中断 INT1 7 一个全双工通用异步接受发送器 URAT 串行接口 用于实现单片机与 单片机或者单片机与其他计算机之间的串行通信 8 片内振荡器和时钟发生电路 时钟振荡电路是控制器的核心 为控制器 提供时钟脉冲信号 9 单片机允许的最高工作频率是24MHZ AT89C51单片机可降至0HZ的静态逻 辑操作 并支持两个软件的节电工作模式 3 1 1 2 AT89C51 单片机的引脚功能 1 电源引脚GND和VCC 1 VSS 20 脚 接地端 2 VCC 40 脚 电源端 正常操作及对Flash ROM编程和验证时接 5V电 源 图1 2 AT89C51管脚图 2 外接晶体引脚XTAL1和XTAL2 1 XTAL1 19 脚 接外部晶体和微调电容的一端 在AT89C51片内 它 洛阳理工学院毕业设计 论文 6 是振荡电路反相放大器的输入端以及内部时钟发生器的输入端 这个放大器构成 了片内振荡器 当采用外部振荡器时 此引脚引入外部时钟脉冲信号 要检查AT89C51的振荡电路是否能够正常工作 可以用示波器查看XTAL2端口 是否有脉冲信号输出 2 XTAL2 18 脚 接外部晶体和微调电容的另一端 在AT89C51片内 它是振荡电路反相放大器的输出端 当采用外部振荡器时 此引脚应该悬空 3 控制信号引脚RST ALE 和 VPP PROGPSENEA 1 RST 9 脚 复位信号输入端 高电平有效 当振荡器工作时 在此 引脚上出现连续两个机器周期以上的高电平 就可以使单片机完成复位 2 ALE 30 脚 地址锁存允许信号 当AT89C51上电正常工作后 PROG ALE端不断向外输出正脉冲信号 此信号频率为振荡器频率的1 6 CPU访问外存 储器时 ALE输出信号作为锁存低8位地址的控制信号 AT89C51在并行扩展外部存储器 包括并行扩展I O 口 时 P0口用于分时 传送低8位地址和数据信号 当ALE 信号有效时 P0口传送的是低8位地址信号 ALE信号无效时 P0口传送的是8位数据信号 在ALE信号的下降沿 锁定P0口传 送的低8位地址信号 这样 可以实现低8位地址与数据的分离 ALE信号也可以用作对外输出的时钟或定时信号 需注意的是 每当访问外 部数据存储器时 都将跳过一个ALE脉冲 ALE端可以驱动 吸收或输出电流 8 个LS型TTL 低功耗甚高速TTL 负载 此引脚的第2功能是在对片内带有4KB Flash ROM的AT89C51编程写入 PROG 固化程序 时 作为编程脉冲信号的输入端 3 29 脚 程序存储允许输出信号端 当AT89C51由片外部程序存储 PSEN 器读取指令 或常数 时 每个机器周期内两次有效 即输出两个有效脉冲 PSEN 但在这段时间内 每当访问外部数据存储器时 这两次有效的信号将不再 PSEN 出现 端也可以驱动8个LS型TTL负载 PSEN 想要检查一个AT89C51小系统上电后CPU是否能够正常工作 可以用示波器查 看端口是否有脉冲信号输出 如果有 说明其基本上能够正常工作 否则 PSEN 说明其不能正常工作 4 VPP 31 脚 外部程序存储器地址允许输入端 固化编程电压输入 EA 洛阳理工学院毕业设计 论文 7 端 当引脚接高电平时 CPU访问片内FLASH ROM并去执行内部程序存储器中的 EA 指令 但当PC值超过4KB 1FFFH 时 将会自动跳去执行外部程序存储器中的指 令 当端接低电平时 CPU只访问并执行外部程序存储器中的程序 而不管是 EA 否有片内程序存储器 需要注意的是 如果保密位LB1被编程 复位时在内部会 锁存端口的状态 EA 4 输入 输出引脚P0口 P1口 P2口 P3口 1 P0口 P0 0 P0 7共8条引脚 即39 32 脚 P0口是一组漏极开路的8 位准双向I O端口 也即地址 数据总线复用口 当P0口作为输入端口使用时 应先向口锁存器 地址80H 写入全 1 此时P0口的全部引脚悬空可当作高阻 抗输入 作为输入端口使用时 要先对端口写全 1 这就是准双向口的含义 当作为输出端口用时 每位能吸收电流的方式驱动8个TTL负载 对端口写全 1 可以当作高阻抗输入端口使用 在CPU访问片外存储器时 P0口分时提供低8位地址和8位数据的复用总线 在此期间 P0口内部的上拉电阻有效 在Flash ROM编程时 P0口接收指令字节 而在校验程序时 则输出指令字 节 校验时 要求外接上拉电阻 2 P1口 P1 0 P1 7共8条引脚 即1 8脚 P1是一个带内部上拉电阻 的8位双向I O端口 P1口的输出缓冲器可驱动 吸收或输出电流 4个LS型TTL 输入 对端口写 1 通过内部上拉电阻把端口拉升到高电平 此时可以作为输 入端口使用 当P1口用作输入端使用时 因为存在内部上拉电阻 某个引脚被外 部信号拉低时该引脚会输出一个电流 IIL 在对Flash ROM编程或者程序校验时 P1口接收低8位地址 3 P2口 P2 0 P2 7共8条引脚 即21 28脚 P2是一个带有内部上 拉电阻的8位双向I 端口 P2的输出缓冲器可驱动4个LS型TTL输入 对端口写 1 通过内部上拉电阻把端口拉升到高电平 此时可以当作输入端端口使用 当作为输入端口使用时 因为存在内部上拉电阻 某个引脚被外部信号拉低时该 引脚会输出一个电流 IIL 在访问外部程序存储器或16位地址的外部数据存储器时 P2口送出高8位地 址数据 在访问8位地址的外部数据存储器时 P2口引脚上的内容 在整个访问 周期不会发生改变 洛阳理工学院毕业设计 论文 8 Flash编程或程序校验期间 P2也可以可接收高位地址和一些控制信号 4 P3口 P3 0 P3 7 共8 条引脚 即10 17 脚 P3口是一组带有内 部上拉电阻的8位双向I O端口 P3口输出缓冲器可驱动4个LS型TTL输入 对端 口写入 1 时 它们被内部的上拉电阻把端口拉升到高电位 这时可以当作输 入端口用 当作为输入端口使用时 因为存在内部上拉电阻 某个引脚被外部信 号拉低时该引脚会输出一个电流 IIL 表1 1 P3口的第二功能 端口第二功能名称 P3 0RXD串行数据接收端 P3 1TXD串行数据发送端 P3 2 INT0 外部中断0申请输入端 P3 3 INT1外部中断1申请输入端 P3 4T0定时器0计数输入端 P3 5T1定时器1计数输入端 P3 6 WR 外部RAM写选通 P3 7 RD 外部RAM写选通 洛阳理工学院毕业设计 论文 9 在对Flash ROM编程或者程序校验期间 P3口还可以接收一些控制信号 在AT89C51中 P3端口的还用于一些第二功能 7 P3口第二功能如上页表1 1 所示 1 1 3 AT89C51 单片机的中断系统 单片机在某一时刻只能处理一个任务 当多个任务同时要求单片机处理时 这一要求应该怎么实现呢 通过中断系统可以实现多个任务的资源共享 所谓的中断就是 当 CPU 正在处理某项事务的时候 如果外界或者内部发生 了紧急事件 要求 CPU 暂停正在执行的工作转去处理这个紧急事件 待处理完后 再回到原来停止工作的地方 继续执行原来被中止的程序 这个过程称作中断 从中断的定义我们可以看到中断应具备中断源 中断响应 中断返回三个要 素 中断源发出中断请求 单片机对中断请求进行响应 当中断响应完成后进行 中断返回 返回被中断的地方继续执行原来被中断的程序 当 CPU 查询到中断请求时 由硬件自动产生一条 LCALL 指令 执行 LCALL 指 令时 首先将 PC 内容压入堆栈进行断点保护 再把中断入口地址装入 PC 使程 序跳转到相应的中断区入口地址 MCS 51 单片机的中断系统有 5 个中断请求源 具有 2 个中断优先级 可实现 2 级中断服务程序的嵌套 MCS 51 中断系统 5 个中断请求源分别如下 1 INT0 外部中断请求 0 由 INT0 引脚输入 中断请求标志为 IE0 2 INT1 外部中断请求 1 由 INT1 引脚输入 中断请求标志为 IE1 3 T0 定时器 计数器 0 的溢出中断请求 中断请求标志为 TF0 4 T1 定时器 计数器 1 的溢出中断请求 中断请求标志为 TF1 5 TXD RXD 串行口的中断请求 中断请求标志为 TI 或 RI 各中断源服务程序入口地址是固定的 如下 中断源 入口地址 外部中断 0 0003H 定时器 计数器 T0 000BH 外部中断 1 0013H 定时器 计数器 T1 001BH 串行口中断 0023H 洛阳理工学院毕业设计 论文 10 可以用关中断指令 CLR EA 来屏蔽所有的中断请求 也可以用开中断指令 SET EA 来允许 CPU 接收中断请求 每一个中断另有所指可以用编程独立地控制 为允许中断或关中断状态 每一个中断源的中断级别均可用编程进行设置 中断系统结构如图 1 3 所示 IE0 IE1 EX0 ET0 EX1 ET1 ES PX0 PT0 PX1 PT1 PS P S 图 1 3 AT89C51 中断系统结构示意图 AT89C51 提供了 5 个中断源 两个中断优先级控制 可实现两个中断服务嵌 套 当 CPU 支持中断屏蔽指令后 可将一部分或所有的中断关断 只有打开相应 的中断控制位后 方可接收相应的中断请求 程序设置中断的允许或屏蔽 也可 设置中断的优先等级 AT89C51 CPU 在每一个机器周期按顺序去检查每一个中断源 在机器周期的 S6 按优先级处理所有被激活的中断请求 此时 如果 CPU 没有正在处理更高级别 或者相同优先级的中断 或者现在的机器周期不是所执行指令的最后一个机器周 期 或者 CPU 不是正在执行 RETI 指令或访问 IE 和 IP 的指令 CPU 则去执行中断 以外的操作 1 1 4 AT89C51 单片机的定时 计数器 在控制系统中 经常需要用实时时钟实现定时或延时控制 例如定时中断 洛阳理工学院毕业设计 论文 11 定时检测 定时操作等 有的地方也要用到计数器对外部事件进行计数 例如自 动化包装线中对产品进行计数 在计算机控制中 实现定时功能一般可采用软件 定时 非编程的硬件定时和可编程硬件定时三种方法 可编程定时器可以通过软件来对定时时间进行修改 但定时是通过硬件来完 成 以中断的方式通知CPU 因此功能强 使用方便灵活 AT89C51单片机有两个16位定时器 计数器 分别为定时器0 T0 和定时器 1 T1 它们都其有定时器和计数功能 可用作定时控制 精确延时 以及对外 部事件的计数和控制 其中T1还可以作为串行口的波特率发生器 微处理器 CPU TH1TL1TH0TL0 TCONTMOD 图1 4 MCS 51定时器 计数器结构框图 AT89C51单片机内部的定时 计数器的结构如图1 4所示 定时器T0特性功能 寄存器TL0 低8位 和TH0 高8位 构成 定时器T1由特性功能寄存器TL1 低8 位 和TH1 高8位 构成 定时寄存器的工作方式由特殊功能寄存器TMOD控制 定时器T0和T1的启动和停止计数由特殊功能寄存器TCON控制 同时管理定时器T0 和T1的溢出标志等由特殊功能寄存器TCON控制 程序开始运行时 需要对 TL0 TH0 TL1和TH1进行初始化编程 来定义它们的工作方式和设置定时器T0和 T1的计数初值 1 计数器工作模式 计数功能是对外来脉冲进行计数 AT89C51 芯片 T0 P3 4 和 T1 P3 5 两 个输入引脚 分别是这两个计数器的计数输入端 每当计数器的计数输入引脚的 脉冲发生负跳变时 计数器当前值加 1 洛阳理工学院毕业设计 论文 12 2 定时器工作模式 定时功能也是通过计数器的计数来实现的 不过此时的计数脉冲来自单片机 的内部 即每个机器周期产生 1 个计数脉冲 也就是每经过 1 个机器周期的时间 计数器当前值加 1 AT89C51 单片机的定时器 计数器具有 4 种工作方式 方式 0 方式 1 方式 2 和方式 3 其控制字均在相应的特殊功能寄存器中 通过对它的特殊功能寄存器 的编程 可方便地选择定时器 2 种工作模式和计数器 4 种工作方式 1 2 SMC 1602A LCD 液晶显示屏 单片机应用系统常需要连接键盘 显示器 打印机 A D 和 D A 转换器等外 设 其中 键盘和显示器是使用最频繁的外部设备 它们是构成人机对话的一种 基本方式 用 LCD 显示一个字符时比较复杂 因为一个字符由 6 8 或 8 8 点阵组成 既要找到和显示屏幕上某几个位置相对应的显示 RAM 区的 8 字节 又要使每字节 的不同位为 1 其它的为 0 为 1 的点亮 为 0 的不亮 来组成这个 特定的字符 图 1 5 SMC 1602 管脚图 但对于内带字符发生器的控制器而说 显示字符就简单多了 可以使控制器 工作在文本方式 根据在 LCD 上开始显示的行列号以及每行的列数找到显示 RAM 相对应的地址 设立光标 在此位置送上该字符对应的代码即可 SMC 1602A LCD 为 16 2 的液晶显示屏 支持字母和数字的 ASCII 码显示 即 给 LCD 送相应数字和字母的 ASCII 码 保证正确时序 即可显示相应的字符 SMC 1602 的管脚图如图 1 5 所示 SMC 1602 采用标准的 16 脚接口 各引脚具体说明如下 洛阳理工学院毕业设计 论文 13 第 1 脚 VSS 为电源地 第 2 脚 VDD 接 5V 电源正极 第 3 脚 V0 为液晶显示器对比度调整端 接地电源时 对比度是最高的 接正电源时 对比度是最低的 对比度太高时 会产生 鬼影 现象 这时 对比度可以用一个 10K 的电位器进行调整 第 4 脚 RS 为寄存器选择端 高电平 1 时 选择数据寄存器 低电平 0 时 选择指令寄存器 第 5 脚 R W 为读写信号线 高电平 1 时 进行读操作 低电平 0 时 进行写操作 第 6 脚 EN 端为使能端 第 7 14 脚 D0 D7 引脚 为 8 位双向数据端口 第 15 16 脚 空脚或背灯电源 15 脚为背光正极 16 脚为背光负极 SMC 1602 与单片机的连接图如图 1 6 所示 图 1 6 SMC 1602 与单片机连接图 第 2 章 可编程脉冲信号发生器的硬件设计 2 1 硬件系统的总体设计 洛阳理工学院毕业设计 论文 14 2 1 1 系统的总体框图 基于 AT89C51 单片机的可编程脉冲信号发生器的系统框图如图 2 1 所示 图 2 1 系统框图 2 1 2 原理阐述 可编程脉冲信号发生器以 AT89C51 单片机为核心 以矩阵键盘作为输入设 备 以液晶显示屏 SMC1602 为显示设备 通过矩阵键盘将脉冲信号参数频率 个数 占空比送入 AT89C51 单片机 接着单片机进行数据处理 驱动液晶屏在指 定的位置显示相关的参数 根据不同的脉冲信号参数指标采取不同的控制策略 生成满足指标要求的脉冲信号 为提高系统的抗干扰性 将脉冲信号通过端口 P3 0 经过 555 定时器构成的史密斯触发器输出 2 2 硬件系统各部分构成 2 2 1 电源电路 如下页图 2 2 电源电路图所示 电源供电部分采用变压器降压 桥式整流电 路整流 电容器滤波 三端稳压器 7805 稳压后供电 电源用 220V 市电经降压变 压器 TR1 降压成 8V 交流电 然后经四个整流二极管 D1 D4 组成的桥式整流 电路变成直流电压 经 C1 滤波后送入 7805 芯片稳压成 5V 直流电源向液晶显示 屏 SMC1602 555 定时器 单片机 AT89C51 等元器件供电 键盘输入驱动显示 液晶屏显示参数 SMC1602 脉冲信号输出 电源电路 7805 MCS 51 控制脉冲输出 及控制显示 AT89C51 洛阳理工学院毕业设计 论文 15 图 2 2 电源电路图 稳压器 7805 引脚图如图 2 3 所示 图 2 3 稳压器 7805 引脚图 引脚功能为 1 脚 输入 2 脚 接 3 脚 输出 由于内部电流的限制 以及过热保护和安全工作区的保护 使它基本上不会 损坏 如果能够提供足够的散热片 它们就能够提供大于 1 5A 输出电流 虽然 是按照固定电压值来设计的 但是当接入适当的外部器件后 就能获得各种不同 的电压和电流 2 2 2 矩阵键盘 键盘是一种输入装置 通过键盘上任一按键可以向单片机输入信息 按键开 关是键盘的基本组成元件 键盘结构的关键是如何把键盘上的每次按键动作转换成相应的 ASCII 码送到 单片机 按编码方式的不同 可以将键盘分为全编码键盘和非全编码键盘 所谓 全编码键盘 是每一个按键 通过全编码电路产生唯一对应的编码信息 这种全 编码键盘响应速度快 但是以复杂的硬件电路为代价的 而且其复杂性随着按键 数的增加而大大增加 价格贵 所谓非编码键盘 是利用简单的电路和软件配合 来识别按键的位置 位置码 然后由单片机通过软件查表将位置码转换成需要 的编码信息 虽然这种键盘响应速度不如全键盘快 但可以由 CPU 的处理速度 洛阳理工学院毕业设计 论文 16 来弥补 9 这种键盘的优点是通过软件编码为键盘某些见的重新定义提供了极大 的方便 考虑到本次设计的经济性与便携性 故采用非编码键盘作为可编程脉冲 信号发生器的输入设备 非编码键盘结构图如图 2 4 所示 图 2 4 非编码键盘结构图 键盘上的按键一般排成行 列矩阵格式 每个交叉点上可接一个按键 在非 编码键盘中 采用行扫描法来扫描识别按下的键 行扫描法的基本原理是 先有 程序逐行对键盘进行扫描 再通过检测列的状态来确定按键的行列位置 2 2 3 脉冲信号输出电路 通过键盘将脉冲信号参数指标送入到 AT89C51 单片机 单片机从预设置空 间中取出参数指标数据并加以处理 得到产生脉冲信号需要的数据 接着产生满 足参数指标的脉冲信号 软件上 先调用显示子程序 关掉显示 然后调用显示 子程序显示脉冲信号指标关键字频率 PL 占空比 ZKB 个数 NUM 提 示用户输入脉冲信号参数指标 若没有按键或者发生窜键 则 CPU 处于等待状 态 直到检测到有有效按键为止 这时调用按键分析子程序计算出被按按键的键 值 脉冲信号输出电路图如图 2 5 所示 洛阳理工学院毕业设计 论文 17 图 2 5 脉冲信号输出电路图 按上述方式依次输入三组数据并求出各位数的键值 并且调用液晶屏显示驱 动子程序 在液晶屏指定位置显示脉冲信号频率 占空比 脉冲个数信息 然后 调用脉冲生成子程序产生满足指标参数的脉冲信号 然后将流程回到 脉冲生成子程序的开始处 准备产生下一个脉冲信号 这样周而复始 直到输出 完要求个数的脉冲信号 最后 若检测到重置信号时返回主程序开始处 进行数 据设定输出新周期的脉冲信号 否则程序将等待在主程序的结束处 其中 定时 初值从特定缓冲区得到 定时初值的不同 就会得到不同的电平宽度 从而得到 不同周期的脉冲 也就得到了不同频率的脉冲了 调整高低电平所占的时间 便 可以改变脉冲信号的占空比 洛阳理工学院毕业设计 论文 18 考虑到周围电磁环境以及信号突变的输出脉冲信号的影响 这里将得到的脉 冲信号经 555 定时器构成的施密特触发器输出 施密特触发器 具有回差电压特 性 能将边沿变化缓慢的电压波形整形为边沿陡峭的矩形脉冲 1 2 6 5 VCCRD O 555 3 O v7 v v I2 I1 v IC 84 1 2 I v CC V VCC2 R t t vI O v1 2 3 CC V CC 1V 3 a 电路图 b 波形图 v 图 2 6 555 定时器构成的施密特触发器 1 VI 0V 时 vo1输出高电平 2 当 VI上升到时 Vo1输出低电平 当 VI由继续上升 vo1保持 cc V 3 2 cc V 3 2 不变 3 当 VI下降到时 电路输出跳变为高电平 而且在 VI继续下降到 0V cc V 3 1 时 电路的这种状态保持不变 图 2 6 中 R VCC2构成另一输出端 Vo2 其高电平可以通过改变 VCC2进行调 节 12 正是由于施密特触发器具有回差电压特性 可以有效的避免因电磁环境引起 的小幅度电压突变造的脉冲信号的变化 此外 当施密特触发器输入端为低电平 时 输出端为高电平 当施密特触发器输入端为高电平时 输出端为低电平 这 样当输出占空比较大的脉冲信号时就能有效的减少单片机的能耗 延长单片机的 使用寿命 如果要频繁的输出小占空比的脉冲信号 可以通过改变输出端口的预 置值来实现 这也正体现出了本课题设计良好的经济性和可拓展性 2 3 系统电路原理图 洛阳理工学院毕业设计 论文 19 以 AT89C51 单片机为核心 以矩阵键盘作为输入设备 以液晶显示屏 SMC1602 为显示设备 通过 4 4 矩阵非编码键盘将脉冲信号参数频率 个数 占 空比送入 AT89C51 单片机 单片机调用数值处理子程序进行数据处理 再调用液 晶屏驱动子程序驱动液晶屏在制定的位置显示脉冲信号相关的参数 根据不同的 控制策略 生成不同指标要求的脉冲信号并通过端口 P3 0 端口送出单片机 将 脉冲信号经 555 定时器构成的施密特触发器输出 系统电路原理图如图 2 7 所示 图 2 7 系统电路原理图 洛阳理工学院毕业设计 论文 20 第 3 章 可编程脉冲信号发生器的软件设计 3 1 矩阵键盘的程序设计 通常键盘有编码和非编码两种 本次课题设计使用的是非编码键盘 键盘上 的按键一般排成行 列矩阵格式 每个交叉点上可接一个按键 按键的作用只是 使相应接点接通或断开 在相应程序配合下可产生被按按键的键码 采用非编码 式键盘 CPU 必须对所有按键进行监视 一旦发现有键下 CPU 应通过程序加以 识别 并转入相应的处理程序 录入相应的字符 字符对应关系如表 3 1 所示 表 3 1 字符对应关系表 0 x0e 1 列 0 x0d 2 列 0 x0b 3 列 0 x07 4 列 0 xe0 1 行 147 0 xd0 2 行 258 0 xb0 3 行 369k 0 x70 4 行 0 判断按键是否按下 CPU 监视键盘中按键是否按下的原理很简单 CPU 只要读取 P1 口的值就可以 判断按键是否按下 如果没有按键按下 则返回值必为 ff 若有键按下 则值必 因被按按键的接通而不等于 ff 按键去抖和窜键处理 在按下某个按键时 被按下按键的簧片会有轻微的抖动 这种抖动通常会持 续 10ms 左右的时间 因此 CPU 在按键抖动期间扫描键盘必然会得到错误的键值 最好的办法是使 CPU 在检测到有键按下时延时 20ms 再进行扫描 用户在操作时 常常因不小心同时按下了一个以上的按键 即发生了窜键 CPU 处理窜键的原则 是把最后放开的按键认为真正被按的按键 CPU 在处理发生在两个不同行上的窜 键时 可进行一个短延时 CPU 再扫描一次 P1 口 若俩次得到数值相同则说明 确实有键按下 否则说明是窜键 CPU 也就不调用相应的程序对其进行相应的处 理 4 洛阳理工学院毕业设计 论文 21 3 2 液晶屏显示的程序设计 硬件电路图中 在液晶屏 SMC1602 在指定位置进行脉冲信号指标关键字频率 占空比和个数的显示 脉冲信号指标关键字频率 占空比和个数通过矩阵键盘送 到单片机后 单片机调用数值处理子函数进行相关运算 进而调用液晶屏显示驱 动子程序 计算预显示的位置并在对应位置显示 SMC 1602 液晶模块内部的字符发生存储器 CGROM 已经存储了 160 个不 同的点阵字符图形 这些字符有 阿拉伯数字 英文字母的大小写 常用的符 号 和日文假名等 每个字符都有 其固定的代码 比如的 阿拉伯数字 0 的 代码是 00110000B 30H 显示时模块把地址 30H 中的点阵字符图形显示出来 我们就可以看到阿拉伯数字 0 因为 1602 能够识别的是 ASCII 码 试验 可以通过 ASCII 码直接赋值 在单片机编程中还可以用字符型常量或变量赋值 如 0 与 HD44780 相兼容 芯片时序表如下 表 3 3 操作时序表 读状态输入RS L R W H E H输出D0 D7 状态字 写指令输入RS L R W L D0 D7 指令码 E 高脉冲输出无 读数据输入RS H R W H E H输出D0 D7 数据 写数据输入RS H R W L D0 D7 数据 E 高脉冲输出无 1602 液晶模块控制指令见附录 读写操作时序如图 3 1 及 3 2 所示 图 3 1 读操作时序图 洛阳理工学院毕业设计 论文 22 图 3 2 写操作时序图 液晶显示模块是一个慢显示器件 在执行每条指令以前一定要确定模块忙标 志是否为低电平 当模块的忙标志位为低电平时 表示不忙 否则 此条指令失 效 需要显示字符时 要先输入要显示字符的地址 也就是告诉模块要在哪个位 置显示字符 图 3 3 是 1602 的内部显示地址图 图 3 3 LCD1602 内部显示地址图 1602 指令集 1602 通过 D0 D7 的 8 位数据端传输数据和指令 数据指针设置 数据首地址为 80H 所以数据地址为 80H 地址码 0 27H 40 67H 其他设置 01H 显示清屏 数据指针 0 所有显示 0 02H 显示回车 数据指针 0 通常推荐的初始化过程 延时 15ms 写指令 38H 洛阳理工学院毕业设计 论文 23 延时 5ms 写指令 38H 延时 5ms 写指令 38H 延时 5ms 以上都不检测忙信号 以下都要检测忙信号 写指令 38H 写指令 08H 关闭显示 写指令 01H 显示清屏 写指令 06H 光标移动设置 写指令 0CH 显示开关及光标设置 完毕 例如第二行首字符的地址是 40H 那么是否直接写入 40H 就可以把光标定位 在第二行首字符的位置呢 这样是不行的 因为写入显示地址时要求最高位 D7 一直保持高电平 1 因此实际写入的数据应该是 01000000B 40H 10000000B 80H 11000000B C0H 在对液晶模块的初始化中要先设置其显示模式 在液晶模块显示字符时 光 标是自动向右移动的 不需要人工干预 每次输入指令以前都要判断液晶模块是 否处于忙的状态 3 3 脉冲生成的程序设计 脉冲信号在单片机的 P3 0 引脚输出 具体来说 脉冲信号的频率 占空比 脉冲个数参数可以通过键盘输入 单片机调用数值处理子函数进行相关运算 计 算出定时器的预置值并启动定时器 定时时间到了后 进入定时中断 在定时中 断中先停止记时 接着取反 P3 0 然后重装定时初值 并开启定时 为下一次时 作好准备 接着返回定时中断并等待下一个定时中断申请的提出 这样周而复始 地取反 P3 0 就可以在 P3 0 引脚上得到脉冲信号了 我们发现 只要改变定时初 值 就可以改变产生脉冲的频率 只要改变取反 P3 0 口的次数 就可以得到一 洛阳理工学院毕业设计 论文 24 定数目的脉冲输出 只要改变 P3 0 取反的时间间隔 就可以得到不同占空比的 脉冲信号 3 3 程序流程图 3 3 1 主程序流程图 N Y N Y 图 3 4 主程序流程图 LCD 初始化 显示脉冲信号关键字 键入脉冲信号指标 赋给相关参数 在液晶屏上指定位置显示参数 数值处理 脉冲信号输出 开始 脉冲个数到 检测到重置信号 号 洛阳理工学院毕业设计 论文 25 3 3 2 键盘分析子程序流程图 Y 图 3 5 键盘分析子程序流程图 P1 口赋值 0 x0f 是否有键按下 有键按下 延时 20ms P1 口与 0 x0f 相与 求得按键列码 P1 口赋值 0 xf0 扫描 P1 口 P1 口与 0 xf0 相与 求得按键行码 查询按键与字符对应表 查的字符赋给变量 KEY 返 回 洛阳理工学院毕业设计 论文 26 3 3 3 显示子程序流程图 N Y 图 3 6 显示子程序流程图 送预显示地址码和预显示参数地址 合成预显示地址 SMC1602 EN 端口清零 SMC1602 RS 端口置一 SMC1602 R 端口清零 w 把要显示的参数送到缓存区 SMC1602 EN 端口置一 SMC1602 EN 端口清零 预显示参数地址加 1 参数显示完毕 返回 参数是否等于 0 洛阳理工学院毕业设计 论文 27 3 3 3 数值处理子程序流程图 Y N Y N 图 3 7 数值处理子程序流程图 送参数地址 void main IT0 1 洛阳理工学院毕业设计 论文 31 EX0 1 EA 1 void int0 void interrupt 0 EX0 0 if ount 999998 count 0 count EX0 1 8 引用该子程序主要想讨论以下两个问题 1 中断程序的常规错误 1 现场的保护与恢复 该指令通过 PUSH 压栈指令将程序中用到的寄存器及 其它资源保护起来 然后通过出栈指令按照 先进后出 原则在中断返回前依次 恢复 避免干扰或破坏其它程序的正常执行 当然 工作寄存器的保存也可通过寄存器组切换的方式更为便捷地实现 由 于中断的不可预测性 因此现场保护显得尤为重要 否则中断返回后无法正常运 行被中断程序 这种错误的调试非常困难 2 触发方式的正确使用 单片机的外中断有两种触发方式 低电平触发和 下跳边沿触发 为了设计正确的中断子程序 必须十分清楚地了解两种方式的差 异 电平触发方式的中断标志位单片机不会自动清除 而边沿触发方式下该标志 位能自
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 专模板视频协议合同样本
- 商标转让出售购买合同范本
- 南充蓬安县2025年引进62名高层次人才笔试备考题库附答案详解
- 期货从业资格之《期货法律法规》考试押题卷及答案详解【各地真题】
- 万花筒课件教学课件
- 期货从业资格之《期货基础知识》通关考试题库含答案详解【培优】
- 难点解析鲁教版(五四制)7年级数学下册期末测试卷新版附答案详解
- 临床执业医师过关检测试卷必考附答案详解
- 粮油食品检验人员考试历年机考真题集及答案详解【历年真题】
- 期货从业资格之《期货法律法规》高分题库附答案详解(达标题)
- 基于CHO细胞的单抗生产
- 精选浙江省普通高中生物学科教学指导意见(2023版)
- 黄新波-智能变电站在线监测课件
- 陕西康城药业股份有限公司中药、植物提取及固体制剂项目环评报告
- GB/T 2820.12-2002往复式内燃机驱动的交流发电机组第12部分:对安全装置的应急供电
- GB/T 12599-2002金属覆盖层锡电镀层技术规范和试验方法
- 2023年哈尔滨市动力区法院书记员招聘笔试模拟试题及答案解析
- JG-017结构实体位置与尺寸偏差检测作业指导书
- 压铸件常见问题-气孔
- 景观工程工作流程解读(PPT)
- 走近数字PCR学习培训课件
评论
0/150
提交评论