基于单片机的智能窗帘系统电气工程及其自动化-学位论文

上传人:痛*** 文档编号:201204996 上传时间:2023-04-18 格式:DOC 页数:38 大小:1.58MB
收藏 版权申诉 举报 下载
基于单片机的智能窗帘系统电气工程及其自动化-学位论文_第1页
第1页 / 共38页
基于单片机的智能窗帘系统电气工程及其自动化-学位论文_第2页
第2页 / 共38页
基于单片机的智能窗帘系统电气工程及其自动化-学位论文_第3页
第3页 / 共38页
资源描述:

《基于单片机的智能窗帘系统电气工程及其自动化-学位论文》由会员分享,可在线阅读,更多相关《基于单片机的智能窗帘系统电气工程及其自动化-学位论文(38页珍藏版)》请在装配图网上搜索。

1、 本科毕业设计(论文)基于单片机的智能窗帘系统学 院电子信息工程学院专 业电气工程及其自动化年级班别 级 一班学 号 学生姓名 指导教师 2014年6月12日目 录1 绪论11.1 本课题研究的意义11.2 国内外研究现状及存在的问题11.3 本课题研究的内容和目标11.4 本课题拟解决的关键问题12 总体设计方案22.1 系统简介22.2 系统功能方框图22.3 各模块功能的介绍22.4 硬件方案的选择22.4.1 CPU方案的选择22.4.2 电源模块方案的选择32.4.3 按键输入方案选择32.4.4 红外遥控方案的选择32.4.5 时钟方案的选择42.4.6 显示模块方案的选择42.4

2、.7 驱动芯片方案的选择53 主要元器件介绍63.1 AT89C51单片机介绍63.2 HT6221遥控器芯片介绍73.3 光敏电阻介绍83.4 LCD1602液晶显示介绍93.5 L298N驱动芯片介绍114 硬件电路设计124.1 单片机最小系统124.2 电源电路134.3 按键信号输入电路134.4 光敏电阻电路144.5 红外遥控电路154.6 显示电路154.7 L298N电机驱动电路175 软件编程195.1 总程序流程195.2 独立键盘子程序205.3 红外遥控子程序205.4 液晶显示子程序215.5电机驱动子程序226 硬件仿真部分23致谢25参考文献26附录(程序)27

3、基于单片机的智能窗帘系统摘要设计可以实现对窗帘的手动、定时、自动控制,经过改进可以用于窗帘的无人化控制。本文用AT89C51单片机与光敏电阻实现了对窗帘的监测,并对数据用LCD1602液晶进行显示,用直流电机执行输出。论文主要研究了:在硬件方面利用AT89C51单片机技术参数的检测以及他的相关电路;无线红外遥控电路的原理和信号传输;用于显示温度的液晶显示模块;用于定时时间设定的按键输入模块;用于执行的电机模块。在软件方面主要是研究定时器和液晶显示电路。并且对电路进行了模拟仿真制作。本文的特色在于可设定窗帘的无人化操作,对不同环境要求的用户提供了很好的解决方案。关键词:单片机;红外;光敏电阻;

4、LCD1602;直流电机Based on Single Chip Microcomputer Intelligent Curtain SystemAbstractDesign can be implemented to the manual of the curtain, timing, automatic control, improved can be used for the unmanned control of the curtain. This paper use AT89C51 and photosensitive resistance for the monitoring of

5、 the curtain is achieved, and the data using LCD1602 LCD display, execute in dc motor output.Thesis mainly studied the: in the aspect of hardware using AT89C51 microcontroller technology parameter detection and his related circuit; The principle of wireless infrared remote control circuit and signal

6、 transmission; Used to display the temperature of liquid crystal display module; Used for timing time setting key input module; Used to perform the motor module. In the aspect of software is mainly research the timer and liquid crystal display circuit. And on the circuit simulation.Of this article f

7、eatures the unmanned operation of the curtain, can be set to different environmental requirements of the user provides a good solution.Key words: Single chip microcomputer; Infrared; Photosensitive resistance; LCD1602; Dc motor1 绪论1.1 本课题研究的意义基于对传统窗帘的操作方式不满足。设计了单片机控制的自动窗帘遥控系统,既能解决每天手拉开和关上窗帘的不便,又显示出了

