太原科技大学毕业设计(论文)
第3章硬件系统设计
本章节的硬件设计主要是系统电源的设计以及为控制芯片的外围电路设计。下面首先介绍系统电源电路的设计:
3.1 电源电路
下图为系统电源的设计流程图:
输入电压U1 电源 变压器 整流滤波电路 图3.1 直流稳压电源流程图 稳压电路 输出电压U2 系统供电电压各部分简介:
(1)对电压降压
由于市电的电压值较高,单片机不能直接使用,所以在进行电压处理之前应先进行电压的降压操作。
(2)整流滤波电路
电压进过变压器的电压转化之后电压值虽然稳定在5V左右,但是输出的是交流电。需要把交流电转变为直流电,这一步就需要设计整流滤波电路。
(3)稳压电路
当电流经过整流滤波之后电压并不稳定,单片机需要一个稳定的电源这是的电源对单片机的系统稳定性不利。所以需要通过一个稳压芯片把电压稳定下拉。[5]本次设计采用的芯片是7805。通过这个芯片可以控制电压的稳定输出。下图为稳压芯片的电路连接图:
LM317D24001Vin2Vin+Vout3VoutR1200
ADJD14001C21000uFC10.1uF1R25.1KC310uFGND7
太原科技大学毕业设计(论文) 图3.2 可调稳压电路原理图
Ui1InputOutput3GND
图3.3 7805三端稳压电源电路
需要特别注意的是,单片机需要输入较为稳定的电压波形,虽然稳压器7805输出电压波形比较稳定,但是为了保证系统的稳定性,防止突发事件的产生,需要在其输入端与输出端加滤波电容,滤除不需要波形,防止烧坏系统器件,保证系统稳定运行。
3.2 单片机最小系统说明
下面主要介绍单片机最小系统的两个外围电路:
时钟电路:晶振电路是单片机程序运行的基础,晶振振动频率决定单片机的程序执行速率。晶振作为单片机的时钟节拍。有两种时钟产生方式,一种成为内部时钟,另一种称为外部时钟。为了使单片机的功耗消耗较小,本系统使用的是外部时钟电路。片机内部集成了一个震荡电路,在X1和X2引脚连接晶振,并且在晶振的两端加上电容,给单片机上电,就可以完成单片机晶振起振,本系统选择的晶振是12MHZ。
复位电路:复位电路,负责单片机的程序复位。当程序运行到某个内存区域时,使用者不愿意程序继续执行下去,选择复位引脚,使程序恢复到0地址存储区域执行。当复位电路中的按键按下时,会给两个电容充电,使RST引脚的电压升高时间长达单片机的一个时钟周期,就可以完成单片机程序的复位。
2C4LM7805100uFUoC50.1uF
图3.4 单片机最小系统
8
太原科技大学毕业设计(论文)
3.3 温度检测电路
温度传感器DS18B20体积特别小,硬件开销相对较低,测量精度比较高,而且抗干扰能力特别强。DS18B20是全数字温度转换及输出,单总线数据通信,最高能达到12位分辨率,检测的温度范围大,是开发有关温度产品的极佳选择。[6]其主要功能特性如下: (1)独特的1-Wire总线接口仅需要一个管脚来通信。
(2)具有多路采集的能力使得对于分布式温度的采集和应用更加简便。 (3)无需其他外部器件。
(4)能够通过数据线进行供电,供电范围为3.0V至5.5V。 (5)待机时无损耗。
(6)可测量温度的范围为:-55℃至+125℃(-67℉至+257℉)。 (7)温度以9 位数字量读出
(8)如果测量温度的范围超过-10℃至85℃之外时,具有+-0.5℃的精度。 (9)使用者用于对温度报警功能的设置。
(10)使用者设置警报温度的温度值,用于报警功能。
DS18B20芯片内部有一个测量温度的传感器,它是温度传输的基础;一个存储芯片的固有信息的ROM区;用于存储芯片的ID等信息;一个RAM存储区,用于芯片的温度数据以及一些寄存器数值的存放;还有一个警报电路。其工作原理为:低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55℃所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。
温度传感器接单片机时只需要用到一个I/O口,连接单片机的I/O口时没有特殊的要求,当芯片连接单片机时,单片机通过单总线协议,从这一个I/O口里读取或者写入数据。但是不管是哪种方法,I/O口都要接上4.7kΩ左右的上拉电阻。下图为温度传感器的电路连接图:
9
太原科技大学毕业设计(论文)
图3.5 测温模块
3.4 人机交互电路
3.4.1 键盘接口电路
按键的设计常用的有两种,一个按键连接一个I/O,这是独立按键,另一种是矩阵排布。各有优点,首先,独立按键可以直接连接到中断引脚。这样设置好单片机的相应中断位,就可以用按键来触发中断。这样做的好处是:程序可以很快的去执行所需要的功能,对按键的相应速度很快。可以达到按下按键就可以触发相应的事件。另外独立按键可以减少程序负担,不用扫描相应的位置,这样可以加快程序的执行,相对来说,对程序的编写难度也会有所下降。如果使用矩阵连接键盘的方法,它的好处是节约微控制器的I/O资源。比如说25个按键可以连接5个接口就可以。用程序的扫描办法,是可以实现的。比如说用到的按键数量较少,当然选用独立按键的办法,这样可以减少程序复杂度,也不会浪费单片机的I/O资源。[7]当然如果按键较多,那就必须使用矩阵按键要不然,单片机只能连接几个按键,而其他外设就连接不上。
按键的使用也需要注意。因为现在用的大多数按键用的是轻触按键。当按下之后按键两端的电路接通。当松开之后,按键的两端电路断开。这样就会产生一个抖动现象。因为单片机采集速度较快,当按下按键到按键弹起这段时间内可能会产生多次跳动。对数据采集产生不可预估的变动。这要通过程序做相应的延时来消除机械抖动。在本次设计中所使用的是四个独立的按键,接口电路如下图所示:
图3.6 键盘电路
3.4.2 显示电路
本次设计的显示模块使用的是LCD1602,下面介绍这款液晶显示器以及接口电路。
(1)显示原理介绍
10
太原科技大学毕业设计(论文)
1602显示屏可以显示16×2个单元,每个单元有8×8=64的点组成。其中8为Y坐标的点数,8为X坐标的点数,根据点数的亮灭组成相应的图形。把需要点亮的点数写入显示屏内部寄存器中,显示器自动在屏幕上打印出预想的图像。
(2)字符的显示
用LCD显示一个字符时,字符显示对应一个显示单元,因为一个字符由8×8点阵组成的图形,所以可以显示相应简单的字符。如果想要在显示屏上显示一个字符就要在相应的点上写1,这样对应的点就点亮,根据点的排列,就显示出了字符。比较方便的是控制器里面自带有字符存储器,写字符时,可以直接读取这些字符的存储位置,就可以得到相应的字符显示。字符存储器里面存储了160个字符,字符种类丰富,可以显示一些简单的界面。
(3)汉字的显示
汉字的显示要用到电脑上面的取模软件,先对汉字取模(就是对各个点的显示,形成一些编码,复制到程序的存储数据区),之后把用取模软件得到的数据写到LCD的CGRAM中,读取相应的位置,就可以在屏幕上打印出所需要的汉字。LCD1602显示屏内部集成了地址命令,这些地址命令控制显示字符图像的位置。通过写命令写入地址,就可以在显示屏的地址的位置写入数据,[8]把数据写入CGRAM,就可以在液晶显示字符图像。
在对液晶显示屏写数据和写命令之前,要先对液晶显示屏进行初始化,初始化是通过命令表查得想要初始化的功能来设置的。初始化操作包括液晶的显示位置、光标是否打、屏幕是否左右移动、是否指针每读一位自动加一、是否清屏等等命令。
1602VCCGNDVCCV0RSR/W10kEND0D1D2D3D4D5D6D7END0D1D2D3D4D5D6D7VCCRS1.5k12345678910111213141516VCCAK
图3.7 单片机与LCD1602的应用电路
11