基于单片机的智能型家居窗帘控制电路的设计_第1页
基于单片机的智能型家居窗帘控制电路的设计_第2页
基于单片机的智能型家居窗帘控制电路的设计_第3页
基于单片机的智能型家居窗帘控制电路的设计_第4页
基于单片机的智能型家居窗帘控制电路的设计_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、此毕业设计仅供参考,请勿偷懒直接使用可实现功能:手动控制,定时控制,光控;还有遥控控制没实现,希望对学弟学妹有用!摘要本文首先介绍了智能家居的基本知识及其应用前景,接着着重介绍了开发单片机控制的红外线遥控窗帘系统所用到的集成芯片STC89C52、L7805稳压芯片、LCD1602液晶显示屏、DS1302时钟芯片、AT24C02存储芯片、28BYJ_48步进电机、HS0038红外线接收电路等硬件的结构原理。本文采用分块的模式,对整个系统的硬件电路设计进行分析,分别给出了系统方案原理框图、电源电路、显示电路、时钟DS1302电路、外扩存储电路、电机控制电路、红外线接收电路,并对相应电路设计进行了相

2、关的阐述。软件的编写思路也是采用分块的模式,分别写出了LCD1602液晶显示程序、DS1302时钟芯片控制程序、时间调整与定时程序、步进电机控制程序、HS0038红外线解码程序、AT24C02控制程序、光控程序的编写思路,每一模块都画出了其方框图,一目了然。最后通过仿真调试,时钟,手动开关窗帘等控制方面的设计上基本达到了预期目的。当然,该系统在一些细节的设计上还需要不断的完善和改进。关键词:STC89C52RC单片机;DS1302时钟芯片;红外遥控;LCD1602;窗帘AbstractAtfirst,thispaperintroducesthebasicknowledgeofthesmarth

3、omeanditsapplicprospect,andthenintroducesthedevelopmentofsingle-chimpicrocomputercontrolofinfraredremotecontrolcurtainsystemusedbytheintegratedchipSTC89C52,L7805voltagechip,LCD1602LCDdisplay,DS1302clockchip,28byj_48steppermotor,AT24C02storagechip,HS0038infraredreceivingcircuite,tc.hardwarestructurep

4、rinciple,baseodntheblockmodel,thispapergiveananalysistothehardwarecircuitdesignofthewholesystem.Itrespectivelpyresentsthesystemprincipleblockdiagram,powersupplycircuit,displaycircuit,clockDS1302circuit,outsideenlargestoragemotorcontrolcircuit,infraredreceivingcircuitandgivesacorrespondingexplanatior

5、elatedcircuidtesign.Writingideasofsoftwareadopttheblockpatterntoo.TheywritedownthecompilethoughtsoftheLCD1602LCDdisplayprogram,DS1302clockchipcontrolprocedures,timeadjustmentandtiming,steppermotorcontrolprocedures,HS00infrareddecodingprocedures,AT24C02controlprocedures.Everymoduledrawstheveryblockdi

6、agram,whichisclearataglance.Finally,viasimulationanddebugging,thedesignofthecontrolaspectssuchasthethemanualswitchcurtainhasbasicallryeachedtheexpectedpurpose.Ofcourse,thesystemrequiresconstantperfectionandimprovementonsomedetaildesigns.Keywords:stc89c52rcsinglechi;pds1302clockchip;infraredremotecon