8、生活的档次,同时还可以根据光线的明暗来自动控制窗帘的开关,以调节室内的光线,更进一步地满足了人们的要求。除了市民住宅外,还可以广泛应用于别墅、宾馆、饭店等各种场所,本设计采用遥控、光控方式实现智能化的窗帘系统,正符合现今智能家居的方向,具有广阔的市场前景。1.2 国内外研究现状及存在的问题帘机的控制方式大体上有:声控、光控、时控。声控和遥控属于半自动类;光控属全自动式,但存在很多问题,因光敏器件的灵敏度,冬夏等不同季节的光照度的不同,人们对起闭窗帘在时间上的要求不同。时控式的全自动窗帘也是业余电子设计人员的热门课题。自动窗帘有些不能实现完全的自动化;有些虽然实现了完全的自动化,但结构复杂,性能

9、不够稳定;有些虽然实现了完全的自动化,且性能还可以,但价格昂贵不适合普通消费者使用。1.3 本课题研究的内容和目标采用AT89C51单片机的最小系统设计,控制一个可逆、直流电动机控制窗帘的拉开和关闭。给出了硬件设计方案,以流程图方式对系统的软件设计进行了较为详细的介绍。该系统的部分主要由键盘扫描电路、遥控、光敏电阻、单片机(AT89C51)、电动机驱动控制电路等组成;窗帘控制部分主要由导轨、窗帘、拉绳和电动机等组成。单片机根据接收到的信号不同来控制电动机的正转、反转或停止,从而实现窗帘的打开、关闭或停止。1.4 本课题拟解决的关键问题1) 光耦电阻的信号传输问题;2) 人机交互问题(包括键盘、

10、遥控和显示);3) 直流电机的控制原理问题;2 总体设计方案 2.1 系统简介智能窗帘系统以调节窗帘开关为目的,其输入参数主要是光敏电阻阻值,定时时间,按键命令。输出信号主要是时间显示、电机执行动作。不同模式下工作时将控制信号传给单片机,当手动模式时:通过按键或红外控制系统。当定时模式时:通过设定单片机内部时间来控制系统。当外出模式时:通过光敏电阻可以实现系统全自动化控制。从而满足不同环境下窗帘系统的全自动化、半自动化控制。2.2 系统功能方框图 图2.2.1 系统功能原理图2.3 各模块功能的介绍 (1) 光线强度传输:实时反馈光线强度给中央处理器。(2) 人机交互:2.1) 远程控制:远程

11、设置模式和定时时间。2.2) 按键控制:按键设置模式和定时时间。2.3) 显示输出:显示系统时间和模式。(3) 中央控制:负责系统的集中控制。(4) 电机驱动:控制驱动芯片,从而控制直流电机。2.4 硬件方案的选择2.4.1 CPU方案的选择按MCU内核可分为: MSP430、ARM、AT89C51等等。MSP430单片机功耗低,速度快,内置硬件乘法器,乘除法运算都为单周期指令,片内集成资源丰富,但是学习起来比较复杂1。ARM单片机控制能力强,速度快,价格比较适中,但比51要贵些,可以加操作系统,但是对ARM接触较少,应用起来较为困难。AT89C51是一种带4K字节FLASH存储器)的低电压、

12、高性能CMOS 8位微处理器。AT89C51是一种带2K字节闪存可编程可擦除只读存储器的单片机。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C51是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案2。本设计选择AT89C51 单片机作为主控部分。2.4.2 电源模块方案的选择电源供电部分可采取三端稳压电路进行电源转换、多节干电池串联供电。电源转换用市电220V,50Hz电源转换供电,三端稳压电路使用LM7805构成的桥式稳压整流电路。结构简单、输出电压稳定性强。但为了解决散热问题,安装散热器,

13、增大整个电源设备的体积、重量和成本5。多节干电池串联方案。单片机机芯片的工作电压是3.3-5V,干电池一般都是每节1.5V,需要三节干电池串联进行供电,成本低,便捷简单,但需要定期更换电池。 由于本设计使用需220v供电,综合考虑最终选电源转换作为电源供电部分。2.4.3 按键输入方案选择微机键盘主要有两种:一种是全编码键盘,另一种是非编码键盘。全编码键盘,键码全由硬件提供,但硬件结构复杂,成本高。典型的编码矩阵式键盘接口设计。将I/O口线的一部分作为行线,另一部分作为列线,按键设置在行线和列线的交叉点上,构成矩阵式键盘。矩阵式键盘中按键的数量可达行线数n乘以列线数m,如4行、4列的矩阵键盘的

