版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ABSTRACT目录摘要 IABSTRACT II1绪论 11.1研究目的和意义 11.2窗帘的传统控制方式与传动结构 11.2.1窗帘的传统控制方式 11.2.1窗帘的传动结构 11.3智能窗帘国内外研究现状 31.4本设计的主要研究内容 41.5本设计的应用前景 42硬件方案选择 52.1硬件方案的选择 52.1.1主控芯片的选择 52.1.2显示器的选择 52.1.3时钟的选择 62.1.4电机驱动的选择 62.2系统的总体方案设计 73系统硬件电路设计 83.1STC89C52单片机系统设计 83.1.1单片机的概述 83.1.2STC89C52单片机最小系统 93.2显示电路的设计 113.2.1LCD1602的概述 113.2.2LCD1602的工作原理 113.3模数转化电路的设计 133.3.1ADC0832的概述 133.3.2ADC0832的工作原理 143.4时钟电路的设计 153.4.1DS1302的概述 153.4.2DS1302的工作原理 153.5按键电路的设计 173.6红外电路的设计 183.6.1HX1838的概述 183.6.2HX1838的工作原理 183.7电机驱动电路的设计 193.7.1步进电机的工作原理 193.7.2ULN2003的概述 204控制系统程序设计 214.1软件开发环境的介绍 214.2系统主要函数的介绍 214.2.1主函数的设计 214.2.2显示函数的设计 234.2.3时钟函数的设计 234.2.4模数转换函数的设计 244.2.5步进电机控制函数的设计 265仿真与调试 295.1仿真设计 295.2仿真步骤 295.3调试中出现的问题及解决办法 316总结与展望 336.1总结 336.2展望 33参考文献 35附录I 37附录II 571绪论1.1研究目的和意义随着社会的快速发展,信息化、自动化、智能化的不断更新与完善,机电传动与控制技术不但应用于工业生产中,在人类的实际生活中也有广泛的应用,智能家居的理念也被逐渐接受,人们对美好生活的向往的同时,对生活质量的要求也逐步提高。部分智能产品也走进了人们的生活。智能窗帘作为其中之一,被广泛运用于办公楼、教学楼、高层写字楼、图书馆、博物馆、体育馆、酒店、别墅、医院等,为人们提供了良好又舒适的生活环境。且其控制系统具有操作简单、成本低廉、运行平稳的特点,适合大面积的推广和使用。本设计主要解决窗帘的自动打开和自动关闭问题,通过单片机控制设计了三种模式——手动模式、光控模式、定时模式来实现窗帘的自动开合。当户外光线变强达到控制系统的设定值时窗帘自动打开,光线变暗时自动闭合。当时间位于定时区间时,自动打开窗帘,位于定时区间之外,自动关闭窗帘,这些自动化操作,能够为用户提供更舒适的生活环境和更方便的操作体验,给人们的日常生活带来极大的方便。1.2窗帘的传统控制方式与传动结构1.2.1窗帘的传统控制方式常见的普通窗帘,其主要工作原理是通过固定于墙体两端的一根罗马杆,将窗帘打上小孔穿在罗马杆上,通过拉动实现窗帘的开合,这种传统的控制方法操作方便但自动化程度低下,在面对别墅或复式房里面积大且厚重的窗帘来说非常不便。百叶窗帘与卷帘窗的基本原理相类似,其工作原理是通过拉动拉珠滚轮正反旋转带动卷管旋转,从而实现窗帘的上下开合,这种方式仍然为手动控制,一定程度上节省了人力,但面对金属材质的百叶窗帘仍然需要耗费很大的力,且智能化程度不高。1.2.1窗帘的传动结构生活中常见的几种窗帘类型包括:普通落地式窗帘、百叶窗帘和办公室常用的卷帘窗帘。普通落地式窗帘大多采用罗马杆或是滑轨与窗帘进行连接,通过对窗帘的左右拉动实现了窗帘的开合,如日本(Sunpathie)落地式卧室窗帘。如图1-1所示。百叶窗帘起源于中国古代,近代的百叶窗由约翰·汉普逊发明其整体由横条叶片通过两侧细绳串接而成,通过拉动拉珠滚轮,实现对窗帘的上下开合[1]。如图1-2所示。卷帘窗帘由卷管、面料、下杆、拉珠滚轮组成,也是通过拉动拉珠滚轮实现对窗帘的上下开合[2]。如图1-3所示。图1-1日本(Sunpathie)落地式卧室窗帘结构示意图图1-2中国(乐巢)百叶窗帘结构示意图图1-3中国(ELISE)卷帘窗帘结构示意图1.3智能窗帘国内外研究现状智能窗帘的雏形最早是源于电动窗帘的发明,电动窗帘是依靠电机的旋转带动安装在滑轨上的链条来实现窗帘的来回往复运动。其工作核心为电机。根据窗帘的运动方向电动窗帘的类型可分为:电动开合型(窗帘左右运动)、电动升降型(窗帘上下运动),在实际应用当中,电动窗帘的价格相对较高,但实用性强,性价比最高[3]。早在10年前,电动窗帘的概念已经传到国内,但是由于其代价昂贵,没有被及时的推广开,随着近几年国家对智能制造的重视、电控技术的不断提高、相关产品价格的降低,电动窗帘又回到了人们的视野当中。但是电动窗帘仍然采用的是电动遥控轨道技术,而提供此项技术的多是集中在我国的东南部生产能力极为发达的地方,无法面向更多的地方普及开来,因此造价相比普通的窗帘要昂贵很多。国内智能化理念起步较晚,现在的经验以及技术无法满足目前国内市场的需求,因此现在国内也仅有一小部分消费者能够走在技术的前沿。国外的智能家居发展较早且非常迅速。从1995年起以美国,新加披为代表的智能强国,到随后的德国和日本都有着老道的经验与技术。其中美国更是在20年前就开始大量广泛使用电动窗帘,如今很多欧美国家开始使用智能窗帘,能实现语音操作,其智能化程度比电动窗帘更高。在世界上第一幢智能建筑于1984年在美国出现以后,美洲、欧洲、澳洲等许多地区开始重视智能制造。1998年在新加坡举办的“98亚洲家庭电器与电子消费品国际博览会”上,通过在现场演示模拟“未来之家”全新的智能化家居理念,被亚洲国家所熟知[4]。由于欧美国家智能化发展早,所生产的智能窗帘智能化程度高,能够根据外界光线的强度自动调节窗帘的开合度,另外还可以通过声控、时控、语音识别来进行窗帘的开关。其精细化程度高、功能强大、抗干扰性强、灵敏度高、集红外遥控控制、时间控制、手动控制于一体,实现了产品的智能化操作,提高了操作体验,延长了窗帘的寿命。甚至,美国最新研究出纳米级感光材料,将其用于窗户的制作可实现“无窗帘化”,同时还可以起到保护隐私的作用[5-8]。截止目前为止,国内的智能窗帘尚且仅发展到能够实现语音识别,自动感光,自动开合。但由于缺乏技术经验,成本代价昂贵,不能被广泛使用。1.4本设计的主要研究内容本设计主要研究内容是通过设计合理的电路和程序,再通过硬件模块将外部的环境采集信息通过传感器处理之后将信息发送给单片机从而判断窗帘是否打开或者关闭。本设计采取三种控制模式,第一种是通过光照强度来控制:采用光照强度传感器,将外界光强度采集以后通过A/D转化芯片将物理量转化成数字量与预设值进行比对,进而控制窗帘的开合。第二种是定时模式:通过时钟电路,设定一个时间区间,当时钟时间处于设定时间区间时,进行窗帘的打开或关闭。第三种是手动模式,通过红外遥控器或是单片机上的按钮进行人为控制窗帘的开合。通过电动机的步进动作达到对窗帘打的开启或关闭的目的。1.5本设计的应用前景本课题是基于单片的控制系统设计,由于单片机价格低廉,使得光感应式自动窗帘能够以较低的价格走向千家万户。虽然产品相对于国外成熟的产品来说还是有不足之处,但是在“智能制造”这个大环境下本课题的研究具有现实意义与市场价值。
2硬件方案选择2.1硬件方案的选择在硬件电路搭建之前必须选择合适的用电器、芯片以及各模块之间所使用的电器元件,从而发挥出模块之间的最高性能,以达到能耗低,性能高的特点。2.1.1主控芯片的选型方案一:采用STC89C52作为主控制芯片。该芯片具有低能耗、高性能的特点,其中P3口除了普通的I/O端以外,还具有复用功能包括串行输入输出,外部中断、计时等。并且芯片自带四个外部中断,三个16位的定时器/计数器,STC89C52单片机具有开发操作简单、能够在线编程、价格低廉的优点,因此作为本设计的控制芯片是非常不错的选择。方案二:采用MSP430,MSP430系列单片机具有处理能力强、能耗消耗极低等特点,采用最精简的指令集结构,具有独特的寻址方式、芯片采用简洁的27条指令方便对内核进行操作。这些特点使得该系列的单片机具有高效率的编程。但是MSP430系列的单片机缺点在于一些相应的功能只在特点的型号单片机中才带有,并不兼容该系列的所有型号,功能齐全的单片机价格昂贵,不适用于本设计这种低成本的开发。2.1.2显示器的选型方案一:采用数码管进行显示[9]。本设计需要显示时间、日期以及光照强度,因此显示内容比较多,若采用LED数码管进行显示,每个数码管只能够显示一个数字或字符所以要想实现大量显示需要外加更多的数码管,这样会给后期的焊接工作带来不便,同时众多数码管一起工作时会造成电压降,这会使得数码管的显示不能达到一个理想的效果。因此需要外加驱动电路,通过驱动电路对电流进行放大处理之后再控制数码管显示,LED数码管的价格相对比较合适,但是后续的驱动电路、引脚的占用量也比较大,因此会给后续的工作带来很多麻烦,加大工作量,所以本设计不采用LED数码管。方案二:采用LCD1602液晶显示屏。该类型的液晶显示器具有一次可以显示多位字符、数字的功能。体积小,性价比高,而且自带清晰度调节功能,可以很好地将想要显示的内容显示在显示屏上。控制简单,虽价格相对其他显示器较高,但是非常适用于本设计。2.1.3时钟的选择方案一:通常单片机中都会自带定时计数器,但如果单片机在工作过程中突然断电,定时计数器中的数据会被清空而不能够继续计时,另一方面定时计数器进行计时在短时间内精准度可以保证,但是长时间进行计时,产生的误差也会被放大导致计时的不精确。虽然采用自带的定时计数器,可以节省设计成本,但是,如果系统掉电就无法继续正常工作。且本设计对时间精度要求较高所以不采用内部计时器计时。方案二:采用DS1302时钟芯片实现时钟,DS1302可以对年份、时间和日期进行计时是一种性价比高、能耗消耗较低的一种自带RAM的实时时钟电路,这种芯片还能够自动判断闰年和平年,在闰年的2月份能够自动对天数进行补偿作用。DS1302的工作电压为2.5V~5.5V。与单片机进行通信的端口为I/O、RST、SCLK,DS1302内部还有一个128字节的RAM存储器。主要特点是采用串行数据传输,可减少数据线的使用,节约通信成本,而且多位数据的一次性传输大大提高传输效率。定时芯片采用32.768KHZ晶振作为标准时钟[10]。本设计决定采用DS1302芯片作为时钟电路的芯片选择。2.1.4电机驱动的选择方案一:L298是一种可改变电机正反转及调速的驱动芯片。具有启动性能好、转矩大的特点,该芯片内部采用双H桥电路,每个H桥可以为芯片提供2A的电流,L298的主要特点是:工作电压高,最高可以达到48V。输出电流最高可达3A,该驱动模块在持续进行工作时工作电流一般控制在2A左右。在通常情况下该驱动用于直流电机,而本设计采用的步进电机,控制精度高,所以不采用L298驱动作为步进电机的驱动器选择。方案二:ULN2003芯片作为常用的驱动,具有体积小并发性高的特点,利用它能够抗高抗高电流的特性压通常用来驱动继电器或者步进电机,因此本设计的驱动采用ULN2003。2.2系统的总体方案设计最终选择:采用STC9C52系列单片机作为主控制芯片、采用LCD1602作为显示器进行显示,采用DS1302芯片来获取当前时间以及完成计时功能,通过检测光敏电阻两端的电压大小(模拟量)输送给ADC0832芯片继而转换成数字信息(数字量)然后交由单片机在显示屏上显示出环境光强,使用ULN2003驱动对步进电机的工作电流进行放大,设计四个金属按键对工作模式、定时时间、光强上下限值等进行设定,同时配备红外遥控器自定义四个按钮,功能同金属按键可以进行远程对窗帘的开合进行控制。同时在窗帘的左右极限位置安装两个限位开关防止电机在运转到闭合或打开状态以后继续转动而造成电机的卡死和窗帘的损坏,系统方案如图2-1所示。图2-1系统方案3系统硬件电路设计本章主要介绍了系统各电器模块的工作原理和设计过程,了解系统功能设计要求及功能的实现方法。3.1单片机系统设计3.1.1单片机的概述STC89C52是一种低能耗、高性能的微型控制芯片,当程序容量较大时需采用外部接入片外的存储器,并且该单片机可直接使用串口进行下载,其工作电压在3.3V~5.5V之间,工作频率在0~40MHZ,实际工作频率可达48MHZ,通用的输入输出端口具有32个,其中P0口作为漏极开路输出,当作为数据或者地址总线时不需要接入上拉电阻,作为输入输出使用时,为保证输入高、低电平的准确性就需要接入上拉电阻[10]。STC89C52芯片引脚图如图3-1所示,各个管脚的引脚介绍见表3-1。图3-1STC89C52芯片引脚图表3-1STC89C52单片机各引脚介绍引脚说明引脚说明VCC芯片电源(+5v)ALE/PROG地址锁存允许/片内EPROM编程脉冲VSS接地端ALE用来锁存P0口送出的低8位地址XTAL1晶体振荡电路反相输入端PROG输入编程脉冲XTAL2晶体振荡电路反相输出端PSEN外ROM读选通信号P0I/O口线RST复位信号输入端P1I/O口线EA/VPP内外ROM选择/片内EPROM编程电源P2I/O口线RXD、串口输入端P3I/O口线TXD串口输出端WR片外数据存储器写选通信号输出端WD片外数据存储器读选通信号输出端3.1.2STC89C52单片机最小系统单片机最小系统是指电源、晶振电路、复位电路三部分组成能够让单片机进行工作的最简单的电路。电源能够为电子产品提供能电能消耗,使电子产品能够正常工作,STC89C52系列的单片机工作电压在4.5V~5.5V,本设计这里采用USB线连接移动电源对单片机进行供电,另外为了保证定时计数器的计时准确,使用了3V的纽扣电池单独为DS1302芯片进行供电。其次,晶振电路是为单片机提供工作信号脉冲的外部电路,XTAL1和XTAL2是独立输入输出反相放大器,与XTAL1、XTAL2的引脚串联一个12MHz的石英晶振,与接地端之间再并联两个30PF大小的陶瓷电容,陶瓷电容的大小可以对脉冲频率起到一定的调节作用。本设计使用两个30PF的瓷片电容。晶振电路如图3-2所示。图3-2晶振电路复位电路的作用相当于是对单片机进行初始化的过程,在单片机上电瞬间保持CPU处于一个复位状态,短暂的延迟之后在进行工作,防止在系统刚上电就工作,此过程中CPU容易混乱发出错误指令。在单片机接通电源瞬间,由于电容元件自身的性能特点,两端的电压不能突然改变,此时RST端与电容的负极接通,所有的电压都加在电阻R1两端,RST的输入电压为高电平,芯片被复位。随后电容相当于充电状态,电阻上的电压逐渐减小,最后减小为0,芯片正常工作。复位电路如图3-3所示。图3-3复位电路由电源、晶振电路、复位电路组成的单片机能够正常工作的最小系统如图3-4所示。图3-4单片机最小系统3.2显示电路的设计3.2.1LCD1602的概述LCD1602液晶是一种专门用来显示数字、字母的液晶显示器。它可以显示32个5×7点阵字符,显示方式分上下两行,每一行可以显示16个字符,每行每列之间都有一个空位的间隔,正因如此它能很好的显示时间和日期。并且LCD1602液晶显示器提供了清屏、字符闪烁、光标闪烁、字符位移等命令,内建含有197个字符字库包含了大多数能够使用到的字符,还提供了8个用户可自定义编辑的字符,方便后续的设计。实物图如图3-5所示。图3-5液晶显示器3.2.2LCD1602的工作原理通过程序编写,单片机发送读写操作指令到液晶显示器上就可以显示出一些预期想显示在屏幕上的内容,LCD1602带有自己的字符库,可以查阅LCD1602使用手册查找相应的字库表,当需要调用里面的字符时,只需进行查表就可以找到相应字符的编码然后直接使用即可,若想自定义字符可以写入CGROM中然后再调用,但LCD1602只提供了8个自定义字符。LCD1602的引脚电平如表3-2所示。表3-2LCD1602操作指令对应的引脚电平序号指令RSR/WD7D6D5D4D3D2D1D01清屏00000000012光标归位000000001*3输入模式设置00000001I/DS4显示与不显示设置0000001DCB5光标或屏幕内容位移选择000001S/CR/L**6功能设置00001DLNF**7CGRAM地址设置0001CGRAM地址8DDRAM地址设置01DDRAM地址9读忙标志和计数器地址设置01BF计数器地址10写DDRAM或CGRAM10要写的数据11读DDRAM或CGRAM11读出的数据在使用LCD1602液晶显示器时将D0~D7连接到单片机的P0.0~P0.7端口上方便进行数据的传输,VSS口接地,VDD口接一个滑动变阻器,其目的是通过改变滑动变阻器的阻值大小来控制液晶显示器的清晰度,所以通常不采用固定阻值的电阻。显示电路如图3-6所示。图3-6显示电路3.3模数转化电路的设计3.3.1ADC0832的概述ADC0832是一款常用的A/D转化芯片。它具有体积小,能耗小,性价比高、双向通道特点,不仅如此它的数模转化效率非常高,转化时间仅仅只需要32μs,而且具有双数据输出的特点,输入和输出与TTL/COMS相兼容,能够极大的降低数据误差。ADC0832芯片示意图如图3-5所示。图3-5芯片示意图3.3.2ADC0832的工作原理模数芯片有6个端口其中CS端被置为高电平时,表示芯片被禁用,此时芯片不工作,当CS端的电平被拉低,处于低电平状态时,芯片开始工作。因此CS相当于一个开关控制芯片的工作状态。当要进行模拟量向数字量进行转换时,首先将CS端的电源信号置为低电平,同时由处理器向芯片的时钟端输入时钟脉冲,数据信号的输入输出端输入选择通道信号,在第一个时钟脉冲的下沉之前数据信号输入端必须保证处于一个高电平状态这时表示开始。本设计主要是用到CH0端,当外界光照照到光敏电阻上,使电阻值发生变化,电阻两端的电压也就发生变化,当CH0口在满量程时出入的电压值为5V,对应256位,当阻值发生变化即输入为CH0通过等量关系就可以计算出此时对应的二进制位,从而将数据位发送给单片机就可以显示出所对应的光照强度值[10-13]。ADC0832的CLK端口接入单片机P2.6口,DI与DO并联后接入单片机P2.7口,CH0端外接光感传感器并联一个10K电阻。模数转化电路如图3-6所示。图3-6模数转化电路3.4时钟电路的设计3.4.1DS1302的概述1302芯片是一种设计定时电路普遍使用的时钟芯片,工作电压为2.5V~5.5V。采用该芯片的计时具有良好的精度,同时避免了使用单片机内部的计时器,为单片机减小了负担。时钟芯片含有实时时钟、日历。与单片之间采用三线同步串行方式进行同步通信。芯片内部自带一个31×8数据存储器,用来暂时存储数据。时钟芯片示意图如图3-7所示。图3-7时钟芯片3.4.2DS1302的工作原理DS1302中VCC1为外部电源,为了保证计时器不断电且持续工作通常,会接入一个5V的纽扣电池为芯片提供稳定的电压,其中VCC2为主电源,在主电源断电的情况下,VCC1工作。当VCC2的电压比VCC1高时,VCC2为芯片提供输入电压。X1和X2是两个振荡源,外部接入32.768kHz的晶振。在芯片进行工作之前需要进行初始化处理,将RST置为高电平状态,启动数据传输。时钟脉冲在单字节的情况下为8个地址位加8个数据位的形式进行传输,而在多字节的情况下为8个地址位加若干个数据位的形式进行传输。DS1302芯片在进行定时时,会将所定时间、系统时间转化成数字量,然后通过对比定时时间与系统时间是否相等做出判断。单字节操作时序如图3-8所示。图3-8单字节操作时序图在使用DS1302芯片时将RST、SCLK、I/O分别与单片机的P3.5、P3.4、P3.3端口相连接,使能端通常接入5V的电压,X1与X2外接一个3.2768MHZ的晶振,时钟电路如图3-9所示。图3-9时钟电路3.5按键电路的设计该系统设计了4个金属按键,通过对按键进行操作来完成一些相关的功能实现,因为单片机在上电状态下每个管脚的电平都是处于高电平状态,因此当有按键被按下时,该管脚的电平会被拉低,所以只需要检测管脚此时是处于低电平状态或是高电平状态,就可以判断出按键是否被按下,但由于按键的闭合部分是金属材质,在闭合时,单片机会检测出电平抖动的现象,因此在此处需添加延时子程序,避免电平抖动的干扰。按键电路如图3-10所示。图3-10按键电路其中设计的四个独立金属按键具体功能为:第一个是设置键它的功能是在按键按下以后就进入当前模式下相关设定,如在手动模式下按下设置键,就会进入时间、日期的设定,在光控模式下按下设置键,就会进入光强度的设定,在定时模式下按下设置键,就会进行定时时间的设定。第二个是加值键它的功能分为两种,当前如果是在进行设定,那么按下加值键,当前的参数就会进行加一,如果当前在手动模式下,按下加值键,电机就会进行正转。第三个减值键,原理同减值键一样。第四个是确定键它的功能是,在设置完成之后按下确定键,就会保存当前数据到寄存器中,并退出设置。如果当前在初始化界面,在确定键按下时,就会进行模式切换。3.6红外电路的设计3.6.1HX1838的概述HX1838是一个集成了红外二极管、放大器、振幅器、比较器、积分电路、解调电路等的一个小型集成电路,在日常生活当中经常会使用到,在工作中作为接收端使用,把接收到的脉冲信号反馈给单片机再根据反馈的脉冲信号做出响应的指令操作。红外接收头如图3-11所示。图3-11红外接收头3.6.2HX1838的工作原理红外遥控电路的设计主要是利用红外遥控器每按下一次,对应的红外接收头就会收到一帧的数据信号,红外接收头接收到的一帧数据信号是一个由32位数据组成的数据信息,包括引导码、用户码、数据码以及数据反码组成。其中引导码由9ms的高电平和4.5ms的低电平组成,其目的可以提高红外接收的灵敏度,客户码包含了产品配套的信息,数据码和数据反码可以用来检测是否接受数据。NEC标准发射码如图3-12所示。图3-12NEC标准发射码这些数据的传输都是采用脉冲时间间隔来表示0、1这种编码方式被称作为脉冲位置调制方式,简写PPM。位1的脉冲形式如图3-13所示,位0的脉冲形式如图3-14所示。图3-13位1脉冲形式图3-14位0脉冲形式当接收到0.56ms的低电平+1.69ms高电平=2.25ms时表示数据1,当接收到0.56ms的低电平+0.565ms高电平=1.125ms时表示数据0。3.7电机驱动电路的设计3.7.1步进电机的工作原理步进电机是将脉冲信号转化成一定步距角、控制精度较高的电机。即通过CPU给电机发送时钟脉冲信号,来控制电机转过一定的角度,通过不断的发送脉冲电机就会进行转动,从而达到电机旋转的目的,电机的转速可以在发送完一个脉冲信号之后添加一个延时程序,在延时之后再发送同样的脉冲信号,这样就可以起到调速的目的[15]。3.7.2ULN2003的概述ULN2003是一种高耐压、大电流复合晶体管阵列,它的主要作用是作为一个驱动器使用,本设计中用它作为步进电机的驱动器。电机驱动电路如图3-15所示。图3-15电机驱动电路
4控制系统程序设计4.1软件开发环境的介绍本设计使用Keil5软件。Keil5支持C语言与汇编语言两种编程方式,且后续可生成.hex文件方便仿真。4.2系统主要函数的介绍4.2.1主函数的设计在主函数的设计过程中,首先读取了存储在寄存器中的内容,接着对LCD1602与红外接收器进行初始化处理,以防止在程序运行过程中出现错误。然后对按键进行检测并且判断是否对按键操作做出响应,若做出响应则调用响应的显示函数在显示屏显示出来,若果没有响应则继续执行下一步操作,判断是否设置日期、是否定时、是否设置光照强度,再执行相应的响应操作即可,如果都没有响应,则返回,重新开始检测按键。函数控制流程图如下图4-1所示。图4-1主函数控制流程图4.2.2显示函数的设计显示函数的设计思路是:首先要实现具体的功能,获取当前时间是很有必要的,因此第一步需先获取系统的当前时间并且在LCD1602显示屏上显示出来,接着显示由ADC0832传递过来的光照强度与当前选择的模式。如果当前处于光控模式,下一步进行判断光照强度是否处于设置的光照强度上下限值区间,如果处于则标记打开、电机进行正转。如果不处于该区间则标记关闭,此时电机反转。如果当前处于定时模式下,则进行判断当前时间是否处于定时区间,若处于该区间,则标记打开,电机正转,如果不处于该区间,则标记关闭,电机反转。显示函数控制流程图如图4-2所示。图4-2显示函数控制流程图4.2.3时钟函数的设计时钟函数的设计:结合DS1302的工作原理特点,首先设置变量i=8,按位一位一位的获取前8位的地址信息,然后接着用同样的方式获取到数据信息,并经过处理转化成单片机可识别的16进制机器码,后续通过再转化为10进制数在显示屏上显示出来。具体DS1302读时函数流程图如4-3所示。图4-3时钟函数控制流程图4.2.4模数转换函数的设计ADC0832是一种8位分辨率的转换芯片,转换效率非常高。单片机控制ADC0832进行采集电压首先需要发送一个初始化信号,然后选择合适的通道,选择完通道后单片机发送下降沿开始读数据,数据是一位一位的串行传输并且高位在前,低位在后,直到将八位数据都采集完毕后将采集到的数据返回。具体流程图如图4-4所示。图4-4模数转换函数控制流程图4.2.5步进电机控制函数的设计步进电机的控制采用四相八拍的方式,单片机每发送一个脉冲信号电机理论旋转5.625°但是28BYJ48该型号的步进电机内部自带1:64的减速比,所以要想实现电机旋转一圈需要单片机发送64×64次脉冲信号。而且电机旋转的快慢取决于发送脉冲信号的频率,因此可以在每两次的脉冲之间添加延时子程序来调节电机的转速。步进电机正转流程图如图4-5所示,反转如图4-6所示。图4-5步进电机正转函数控制流程图图4-6步进电机反转函数控制流程图
5仿真与调试5.1仿真设计在仿真部分选择使用Proteus软件进行,Proteus是一个常用的EAD工具软件,其自己带电气原理分布图、PCB自动布线功能,且可以在Keil生成可编译文件之后可以仿真烧写到仿真芯片中来检测程序与仿真原理图的正确性,非常的方便。这里只用到其电器原理仿真,所以就不做过多的介绍。其中因为使用的是Proteus8.6版本进行原理图的绘制以及仿真,所以该版本中没有STC89C52系列的单片机,因此采用的是AT89C52系列的单片机,两者在功能上并没有较大差异,只是在管脚的分布上有所区别,因此选择了使用AT89C52来代替STC89C52进行仿真。5.2仿真步骤第一步:使用Keil编写好程序,如图5-1。图5-1
第二步:生成.hex后缀的文件保存在桌面上,如图5-2。图5-2第三步:打开Proteus调出仿真图,如图5-3。图5-3
第四步:双击AT89C52芯片,烧写.hex文件到单片机中,如图5-4。图5-4第五步:操作按键,检测程序是否正常运行如图5-5。图5-5第六步:进行多次测试,确保程序与仿真图的正确性。结束仿真。5.3调试中出现的问题及解决办法在本次设计过程中出现的问题:(1)在初次进行程序仿真的时候发现显示屏不亮,但是I/O口有正常的电平变化。解决方法:在查阅了LCD1602的使用手册之后发现,其中VL端是可变电阻,可以通过改变阻值的大小来调节显示屏的清晰度,在设计电路时为了保护显示屏不被烧坏,默认阻值在最大位置,因此在进行仿真时,显示屏上并没有内容显示,在调节了VL阻值大小以后,就可以清楚的看见显示屏上的内容了。(2)步进电机不会转动。解决方法:在给老师看了程序之后,发现电机不会转动的原因是因为在两次脉冲的频率过大导致的,在尝试调小之后发现步进电机依然无法正常转动,又进行了尝试调高脉冲频率,最终寻找到了合适的脉冲频率使得电机正常转动。
6总结与展望6.1总结本篇文章设计了一种可以通过手动模式、定时模式、光控模式来自行调节窗帘的打开与关闭的智能窗帘控制系统。(1)研究初期,阅读了大量关于窗帘的控制系统设计的文献,一定程度上了解了目前智能窗帘所处状况,以及当前控制系统的特性,并总结提出了本设计的系统设计方案。(2)对智能窗帘控制系统的硬件电路进行了设计,使用了STC89C52系列的单片机作为主控制芯片,使用LCD1602显示模块、DS1302时钟模块、ADC0832数模转化模块、ULN2003电机驱动模块、HX1838红外接收模块等。通过对这一系列的模块进行学习、修改、整合最终完成了硬件电路的设计。(3)通过使用Proteus、AltiumDes
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 全身麻醉患者的免疫系统护理
- 上市公司吸收合并模式探讨
- 藻类研究职业规划教案
- 餐厨垃圾处理工操作技能考核试卷含答案
- 工艺扎染工复试模拟考核试卷含答案
- 2026年借贷合同和股权转让合同(1篇)
- 无方向信标、指点标机务员安全宣教考核试卷含答案
- 护林员诚信水平考核试卷含答案
- 大学生宿舍职业规划模板
- 硝酸钾安全操作规程
- 《股票交易技术分析》课件
- 创意速写课件
- 小升初典型奥数:握手问题(讲义)-2023-2024学年六年级下册数学人教版
- 药理学练习及标准答案-人卫版
- 国家义务教育质量监测现场应急预案
- 招标代理服务服务方案
- 路灯照明维修技巧培训课件
- 马克39cd机使用说明书
- 营养专科护士理论考核试题及答案
- 20《金字塔》一等奖创新教学设计-1
- 笔试考试:HSK笔试(一级)真题模拟汇编(共261题)
评论
0/150
提交评论