




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
XXXXXX 大学本科毕业设计大学本科毕业设计 直流电机调速系统的设计 学生姓名学生姓名 所所 在在 系系 专业名称专业名称 班班 级级 学学 号号 指导教师指导教师 XXXX 大学本科毕业设计 I 直流电机调速系统的设计直流电机调速系统的设计 学生学生 指导教师 指导教师 内容摘要 内容摘要 本文介绍了基于 PIC16F877A 单片机构成的直流电机调速 测速系统 单片 机通过 PWM 的输出信号实现对直流电机进行调速 利用 PICC 来编写单片机软件来实现对 电机的一系列功能控制 电机转动从总体上分为调速和不调速两大类 按照电动机的类型不同 电机转动又 分为直流和交流两大类 直流电动机在 19 世纪先后诞生 但当时的电机传动系统是不调 速系统 随着社会化大生产的不断发展 生产技术越来越复杂 对生产工艺的要求也越 来越高 这就要求生产机械能够在工作速度 快速启动和制动 正反转等方面具有较好 的运行性能 从而推动了电动机的调速不断向前发展 自从 1834 年直流电动机出现以后 直流电动机作为调速电动机的代表 在工业中得到了广泛的应用 它的优点主要在于调 速范围广 静差小 稳定性能好以及具有良好的动态性能 晶闸管变流装置的应用使直 流拖动发展到了一个很高的水平 在可逆 可调速与高精度的拖动技术领域中相当长时 间内几乎都采用直流拖动系统 关键词 关键词 直流电机 PIC16F877A PICC LCD1602 矩阵键盘 XXXX 大学本科毕业设计 II Abstract In this paper based on the PIC16F877A consisting of single chip DC motor speed speed single chip PWM output signal through the realization of the DC motor speed control PICC use to write software single chip to achieve a series of motor control functions On the whole drive motor speed control and speed control is divided into two broad categories In accordance with different types of motors electrical transmission and exchange of DC is divided into two categories direct current motor in the 19th century was born one after another but the electric drive system is not speed control system with the large scale socialized production of the continuous development of production technology More and more complex production process requirements higher and higher which requires the production of machinery to work in the speed quick start and braking and so on positive inversion has good performance So as to promote the motor speed of the constant development since 1834 occurred after the DC motor DC motor speed control motor as a representative of the industry has been widely used The main advantage of its speed range is wide quiet small difference stability good performance as well as a good dynamic performance thyristor converter device to enable the application of direct current to drag the development of a very high level reversible governor And the drag of high precision technologies in the field for quite a long time almost all use of DC drive system Keywords DC motor PIC16F877A PICC LCD1602 A Keyboard Matrix XXXX 大学本科毕业设计 III 目目 录录 一 前 言 1 一 系统设计背景 1 二 系统概述 1 二 方案的论证与比较 2 方案一 基于 DSP 技术 2 方案二 基于 ARM 技术 2 方案三 基于 FPGA 技术 2 三 需求分析 3 一 系统设计所需要的各个模块 3 二 系统总体设计方案框图 5 四 硬件电路设计 6 一 电源电路 6 二 LCD1602 液晶显示电路 7 三 4 4 矩阵键盘电路 9 四 PIC16F877A 单片机基本电路设计 10 五 红外测速电路的设计 13 六 系统的硬件原理图与 PCB 图 14 五 系统软件设计 15 一 4 4 矩阵键盘扫描 15 二 LCD1602 液晶显示 18 三 PWM 脉宽输出 23 四 红外测速 25 六 仿真结果与实际结果 28 附录 设计源程序 32 参考文献 39 XXXX 大学本科毕业设计 1 一 前一 前 言言 一 系统设计背景 运动控制系统是以机械运动的驱动设备 电机为控制对象 以控制器为核心 以 电力电子器件及功率变换装置为执行机构 在自动控制理论的指导下组成的电气传动自 动控制系统 这类系统控制电机的转矩 转速和转角 将电能转换为机械能 实现运动 控制的运动要求 可以看出 控制技术的发展是通过电机实现系统的要求 电机的进步 带来了对驱动和控制的要求 电机的发展和控制 驱动技术的不断成熟 使运动控制经 历了不同的发展阶段 嵌入式系统设计人员在电子应用初期就采用电磁控制电路 为电机 继电器 螺线 管和扬声器提供激励 但现今的运动控制技术则更加复杂 因为系统要求多个电机或制 动器之间的协调实现精确运动 设计师通常选用直流电机或步进电机作精密运动控制 可以将每种类型电机用于开环情况下 或使用电机自身反馈或设备中其它部分的反馈 以保证精度 每种类型的电机都有无数种变体 它们有各自的优点 缺点以及最适宜的 应用 步进电机是最流行的运动控制设备之一 因为它们能够以非连续的步长进行运动 产生精确的角度位置信息 也相对比较容易控制 步进电机的转子由按照串联电极排列 的永磁体构成 它们决定了每步的大小 定子中含有多个绕组 产生的磁场与转子的永 磁体之间产生互相作用 控制电路产生的一个脉冲序列使定子绕组的电源接通和中断 电机便产生正向或反向旋转 定子脉冲序列反向就会改变旋转方向 而由脉冲的频率控 制旋转速度 要使一个步进电机旋转 必须不断地使绕组通电和断电 反之 如果一个 绕组持续给予能量 则电机会停止旋转 通过保持力矩使之维持在某个角度位置上 直流电机也得到了广泛的应用 也可精确地控制旋转速度或转矩 直流电机是通过 两个磁场的互作用产生旋转 定子通过永磁体或受激励电磁铁产生一个固定磁场 转子 由一系列电磁体构成 当电流通过其中一个绕组时会产生一个磁场 对有刷直流电机而 言 转子上的换向器和定子的电刷在电机旋转时为每个绕组供给电能 通电转子绕组与 定子磁体有相反极性 因而相互吸引 使转子转动至与定子磁场对准的位置 当转子到 达对准位置时 电刷通过换向器为下一组绕组供电 从而使转子维持旋转运动 二 系统概述 XXXX 大学本科毕业设计 2 本系统主要是运用分模块的思想来设计的 该系统是由电源模块 4 4 矩阵键盘输 入模块 LCD1602 的液晶显示器模块 PWM 脉宽调制 控制模块 红外测速模块和 PIC 单片机中央控制单元等模块组成 在整个设计中利用 4 4 矩阵键盘输入通过单片机来控制电机的开 关 调速等功能 同样把相应的控制状态显示在 LCD1602 的液晶显示器上 电机的调速是通过按键输入 来使单片机输出不同的脉宽来实现对直流电机的调速 电机的速度是通过红外来测量的 主要是在电机的转轴上固定一个扇形的叶片 当叶片转到红外接收区时红外的阴极和 阳极对穿 这时会产生一个低电平脉冲 单片机执行相应的任务在一秒中计算脉冲的个 数 即测速 二 方案的论证与比较二 方案的论证与比较 方案一 基于 DSP 技术 利用基于 DSPDSP 数字信号处理器 技术来对直流电机调速系统来进行设计 我们可以 利用 DSP TMS3205416 和专用控制集成芯片 MC33035 为核心 综合运用 PID 比例 微积分 算法和滤波算法对直流电机调速系统进行研究设计 DSP 则可以实现全数字化的 控制 TMS3205416 系列是 TI 公司最新推出的 32 位定点 DSP 芯片 它既具有数字信号处 理能力 又具有强大的时间管理能力和嵌入式控制功能 特别适用于大批量数据处理的 测控场合 本控制系统运行稳定 控制算法合理 控制 精度高 有着很强的应用推广价值 方案二 基于 ARM 技术 利用 ARM920T 来完成对直流电机的控制 ARM920T 是基于 16 32 位 ARM7 CPU 嵌入高 速 Flash 闪存的微控制器 具备高性能 小体积封装 低功耗 片上可选择多种外设等 优点 应用范围很广 其具备的多种 32 位和 16 位定时器 10 位 A D 转换器和每个定时 器上 PWM 匹配输出特性 尤其适用于工业控制 方案三 基于 FPGA 技术 利用基于 ALTERA 的 FPGA 现场可编程门阵列 来设计直流电机速度控制器 在 FPGA 中 实现电流和速度反馈数据的自动采集 同时可以设计电流回路校正和速度回路校正模块 可以利用控制器数据采集 算法实现及时序控制的方法来实现 该设计具有实时性强 响 应速度快 集成度高 可靠性高 保护及时 编程简单灵活 应用范围广泛等特点 基 于 FPGA 的直流电机控制器 是以 FPGA 为核心 整合电机驱动波形发生 闭环控制运算 XXXX 大学本科毕业设计 3 上位机通信功能于一体 既可以利用 ROM 自编程 又可以由上位机在线编程的直流电机 控制器 方案四 基于单片机技术 利用 PIC 单片机来实现对直流电机调速系统的设计 用该方案可以直接利用 PIC 单片 机内部现有的资源模块 CCP 模块 即输出 PWM 脉宽调制 波来实现对直流电机进行 调速 综上所述 利用前三种方案都非常好 利用前三种技术设计出来的直流电机调速系统 的稳定性高 实时性好 效率高 尤其是方案一利用 DSP 来设计的直流电机系统完全可 以达到现在的军需用品 因为它对数字信号的处理精度高 但是作为此毕业设计不需要 那么高的精度 只要实用就够啦 前三种方案的设计成本太高 无论是 DSP 芯片 ARM 芯 片还是 FPGA 芯片都比较贵 基于设计成本 设计的难易程度来综合比较 在这里选取方 案四利用单片机来实现对电机的调速设计 三 需求分析三 需求分析 一 系统设计所需要的各个模块 1 电源模块 电源主要是需要一个 5V 和一个 3 3V 的电压 5V 电压是用来让 PIC16F877A 单片机 工作的基准电压 而 3 3V 电压是用来驱动直流电机的 这个电压模块不需要用任何软件 来控制 只需用模拟硬件电路完成 用一个便携充电器即可 5V 12V 均可 把它插 在电路板上 然后再通过整流桥 稳压部分 即可得到所需的 5V 和 3 3V 具体的硬件电 路和参数设置请参照后面的硬件设计部分 注 为了方便硬件电路的设计 我们这里的 3 3V 就用 5V 来替代 2 4 4 矩阵键盘模块 4 4 矩阵键盘采用的是行扫描和列扫描的方式来实现对键盘的识别的 键盘的八跟线 是接在单片机的 RC 口上的 因为 PIC16F877A 单片机只有 RB RC RD 三个端口是 8 个接 口 而 RD 口上的 8 跟线是用来控制 LCD1602 的 RB 口用来产生外部电平中断 即电机转 速用的 所以选用 RC 口 然而这里依然存在一个问题 直流电机的转速是通过 PWM 脉 宽调制 输出的脉宽波形来实现的 输出的脉宽波形是通过 RC2 来输出的 因此 RC2 必 定被占用 所以键盘扫描的 RC2 的这根线必须空出来供给 PWM 输出使用 那么这个口的 高四位 RC7 RC4 设为输入 低四位 RC3 RA0 RC1 RC0 设为输出 为了方便 XXXX 大学本科毕业设计 4 软件的编写 在高四位上分别外接四个 5 1K 的上拉电阻 3 LCD1602的液晶显示器 液晶显示的原理是利用液晶的物理特性 通过电压对其显示区域进行控制 有电就 有显示 这样即可以显示出图形 液晶显示器具有厚度薄 适用于大规模集成电路直接 驱动 易于实现全彩色显示的特点 目前已经被广泛应用在便携式电脑 数字摄像机 PDA移动通信工具等众多领域 液晶显示器以其微功耗 体积小 显示内容丰富 超薄轻 巧的 诸多优点 在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用 LCD 显示器是利用液晶的动态散射效应来显示数字的 当没有外加电场时 液晶分子 按一定方向整齐排列 射入的光线被反射电极反射回来 从而使液晶呈现白色 当电极上 加人电压后 液晶电离正离子在电场的作用下运动而打乱液晶分子的规则排列 射入的 光线不能正常反射回来 从而使液晶呈现暗色 液晶显示器两极不能施加直流电压 通 常要求在两个电极上加 50 一 100 Hz 的交变信号 此信号可由两个同频反相的周期性矩 形脉冲信号加在 LCD 电极的两端组成 当其正面电极和公共电极的脉冲信号同频反相时 液晶两极电压为方波信号 液晶工作呈现暗色 而当两极脉冲信号同频反相时 液晶两极 无电压差 呈现白色 即两电极脉冲反相液晶显示 两电极脉冲同相液晶不显示 液晶显示的分类方法有很多种 通常可按其显示方式分为段式 字符式 点阵式等 除了黑白显示外 液晶显示器还有多灰度有彩色显示等 如果根据驱动方式来分 可以 分为静态驱动 Static 单纯矩阵驱动 Simple Matrix 和主动矩阵驱动 Active Matrix 三种 具体控制方法见下面的硬件与软件设计 4 PWM 模块 本设计改变直流电动机转速的方法为脉宽调制 Pulse Width Modulation 技术 CCP1 模块和 CCP2 模块是 PIC16F877A 芯片的重要组成部分 它们有 3 种工作方式 捕捉 方式 输出比较方式和脉宽调制方式 当处于脉宽调制工作方式时 可以在两个引脚 RC1 RC2 输出两路分辨率高达 10 位的 PWM 信号 用程序语句控制 PWM 信号的周期 period 和高电平持续时 duty cycle 从而控制电机电枢电压 达到调速目的 PIC16F877A 单片机产生 PWM 信号的过程实质上是计数 2 比较循环过程 当定时器 TMR2 计数增量至与周期寄存器 PR2 的值相等时 TMR2 被清零 CCP 模块的引脚为高电平状态 高电平持续时间参数被锁存 当 TMR2 的计数值与被锁存的高电平持续时间相匹配时 CCP 模块的引脚被切换为低电平状态 脉宽调制是通过 RC2 来输出的 从而实现对电机的转 速控制 5 红外测速模块 XXXX 大学本科毕业设计 5 这个模块只要是利用红外传感器来实现对直流电机的速度测试的 器件工作原理如 下 当齿盘旋转时 由于轮齿的遮挡 红外发射管与接收管之间的红外线光路时断时续 信号处理电路将此变化的光信号转换为电脉冲信号 一个脉冲信号即表示齿盘转过一个 齿 单片机对脉冲进行计数 同时通过其内部的计时器对接收一定数目的脉冲计时 根 据脉冲数目及所用时间就可计算出齿盘的转速 最后通过数字显示部分将转速显示出来 电脉冲信号是通过 RB6 输入的 判断其电平变化 6 PIC 单片机控制模块 PIC 单片机系列是美国微芯公司 Microchip 生产的 8 位单片机的产品 是当前市 场份额增长最快的单片机之一 CPU 采用 RISC 结构 分别有 33 35 58 条指令 视单片 机的级别而定 属精简指令集 采用 Harvard 双总线结构 运行速度快 指令周期约 160 200ns 它能使程序存储器的访问和数据存储器的访问并行处理 这种指令流水线 结构 在一个周期内完成两部分工作 一是执行指令 二是从程序存储器取出下一条指 令 这样总的看来每条指令只需一个周期 个别除外 这也是高效率运行的原因之一 PIC 系列单片机的 I O 口是双向的 其输出电路为 CMOS 互补推挽输出电路 I O 脚增加 了用于设置输入或输出状态的方向寄存器 TRISn 其中 n 对应各口 如 A B C D E 等 从而解决了 51 系列 I O 脚为高电平时同为输入和输出的状态 当 置位 1 时为输入状态 且不管该脚呈高电平或低电平 对外均呈高阻状态 置位 0 时为 输出状态 不管该脚为何种电平 均呈低阻状态 有相当的驱动能力 低电平吸入电流 达 25mA 高电平输出电流可达 20mA 相对于 51 系列而言 这是一个很大的优点 它可 以直接驱动数码管显示且外电路简单 它的 A D 为 10 位 能满足精度要求 具有在线调 试及编程 ISP 功能 PIC 系列单片机共分三个级别 即基本级 中级 高级 其中又 以中级的 PIC16F873 A PIC16F877 A 用的最多 PIC16F877A 芯片采用精简指令集 RISC 技术和哈佛总线结构 该单片机集成了多个 外围模块 有 3 个定时器 TMR0 TMR1 TMR2 2 个输入捕捉 输出比较 脉宽调制 模块 CCP1 CCP2 10 位 A D 转换器 通用同步 异步收发器 USART 以及 5 个双向 I O 端口等 三自由度机械臂的运动控制系统 控制对象是驱动机械臂运动的直流电机 用 PIC 单片机实现小型直流电机的 PWM 调速控制 二 系统总体设计方案框图 该系统得的主要设计思想是分模块来设计的 首先是系统的初始化 其次是 4 4 矩 阵键盘扫描的输入设计 然后是利用单片机内部集成的 CCP 模块来输出 PWM 波 电机实 XXXX 大学本科毕业设计 6 现调速所需的脉冲波 再次利用外围器件 H 216 红外测速器来产生中断使得单片机来处 理计数 即电机的速度 最后时把所测的速度 所调得速度以及所需要显示的各种状态 在 LCD1602 液晶显示器上显示 系统总的框图结构如图 1 所示 图 1 系统设计方框图 四 硬件电路设计 系统底层电路的功能主要包括 直流电机的速度测试及可以调速 实时显示电机得 速度和相关的状态信息 硬件电路的设计主要包括以下几个模块 电源电路 显示电路 按键电路 红外测速电路以及单片机处理器的电路 下面对电路分模块进行说明 一 电源电路 1 电源电路原理 电源变压器是将交流电网 220V 的电压变为所需要的电压值 交流电经过二极管整流 之后 方向单一了 但是电流强度大小还是处在不断地变化之中 这种脉动直流一般是 不能直接用来给集成电路供电的 而要通过整流电路将交流电变成脉动的直流电压 由 于此脉动的直流电压还含有较大的纹波 必须通过滤波电路加以滤除 从而得到平滑的 直流电压 滤波的任务 就是把整流器输出电压中的波动成分尽可能地减小 改造成接 近稳恒的直流电 但这样的电压还随电网电压波动 一般有 左右的波动 负载和温 10 度的变化而变化 因而在整流 滤波电路之后 还需要接稳压电路 稳压电路的作用是 当电网电压波动 负载和温度变化时 维持输出直流电压稳定 电容器是一个储存电能的仓库 在电路中 当有电压加到电容器两端的时候 便对 电容器充电 把电能储存在电容器中 当外加电压失去 或降低 之后 电容器将把储 存的电能再放出来 充电的时候 电容器两端的电压逐渐升高 直到接近充电电压 放 PIC16F877A 单片机处理单片机处理 系统初始化系统初始化 红外测速红外测速 LCD1602 显示显示 4 4 矩阵键盘扫描矩阵键盘扫描 PWM 输出脉宽来实输出脉宽来实 现电机转速控制现电机转速控制 XXXX 大学本科毕业设计 7 电的时候 电容器两端的电压逐渐降低 直到完全消失 电容器的容量越大 负载电阻 值越大 充电和放电所需要的时间越长 这种电容带两端电压不能突变的特性 正好可 以用来承担滤波的任务 2 电路设计 220V 交流电通过双 9V 变压器变为 9V 的交流电 9V 交流电通过四个二极管的全桥整 流后变为 9V 直流电 然后经过电解电容 2200 F 进行一级滤波 以去除直流电里面 的杂波 防止干扰 9V 直流电出来后再经过三端稳压器 7805 稳压成为稳定的 5V 电源 其中 78L05 的 Vin 脚是输入脚 接 9V 直流电源正极 GND 是接地脚 接 9V 直流电源负极 Vout 为输出脚 它和接地脚的电压就是 5V 了 5V 电源出来再经过电解电容的二级滤波 使 5V 电源更加稳定可靠 同时在 5V 稳压电源加上一个 470 的电阻和一个绿色发光二 极管 当上电后 绿色发光二极管点亮 表示电源工作正常 此时一个稳定输出 5V 的电 源已经设计好 对于本设计它完全能够满足单片机及集成块所需电源的要求 下面是所需 的电源电路的原理图 如下图图 2 所示 图 2 电压 5V 的稳压电路 二 LCD1602 液晶显示电路 1 LCD1602 显示原理 1 字符型液晶显示模块的主要参数 LCD1602 主要技术参数 显示容量 16 2 个字符 芯片工作电压 4 5 5 5V 工作电流 2 0mA 5 0V 模块最佳工作电压 5 0V 字符尺寸 2 95 4 35 W H mm 2 字符型液晶显示模块的实物图如图 3 所示 XXXX 大学本科毕业设计 8 图 3 液晶面板 字符型液晶显示模块是一类专门用于显示字母 数字 符号等的点阵式液晶显示模 块 在显示器件上的电极图型设计 它是由若干个5 7或5 11等点阵符位组成 每一个点 阵字符位都可以显示一个字符 点阵字符位之间有一空点距的间隔起到了字符间距和行 距的作用 3 字符型液晶显示模块的引脚功能 VSS 为地电源 VDD 接 5V 正电源 VL 为液晶显示器对比度调整端 接正电源时对比 度最弱 接地电源时对比度最高 对比度过高时会产生 鬼影 使用时可以通过一个 10K 的电位器调整对比度 RS 为寄存器选择 高电平时选择数据寄存器 低电平时选择 指令寄存器 RW 为读写信号线 高电平时进行读操作 低电平时进行写操作 当 RS 和 RW 共同为低电平时可以写入指令或者显示地址 当 RS 为低电平 RW 为高电平时可以读忙 信号 当 RS 为高电平 RW 为低电平时可以写入数据 E 端为使能端 当 E 端由高电平跳变 成低电平时 液晶模块执行命令 DB0 DB7 为 8 位双向数据线 BLK 和 BLA 是背光灯电源 引脚编号及说明如表 1 所示 表1 字符型液晶显示模块引脚 编号符号引脚说明编号符号引脚说明 1VSS 电源地 9D2Data I O 2VDD 电源正极 10D3Data I O 3VL 液晶显示偏压信号 11D4Data I O 4RS 数据 命令 12D5Data I O 5R W 读 写 13D6Data I O 6E 使能信号 14D7Data I O XXXX 大学本科毕业设计 9 7D0Data I O45BLA 背光源正级 8D1Data I O16BLK 背光源负级 2 字符型液晶显示模块内部结构 液晶显示模块WM C1602N的内部结构可以分成三部份 一为LCD控制器 二为LCD驱动 器 三为LCD显示装置 如图4所示 图 4 1602 内部结构 1 电路设计 使用时可以通过一个 10K 的电位器调整对比度 注意液晶显示器的对比度不能调的 太大啦 如果屏幕调的太亮啦很容易损坏液晶显示器 对比度调的太小啦又会影响显示 效果 最好吧电位器调到中间位置即可 适可而止 R 读写信号线 高电平时进行读操 作 低电平时进行写操作 当 RS 和 R W 共同为低电平时可以写入指令或者显示地址 当 RS 为低电平 R W 为高电平时可以读忙信号 当 RS 为高电平 R W 为低电平时可以写入数据 DB0 DB7 为 8 位并行的双向数据传输线 其 LCD1602 的硬件接口电路如下图 5 所示 图 5 1602 硬件接口电路 三 4 4 矩阵键盘电路 由于 PIC 单片机的 I O 口的资源有限 如果采用单线扫描的方式将占用很多 I O 口 一个按键就会占用一个 I O 口 为了节约单片机资源 留出更多 I O 口供其它模块使用 L C D 控 制 器 LCD 驱 动 器 LCD 显 示 装 置 VSS VDD VO VS V W E DB0 D B7 XXXX 大学本科毕业设计 10 故这里采用 4 4 矩阵键盘的连接方式 16 个按键只占用 8 个 I O 口 1 矩阵键盘的扫描原理 在本系统设计中采用行列式键盘 每一条水平 行线 与垂直线 列线 的交叉处 不相通 而是通过一个按键来连通 利用这种行列式矩阵结构只需要 N 条行线和 M 条列 线 即可组成具有 N M 个按键的键盘 当然这里的 N 和 M 都为 4 2 矩阵键盘的硬件电路 这里的 4 4 矩阵键盘 行线占用单片机的 4 个 I O 口 列线也占用单片机的四个 I O 口 所以在这里选用 PIC16F877A 单片机的 RC 口 RC 口正好有 8 个 I O 口 这样就 恰好把矩阵键盘连接起来啦 为了方便软件的设计 我们把 RC 口的高四位 RC7 RC6 RC5 RC4 分别连接四个阻值为 5 1K 的上拉电阻 矩阵键盘的硬件原理电路 如图 6 所示 图 6 4 4 矩阵键盘电路 四 PIC16F877A 单片机基本电路设计 1 PIC16F877A 单片机芯片引脚说明 该系统的 MCU 采用的是 Microchip 公司生产的 16F877 单片机 这个单片机的硬件系 统设计简洁 并且堆栈采用硬件方式 这样就省略了专用的堆栈指令使得指令系统也得 到了精练 其功率消耗极低 驱动能力强 使它能和多种外部电路模块结合使用 此外 它与其他的单片机最大的不同之处在于采用了哈佛总线结构 在芯片内部将数据总线和 指令总线分离 并且采用不同的宽度 数据总线 8 为 指令总线 14 位 进行处理 单片 机 16F877 芯片引脚如图 7 所示 XXXX 大学本科毕业设计 11 123456 A B C D 654321 D C B A Title NumberRevisionSize B Date 15 Sep 2008Sheet of File D GSM DdbDrawn By MCLR 1 RA0 2 RA1 3 RA2 4 RA3 5 RA4 6 RA5 7 RE0 8 RE2 10 VDD 11 Vss 12 OSC1 13 OSC2 14 RC0 15 RC1 16 RC2 17 RC3 18 RD0 19 RD1 20 RB7 40 RB6 39 RB5 38 RB4 37 RB3 36 RB2 35 RB1 34 RB0 33 VDD 32 Vss 31 RD7 30 RD6 29 RD5 28 RD4 27 RC7 26 RC6 25 RC5 24 RC4 23 RD3 22 RD2 21 RE1 9 PIC16F877 图 7 PIC16F877 引脚图 2 PIC16F877A 单片机通用外围电路 单片机的通用外围电路包括 复位电路和晶体振荡电路 1 复位电路 PIC16F877A 单片机的复位功能设计得比较完善 导致单片机内部复位的方式 或者 说 引起单片机内部复位的条件和原因大致归纳成以下 5 种 上电复位 每次单片机加电时 上电复位电路都要对电源电压 VDD 的上升过程进 行检测 当 VDD 上升到规定值 1 6 1 8V 时 就产生一个有效的复位信号 需要 72ms 1024 个时钟周期的延时 才会使单片机复位 人工复位 单片机在执行程序期间 无论是单片机在按预先设定的正常顺序运 行程序 还是单片机进入不可预知的某一个死循环 形成死机现象 都得认为单片机在 执行程序 单片机在执行程序期间 只要在人工复位端 MCLR 加入一个低电平信号 就会 令其复位 人工复位 单片机在睡眠期间 单片机处在睡眠状态之下 时钟停振 单片机 停止执行程序 只要在人工复位端 MCLR 加入一个低电平信号 就会令其复位 看门狗复位 不论何种原因 只要没有对看门狗定时器 WDT 进行周期性的 及时 地清 0 WDT 就会出现超时溢出 也就会引发单片机复位 依据单片机在看门狗超时溢出 之前所处的状态是在睡眠还是在执行程序 又可以将看门狗超时分为两种情况 其实只 有在单片机执行程序期间 看门狗发生超时溢出 才会引发单片机复位 而另一种情况 对于 PIC16F877A 单片机而言则不会引发单片机复位 电源欠压复位 在上电延时之后 该电路再提供了 1024 个时钟周期 时钟周期即 XXXX 大学本科毕业设计 12 为时钟频率的倒数 延迟 目的是让振荡电路有足够的时间产生稳定的时钟信号 为了满足人工复位的需要 PIC16F877A 单片机设置了一个外接复位引脚 来接收外 部输入的人工复位信号 在许多单片机应用场合需要设置人工复位按钮开关 以便在单片机运行到我们不希 望的状态下或者死机的情况下 利用人工复位按钮开关强行迫使单片机复位 重新开始 重头运行 外接复位开关可以和外接延时复位电路统筹考虑 将两者的功能有机地融合 在一起 电路的连接方法如图 8 所示 其中图 8 a 电路的特点是简洁 图 8 b 电路 中的电容 C 还可以为开关 K 消除抖动 图 8 a 复位电路简洁接法 图 8 b 复位电路加延时去抖动接法 XXXX 大学本科毕业设计 13 在本系统设计中选用图 8 a 2 晶体振荡电路 单片机每一步细微工作都是在一个共同的时间基准信号驱动之下完成的 作为时基 发生器的时钟振荡电路 为整个单片机芯片内部各部分电路的工作提供系统时钟信号 也为单片机与其它外接芯片之间的通信以及与其它数字系统或咨询和计算机系统之间的 通信 提供可靠的同步时钟信号 所以可以说 时钟系统是维持单片机正常运转的一种 片内必不可少的关键的功能部件 PIC 系列单片机的系统时钟 也可以称主时钟或时基 可以工作在 DC 20MHz 的频率范围之内 我们这里选用的是 4MHz 的晶体振荡器 PIC 系列单片机设计了 4 种类型的时基振荡方式可供用户选择 标准的晶体振荡器 陶瓷谐振荡方式 XT 高频的晶体振荡器 陶瓷谐振器振荡方式 HS 4MHz 以上 低频的晶 体振荡器 陶瓷谐振器振荡方式 LP 32 768kHz 外接电阻电容元件的阻容振荡方式 RC 现在把这 4 种振荡方式按外接元件及接线方法的不同 分为外接晶体 陶瓷 外接 RC 外接时钟 3 种情况 我们这里选取第一种 外接晶体振荡器 4MHz 其与单片机相 连的晶体振荡电路如图 9 所示 图 9 晶体振荡电路 注 这里的两个电容的值可以是 15pf 20pf 或者是 30pf 我们在本系统中设计选用 的是 15pf 如图 9 所示 五 红外测速电路的设计 该系统设计是使用的光电对管 在转轴上安装一个转盘 转盘上刻有一条缝隙 或 XXXX 大学本科毕业设计 14 小孔 把光电对管安装在转盘两面相对的位置 缝隙转至光电对管时 光电对管中的 接收管就可以接收到发射管发射的红外线 则会输出一个电平信号 从而可以对这个电 平信号进行计数 计算即可得到速度 这里的电平信号是要输入单片机进行处理的 来 一个电平信号 单片机就进行中断响应 我们在一秒中记下单片机的中断响应次数 即 直流电机的速度 红外测速的电路原理图如下图 10 所示 图 10 红外测速电路 六 系统的硬件原理图与 PCB 图 1 下面是直流电机调速系统的硬件原理图 该原理图如上面所述由按键部分电源稳 压部分 液晶显示接口 单片机控制部分 以及电机驱动和红外测速部分 如下图 11 所 示 图 11 电机调速原理图 2 下面是直流电机调速系统的单层 PCB 印制板 黄色线段代表的是跳线 如图 12 所 XXXX 大学本科毕业设计 15 示 图 12 直流电机单层 PCB 印制板 五 系统软件设计五 系统软件设计 在软件系统的设计上 我们还是采用硬件系统的设计思想 即分模块来设计 在整 个软件系统中包含 4 4 矩阵键盘扫描模块 LCD1602 液晶显示驱动程序 PWM 脉宽输出 模块 电机的速度测试模块 下面就是分别对每一个模块的软件设计进行说明 一 4 4 矩阵键盘扫描 在按键部分采用的是矩阵键盘的连接方式 这样有利于节约单片机的引脚资源 矩 阵键盘中的每一个按键是分成水平和垂直的两端接入比如说扫描码是从垂直的入 那就 代表那一行所接收到的扫描码是同一个 bit 而读入扫描码的则是水平 扫描的动作是先 输入扫描码 再去读取输入的值 经过比对之后就可知道是哪个键被按下 比如说扫描 码送入 11110111 后面的 0111 是代表此时扫描第一行 RC3 列 而前面的 1111 是让读取 的 4 行接脚先设為 VDD 在硬件设计上 我们把 RC 口的高四位各接上一个上拉电阻 若 此时第一行的第三列按键被按下 那读取的结果就会变成 11010111 注意 1111 变成 1101 其中 LSB 的第三个 bit 会由 1 变成 0 这是因為这个按键被按下之后 会被垂直 的扫描码电位 short 而把读取的 LSB 的 bit 电位拉到 0 此即為扫描原理 由于这种按键是机械式的开关 当按键被按下时 键会震动一小段时间才稳定 為 XXXX 大学本科毕业设计 16 了避免让单片机误判为多次输入同一按键 我们必须在侦测到有按键被按下 就 Delay 一小段时间 使键盘以达稳定状态 再去判读所按下的键 就可以让键盘的输入稳定 1 下面是 4 4 矩阵键盘扫描的软件设计流程图 如图 13 所示 图 13 键盘扫描流程图 2 下面是矩阵键盘的扫描程序 include unsigned char temp1 temp2 temp3 temp4 temp unsigned char data unsigned char tt unsigned char const table 16 0 x3f 0 x06 0 x5b 0 x4f 0 x66 0 x6d 0 x7d 0 x07 0 x7f 0 x6f 0 x77 0 x7c 0 x39 0 x 5e 0 x79 0 x71 0 9 笔段码 void delay unsigned int m 延时函数 while m void fanyi 键值翻译函数 if temp 0 xee tt 0 x01 else if temp 0 xed tt 0 x02 else if temp 0 xeb tt 0 x03 XXXX 大学本科毕业设计 17 else if temp 0 xe7 tt 0 x0c else if temp 0 xde tt 0 x04 else if temp 0 xdd tt 0 x05 else if temp 0 xdb tt 0 x06 else if temp 0 xd7 tt 0 x0d else if temp 0 xbe tt 0 x07 else if temp 0 xbd tt 0 x08 else if temp 0 xbb tt 0 x09 else if temp 0 xb7 tt 0 x0e else if temp 0 x7e tt 0 x00 else if temp 0 x7d tt 0 x0a else if temp 0 x7b tt 0 x0b else if temp 0 x77 tt 0 x0f else data table tt void keyscan 键盘扫描 delay 500 延时去抖动 temp PORTC PORTC 0 x0e delay 10 temp1 PORTC PORTC 0 x0d delay 10 temp2 PORTC PORTC 0 x0b delay 10 temp3 PORTC PORTC 0 x07 delay 10 temp4 PORTC PORTC 0 x00 if temp temp1 if temp temp2 if temp temp3 if temp temp4 fanyi void main viod 主函数 TRISD 0 x00 初始化 TRISC 0 xf0 OPTION 0 x00 ADCON1 0 x07 data 0 x3f XXXX 大学本科毕业设计 18 PORTC 0 x00 while 1 行扫描 是否有键按下 if RC7 0 keyscan else if RC6 0 keyscan else if RC5 0 keyscan else if RC4 0 keyscan else PORTD data delay 100 3 把以上程序在 Proteus 7 1 仿真软件上仿真的结果如下图 14 所示 图 14 当按下 1 键时在数码管上的显示 二 LCD1602 液晶显示 1 液晶显示器各种图形的显示原理 1 线段的显示 点阵图形式液晶由 M N 个显示单元组成 假设 LCD 显示屏有 64 行 每行有 128 列 每 8 列对应 1 字节的 8 位 即每行由 16 字节 共 16 8 128 个点组成 屏上 64 16 个 XXXX 大学本科毕业设计 19 显示单元与显示 RAM 区 1024 字节相对应 每一字节的内容和显示屏上相应位置的亮暗对 应 例如屏的第一行的亮暗由 RAM 区的 000H 00FH 的 16 字节的内容决定 当 000H FFH 时 则屏幕的左上角显示一条短亮线 长度为 8 个点 当 3FFH FFH 时 则屏幕的右下角显示一条短亮线 当 000H FFH 001H 00H 002H 00H 00EH 00H 00FH 00H 时 则在屏幕的顶部显示一条由 8 段亮线和 8 条暗线组成的虚线 这就是 LCD 显示的基本原理 2 字符的显示 用 LCD 显示一个字符时比较复杂 因为一个字符由 6 8 或 8 8 点阵组成 既要找 到和显示屏幕上某几个位置对应的显示 RAM 区的 8 字节 还要使每字节的不同位为 1 其它的为 0 为 1 的点亮 为 0 的不亮 这样一来就组成某个字符 但由于内 带字符发生器的控制器来说 显示字符就比较简单了 可以让控制器工作在文本方式 根据在 LCD 上开始显示的行列号及每行的列数找出显示 RAM 对应的地址 设立光标 在 此送上该字符对应的代码即可 3 汉字的显示 汉字的显示一般采用图形的方式 事先从微机中提取要显示的汉字的点阵码 一般 用字模提取软件 每个汉字占 32B 分左右两半 各占 16B 左边为 1 3 5 右边 为 2 4 6 根据在 LCD 上开始显示的行列号及每行的列数可找出显示 RAM 对应的地址 设立光标 送上要显示的汉字的第一字节 光标位置加 1 送第二个字节 换行按列对齐 送第三个字节 直到 32B 显示完就可以 LCD 上得到一个完整汉字 2 LCD 的三根控制线的定义 1 RS 为寄存器选择 高电平时选择数据寄存器 低电平时选择指令寄存器 2 RW 为读写信号线 高电平时进行读操作 低电平时进行写操作 当RS 和RW 共同为低电平时可以写入指令或者显示地址 当RS 为低电平RW 为高电平时可以读忙信号 当RS 为高电平RW为低电平时可以写入数据 3 E 端为使能端 当E 端由高电平跳变成低电平时 液晶模块执行命令 LCD1602的8跟数据线是挂接在RD口上的 其中LCD1602的三跟控制线RS RW E分别 挂接在RE口上的RE0 RE1 RE2上 3 LCD1602 的软件流程如下图 15 所示 XXXX 大学本科毕业设计 20 图15 LCD流程图 4 LCD1602显示的驱动程序 include define RS RE0 三根控制线的宏定义 define RW RE1 define E RE2 unsigned int j unsigned char on POWER ON XXXX 大学本科毕业设计 21 unsigned char off POWER OFF void init duankou 端口初始化 ADCON1 0X07 把 A E 口都设置为 I O TRISD 0X00 设置为输出 TRISE 0X00 asm nop void delay unsigned int m 延时函数 while m void check busy 读液晶忙信号 TRISD 0XFF 在此处设为输入 RS 0 RW 1 读数据 asm nop while 1 E 1 asm nop if RD7 0 break 检测忙标志位 asm nop E 0 E 0 E 0 E 由高电平跳变成低电平时 液晶模块执行命令 asm nop TRISD 0X00 还原为输出 void zhiling unsigned char zhi l 写指令 check busy RS 0 RS 0 R W 0 时写入命令 RW 0 PORTD zhi l E 1 asm nop E 0 E 0 E 由高电平跳变成低电平时 液晶模块执行命令 asm nop void shuju unsigned char y 写数据 check busy XXXX 大学本科毕业设计 22 RS 1 RS 1 R W 0 时写入数据 RW 0 PORTD y E 1 asm nop E 0 E 0 E 由高电平跳变成低电平时 液晶模块执行命令 void init lcd 液晶初始化 delay 100 zhiling 0 x38 显示模式设置 5 7 点阵 8 位数据 16 2 显示 delay 7 zhiling 0 x0f D 1 开显示 C 1 开光标 B 1 光标闪烁 00001DCB delay 7 zhiling 0 x01 01H 显示清屏 02H 显示回车 delay 460 zhiling 0 x06 显示光标移动位置 000001NS delay 7 void lcd clear 显示清屏 zhi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家人合伙开店合同范本模板
- 二战如何签订劳动协议书
- 汽车装潢出租转让合同范本
- 养殖类技术培训合同范本
- 小儿护理查房课件
- 小儿意外伤害课件
- 兰州职业技术学院单招《英语》考前冲刺练习试题带答案详解(培优)
- 2025年标准租赁合同模板
- 难点详解京改版数学8年级上册期末试卷【培优A卷】附答案详解
- 难点解析人教版7年级数学上册期末试题完整版附答案详解
- 2025年长沙市中考物理试卷真题(含答案)
- 外科术后康复
- 口腔科主任述职报告
- 心脏骤停的急救及处理
- 营养科专案管理制度
- 达州国企考试试题及答案
- 2025四川省人力资源和社会保障厅制劳动合同书
- 2025-2030年海洋环境监测行业市场发展分析及发展前景与投资机会研究报告
- 浙江花园营养科技有限公司 年产750吨饲料级VD3油剂项目环评报告
- 渠道终端销售合同协议
- 煤矿其他从业人员培训课件
评论
0/150
提交评论