14、按键数可以达到44=16个。此类键盘可节省IO口。非编码键盘,键盘多采用矩阵方式,利用软件识别键码及完成各种键功能处理。实现起来简单,典型的独立式按键是各按键相互独立的接通一条输入数据线,每个键的工作不会影响其它的I/0口。但占用I/O口多10。考虑简化结构,降低成本,本系统中多采用非编码的独立式按键。2.4.4 红外遥控方案的选择市场上红外芯片种类繁琐,BC7210、TC9012、HT6122等等BC7210比高公司拥有版权的红外遥控解码专用芯片。BC7210 可以完成目前国内市场上最常用的飞利浦RC5和NEC两种红外编码信号的解码。BC7210的输出可以设置为并行输出或者串行输出,串行输出

15、方式兼容SPI和UART两种接口,可以轻松完成与各种MCU、PC机的接口。可以取代SAA3049等芯片。TC9012是一块用于东芝系列红外遥控系统中的专用发射集成电路,采用CMOS工艺制造。它可外接32个按键, 提供8种用户编码,另外还具有3种双重按键功能。TC9012的管脚设置和外围应用线路都进行了高度优化,以配合PCB的布图和低成本的要求HT6122 芯片是通用红外遥控发射集成电路,采用CMOS 工艺制造,最多可外接64个按键,并有三组双重按键。封装形式为SOP-24和SOP-20。考虑应用方便,本设计用此方案。2.4.5 时钟方案的选择常用的时钟芯片有:DS12C887、DS1302、5

16、1单片机内部定时等等。DS12C887能够自动产生世纪、年、月、日、时、分、秒等时间信息, DS12C887中自带有锂电池,对于一天内的时间记录,有12小时制和24小时制两种模式。带有128字节 RAM。数据/地址总线复用性能优异,但价格相对较贵12。DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。51单片机自带内部定

17、时器,使用方便,价格低廉,但不能断电保存。由于本设计考虑成本问题,且不会断电,故选用51单片机自带内部定时器。2.4.6 显示模块方案的选择一般的显示有LED8位数码管显示、LCD1602、lcd12864等等LED8位数码管显示,显示分为动态显示和静态显示,虽然价格比较便宜,但是其外部电路比较复杂。LCD液晶显示器在单片机中应用一般有LCD1602液晶显示和LCD12864液晶显示。LCD1602液晶显示没有中文字库,而且显示的内容也较少。LCD12864液晶显示分为两种,带字库的和不带字库的,不带字库的液晶显示汉字的时候可以选择自己喜欢的字体。而带字库的液晶,只能显示GB2312字体,当然

18、也可以显示其他的字体,不过是用图片的形式显示6。考虑本设计显示内容不需要汉字,故选用LCD1602液晶显示作为显示部分。2.4.7 驱动芯片方案的选择常用的驱动芯片有:L298N、SA60等。L298N是ST公司生产的一种高电压、大电流电机驱动芯片。该芯片采用15脚封装。主要特点是:工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;额定功率25W。具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;可以外接检测电阻,将变化量反馈给控制电路。使用L298N芯片驱动电机,该芯片可以驱动一台两

19、相步进电机或四相步进电机,也可以驱动两台直流电机。SA60 的是一个PWM 型功率输出芯片, 电路提供给电机的电源电压最大可达到80V , 能连续向负载提供10A 的电流。最大模拟输入电压5V , PWM载波频率可以到250kHz , 而效率可以高达97 %, 该芯片还可以外接一个可兼容的TTL 型的PWM 的信号来同步四象限模式的幅值和方向。SA60 主要应用在驱动中小型直流电机,D 类功率放大,轴承激励等场合。综合考虑,本设计采用L298N作为直流电机的驱动芯片。3 主要元器件介绍3.1 AT89C51单片机介绍AT89C51的主要特点:与MCS-51 兼容、4K字节可编程闪烁存储器 、1

20、000写/擦循环数据保留时间、三级程序存储器锁定、1288位内部RAM、32可编程I/O线、两个16位定时器/计数器、5个中断源 、可编程串行通道、低功耗的闲置和掉电模式、片内振荡器和时钟电路。(a) (b)图3.1.1 单片机芯片实物引脚图管脚说明:VCC:供电电压、GND:接地。P0,P1,P2,P3:输入/输出端口。P3.0/RXD:串行输入口、P3.1/TXD:串行输出口、P3.2 /INT0:外部中断0、P3.3 /INT1:外部中断1、P3.4/T0:计时器0外部输入、P3.5 T1:计时器1外部输入、P3.6 /WR:外部数据存储器写选通、P3.7 /RD:外部数据存储器读选通、

