个阻值为4K和一个150欧的电阻分压得到低电平,经74LS14滤波整形反向后得到高电平使系统上电复位。复位电路图如图2-3。
图 2-3 复位电路
在管脚1处的电压为V1
式(2-1)
当电平低于0.8V视为低电平,高于3.6V视为高电平。管脚1处的0.18V电压经反向后变成5V高电平。
开关闭合的时候同时也闭合了电容C4充电,稳定了复位脚的电平。为保证复位电路能够正常的进行工作,在设计电路的时候必须在开关断开时有给电容C4的放电回路,故加一IN4148做泄放二极管。电容C5主要是为了抑制开关动作时在闭合瞬间产生的尖峰脉冲对整个设计系统的冲击,同理也是起到了减少电路干扰的作用。
3.2 时钟电路
时钟电路对于单片机来说是很重要的,就等同与我们人类的心脏一样工作,单片机的所有操作,程序的执行,都是在时钟脉冲的同步下才使得进行的,时钟电路控制着单片机的工作节奏。STC89C52内部都有一个反相放大器,芯片内部的反相放大器的输入和输出端分别是XTAL1、XTAL2,外接定时反馈元件就组成震荡器产生时钟送至单片机内部的各个部件。如下图2-4所示,片内电路与片外器件构成一个时钟发生电路。片内振荡器的震荡频率fOSC非常接近晶振频率,一般多在1.2MHz~12MHz 之间选取,这次毕设用的时钟频率是6MHz。XTAL2输一个正弦波。图中C16、C17是反馈电容,其值在5pF~30pF之间选择,其典型值是30Pf。本系统采用的是0.01UF。其作用有两个:一个是使振荡器起振,而另一个则是对振荡器的频率f起微调作用(C16、C17大,f变小)。
图2-4 时钟电路
3.3 键盘及显示模块
由于在风扇的面板处有也有一个控制电路,因此在这里我们一样也加上了显示与键盘的模块。显示与按键电路构成一个人机交互界面,整个系统的用户体验度的好画也就在这个模块的设置上。本文采用了四个方案进行论证。
方案一: 采用74LS164 芯片
在本次设计中,用单片机的串行口来外接三片74LS164作为6位LED显示器的静态显示接口,把单片机的RXD作为数据输出线,TXD作为移位时钟脉冲。所谓静态显示,就是每一个显示器都要占用单独的具有锁存功能的I/O接口用于笔划段字形代码。这样单片机只要把要显示的字形代码发送到接口电路就可以了,直到要显示新的数据时,再发送新的字形码。使用这种方法,占用CPU的内部资源少,控制程序简单,但占用较多的硬件资源。故本次设计采用可提供单独锁存的I/O接口电路的串并转换电路74LS164。其电路原理图如图2.8所示。
图2.8 74LS164的静态显示
74LS164为TTL单向8位移位寄存器,可实现串行输入、并行输出的功能。它的A、B(第1、2脚)为串行数据输入端,2个引脚按-逻辑与运算规律输入信号,公用一个输入信号时可并接。T(第8脚)为时钟输入端,可连接到串行口的TXD端。每一个时钟信号的上升沿加到T端时,移位寄存器移一位,8个时钟脉冲过后,8位二进制数全部移入74LS164中。R(第9脚)为复位端,当R=0时,移位寄存器各复位为0,只有当R=1时,时钟脉冲才起作用。Q1-Q8(第3-6和10-13引脚)并行输出端分别接LED显示器的dp、g、f、e、d、c、b、a各段对应的引脚上。
所谓时钟脉冲端,其实就是需要高、低、高、低的脉冲,在74LS164获得时钟脉冲的瞬间,如果数据输入端(第1、2脚)是高电平,则就会有一个1进入到74LS164的内部。如果数据输入端是低电平,则就有一个0进入其内部。在给出了8个脉冲后,最先进入74LS164的第一个数据就到达了最高位,然后再来一个脉冲,从单片机RXD端输出的数据就 进入到第一片74LS164中,当第二个8个脉冲到来后,第一个数据就进入第二片74LS164,而新的第二个数据就进入到了第一片74LS164中,这样依次类推。
方案二:8255解决方案
8255内部有三个并行数据输入/输出端口,有两个工作方式控制电路,一个读写控制逻辑电路,一个8位数据总线缓冲器。
8255有3种基本工作方式。
方式0(基本I/O方式):输出具有锁存功能,输入没有锁存功能。方式0适用于无条件传输数据的设备,如读一组开关状态、控制一组显示灯,不需要应答信号,CPU可以随时读出开关状态,随时可以把一组数据送指示灯显示。
方式1(应答I/O方式):PA口、PB口定义为方式1时,PC口的某些位为状态控制线,其余的线做I/O线。方式1适用于打印机等具有握手信号的输入/输出设备。
方式2(双向选通I/O方式):方式2是方式1输入和方式1输出的结合。方式2仅对PA口有意义。方式2使PA口成为8位双向三态数据总线口,既可发送数据又可接收数据。PA口为方式2工作时,PB口仍可作方式0和方式1I/O口,PC口高5位作状态控制线。
设计中,8255只用来接三个数码管作为显示电路。扩展8255作显示电路时,见如图2.10所示。由于C口只有在方式0时才用作输入或者输出,故采用方式0这种最基本的输入输出工作方式。在这种方式下,3个端口都可以有程序设定为输入或者输出。程序中只要将相应的字形数据写入8255的PA,PB,PC口,显示器就显示出3位字符。
图2.10 三位静态显示器接口
方案三:独立键盘与LCD1602显示
独立键盘也就是把键盘直接的接入到I/O口上。原理图如图2-7。
图2-7 独立键盘原理图
液晶显示模块是一个慢显示器件,所以在执行每条指令前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要如果需要显示字符,那么需要先输入显示符的地址,既告诉模块在什么地方显示字符,图2.5是1602的内部显示地址
图2.5 1602LCD内部显示地址
在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。?
图2-9 字符的代码和字符的图形对应关系图
方案四:HD7279键盘显示电路
此方案采用HD7279A,它共有28个引脚。它是一片具有串行接口的,可同时驱动8位共阴式数码管(或64只独立)的智能显示驱动芯片,该芯片同时还可连接多达64键盘矩阵,单片即可完成LED显示、键盘接口的全部功能。 HD7279内部含有译码器,可直接接收BCD码或16进制码,并同时具有2种译码方式.此外,还具有多种控制指令 ,如消隐,闪烁,左移,右移,段寻址等.RC引脚用于外接振荡元件,其典型值为R=1.5kΩ,C=15pF。复位端是RESET,其可以保持25ms到复位结束并且是有低变到高,通常接+5V电压就行了;DIG0~DIG7为8个LED管的位选择端;SA~SG为LED数码管a~g段的输出端,DP为小数点的驱动端。DIG0~DIG7和SA~SG也分别是64键盘的列线和行线端口,完成键盘扫描、译码和键码识别。
HD7279与微处理器仅需4条接口线,其中CS为片选信号;DATA为串行数据端,当向HD7279A发送数据时,DATA为输入端;当HD7279A输出键盘代码时,DATA为输出端;CLK为串行传送的时钟输入端,其上升沿表示数据有;KEY为按键信号输出端,无键按下时为高电平;有键按下时变为低电平并一直保持到键释放为止。电路原理图如图3.14所示,图中有三个数码管和九个键盘,三位数码管用来显示温度值。
图3.13 7279键盘显示电路
方案比较:
结合本次设计需用到的键盘数量与显示内容分析,方案一需占用单片机口资源较少,但软件相对复杂一些,而
上一篇:
基于WEB的二手物品交易平台设计与开发论文
下一篇:
试论APP广告在手机中的应用