7、tro;llcd1602;curtain目录摘要IAbstractIII绪言11.1课题背景11.2课题的研究方向1系统总体方案设计22.1系统方案确定22.2模块器件选择2STC89C52RC单片机2LCD1602夜晶显示屏5DS130时钟芯片5系统硬件电路设计53.1单片机时钟电路52单片机复位电路63.3电源电路73.4显示电路73.4.1LCD1602管脚介绍83.4.2LCD160操作时序83.4.3LCD1602指令集83.5DS1302时钟电路93.5.1DS130介93.5.2DS13(芯片引脚93.5.3DS13(内部寄存器103.5.4DS130数据传输方式103.6AT2

8、4C02数据存储电路113.6.1AT24CC简介113.6.2AT24C(芯片引脚113.6.3I2C线介绍123.7步进电机28BYJ-48电路133.7.128BYJ_4电路图133.7.228BYJ_4相关概念143.7.328BYJ_4驱动时序143.7.428BYJ_4特点143.7.528BYJ_4驱动芯片ULN2003148红外接收电路153.8.1红外接收电路图153.8.2红外接收探头HS0038163.9光控电路163.10窗帘框架设计17系统软件设计17LCD1602显示程序18LCD1602的初始化过程18LCD1602的程序流程图18DS130用寸钟芯片控制程序18

9、4.3时间调整和定时时间程序204.4步进电机控制程序204.4.1步进电机转动方式(一)204.4.2步进电机转动方式(二)214.4.3步进电机控制程序流程图4.421HS0038红外解码程序225.1红外编码波形说明224.5.2红外解码说明234.5.3红外解码流程图236数据存储程序244.7光控程序25总结26参考文献27附录(一)原理图28附录(二)源程序29延时函数30LCD1602有关子函数30DS1302有关子函数314读DS1302时间显示于LCD1602函数34按键调整时间函数35按键定时时间函数41步进电机控制程序函数44I2C模块函数47定时扫描子函数49光控子函数

10、50主函数51红外中断函数51致谢531绪言课题背景随着时尚元素与家居生活的逐步融合,人们对于家居装饰也提出了更高的要求。谈到家居装饰,窗帘所发挥的作用绝对是功不可没。现如今,通透的玻璃窗正在变成现代建筑设计中的流行元素。大阳台、外飘窗、阳光住宅开始成为一种时尚和高品质生活的体现。而对家居装饰起到点睛之笔的窗帘,也尤如一股势不可挡的旋风,吹遍家居卖场,吹进了百姓的家。现在市场上的智能窗帘有如下特点:1.无线遥控。2.半自动手动控制。3.环境亮度控制。4.时间自动控制。5.电机工作鸣响提示和整点报时功能。这种简约风格的新型窗饰不仅仅是我们看风景的眼睛,也成为家居中一道美丽风景。在秋冬季节里,透过

11、智能窗饰传来的浓浓暖意,让你更接近自然,从舒适到陶醉,十分妥帖的个性化“定制”对阳光的需求生活像是在旅行,惬意中带着情调。虽然遥控自动窗帘系统在我国还刚刚兴起,但其发展前景广阔,推广和应用自动窗帘系统具有重要的现实意义。课题的研究方向自动窗帘机的控制方式大体上有三种:声控、光控、时控,声控和遥控属于半自动类;而光控虽属全自动式,但因光敏器件的灵敏度,冬夏等不同季节的光照度的不同,以及人们对起闭窗帘在时间上的要求不同,而难以实施和普及。因此,时控式的全自动窗帘机便成了专业以及业余电子设计人员的热门课题。本电路设计利用价格相对便宜的单片机作为主要控制器件,通过步进电机的正反转模拟窗帘开启关闭,实现

12、以下功能:无线遥控功能;半手动控制功能;根据环境亮度自动控制功能;定时控制功能。考虑到单片机IO口有限,比市场上的少了正点报时功能。2系统总体方案设计2.1系统方案确定根据任务书要求:能根据时间定时开关窗帘;能根据光的亮度自动开关窗帘;能用红外遥控器控制窗帘开启关闭;为满足上述要求,确定的方案原理图图2.1如下图2.1系统方案原理框图按键模块除了定时外,还可在遥控器失灵后手动控制,防止意外情况。2.2模块器件选择为使基于单片机控制的红外线遥控系统在实际使用过程中具有较高的性能/价格比,所以对该系统的原器件作了精心挑选。按在实际工作中的作用,可分为以下几个部分:STC89C52RC单片机是整个电

13、路的核心,它控制其它模块来完成各种复杂的操作;红外线一体化接受HS0038负责接受命令;芯片DS1302负责时钟的运行及设置参数;AT24C02用来存储数据;LCD1602用来显示各种数据,包括实时时间、定时时间、电机运行状态等。下面重点说明下STC89C52RC单片机以及简单介绍下部分其他器件(其他器件会在相应电路中详细介绍)。STC89C52RC单片机STC89C52RC有很宽的工作电源电压,可为2.厂6V,当工作在3V时,电流相当于6V工作时的1/4STC89C52RC工作于12Hz时,动态电流为5.5mA,空闲态为1mA,掉电状态仅为20nA。引脚图如图2.2:P112P123P134

14、P145P156P157P173RST9P3010P3111P3212P3313P3斗14P3515P3515P3717XT.4L213XT.4L119GND20P1C1图2.2STC89C52RC引脚图STC89C52RC的特点STC89C52RC与MCS-51系列的单片机在指令系统和引脚上完全兼容;片内有4k字节在线可重复编程快擦写程序存储器;全静态工作,工作范围:0Hz_24MHz;三级程序存储器加密;128x8位内部RAM;32位双向输入输出线;两个十六位定时器/计数器五个中断源,两级中断优先级;一个全双工的异步串行口;间歇和掉电两种工作方式超强抗干扰:高抗静电(ESD保护)轻松过2K

15、V/4KV快速脉冲干扰;宽电压,不怕电源抖动;宽温度范围,-40C85C;禁止ALE输出。;超低功耗:掉电模式:典型功耗0.1“A;2空闲模式:典型功耗2mA;3正常工作模式:典型功耗4mA-7mA;4掉电模式可由外部中断唤醒,适用于电池供电系统,如水表、气表、便携设备等.STC89C52RC的引脚电源:VCC-芯片电源,接+5V;VSS-接地端;2卫寸钟:XTAL1、XTAL2-晶体振荡电路反相输入端和输出端。3控制线:控制线共有4根:ALE/PR地址锁存允许/片内EPROM编程脉冲ALE功能:用来锁存P0送出的低8位地址PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入

16、编程脉冲。PS外NROM读选通信号。RST/V复位/备用电源。RST(Reset)功能:复位信号输入端。VPD功能:在Vcc掉电情况下,接备用电源。EA/V内外:ROM选择/片内EPROM编程电源。EA功能:内外ROM选择端。Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。I/(口线:PO、P1、P2、P3共四个八位口。P0是三态双向,通称数据总线口,因为只有该能直接用于对外部存储器的读/写操作。P0也用以输出外部存储器的低8位地图1址。由于是分时输出,故应在外部加锁存器将此地址数据锁存,地址锁存,信号用ALE。P1是专门供用户使用的I/O口,是准双向口。P2是从

17、系统扩展时作高8位地址线用。不扩展外部存储器时,P2口也可以作为用户I/O线使用,P2口也是准双向口。P3是双功能,该的每一位均可独立地定义为第一I/O功能或第二I/O功能。作为第一功能使用时操作同P1口。P3的第二功能如表2.1所示。表2.1P第二功能端引脚各个功能P3.0RXD(串行输入端)P3.1TXD(串行输出端)P3.2(外部中断0请求输入端,低电平有效)P3.3(外部中断1请求输入端,低电平有效)P3.4T0(定时器/计数器0计数脉冲输入端)P3.5T1(定时器/计数器1计数脉冲输入端)P3.6(外部数据存储器写选通信号输入端,低电平有效)P3.7(外部数据存储器读选通信号输入端,

18、低电平有效)LCD1602夜晶显示屏LCD1602夜晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。DS130时钟芯片DS130是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行

19、计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31x8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。3系统硬件电路设计3.1单片机时钟电路片内电路与片外器件就构成一个时钟产生电路,CPU的所有操作均在时钟脉冲同步下进行。片内振荡器的振荡频率非常接近晶振频率,一般多在1.2MHz24MHz之间选取。C2、C3是反馈电容,其值在20pF_100pF之间选取,

20、典型值为30pF。本电路选用的电容为30pF,晶振频率为12MHz。振荡周期=1/12仇S;机器周期=1S;指令周期=14“S;XTAL1和XTAL2:片内振荡电路输入线,这两个端子用来外接石英晶体和微调电容。在石英晶体的两个管脚加交变电场时,它将会产生一定频率的机械变形,而这种机械振动又会产生交变电场,上述物理现象称为压电效应。一般情况下,无论是机械振动的振幅,还是交变电场的振幅都非常小。但是,当交变电场的频率为某一特定值时,振幅骤然增大,产生共振,称之为压电振荡。这一特定频率就是石英晶体的固有频率,也称谐振频率。即用来连接STC89C52RC片内OSC的定时反馈回路。石英晶振起振后要能在X

21、TAL2线上输出一个3V左右的正弦波,以便使STC89C52RC片内的OSC电路按石英晶振相同频率自激振荡。通常,OSC的输出时钟频率fosc为0.5MHz-16MHz,典型值为12MHz或者11.0592MHz。电容C2和C3可以帮助起振,典型值为30pF,调节它们可以达到微调fosc的目的。如图3.1所示.C5P3515P3515P3717肘1rIE19GND20CT图3.1单片机时钟电路单片机复位电路单片机在开机时都需要复位,以便中央处理CPU以及其他功能部件都处于一个确定的初始状态,并从这个状态开始工作。单片机的复位后是靠外部电路实现的,在时钟电路工作后,只要在单片机的RST引脚上出现

22、24个时钟振荡脉冲(2个机器周期)以上的高电平,单片机便可实现初始化状态复位,如图3.2所示。图3.2单片机复位电路3.3电源电路通过220V转12V变压器输入,再经桥式整流电路后,输入直流12V电压。Cl、C2是12伏的电源滤波电容,大电容Cl旁边并联一个小电容的目的是降低高频内阻,因为大的电解电容一般采用卷绕工艺制造,所以等效电感较大,小电容可以提供一个小内阻的高频通道,降低电源全频带内阻。之后经过3端集成稳压芯片LM7805稳压后输出+5V电压VCC,为步进电机电路、红外接收电路、显示电路、时钟芯片提供电源,5V电源经过二极管D5、限流电阻R1=5K后,为DS1302提供VDD电压,BA

23、TTERY是直流供电电源,电压为3V左右,在本电路中为了节省成本,使用两节5号可充电电池。市电正常的情况下,VDD电源为DS1302供电的同时,也为电池充电,从而延长电池的使用寿命,当市电停电的时候,电池为DS1302图3.3电源电路3.4显示电路显示电路设计米用的是液晶LCD1602(仿真时用LM016L代替)来显示实时时间、步进电机运行状态等内容。由于P0口带负载能力差,故需接上拉电阻(这里用1K的排阻),P0口作为数据连接LCD1602的7一14口,来传输数据及指令。P2.5接LCD1602的4脚RS(数据/命令选择端),P2.6接LCD1602的5脚R/W(读写选择端),P2.7接LC

24、D1602的6脚E(使能信号)。电位器RV1用来调节LCD1602的亮度,如图3.4所示。图3.4LCD1602显示电路iR?RESPACK*3VCC广1寸L-PQJ斗M5544)1P2-39237f935r103511-12-13.14LCD1602管脚介绍16(共16个管脚,但是编程用到的主要管脚不过三个,分别为:RS(数据命令选择端4脚),R/W(读写选择端5脚),E(使能信号6脚)。以后编程便主要围绕这三个管脚展开进行初始化,写命令,写数据。以下具体阐述这三个管脚:RS为寄存器选择,高电平选择数据寄存器,低电平选择指令寄存器。R/W为读写选择,高电平进行读操作,低电平进行写操作。E端为

25、使能端,后面和时序联系在一起。除此外,D0D7(714脚)分别为8位双向数据线,第1脚:VSS为地电源;第2脚:VDD接5V正电源;第3脚:液晶显示偏压。LCD1602操作时序表3.1操作时序RSR/W操作说明00写入指令码到D0D701读从D0D7输出的状态字10写数据到D0D711从D0D7读数据LCD1602指令集0 x3设置16*2显示,5*7点阵,8位数据接口;0 x0清屏;0 x0开显示,显示光标,光标闪烁;0 x0只开显示;0 x0开显示,显示光标,光标不闪烁;0 x0开显示,不显示光标;0 x0地址+1,当写入数据的时候光标右移;0 x02地址计数器AC=0(此时地址为0 x8

26、0),光标归原点,但是DDRAM中内容不变;0 x1光标和显示一起向左移动;DS1302时钟电路本电路采用DS1302时钟芯片(DS1302主要特点是采用串行数据传输),采用32768Hz晶振,两个电源Vcc1及Vcc2接电源VDD,这样如果没有交流电的供电也可以由可充电电池供电,起了掉电保护,防止实时时间数据丟失。2脚X1(晶振引脚)及3脚X2(晶振引脚)接32786Hz的晶振,晶振旁接两个6pf的起振电容,5脚RST(复位引脚)与单片机的P1.7相连,6脚I/O数据输入输出引脚)与单片机的P1.6相连,7脚CLK(串行时钟输入引脚)与单片机的P1.5相连,如图3.5所示。图3.5DS130

27、爼寸钟电路DS13C介DS1302是美国Dallas公司生产的一种串行实时时钟/日历芯片,以串行方式与单片机进行数据传送,它能够向单片机提供:秒、分、时、日、月、年、及星期等实时时间信息,并能够对闰年天数自动调整,日历有效至2100年。DS1302由双电源中较大者供电,使系统在没有主电源的情况下也能保持时钟的连续运行。片内具有31个字节静态RAM,可用来保存重要数据。DS1302具有引脚少、体积小、价格低等优点,得到了广泛应用。本文对其进行详细分析和阐述并在分析其时序的基础上给出了DS1302与单片机连接的接电路和通讯子程序。DS13(芯片引脚DS1302的引脚功能描述如表3.2所示:表3.2

28、DS130引脚描述引脚号名称说明引脚号名称说明1Vcc2备用电源引脚5CE复位引脚2XI晶振引脚6I/O串行输入输出引脚3X2晶振引脚7SCLK串行时钟输入引脚4GND电源地引脚8Vcc1主电源引脚DS13(内部寄存器DS1302串行实时时钟芯片主要由移位寄存器、控制逻辑、振荡器、实时时钟及31个字节RAM组成,其内部结构如表3.3所示。数据传送前,必须把置为高电平且把提供地址和命令信息的8位字节装入到移位寄存器。在进行单字节传送或多字节传送时,开始的8位命令字节用于指定40个字节(31个字节RAM和9个字节时钟寄存器)中哪个将被访问。表3.3DS1302内部寄存器寄存器名命令字取值范围各位内

29、容写读76543210秒寄存器80H81H00-59CH10SECSEC分钟寄存器82H83H00-59010MINMIN小时寄存器84H85H01-12或00-2312/240A/MHRHR日期寄存器86H87H0128,29,30,310010DATEDATE月份寄存器88H89H01-1200010MMONTH周日寄存器8AH8BH01-1200000DAY年份寄存器8CH8DH00-9910YEARYEAR从上面可以看出,DS1302的寄存器存的是BCD码,用的时候要转换回十进制码。DS130数据传输方式对DS1302进行任何数据传送时,第一个数据字节必须是命令字节,格式如表3.4所示

30、,其最高有效位MSB位7)必须为逻辑1。如果它是零,禁止写DS1302。位6为逻辑0时指定传送时钟/日历数据。逻辑1指定传送RAM数据。位1至5指定进行输入或输出的特定寄存器的地址。最低有效位LSB位0)为逻辑0时指定时进行写操作输入)。逻辑1指定进行读操作(输出)。命令字节总是从最低有效LSB(位0)开始输入。7。表3.4命令字RAM-RD1A4A3A2AlAOAT24C02数据存储电路本电路采用AT24C02芯片,AT24C02支持I2C协议(一种总线数据传送协议),总线协议规定任何将数据传送到总线的器件作为发送器。任何从总线接收数据的器件为接收器。数据传送是由产生串行时钟和所有起始停止信

31、号的主器件控制的。AO、Al、A2接地表示该器件的地址为OOH,SCK接单片机的P1.0脚,SDA接单片机的P1.1脚,如图3.6所示。U31AT24C02AOVDDAlWPA2SCLV&sSDAVCCsTJ2TJSPIOJ斗5PllJAT2.4C02图3.6AT24C02数据存储电路AT24CC简介CAT24WC02是一个2K位串行CMOSE2PROM,内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗。CAT24WC01有一个8字节页写缓冲器,CAT24WC02/04/08/16有一个16字节页写缓冲器,该器件通过I2C总线接口进行操作有一个专门的写保护

32、功能。AT24C(芯片引脚AT24CO2引脚描述如表3.5所示:表3.5AT24C02引脚描述引脚名称功能描述AO,Al,A2器件地址选择SDA串行数据/地址SCL串行时钟WP写保护Vcc+1.8V6.OV工作电压Vss电源地SCL串行时钟:AT24CO2串行时钟输入管脚用于产生器件所有数据发送或接收的时钟,这是一个输入管脚。SDA串行数据/地址:AT24C02双向串行数据/地址管脚用于器件所有数据的发送或接收,SDA是一个开漏输出管脚,可与其它开漏输出或集电极开路输出进行线或(wire-OR)。AO、Al、A2器件地址输入端:这些输入脚用于多个器件级联时设置器件地址,当这些脚悬空时默认值为0

33、。当使用AT24C02时最大可级联8个器件。如果只有一个AT24C02被总线寻址,这三个地址输入脚(A0、A1、A2)可悬空或连接到Vss,如果只有一个AT24C02被总线寻址这三个地址输入脚(A0、A1、A2)必须连接到Vss。WP写保护:如果WP管脚连接到Vcc,所有的内容都被写保护只能读。当WP管脚连接到Vss或悬空允许器件进行正常的读/写操作。I2C线介绍I2C(InterpintegratedCir)总线是由PHILIPS公司推出的一种串行总线,是具备多主机系统所需的包括总线裁决和高低速器件同步功能的高性能串行总线。I2C总线只有两根双向信号线。一根是数据线SDA,另一根是时钟线SC

34、L。SDA图3.7I2总线图每个接到I2C总线上的器件都有唯一的地址。主机与其它器件间的数据传送可以是由主机发送数据到其它器件,这时主机即为发送器。由总线上接收数据的器件则为接收器。在多主机系统中,可能同时有几个主机企图启动总线传送数据。为了避免混乱,I2C总线要通过总线仲裁,以决定由哪一台主机控制总线。I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。要求数允许数据要求数据稳定变化据稳定图3.812数据传送时序图SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号;SCL线起始信号

35、S终止信号P图3.912总线起始停止时序图起始和终止信号都是由主机发出的,在起始信号产生后,总线就处于被占用的状态;在终止信号产生后,总线就处于空闲状态。连接到12C总线上的器件,若具有I2C总线的硬件接,则很容易检测到起始和终止信号。3.7步进电机28BYJ-48电路28BYJ_4电路图由于步进电机的驱动电流较大,单片机不能直接驱动,一般都是使ULN2003达林顿阵列驱动,当然,使用下拉电阻或三极管也是可以驱动的,只不过效果不是那么好,产生的扭力比较小,故本系统用了ULN2003驱动,如图3.10所示。215=TEPPEKKfOTORULN2003INI0UT1IN2OUT2IN3OUT3I

36、N4OUT4IN5OUT5INSOTJTSIN7OUT;CMDCOM15瓦14图3.1028BYJ-4步进电机电路28BYJ_4相关概念相数:产生不同对极N、S磁场的激磁线圈对数。常用m表示。拍数:完成一个磁场周期性变化所需脉冲数或导电状态用n表示,或指电机转过个齿距角所需脉冲数,以四相电机为例,有四相四拍运行方式即AB-BC-CD-DA-AB,四相八拍运行方式即A-AB-B-BC-C-CD-D-DA-A.步距角:对应一个脉冲信号,电机转子转过的角位移用0表示。0=360度(转子齿数J*运行拍数)。四拍运行时步距角为0=360度/(50*4)=1.8度(俗称整步),八拍运行时步距角为0=360

37、度/(50*8)=0.9度(俗称半步)。28BYJ_4驱动时序对应一个脉冲信号,步进电机28BYJ_48是四相五线制的,用四相四拍驱动,其驱动时序如表3.6所示:表3.6步进电机驱动时序表步序控制DC10020030141511610710800引位工作状态BA11AB10B10BC00C00CD00D01DA01A28BYJ_4特点1给步进脉冲就转,不给步进脉冲电机就不转;步2进脉冲频率高,步进电机转得快;步进脉冲频率低,步进电机转得慢改3变各相的通电方式(叫脉冲分配)可以改变步进电机的运行方式;改4变通电顺序,可以控制步进电机的正、反转。28BYJ_4驱动芯片ULN2003ULN2003是

38、个单片高电压、高电流的达林顿晶体管阵列集成电路。它是由7对NPN达林顿管组成的,它的高电压输出特性和阴极箝位二极管可以转换感应负载。ULN2003是一个7路反向器电路,即当输入端为高电平时ULN2003输出端为低电平,当输入端为低电平时ULN2003输出端为高电平,继电器得电吸合。单个达林顿对的集电极电流是500mA。达林顿管并联可以承受更大的电流。此电路主要应用于继电器驱动器,字锤驱动器,灯驱动器,显示驱动器(LED气体放电),线路驱动器和逻辑缓冲器。ULN2003的每对达林管都有一个2.7k欧姆的串联电阻,可以直接和TTL或5VCMOS装置。功能特点:高电压输出50V输出钳位二极管,输入兼

39、容各种类型的逻辑电路,应用继电器驱动器,500mA额定集电极电流(单个输出)。引脚说明:IN1IN7引(脚17):脉冲输入端;OUT1OUT7(引脚1016):脉冲输出端;GND(引脚8):电源地;COM(引脚9):电源正极。厲GUII15OUT2plJOUT313OUTJ口12OUT5iiourti10OUT1jCOMMONFREEUWHHHUNGUIOOIN11匚l-V22亡IN.13匚IN44匚I苦于右匚K6&匚IN77匚GND&匚图3.11ULN2003引脚图本系统中,P1.0接INI,P1.1接IN2,P1.3接IN3,P1.4接IN4。OUT1接步进电机28BYJ_48A(蓝色的线

40、),OUT2接接步进电机28BYJ_48B(粉色的线),OUT3接接步进电机28BYJ_48C(黄色的线),OUT1接接步进电机28BYJ_48D(橙色的线)。3.8红外接收电路3.8.1红外接收电路图红外线接收电路使用一个集成红外接收器,型号是HS0038,静态时输出端输出高电平,当接收到红外信号后,按红外信号的数据波形输出负脉冲数据信号。红外信号输出到单片机的P3.3,该对应的第二功能是外部中断1(INT1),利用该的第二功能,一旦红外线信号到来,P3.3被拉低,单片机中止当前的工作转移到接收、处理红HSW33:豈IbTrf3P33外信号,如图3.12所示。R11100图3.12红外接收电

41、路3.8.2红外接收探头HS0038红外接收探头,接收红外信号频率为38kHz,周期约26“s。红外接收头电路一体化的红外接收装置将遥控信号的接受、放大、检波、整形集一体,并且输出可以让单片机识别的TTL信号,这样大大简化了接收电路的复杂程度和电路的设计工作,方便使用。在本系统中我们采用红外一体化接收头HS0038,示意图如图3.13所示。HS0038黑色环氧树脂封装,不受日光、荧光灯等光源干扰,内附磁屏蔽,功耗低,灵敏度高。在用小功率发射管发射信号情况下,其接收距离可达35m。它能与TTL、COMS电路兼容。HS0038为直立侧面收光型。它接收红外信号频率为38kHz,周期约26us,同时能

42、对信号进行放大、检波、整形,得到TTL电平的编码信号。三个管脚分别是地、+5V电源、解调信号输出端。HS0038脉冲输出端2牡|3图3.13HSOO38引脚示意图3.9光控电路光控电路由光敏电阻LDR、滑动变阻器VR组成,利用单片机的P2.4完成对环境亮度的测试工作。VccP2.4光敏电fiR图3.14光控电路图3.10窗帘框架设计窗帘框架构造设计包括窗帘微动开关连接电路设计和窗帘架的制作与设计。本设计中的微动开关通过电容、电阻组成的复位电路与单片机的复位引脚相连,微动开关安装在窗帘滑杆上,当窗帘移动到预定位置时,触动微动开关,使单片机复位,此时电机停转,窗帘停到指定位置,如图3.15所示。图

43、3.15窗帘框架图4系统软件设计单片机电路只有软件和硬件都正确才能使电路达到预计的目标,因此,软件的编写也是相当重要的。本系统的软件编程部分的编写主要分为LCD1602显示程序、时钟芯片DS1302控制程序、时间调整和定时时间程序、步进电机控制程序、红外解码程序、数据存储程序、光控程序这七大类。LCD1602显示程序LCD1602的初始化过程LCD1602的初始化(复位)过程延肘15mS,写指令38H(不检测忙信号);2延时5mS,写指令38H(不检测忙信号);3延时5mS,写指令38H(不检测忙信号,以后每次写指令、读/写数据操作均需要检4则忙信号);5写指令38H:显示模式设置(即16*2

44、行显示,5*7点阵,8位数据);6写指令08H:显示关闭;7写指令01H:显示清屏;8写指令06H:整屏不移动,光标自动右移;9写指令OCH:开显示不显示光标;LCD1602的程序流程图图4.1LCD1602显示程序流程图DS130用寸钟芯片控制程序DS1302与微处理器进行数据交换时,首先由微处理器向电路发送命令字节,命令字节最高位MSB(D7)必须为逻辑0,如果D7=1,则禁止写DS1302,即写保护(0X00禁止写保护、0X80打开写保护);数据输入时,时钟的上升沿数据必须有效,数据的输出在时钟的下降沿。如果为低电平,那么所有的数据传送将被中止且1/0引脚变为高阻状态。上电时,在Vcc2

45、.5伏之前,必须为逻辑0。当把驱动至逻辑1状态时,SCLK必须为逻辑0。单字节数据输入跟随在写命令字节的8个SCLK周期之后,在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。图4.2DS1302卖写流程图时间调整和定时时间程序这里采用的是按键中断实现的,因为在编写程序时发现实时刷新时间函数和按键调整时间和定时有冲突。首先,按中断键key4,调中断(置标志位flag=),返回主函数后将执行时间定时和时间调整扫面程序。如果按key5键,

46、则进入定时开关窗帘程序;如果按key6,则进入调整时间函数。图4.3时间调整和定时时间程序步进电机控制程序4.4.1步进电机转动方式(一)要实现步进电机的转动,可以用以下两种方式:(1)8拍的方式八个状态:1在A与A-正电压,B与B-不给电悬空;在A与A-正电压,B与B-也给正电压;A与A-不给电压悬空,B与B-正电压;A与A-给负电压,B与B-给正电压;A与A-给负电压,B与B-不给悬空;A与A-给负电压,B与B-给负电压;A与A-不给电悬空,B与B-给负电压;A与给正电压,B与B-给负电压;按以上八个状态轮流供电,控制一下脉宽应该就可以了。四个引脚各一根控制线:AH表示各线时序ABCDEF

47、GHA11000001A-00011100B01110000B-000001114.4.2步进电机转动方式(二)4拍的方式:电流驱动。下面的&和匕表示反向电流。两相双二拍:ab-ab-ab-ab为一个转向。ab-ab-ab-ab为反向。ABCDA1001A-0110B1100B-00114.4.3步进电机控制程序流程图4.4图4.4步进电机程序流程图主函数步进电机按键扫描函数电机反转函数电机停止函数HS0038工外解码程序4.5.1红外编码波形说明这里采用的是6122型遥控器,载波波形使用455KHz晶体,经内部分频电路,信号被调制在37.91KHz,占空比为三分之一。数据格式包括了引导码、用

48、户码、数据码、数据反码,编码总共占32位。数据反码是数据码相反的编码,编码时可用对于数据的纠错,其红外波形图如图4.5所示。引导码由一个9ms的载波波形和4.5ms的关断时间构成,它作为随后发射的码的引导,这样当接收系统是由微处理器构成的时候,能更有效地处理码的接收与检测及其它各项控制之间的时序关系。编码采用脉冲位置调制方式(PPM)。每次8位的码被传送之后,它们的反码也被传送,减少了系统的误码率。用户码或者数据码中的每一位可以是“1”,也可以是“0”。区分“0”和“1”是利用脉冲的时间间隔来区分,这种编码方式称为脉冲位置调制方式,简称PPM。4.5.2红外解码说明图4.6、01波形图位0I:

49、0.56mssH1.125ms解码的关键是如何识别“0和”“1,”代码格式(以接收代码为准,接收代码与发射代码反向)。从位的定义我们可以发现“0、“1均以0.56ms的低电平开始,不同的是高电平的宽度不同,“0为0.56ms,“为1.68ms,所以必须根据高电平的宽度区别“0”和“1。如果从0.56ms低电平过后,开始延时,0.56ms以后,若读到的电平为低,说明该位为“0,反之则为“1,为了可靠起见,延时必须比0.56ms长些,但又不能超过1.12ms,否则如果该位为“0”读到的已是下一位的高电平,因此取(1.12ms+0.56ms)/2=0.84ms最为可靠,一般取0.84ms左右均可;根

50、据码的格式,应该等待9ms的起始码和4.5ms的结果码完成后才能读码。4.5.3红外解码流程图红外解码流程图4.7如下:图4.7红外解码流程图4.6数据存储程序AT24C02的1、2、3脚是三条地址线,用于确定芯片的硬件地址(实验板中直接接地只有一块器件);第8脚和第4脚分别为正、负电源。第5脚SDA为串行数据输入/输出,数据通过这条双向I2C总线串行传送,SDA和SCL都需要和正电源间各接一个5.1K的电阻上拉。第7脚为WP写保护端,接地时允许芯片执行一般的读写操作。接电源端时不允许对器件写。24C02中带有片内地址寄存器。每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储

51、单元的读写。所有字节均以单一操作方式读取。为降低总的写入时间,一次操作可写入多达8个字节的数据。AT24C02读写操作流程图4.8如下:写操作流程图4.8AT24C02卖写操作流程图4.7光控程序该子程序中,当有光照时,光敏电阻阻值小,单片机P2.4低电平;天黑后,光照太弱,光敏电阻增大至几十K欧姆,单片机P2.4端高电平,通过判断P2.4高低电平来实现自动控制。当由天黑变天亮时,执行开窗帘函数(即电机正转);当由白天进入夜晚时,执行关窗帘(即电机反转)函数。5总结这次毕业设计让我更加熟悉了从理论到实践的跨越,从当初的查阅图书,到现在的实物的成功实现,这中间有很多值得回味的地方。这次的设计,我

52、用到的软件主要有word、proteuskeiprotel99se虽然在系统开发过程中,好多知识都是随学随用,增加了很多不必要的麻烦,但是在不断的努力以及同学的帮助下,解决了大部分问题。下面就把程序调时时出现的问题简述下:1刚开始时按键设置时间函数与实时刷新时间函数有点冲突,按键按下后,时间刷新程序仍在运行,导致设置不了时间,后来通过中断置调时按键标志位为1进入调整时间函数死循环置退出;后面又发现定时程序与调时程序有冲突(调时程序会写DS1302,而定时不需要写),于是又加了个按键,结果发现进入中断后扫描程序太长,按键不太灵敏,而且两个键有影响,于是又把中断去掉,在主程序扫描置标志位,发现按键

53、太灵敏,就加了点延时;实物上电后,液晶老是闪烁,而且85和正确的时间数据交替显示,因在仿真时把SCLK和I/O接反出现85。于是检查接线,发现无误,又检查BCD码转十进制数子函数,也没问题,最后发现在读DS1302个字节时最后没有置IO=O,加上后显示正常;虽然很多错误被克服了,但是系统中难免还有很多不足之处,希望各位评委老师和同学给予指正与建议。我相信,只要肯钻研,只要挤时间,切自己想要的知识都可以掌握。参考文献01华成英,童诗白模拟电子技术基础M.(第四版)北京:高等教育出版社,2006.02长毅刚,彭喜元,彭宇单片机原理及应用M.第二版)北京:高等教育出版社,2010.03长家生电机原理

54、与拖动基础M.北京:北京邮电大学出版社,2006.04长靖武,周灵彬单片机系统的PROTEUS设计与仿真M.北京:电子工业出版社,2007.05STC89C52RC单片机中文资料.06ULN2003中文资料.07徐发荣.DS1302、HT1380时钟芯片与8031单片机的接技术国外电子原器件,1999.08王明顺,吴省可涓流充电的串行实时时钟芯片DS1302及其应用.电子技术应用,1996.09STC89C51RC/RD+系列单片机器件手册.10彭伟单片机C语言程序设计实训100例M,北京:电子工业出版社,2009.11覃韦玲利用单片机进行红外线编、解码遥控J/OL.电子世界,2002.12侯

55、勇,王泊林,顾燕.一体化红外线接收模块及其在红外秒表通讯中的应用.仪器仪表与装置2001.513阎石数字电子技术M.(第五版)北京:高等教育出版社,2005.14姚福安电子电路设计与实践M.济南:山东科学技术出版社,2001.15沙占友,王彦碰,孟志永等单片机外围电路设计北京:电子工业出版社,2003.16腾飞智能家居就在眼前J/OL中国计算机用户,2001.17稳压芯片7805中文资料.18集成红外接收器HS0038中文资料.19邓奕,马双宝,谢龙汉.Protel99原理图与PCB设计M,北京:人民邮电出本社,2011.20张敏敏,陈亮亮实用智能家居窗帘的设计J/OL科技视界,2012.附录

56、(一)原理图-|亠jar-f-CTaLS光控4lJ*JOT2廿am去.i|L*LJif-nIl23dF./tHjtall亍=.H4Ir:r13LAT2-4CG2T-TiTnvcea丁2AJWTSCImA?4J1Q斗VrrJJ1LvzVh=LXLCLK3C2IOGKD3LEBD2虻mpj=l=Fai-X7aL3sro2C2f5SZ-ED一豈怎ruDLDSmIMiawWEl?VOmK!j4K2百3K-iElTZFuiliraosDiLOOOufu&LQuIvc.e啊丁3331VDDJWKj4KLOCTIK2OlT2K3CCT3K4-CCT4-K=OlTJKSOlT药ourCXDC.O3J?.彳附录

57、(二)源程序#include#defineuintunsignedint#defineucharunsignedcharuchara,miao,shi,fen,ri,yue,nian,week=l,keyln,temp,runstate=O,flag,flsg4。otorflaguchardingmiao,dingshi,dingfen,dingri,dingyue,dingnian,dingweek,key2n,dingrunstate=0ucharcodetabD8=l,l,0,0,0,Q,0,lucharcodetabC8=0,l,l,l,0,0,0,0ucharcodetabB8=0,

58、0,0,l,l,o1,0,0ucharcodetabA8=0,0,0,0,0,J_,l,lucharcodetabDB8=l,0,0,0,0,Q,1,1ucharcodetabCB8=0,0,0,0,1,1,1,0ucharcodetabBB8=0,0,1,1,1,0,0,0ucharcodetabAB8=1,1,1,0,0,0,0,0bitlightte,mpsbitMA=P20。sbitMB=P21sbitMC=P22sbitMD=P23sbitlight=P27光控电路接口#defineyh0 x80/LCD第一行的初始位置,因为LCD1602字符地址首位D7恒定为1(100000000

59、=80)#defineer0 x80+0 x40/I第匸行初始位置(因为第二行第一个字符位置地址是0 x40)/液晶屏的与C51之间的引脚连接定义(显示数据线接C51的P0口)sbitrs=P2;5sbiten=P2。sbitrw=P2。/如果硬件上rw接地,就不用写这句和后面的rw=0了/DS1302时钟芯片与C51之间的引脚连接定义sbit10二P1。sbitSCLK=P5sbitRST=P7sbitACC0=ACC0osbitACC7=ACC7o/定义AT24C02引脚连接定义sbitscl=P1;0/AT24C02SCLsbitsda=P1。/AT24C02SDAsbitred=P3。

60、/HS003负脉冲接口sbitkey6=P3。正转按键sbitkey7=P3。停止按键/校时按键与C51的引脚连接定义sbitkey1=P1。/调整时间设置键sbitkey2=P3。加键sbitkey3=P3。减键sbitkey4=Pl。按键中断sbitkey5=P3。/时间定时键、步进电机反转按键/ucharcodetab1=20-。-/年/显示的固定字符ucharcodetab2=:。/:/时间显示的固定字符ucharcodetabrun二SRB/运行状态显示/延时函数*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*

温馨提示

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

评论

0/150

提交评论