21、P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状

22、态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入、XTAL2:来自反向振荡器的输出。芯片擦除:整个PEROM阵列和三个锁定位的电擦除可通过

23、正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。3.2 HT6221遥控器芯片介绍引脚说明表如表3.2.1 所示。表3.2.1 引脚说明代码的特征1) HT6221 键码的形成当一个键按下超过36ms振荡器使芯片激活如果这个键按下且延迟大约108ms,108ms 发射代码由一个起始码9ms ,一个结果码4.5ms,低8位地址码9ms18ms ,高8位地址码9ms18ms ,8位数据码9ms18ms和这8位数据的反码 9ms18ms组成如果键按下超过108ms 仍未松开接下来发射的代码连发代码

24、将仅由起始码9ms和结束码2.5ms组成,红外高低位定义如图3.2.1所示。2 )代码格式以接收代码为准接收代码与发射代码反向,代码格式图如图3.2.2所示。图3.2.1 红外高低位定义(a) 单发代码格式 (b)连发代码格式图3.2.2 代码格式解码方法及软件说明解码的关键是如何识别0和1从位的定义我们可以发现01均以0.56ms的低电平开始不同的是高电平的宽度不同0为0.56ms, 1为1.68ms,所以必须根据高电平的宽度区别0和1 如果从0.56ms低电平过后开始延时0.56ms以后 若读到的电平为低说明该位为0反之则为1为了可靠起见延时必须比0.56ms长些但又不能超过1.12ms,

25、否则如果该位为0读到的已是下一位的高电平因此取1.12ms+0.56ms /2=0.84ms最为可靠一般取0.84ms左右均可。根据码的格式应该等待9ms 的起始码和4.5ms的结果码完成后才能读码3.3 光敏电阻介绍常用的制作材料为硫化镉,另外还有硒、硫化铝、硫化铅和硫化铋等材料。这些制作材料具有在特定波长的光照射下,其阻值迅速减小的特性。这是由于光照产生的载流子都参与导电,在外加电场的作用下作漂移运动,电子奔向电源的正极,空穴奔向电源的负极,从而使光敏电阻器的阻值迅速下降。根据光敏电阻的光谱特性,可分为三种光敏电阻器:紫外光敏电阻器、红外光敏电阻器、可见光光敏电阻器。光敏电阻的实验图如图3

26、.3.1所示。 图3.3.1 光敏电阻的实验图光敏电阻的主要参数是:(1)光电流、亮电阻。光敏电阻器在一定的外加电压下,当有光照射时,流过的电流称为光电流,外加电压与光电流之比称为亮电阻,常用“100LX”表示。(2)暗电流、暗电阻。光敏电阻在一定的外加电压下,当没有光照射的时候,流过的电流称为暗电流。外加电压与暗电流之比称为暗电阻,常用“0LX”表示。(3)灵敏度。灵敏度是指光敏电阻不受光照射时的电阻值(暗电阻)与受光照射时的电阻值(亮电阻)的相对变化值。(4)光谱响应。光谱响应又称光谱灵敏度,是指光敏电阻在不同波长的单色光照射下的灵敏度。若将不同波长下的灵敏度画成曲线,就可以得到光谱响应的

27、曲线。(5)光照特性。光照特性指光敏电阻输出的电信号随光照度而变化的特性。从光敏电阻的光照特性曲线可以看出,随着的光照强度的增加,光敏电阻的阻值开始迅速下降。若进一步增大光照强度,则电阻值变化减小,然后逐渐趋向平缓。在大多数情况下,该特性为非线性。(6)伏安特性曲线。伏安特性曲线用来描述光敏电阻的外加电压与光电流的关系,对于光敏器件来说,其光电流随外加电压的增大而增大。(7)温度系数。光敏电阻的光电效应受温度影响较大,部分光敏电阻在低温下的光电灵敏较高,而在高温下的灵敏度则较低。3.4 LCD1602液晶显示介绍工业字符型液晶,能够同时显示16x02即32个字符。(16列2行)。1602液晶也

28、叫1602字符型液晶,是专门用来显示字母、数字、符号等的点阵型液晶模块。由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。3.3V或5V工作电压,对比度可调,内含复位电路,提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能,有80字节显示数据存储器DDRAM,内建有192个5X7点阵的字型的字符发生器CGROM,8个可由用户自定义的5X7的字符发生器CGRAM。引脚说明如表3.4.1所示。表3.4.1 引脚说明引脚符号功能说明1VSS一般接地2VDD接电源(+5V)3V0液晶显

29、示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。4RSRS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。5R/WR/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。6EE(或EN)端为使能(enable)端,写操作时,下降沿使能。读操作时,E高电平有效7-14DB0双向数据总线15BLA背光电源正极16BLK背光 电源负极表3.4.2寄存器选择控制表RSR/W操作说明00写入指令寄存器(清除屏等)01读busy flag(DB7),以及读取位址计数器(DB0DB6)值

30、10写入数据寄存器(显示各字型等)11从数据寄存器读取数据LCD1602液晶显示实物图如图图3.4.1所示(a) (b)图3.4.1 LCD1602液晶显示实物图3.5 L298N驱动芯片介绍L298N是ST公司生产的一种高电压、大电流电机驱动芯片。该芯片采用15脚封装。主要特点是:工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;额定功率25W。具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作。性能参数:尺寸80mmX45mm,工作电压直流5V,电机电压直流3V46V,最大工作电流2

31、.5A,额定功率25W。特点:具有信号指示、转速可调、抗干扰能力强、具有过电压和过电流保护、可单独控制两台直流电机、可单独控制一台步进电机、PWM脉宽平滑调速、可实现正反转。LCD12864液晶显示实物引脚图如图3.5.1所示。(b) (b)图3.5.1 L298N实物图4 硬件电路设计4.1 单片机最小系统单片机芯片工作时,必需加一个最小系统。最小系统中主要包括复位电路和时钟电路两大部分6。图4.1.1 最小系统图1)复位电路复位电路选用兼有上电复位与按键复位的电路。工作原理:在通电瞬间,在RC电路充电过程中,RST端出现正脉冲,保证RST引脚出现10 ms以上稳定的高电平,从而使单片机复位

32、。电容的的大小是10uF,电阻的大小是10k。在0.1S内,RST引脚所接收到的电压是5V1.5V。在5V正常工作的51单片机中小于1.5V的电压信号为低电平信号,而大于1.5V的电压信号为高电平信号。所以在开机0.1S内,单片机系统自动复位(RST引脚接收到的高电平信号时间为0.1S左右)。2) 时钟电路时钟电路用于产生AT89C51单片机工作时所必需的时钟信号。在MCS51单片机片内有一个高增益的反相放大器,反相放大器的输入端为XTAL1,输出端为XTAL2,由该放大器构成的振荡电路和时钟电路一起构成了单片机的时钟方式。根据硬件电路的不同,单片机的时钟连接方式可分为内部时钟方式和外部时钟方

33、式3.本设计使用内部方式,须在XTAL1和XTAL2引脚两端跨接石英晶体振荡器和两个微调电容构成振荡电路,晶振的频率取值在1.2MHz12MHz之间。4.2 电源电路本设计将220V的电网电压,经变压、整流后得到+5v直流电压。7805三端稳压集成芯片:电子产品中,常见的三端稳压集成电路有正电压输出的78 系列和负电压输出的79系列三端稳压器,7805三端稳压芯片引脚图如图4.2.1所示。 MC78M05CT将输出电压稳定在+5V上,只有三条引脚输出,分别是输入端、接地端和输出端4。电源电路总设计图如图4.2.2所示。 (a) (b)图4.2.1 7805三端稳压芯片引脚图图4.2.2 电源电

34、路总设计图4.3 按键信号输入电路按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,抖动时间的长短由按键的机械特性决定,一般为5ms10ms。键抖动会引起一次按键被误读多次。在键闭合稳定时读取键的状态,并且必须判别到键释放稳定后再作处理12。按键抖动原理图如图4.3.1所示。图4.3.1 按键抖动原理图按键的消抖,可用硬件或软件两种方法。硬件消抖。在键数较少时可用硬件方法消除键抖动。RS触发器为常用的硬件去抖。两个“与非”门构成一个RS触发器。当按键未按下时,

35、输出为0;当键按下时,输出为1。此时即使用按键的机械性能软件消抖。如果按键较多,常用软件方法去抖,即检测出键闭合后执行一个延时程序,5ms10ms的延时,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。当检测到按键释放后,也要给5ms10ms的延时,待后沿抖动消失后才能转入该键的处理程序。一般来说,软件消抖的方法是不断检测按键值,直到按键值稳定。实现方法:假设未按键时输入1,按键后输入为0,抖动时不定。可以做以下检测:检测到按键输入为0之后,延时5ms10ms,再次检测,如果按键还为0,那么就认为有按键输入。延时的5ms10ms恰好避开了抖动期。本设计使用软件

36、消抖的方法。按键信号输入电路图如图4.3.2所示。图4.3.2 按键信号输入电路图4.4 光敏电阻电路光敏电阻的工作原理是基于内光电效应。在半导体光敏材料两端装上电极引线,将其封装在带有透明窗的管壳里就构成光敏电阻,为了增加灵敏度,两电极常做成梳状。用于制造光敏电阻的材料主要是金属的硫化物、硒化物和碲化物等半导体8。通常采用涂敷、喷涂、烧结等方法在绝缘衬底上制作很薄的光敏电阻体及梳状欧姆电极,接出引线,封装在具有透光镜的密封壳体内,以免受潮影响其灵敏度。入射光消失后,由光子激发产生的电子空穴对将复合,光敏电阻的阻值也就恢复原值。在光敏电阻两端的金属电极加上电压,其中便有电流通过,受到一定波长的

37、光线照射时,电流就会随光强的增大而变大,从而实现光电转换。光敏电阻没有极性,纯粹是一个电阻器件,使用时既可加直流电压,也加交流电压。当周围光线变弱时引起光敏电阻的阻值增加,使加在电容C上的分压上升,进而使可控硅的导通角增大,达到增大照明灯两端电压的目的。反之,若周围的光线变亮,则RG的阻值下降,导致可控硅的导通角变小,照明灯两端电压也同时下降,使灯光变暗,从而实现对灯光照度的控制15。光敏电阻电路如图4.4.1所示。图4.4.1光敏电阻电路4.5 红外遥控电路 图4.5.1红外遥控发送端电路图4.6 显示电路(a)读操作时序 (b)写操作时序图4.6.1 操作时序图4.6.2 1602LCD内

38、部显示地址第二行第一个字符的地址是40H,不可直接写入40H将光标定位在第二行第一个字符的位置,写入显示地址时要求最高位D7恒定为高电平1。操作时序如图4.6.1 所示。在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。每次输入指令前都要判断液晶模块是否处于忙的状态7。1602液晶模块内部的字符发生存储器(CGROM)存储160个不同的点阵字符图形,字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,

39、我们就能看到字母“A” 9。图4.6.3 液晶显示电路图4.7 L298N电机驱动电路使用直流/步进两用驱动器可以驱动两台直流电机。分别为M1和M2。引脚A,B可用于输入PWM脉宽调制信号对电机进行调速控制。(如果无须调速可将两引脚接5V,使电机工作在最高速状态,既将短接帽短接)实现电机正反转就更容易了,输入信号端IN1接高电平输入端IN2接低电平,电机M1正转。(如果信号端IN1接低电平,IN2接高电平,电机M1反转。)控制另一台电机是同样的方式,输入信号端IN3接高电平,输入端IN4接低电平,电机M2正转。(反之则反转),PWM信号端A控制M1调速, B控制M2调速14。直流电机控制方式表

40、如表4.7.1所示。表4.7.1 直流电机控制方式L298N电机驱动电路如图4.7.1所示。图4.7.1 L298N电机驱动电路5 软件编程 由于用C语言编写程序简介明了,效率相对其他高级语言较高,所以本设计采用C语言编写。5.1 总程序流程 本设计的软件设计包括主程序、键盘子程序、红外子程序、液晶显示子程序、电机驱动子程序。结合本系统的功能,程序长度不会超过AT89C51内部的程序存储器,所以硬件上不用外扩程序存储器13。主程序流程图如图5.1.1所示。图5.1.1主程序流程图5.2 独立键盘子程序图5.2.1 独立键盘软件程序流程图独立键盘软件程序流程图如图5.2.1所示。键盘程序注意的是

41、键盘防抖,本设计应用软件实现防抖检测。具体实现办法如下:void key()/键盘读取,显示num;if(up_key=0) delay(5); /按下防抖 if(up key=0) num+; if(num=4) num=3; while(!up_key); /松手防抖 5.3 红外遥控子程序红外遥控器解码流程图如图5.3.1所示。图5.3.1 红外遥控器解码流程图5.4 液晶显示子程序液晶显示程序流程图如图5.4.1所示。具体程序实现如下。void write_com(uchar com) /写指令void write_data(uchar date) /写数据void init() /初

42、始化lcden=0; write_com(0x38); write_com(0x0e);write_com(0x06); write_com(0x01);write_com(0x80);图5.4.1 液晶显示程序流程图5.5电机驱动子程序电机驱动子程序图如图5.5.1所示。具体实现程序方法如下。void DJ_up() /窗帘开启(上卷)IN3=1;IN4=0;delayms(3);void DJ_down() /窗帘关启(下卷)IN3=0;IN4=1;delayms(3);void DJ_stop() /窗帘停止(停止转动) IN3=0;IN4=0; 图5.5.1电机驱动子程序6 硬件仿真部

43、分图6.1初始化仿真图致谢早在去年时候,就在筹划毕业设计这个事,当时主要是选题,曾经想做物联网相关的,后来经过了解后知道,物联网的网络的部分相关知识我很缺乏,而作为终端的硬件部分,我想对熟悉些。由于学过单片机课程,加上之前自己也参加过科技创新比赛,对有关知识有过积累,上手起来比较容易。未来,实现家庭电器的物联是很有前景的,所以我决定从家电着手,正在犹豫那么多家电从什么入手时候突然眼前的窗帘给了我灵感,就从窗帘的控制着手,加上红外遥控的功能,若是想以后实现物联,也就相对容易的多。综合考虑,决定做基于单片机的智能窗帘系统。虽然和物联不怎么相关,但这是大系统不可或缺的一部分。决定了题目,就是导师指导

44、的时候,原本自己思路也不是很清晰,后来邹云峰老师的细心指导,让我慢慢理清了思路,开始了我的毕业论文之旅。这里真的好感谢邹老师。开题报告,一稿,二稿,忙的不亦乐乎。尽管期间有很多的困难,但是能自己动手认真做完某件事,还是很有成就感的。最大感触就是,很多时候自己在觉得很简单的事情,其实有很多小技巧。包括如何在网上查资料,如何在图书馆查阅相关文献,都是很有讲究的。在这里我很感谢我同学荣家栋、付振对我的帮助。记得刚开始看定时器计数器一块时候,我总是搞不清楚为什么可以通过寄存器的内容可以决定选什么,该怎样工作,直到后来秦昌研把电路图拿给我看时候,我才恍然大悟,此事深刻感觉到了原理的重要性,学习应该扎实,

45、不能只知道其表面,不知其根本。在学习时钟芯片模块时候,我们之前已经把郭天祥书上的类似程序看的很明白了,可是移植到自己的程序上时候,还是不知道为什么,时间显示不出来,后来我换成单片机的内部时间,由此可见,相同的东西,我们不能照搬照抄,要有自己的独立性。另外,每个细节都是很重要的,细节决定成败,不只是嘴上说说。查阅资料,学习软件,分析程序,仿真调试,一步一步。在结果调试出来的那一刻,我真的激动地快跳起来了。最大的感触就是台上一分钟,台下十年功。总之,本次毕业论文将是我人生的一大财富。再次感谢老师同学们的帮助,正是因为你们的帮助,才能让我更加有信心地做好这次论文。参考文献1 李广弟.单片机基础M.北

46、京航空航天大学出版社,2005.82 何立明.单片机高级教程应用于设计M.电子工业出版社,2007.13 徐建仁主编,智能现代,长沙:国防科技大学出版社,1990 年2月出版,4 郝鸿安编著,常用数字集成电路应用手册,北京:中国计量出版社,1987年10月出版,5 曹汉房等编著,数字技术教程,北京:电子工业出版社,1995年11月出版,6 郭天祥,51单片机c语言教程,电子工业出版社,2009年6月出版7 沈嗣昌等编著,数字设计引论,北京:高等教育出版社,2002年3月出版, 8 刘亦松等编著,数字电路逻辑设计,北京:高等教育出版社,2002年7月出版, 9 李元编著,数字电路与逻辑设计,南京

47、:南京大学出版社,1997年2月出版, 10 陈在熏等编著,数字电子技术,北京:机械工业出版社,1995年3月出版, 11 王金矿编著,单片机高级教程应用,广州:中山大学出版社,2000年6月出版, 12 申凤琴编著,电子电工技术及应用,北京:机械工业出版社,2005年9月出 版, 13 康华光编著,单片机教程实例100,北京:高等教育出版社,2000年 6月出版, 14 孙肖子,田根登等编著,现代电子线路和技术实验,北京:高等教育出版社, 2004年1月出版, 15 王化详,张淑英.传感器原理.天津:天津大学出版社. 2008年6月出版参考网站:百度百科,电子发烧友网,单片机论坛,51单片机

48、之家等附录(程序)#include#define uint unsigned int#define uchar unsigned charsbit lcden=P14; /液晶使能信号sbit lcdrs=P15; /数据/命令选择端uchar code mode=Mode ;uchar code mode1=Hand ;uchar code mode2=Time ;uchar code mode3=Auto ;uchar code table1= bi ye she ji ;uchar code table2= 2014-06-08-MON;uchar code table3=11:30-3

49、0;char year=14,month=6,day=8,week=1,shi=11,fen=30,miao=30;char ashi=6,afen=30,amiao=30; /在定时模式下,定义上午开启窗帘的时间char pshi=19,pfen=0,pmiao=0; /在定时模式下,定义下午关闭窗帘的时间void delayms(uint ms)uint x,y; for(x=ms;x0;x-) for(y=110;y0;y-);void write_com(uchar com) lcdrs=0; P0=com; delayms(5); lcden=1; delayms(5); lcden

50、=0;void write_dat(uchar dat) lcdrs=1; P0=dat; delayms(5); lcden=1; delayms(5); lcden=0;void lcd_init() lcden=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); write_com(0x80);void lcd_pos(uchar X,uchar Y) uchar pos; if(X=1) X=0x80; else if(X=2) X=0x80+0x40; pos=X+Y; write_com(po

51、s);void display_1602(uchar *dat,uchar x,uchar y) uchar i=0; delayms(5); lcd_pos(x,y); while(dati!=0) write_dat(dati);i+; #includesbit model=P10;sbit set=P11;sbit up=P12;sbit down=P13;sbit ledp=P16; /光敏电阻uchar modelnum;char setnum;void Model_keyscan() if(model=0) delayms(5); if(model=0) while(!model)

52、; modelnum+; if(modelnum=1) display_1602(mode1,2,0); if(modelnum=2) display_1602(mode2,2,0); if(modelnum=3) display_1602(mode3,2,0); if(modelnum=4) display_1602(mode,2,0); modelnum=0; void Hand_keyscan() if(modelnum=1) if(up=0)&(down=1) delayms(5); if(up=0) DJ_up(); if(down=0)&(up=1) delayms(5); if(

53、down=0) DJ_down(); if(down=1)&(up=1) DJ_stop(); void Time_keyscan() if(modelnum=2) if(set=0) delayms(5); if(set=0) while(!set);setnum+;if(setnum=1) TR0=0; write_com(0x0f); write_com(0x80+5);if(setnum=2) write_com(0x80+8);if(setnum=3) write_com(0x80+11);if(setnum=4) write_com(0x80+15); if(setnum=5) w

54、rite_com(0x80+0x40+6); if(setnum=6) write_com(0x80+0x40+9);if(setnum=7) write_com(0x80+0x40+12); if(setnum=8) write_com(0x0c); setnum=0; TR0=1; if(setnum!=0) if(up=0) delayms(5); if(up=0) while(!up); switch (setnum) case 1: year+; if(year=99) year=0; write_nyr(4,year); write_com(0x80+5); break; case

55、 2: month+; if(month=13) month=1; write_nyr(7,month); write_com(0x80+8); break; case 3: day+; if(day=32) day=1; write_nyr(10,day); write_com(0x80+11); break; case 4: week+; if(week=8) week=1; write_week(13,week); write_com(0x80+15); break; case 5: shi+; if(shi=24) shi=0; write_sfm(5,shi); write_com(

56、0x80+0x40+6); break; case 6: fen+; if(fen=60) fen=0; write_sfm(8,fen); write_com(0x80+0x40+9); break; case 7: miao+; if(miao=60) miao=0; write_sfm(11,miao); write_com(0x80+0x40+12); break; if(down=0) delayms(5); if(down=0) while(!down); switch (setnum) case 1: year-; if(year0) year=99; write_nyr(4,year); write_com(0x80+5); b

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!