Word版可编辑-基于单片机的自动窗帘设计精心整理.doc_第1页
Word版可编辑-基于单片机的自动窗帘设计精心整理.doc_第2页
Word版可编辑-基于单片机的自动窗帘设计精心整理.doc_第3页
Word版可编辑-基于单片机的自动窗帘设计精心整理.doc_第4页
Word版可编辑-基于单片机的自动窗帘设计精心整理.doc_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

目 录中文摘要I英文摘要II1 绪论11.1 课题背景11.2 国内外概况11.3 课题的研究工作22 系统总体方案设计42.1 系统总体硬件方案42.2 系统总体软件方案52.3 单片机编程语言52.4系统软件编译器WAVE介绍53 系统硬件方案设计73.1 STC15F408AD单片机73.2 按键模块设计93.3 LED数码管103.4 驱动电路设计113.5 三极管123.6 光敏电阻13 3.7 自动窗帘控制系统的制作及工作原理介绍134 系统软件方案设计154.1 概述154.2 主程序设计154.3 显示程序的设计164.4 按键模块程序设计174.5 传感器模块程序设计184.6 控制模块程序设计185 电路板制作196 系统调试206.1硬件电路部分的调试206.2软件部分的调试216.3 调试结果22总 结23致 谢26参考文献27附录1 电路原理图28附录2 元器件清单29附录3 主要程序代码30基于单片机的自动窗帘控制摘 要自动控制属于电子及信息科学的一个重要分支,并且在现代家居中有着较好的目前发展前景。目前,家庭居住环境的采光及避光问题主要采用的是手动开闭窗帘,手动开闭不仅费力而且很多方面不够人性化,可能对用户造成一定的困扰,窗帘控制系统可以解决这些问题。本文综述了自动窗帘控制系统的设计与制作过程,介绍了设计制作一个完整的窗帘控制系统需要做的理论分析以及其制作过程。自动窗帘控制系统核心采用的是单片机STC15F408AD其次利用了光照传感器信号调理电路等外围电路,整个系统在各模块的配合下可实现半自动控制、自动控制、定时控制等功能。该设计在理论层面上,用程序语言驱动各模块工作,实现系统的内在联系,在应用层面上则采用Protel软件进行原理图设计。自动窗帘控制系统的构成主要由光照传感电路、系统主控模块电路、电源转换电路、电机控制电路、键盘以及显示电路等组成,重点讨论了窗帘自动控制系统的设计过程、硬件选用和软件调试等问题,通过本系统可实现利用光照强度以及设置时间来控制窗帘自动开闭。关键字:单片机;自动控制;STC15F408AD;ProtelII基于单片机的自动窗帘控制 BASSED ON SINGLE CHIP AUTOMATIC CURTAIN CONTROLAbstractAutomatic control belongs to an important branch of electronics and information science , and has good prospects for development in the current modern home . Currently , light and dark family living environment problem is mainly used to manually open and close the curtains , manually opening and closing a lot of respect not only laborious but not human , it may cause some problems for users, curtain control system can solve these problems. This paper reviews the design and production process control system for automatic curtains , introduces the theoretical analysis to design a complete curtain control systems need to do as well as its production process. Automatic curtain control system core uses a microcontroller STC15F408AD.Second, the use of a light sensor , keyboard and display interface circuit and signal conditioning circuitry and other peripheral circuits ,automatic control, timing control. The design at the theoretical level , the programming language used to drive each module to achieve inner link system at the application level, then using Protel software for schematic design . Constitute automatic curtain control system mainly consists of light sensing circuit , system control module circuit , power conversion circuits , motor control circuit, keyboard and display circuits and other components , focusing on the design process curtain automatic control system , hardware selection and software debugging other issues, can be achieved through the use of this system to the light intensity Keywords:microcontroller;Auto Control;STC15F408AD;ProtelI1 绪论1.1 课题背景生活在提高,时代在进步,人类在向文明迈进,不同的时代对居住空间、环境有不同的要求,这是社会的必然潮流。自动窗帘单片机控制可以省去不少的人为操心,开拉窗帘的繁琐控制而且还体现出一种生活品味。自动控制系统中含有根据光照的强烈程度进行控制的单元,它能将控制更智能化,体现出跟多的现代信息,进行亮度的自动调节将使人们更方便的适应各种环境,让人们时时刻刻感受到科技带来的进步。因此本产品有大规模生产的必要性,量产的这种产品将有非常大的实用性。也很快会普及普通家庭。同时还能引用于酒店、宾馆、学校等一些公共设施中。遥控自动窗帘系统在我国还刚刚兴起,但其发展前景广阔,推广和应用自动窗帘系统具有重要的现实意义。其一,改变人们的生活方式。单片机控制的遥控自动窗帘系统具有丰富的智能化功能,为家庭用户营造一个高效、舒适、便利、环保的居住环境。单片机控制的遥控自动窗帘只用一个多功能遥控器就能控制和监测住房的窗帘开关问题,给人们日上生活带来极大的方便。这些都将改变人们传统的生活方式,并提高了人们的生活质量。其二,牵动一大批产业。单片机控制的遥控自动窗帘产品面向家庭用户,其应用市场是庞大的,发展前景也是广阔的,必将吸引大批有远见的各类企业介入,从而牵动一大批产业的发展。这里最先受益的应该是房地产业,单片机控制的遥控自动窗帘不仅是一个很好的概念与“卖点”,同时也是直接提升住宅档次的一个条件,这将会给房地产商带来新的利润空间。在家居集成化、网络化的趋势下,家居集成也成为一种潮流,许多更专业的、美观的、智能化的家居集成产品相继出现。其三,开拓一个崭新的市场。遥控自动窗帘系统牵动了许多的行业,它将不仅仅是目前的IT系统集成商或建筑弱电工程总包商的市场,而且是专业公司和智能化装饰公司的市场。1.2 国内外概况在欧美等发达国家,电动窗帘已广泛应用。在10年前,电动窗帘就已经进入我国,可一直没有大的推广,这两年,随着电控技术的不断提高及价格的不断下降,电动窗帘热才又卷土重来。据了解,全国共有170多种电动窗帘器获得了国家专利,但就其技术本身而言,还是大同小异,但售价却有很大差别,贵的要数千元,便宜的只要500块。尽管遥控自动窗帘系统在国内是一个新兴的行业,可是他的成长迅速,发展巨快。自动窗帘引进中国,在很短的时间里它的功能多样化,控制人性化应经越来越被人们接受,并有望超过国外。在中国生产自动窗帘的厂商很多,这个行业在中国的发展历程和其他的公司是完全不同的。也是其他公司无法比拟的。中国现在生产自动窗帘的公司很多比如:深圳市正星特科技有限公司就是做的很不错的。自动窗帘产品已开始走进中国的家庭。具报道,我国2004年售出商品房1.9亿m,如果每20 m需要一套窗帘架产品,仅此一项就可以年新增窗帘架产品近千万套加上。年新增窗帘架产品市场需求将不低于2000万套。如果单片机控制的遥控自动窗帘,销售占市场的5%左右,就可实现年产值上亿元。随着自动窗帘热潮在世界范围内的日渐兴起,随着中国电子技术的飞速发展、人们生活水平的不断提高以及智能电子技术在生活中的广泛应用,自动窗帘已经成为未来家居装饰潮流发展的最新方向,在不久的将来,没有自动窗帘系统的住宅肯定不合潮流。从目前的发展趋势来看,在未来的20年时间里,自动窗帘行业将成为中国的主流行业之一,其市场的发展前景是非常广阔的。1.3 课题的研究工作智能家居系统是一个大的社会系统工程,我们应当加快我国智能家居标准化进程。自动窗帘系统作为智能家居中一个很重要的部分,需要在我国智能家居这一领域,建立起一个具有中国特色的新兴、健康的产业链。让自动窗帘系统在我国并不是远在天边,而是近在眼前。现有的电动窗帘机的控制方式有固定式开关控制、遥控、光控、声控等,其中以前两种形式居多。就实用程度和经济角度来说,用固定式开关控制方式较好,这是因为窗帘的开闭不像电视机等家电产品开闭得那样频繁,每天开闭的次数不多,因此安装在固定的地方使用也相当方便,如把开关装在床头柜等电器综合控制系统中,睡在床上就能控制窗帘的开闭。利用触摸开关,实现全自动断电,既安全又节能,但最重要的一点就是没有实现完全的自动化,没的摆脱对人的依赖作用。而采用遥控控制时,需要候机电源,不可能完全断电而且增加遥控功能,也增加了成本,售价也相应提高。窗帘机的控制方式大体上有三种:声控、光控、时控,声控和遥控属于半自动类;而光控虽属全自动式,但因光敏器件的灵敏度,冬夏等不同季节的光照度的不同,以及人们对起闭窗帘在时间上的要求不同,而难以实施和普及。因此,时控式的全自动窗帘机便成了专业以及业余电子设计人员的热门课题。根据以上自动窗帘有些不能实现完全的自动化;有些虽然实现了完全的自动化,但结构复杂,性能不够稳定;有些虽然实现了完全的自动化,且性能还可以,但价格昂贵不适合普通消费者使用。所以我想利用价格相对便宜的红外线遥控发射芯片、单片机作为主要控制器件,来完成该系统的设计。该系统主要有如下几方面的特点:1. 可以显示的时间。2.可根据光照自动控制。4.美观。以往的遥控电动窗帘都是向一边拉或向上拉,而本设计为向两边打开,随个人的爱好可以控制其大小。5.体积小、结构简单、灵敏度高、抗干扰性强、经济实用、工作可靠。392 系统总体方案设计本节是该设计的方案论证部分,对设计中所采用的芯片从多方面综合的进行比较,最后经过仔细的研究后决定所器件、编程软件和仿真电路绘制软件的选取。2.1 系统总体硬件方案本次设计中考虑了三种设计方案,三种设计方案中主要区别在于硬件电路和软件设计的不同,对于本设计三种方案均能够实现,最后根据设计要求、可行性和设计成本的考虑选择了基于STC15F408AD单片机、电机、数码管和按键构成的集控制、开关、检测、显示与一体的自动窗帘设计。现在一一介绍论证如下:方案一、利用STC89C52单片机作为控制核心,用ADC0809作为光照测量的转换器,利用继电器作为控制电机开断的控制器,利用光敏电阻感应实际光照转化为可测量的小电流,显示部分利用液晶1602,用单片机定时器计时。方案二、利用STC带有AD的单片机作为控制核心,利用继电器作为控制电机的开断控制器,利用光敏电阻感应实际光照转化为可测量的小电流,显示部分利用液晶1602,用单片机定时器计时。方案三、利用STC15F408AD的单片机作为控制核心,继电器控制电机开关,数码管进行显示,利用继电器作为控制电机的开断控制器,用LED数码管进行显示。方案一中利用ADC0809接线电路复杂,利用单片机定时器计时走时不准并且在断电的时候时间也会被初始化。故舍弃方案一。方案二中虽然在接线方面简单但是在显示和计时上仍有不足。1、利用1602显示只能显示字母数字并且体积稍大,制作成品后造成体积庞大,LCD由玻璃制作玻璃材质很容易破碎很显然不符合要求。故舍弃方案二。方案三集成了方案一和方案二的优点摒弃了缺点因此毕业设采取方案三。2.2 系统总体软件方案软件的设计除了满足设计功能外还必须要满足易读写,方便下载和编译。设计目标和硬件总体结构确定的情况下,可以把软件可以分为主程序,显示子程序,各种延时子程序,按键扫描程序四个主要部分组成。 软件的编写需要借助软件编辑器和编译软件,编译完成后还需要程序烧录器下载到单片机中执行。编写软件之前得首先选择一种合适的语言以及配套的编辑器和编译软件。最后还要选择一款与所选单片机的下载器或下载软件来把编写的程序下载到单片机中执行。 2.3 单片机编程语言现在主要运用的单片机编程语言为汇编语言和C语言。我们虽然开设了单片机的课程,但是都是一些简单的入门,对单片机的内部资源也是学着忘着,并且我们学的是汇编,汇编是单片机的入门语言虽说它的转化效率高但是可读性差,使用不灵活,因此我就必须拾起大二时学的C语言,将学到的C语言应用到单片机上,学一门语言不容易,可要把他应用到实际当中更不容易。通过一点点的看视频教程,一个个单片机实例的实验我开始对单片机对C语言理解的越来越充分,由灵活的操作一个IO口到操作32个IO口。在其中的学习中我也体会到一个个成功实例的带来的成功感。在软件设计之前,首先自己就得有一个实现每一个功能的一些步骤和方法,因此在设计的时候就得想好整个设计的流程图。在设计之前自己必须知道将用到哪方面的知识,最后分析它的可行性。制作出可行的流程图,在以后的编程中看着流程图编写程序就会变的得心应手。2.4系统软件编译器WAVE介绍汇编语言编写的程序并不能被单片机直接执行还需要编译为单片机可执行的机器语言。因此在系统软件设计中,编译器必不可少。支持MCS51用汇编语言编程的编译器我们常用的是伟福 WAVE6000编译器。因此软件设计最终方案为采用汇编语言为编程语言,WAVE为编译工具按照控制、通信、显示等几个功能模块来编写程序。在伟福软件下汇编程序编译的一些详细步骤和要点:1)启动伟福6000编程、仿真、编译集成环境,运行主菜单中的:文件打开文件,开始编写程序。完成后保存为.ASM文件。2)执行主菜单中的项目编译。这样就在你保存那个*.ASM 文件的目录编译生成了相关的*.BIN、*.HEX文件,此时你只要连接好编程器,打开编程器的操作软件。运行载入文件选择要写入的*.HEX,执行编程操作就行了! 3 系统硬件方案设计3.1 STC15F408AD单片机STC15F408AD系列单片机是STC生产的单时钟/机器周期(1T)的单片机,是高速/高可靠/低功耗/超强抗干扰的新一代8051单片机,采用STC第八代加密技术,超级加密,指令代码完全兼容传统8051,但速度快8-12倍。内部集成高精度R/C时钟(0.3%),1%温飘(-40+85),常 温下温飘0.6%(-20+65),5MHz35MHz宽范围可设置,可彻底省掉外部昂贵的晶振和外部复位电路(内部已集成高可靠复位电路,ISP编程时8级复位门槛电压可选)。3路CCP/PWM/ PCA,8路高速10位A/D转换(30万次/秒),1组高速异步串行通信口(可在3组管脚之间进行切换,分时复用可作3组串口使用),1组高速同步串行通信端口SPI,针对串行口通信/电机控制/强干扰场合1。STC15F408AD系列单片机中包含中央处理器程序存储器、数据存储器、定时器/计数器、掉电唤醒专用定时器、I/O口、高速A/D转换(30万次/秒)、看门狗、高速异步串行通信端口UART、CCP/ PWM/PCA、高速同步串行端口SPI,片内高精度R/C时钟及高可靠复位等模块。STC15F408AD 系列单片机几乎包含了数据采集和控制中所需要的所有单元模块,可称得上是一个片上系统(SysTem Chip或SysTem on Chip,简写为STC,这是宏晶科技STC名称的由来)2。图3.1 STC15F408AD单片机引脚图STC15F408AD单片机的A/D转可以通过软件设置将8路中的任何一路设置为A/D转换,不需作为A/D使用的P1口可继续作为I/O口使用。需作为A/D使用的口需先将P1ASF特殊功能寄存器中的相应位置为1,将相应的口设置为模拟功能。表3.1 P1ASF寄存器SFR NAMEADDRESSP1ASF9DHP1ASF7-0P1.X的功能P1ASF0=1P1.0作为模拟功能AD使用P1ASF1=1P1.1作为模拟功能AD使用P1ASF2=1P1.2作为模拟功能AD使用P1ASF3=1P1.3作为模拟功能AD使用P1ASF4=1P1.4作为模拟功能AD使用P1ASF5=1P1.5作为模拟功能AD使用P1ASF6=1P1.6作为模拟功能AD使用P1ASF7=1P1.7作为模拟功能AD使用单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统到一个芯片上。单片机由运算器、控制器、存储器、输入输出设备构成,相当于一个微型的计算机(最小系统),和计算机相比,单片机缺少了外围设备等。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。它最早是被用在工业控制领域。INTEL的8080是最早按照这种思想设计出的处理器,当时的单片机都是8位或4位的。其中最成功的是INTEL的8051,此后在8051上发展出了MCS51系列单片机系统。因为简单可靠而性能不错获得了很大的好评。尽管2000年以后ARM已经发展出了32位的主频超过300M的高端单片机,直到现在,基于8051的单片机还在广泛的使用。在很多方面单片机比专用处理器更适合应用于嵌入式系统,因此它得到了广泛的应用。事实上单片机是世界上数量最多处理器,随着单片机家族的发展壮大,单片机和专用处理器的发展便分道扬镳3。现代人类生活中所用的几乎每件有电子器件的产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电子产品中都含有单片机。 汽车上一般配备40多片单片机,复杂的工业控制系统上甚至可能有数百片单片机在同时工作!单片机的数量远远超过PC机和其他计算机的总和4。3.2 按键模块设计在按键模块设计前先说明按键检测的原理:按键设计的原理相对简单,根据单片机的特性我们知道,单片机在复位的时候IO口为高电平相应的单片机检测有无按键按下只检测有没有低电平就行了,当有低电平时就认为有按键按下了5。最简单的按键电路设计就是将按键一端直接连接单片机另一端直接接地,这样的设计硬件设计简单很容易想到,但是如果用多个按键,运用到的IO管脚会比较多。电路框图如下:图3.2 按键模块框图在这里还有一个用一个管脚就能判别出多个按键的按键电路设计,原理就是利用电阻分压。利用单片机的AD转换端口,检测各各电阻的分压值5,按键只是选通某一个电阻值而已。这样的设计相当于是串行检测,而上面的设计则是一个并行设计的一种方法。根据上面两种电路我最后选择了第一种并行的按键,因为这种电路设计方便编程简单,并且由于所选用的单片机STC15F408AD管脚比较多,用这种设计方法很方便。3.3 LED数码管LED数码管的驱动显示电流基本在10ma-15ma,而单片机的输出电流仅有几毫安,这样大的电流是不能驱动LED数码管显示的,因此要想让数码管点亮必须有足够大的驱动电流6。经过一番资料的查阅和以往老师讲的理论知识,让数码管点亮必须的用到有一定驱动能力的芯片或原件。结合所学知识最后我选择了用三极管来驱动LED数码管显示,我们都知道三极管有NPN和PNP之分,而单片机的驱动电流非常小,对于老式的89C51单片机来说,他的驱动电流在10mA-20mA左右7。然而STC15F408AD的驱动电流在10mA一下,但是他的灌电流单个管脚可达到20mA,整个IO口的电流和不能超过60mA。图3.3 显示模块框图在这些理论的支持下,我选择了NPN型8050三极管,他的放大倍数在80-150之间8,用来驱动数码管已经足够了。在数码管的选型上我也是费了不少功夫,首先数码管分为共阴和共阳两种,还有一位两位三位四位数码管之分,数码管与单片机是怎么的连接的,数码管与驱动电路时怎么连接的等等这些问题一直缠绕着我。考虑到单片机灌电流比较大可达到20ma,这个信息对选择数码管型号是十分必要的,利用单片机灌电流的性子,设计中必须得选用共阳极的数码管只能这样才能将数码管点亮。由于数码管的结构可等效为多个LED组成的图案,因此它的实质也就是LED然而LED的工作电压是有一个严格的规范的,单片机的工作电压是5V,在显示模块中运用到的三极管主要是利用其开关特性,因此如果当三极管处于导通状态就相当于在LED上直接加上5V电源9,显然这样会把数码管烧坏,是不可取的。要想让数码管正常工作必须得有限流电阻,这样一来由公式R=V/I就可以求出限流电阻的值,在显示模块电路设计中我选择的限流电阻值为470欧姆。3.4 驱动电路设计电机控制方案设计中就到用继电器来作为控制模块,但是由于继电器的动作是由机械控制,这样出现的错误率会比较高,再一个继电器的体积比较大,特别是大功率的控制继电器。继电器的再一个致命的缺点是它的使用次数少,开关特性慢。一个继电器的使用次数一般在两万次。在电力电子课程上,我们经常讲到的就是晶闸管,它的性能优越控制方便使用寿命长,开关特性比继电器要强很多。但是在晶闸管的控制电路中我们用的是弱电,为了安全起见必须的把强电和弱电进行分离开来,在控制模块中利用光耦将强电和弱电进行隔离从而达到弱电控制强电的目的。可控硅的控制方面我还是第一下次接触,首先翻看了电力电子课本,找到关于可控硅的章节。通过一段时间的学习,我掌握到了可控硅的一些特性,在某些性子上和三极管差不多。可控硅的特性有:必须有正向电压,在正向电压的基础上必须有开启电流,这样可控硅才能导通。可控硅一旦导通通过断掉开启电流的方法已经是不可能了。关断可控硅的方法有:1、断电。2、电源反接。3、有过零点。只有满足这三个中的一个才能将可控硅关掉。了解了可控硅的特性之后我就开始查找关于可控硅的电路设计,并分析电路的可行性通过学习掌握到的知识自己设计了一个可控硅的控制电路。可控硅控制的是强电,因此要想用单片机来控制可控硅就必须用到隔离原件,这种隔离原件不是一般的隔离,不是一个普通的光耦就能搞定的,它的控制必须得有一个耐高压的光耦,在光耦的选型上也是有一个很特俗的要求。但是在元件的选择上我仍然选择了继电器,因为继电器的控制更为简单方便也比较常用,价格相对来说比较低廉。虽然有很多缺点但是它的性能已经足够设计的使用。图3.5 电磁继电器的原理图继电器与电机相连,控制电机正反转,进而使卷帘机升起和降落10。3.5 三极管LED数码管的驱动显示电流基本在10ma-15ma,而单片机的输出电流仅有几毫安,这样大的电流是不能驱动LED数码管显示的,因此要想让数码管点亮必须有足够大的驱动电流11。经过一番资料的查阅和以往老师讲的理论知识,让数码管点亮必须的用到有一定驱动能力的芯片或原件。结合所学知识最后我选择了用三极管来驱动LED数码管显示,我们都知道三极管有NPN和PNP之分,而单片机的驱动电流非常小12,对于老式的89C51单片机来说,他的驱动电流在10mA-20mA左右。然而STC15F408AD的驱动电流在10ma一下,但是他的灌电流单个管脚可达到20mA,整个IO口的电流和不能超过60mA13。在这些理论的支持下,我选择了NPN型8050三极管,他的放大倍数在80-150之间15,用来驱动数码管已经足够了。 图3.7 三极管实物图3.6 光敏电阻光敏电阻,又称光敏电阻器常用的制作材料为硫化镉,另外还有硒、硫化铝、硫化铅和硫化铋等材料。这些制作材料具有在特定波长的光照射下,其阻值迅速减小的特性。这是由于光照产生的载流子都参与导电,在外加电场的作用下作漂移运动,电子奔向电源的正极,空穴奔向电源的负极。利用光敏电阻根据光照变化的不同其阻止也不同的原理,用单片机来测量其电阻分压的值就可以间接反映出光照的强度。3.7 自动窗帘控制系统的制作及工作原理介绍首先根据毕业设计课题,画出实作原理图。由于用到单片机,要编写程序,所以先把程序编好,进而调试,调试成功后就开始在ISIS7 Professional仿真软件上仿真,仿真成功后就购买元器件,导线,锡丝,电路板,烙铁,5号电池,电机。工作原理:单片机是此电路中的核心器件,所谓单片机,就是将中央处理器CPU,存储器,定时/计数器和I/O接口电路等计算机的主要功能部件集成在一块芯片上的微型计算机。单片机系统是以单片机为核心,配合适当的外围设备和软件构成的应用系统。控制器是计算机的控制核心,它负责从内部存储器中取出指令并对指令进行分析,根据指令发出的控制信号,指挥输入,输出,运算器,存储器等功能部件协调工作。STC系列单片机是由深圳宏晶科技公司开发,台湾积体电路制造股份有限公司生产的增强8051内核单片机。它给MCS-51单片机融入了许多现代单片机新的功能部件,如AD,DAC,电压监控,“看门狗”电路,低压检测电路等。8051内核单片机,在片内资源,性能以及工作速度上都有了很大的改进,尤其是采用了基于Flash的在线编程技术(ISP),在对单片机编程写软件时无需采用专用编程器,可以通过PC直接对STC系列单片机进行编程,使单片机应用系统的开发变得简单了。自动窗帘作收帘作业时,电动机通过减速器带动卷帘轴转动,拴在卷帘轴上的帘子卷在卷帘轴上,完成收帘作业;卷帘机作铺帘作业时,电动机旋转方向相反,因而完成铺帘作业。连接电源后,给予光敏电阻光照,单片机所下载的程序驱动电路中继电器控制电机正反转,数码管显示时间。三极管,全称应为半导体三极管,也称双极型晶体管,晶体三极管,是一种电流控制电流的半导体器件其作用是把微弱信号放大成辐值较大的电信号, 也用作无触点开关。光敏电阻器是利用半导体的光电导效应制成的一种电阻值随入射光的强弱而改变的电阻器。在对此实做焊接前所有筹备工作完成后,接下来就是焊接电路。在此过程中焊接水平很关键,烙铁和锡丝的结合使用的好坏直接影响实做正常工作的成败。4 系统软件方案设计4.1 概述在软件设计中,我主要写了三部分的程序,分别为按键扫描程序、数码管显示程序、电机控制程序。这些分支程序都是在主程序的调用下完成的。4.2 主程序设计系统软件采用汇编语言编写,按照模块化的设计思路设计程序。首先分析程序所要实现的功能,程序要实现可静态显示、动态显示、三维立体显示。通过按键控制程序选择不同的显示程序进行显示。主程序的工作流程见下图。图4.1 主程序流程图程序开始时首先必须对单片机进行初始化设置,其中初始化设置的内容包括:中断优先级的设定,中断初始化,定时器初始化,串行通信时通信方式的选择和波特率的设定,各IO口功能的设定等。把各子程序写为一个可单独执行的完整子程序段。各子程序编译没有错误后再下载到单片机进行仿真验证,这两项都通过后再将所有的程序整合到一起,形成一个完整的程序再进行编译和仿真验证。4.3 显示程序的设计显示模块用的是LED数码管,由于单片机管脚数量的限制在该设计中主要用到的是数码管的动态显示。LED数码管动态显示是单片机中应用非常广泛的显示方式之一,动态驱动是将数码管所有的8个显示笔划a,b,c,d,e,f,g,dp的同名端连接在一起,每个数码管的公共极增加位选通的控制电路,位选由各自独立的三极管控制,当单片机输出字形码的时候,三极管对位选通COM端口的电路进行控制,因此我们只需要将显示的数码管的位选通控制端打开,该位就可以显示出字形,而没有选通的数码管就不会被点亮。然后通过分时轮流控制每一个数码管的COM公共端,就可以使各个数码管轮流被控显示,这就是动态驱动显示。在轮流显示的过程当中,每位数码管的点亮时间大约为1015ms,根据人们的视觉暂留现象和发光二极管的余辉效应,然而事实上各位数码管并不是同时点亮的,但是只要扫描的速度非常快,给人们的印象就是一组组非常稳定的显示信息,而不会有闪烁的感觉,形成的动态显示的效果和静态显示的效果是一样的,能够节省掉大量的I/O端口,而且功耗更低一些。在动态显示过程中有一步是很关键的就是显示的时间一定的控制的非常好,一般都在10ms左右。并且在一个数码管显示完毕后还的有一个消隐,因为只能这样做才能减少数码管的余晖效应。这样数码管才能显示的更干脆,显示效果才会跟明显。图4.2显示程序流程框图显示采用的是扫描显示方式,选通一列后按照列对应的数据表的数据第i列对应的列数据为数组中的第i和第i+7个元素。将对应数据由低至高位依次从控制端口输出显示。向右逻辑移位所得结果通过单片机端口输出到锁存器,通过片选需要显示对应的锁存器在输出显示。如此依次循环选通各列来显示所需画面。动态显示程序流程。把显示的数据送到P0口,相应的锁存器接收数据,再把片选锁存器的数据送到端口,相应锁存器接收数据并锁存输出显示,接着把下一组数据送到P0口,改变片选锁存器的数据,送到相应锁存器输出显示,直到把所有的数据局输出传送完毕后,显示完成后,退出显示程序,等待指令。4.4 按键模块程序设计单片机按键检测程序的书写及流程是比较简单的,在上一节的按键方案选择中设计到两种按键检测的方法,在该设计中我用的是直接按键检测法,就是按键按下后直接接地,把单片机的IO口拉低。单片机检测到IO为低电平时就认为当前出现了按键操作行为,这样的设计方案简单实用,可靠性高。在按键设计中,必须的对设计到的程序有一个整体的认识。我们都知道按键在按下的时候是有抖动的,因此在按键检测的时候为了防止误判断我们必须对按键的抖动做一些处理。在抖动处理中有两种处理方法一是硬件去斗。再一个是软件去斗。该设计中我用到的是软件去斗。当检测到有低电平时先延时10ms,10ms之后再次检测按键的IO口是否为低电平,如果仍然是低电平那么单片机就判断为当前出现按键操作行为。接下来还的有按键松开检测,只有当按键松开了才认为一个按键过程的完成。图4.5 按键程序流程框图4.5 传感器模块程序设计在传感器的设计中主要用到单片机的AD功能,单片机检测到的模拟信号只能是小信号的直流量,而要检测光照强度就得利用到光照强度检测传感器,光照强度检测传感是根据光照强度的变化转化成电阻的变化,根据电阻的变化来判定光照强度。在设计中我是利用单片机的AD功能来检测光照强度。直流小信号后输送到单片机AD口,共单片机检测。STC15F408AD单片机内部自带有AD转换电路,所以转化好的直流信号被单片机检测到就得设定AD程序。AD设置就是把STC官网给的资料进行一些特俗寄存器的进行设定,然后单片机直接读取。4.6 控制模块程序设计控制模块的程序设计主要是控制继电器,通过三极管驱动继电器。控制程序的书写也是根据各各模块来设定的。三极管的开断也是在具体的环境下才有它的具体用途。这部分的控制是穿插在在程序中的很多子程序中。5 电路板制作在毕业设计之前,我们也做过课程设计,在课程设计的过程中也有牵涉到电路板的制作。制作PCB电路板是我好几年前就想做的事,之前只听说过Protel 99se。我也曾经试着去学习它,可是摸索了半天,就连新建一个工程都没有建成,这样的经历让我对制作PCB电路板有了恐惧感。直到上一次的课程设计我才见识到老师是怎么制作电路板的,从那时起又激发了我学习PCB制作的热情。在网上下载了DXP的教程后我开始没日没夜的学习实践,从制作电路原理图开始,之后开始自己做元器件的封装。学习背诵封装库名称。将近一个月的学习实践制作,我基本掌握了PCB的制作方法流程。在确定好原理图之后,我就开始生成PCB图,生成好的PCB图先进行输出打印,最后打印出的结果令我伤心。布线太细,如果腐蚀的时候根本就不能保证导线没有断线。再一次的修改线宽。老师的指导是先进行自动布线然后进行手动布线这样才能根据你的要求作出理想的PCB。老师的建议给了我很大的启发,经过一天的修改我完成了PCB板的电路制作。制作好的PCB图先打印到硫酸纸上,然后把打印好的硫酸纸覆盖在覆铜板上。固定好之后先用转孔机给电路板打上定位孔,之后再把另一张硫酸纸对着定位孔进行固定。固定好的覆铜板就可以在热转印机上进行转印,转印好的电路板进行腐蚀,最后制作好的电路板进行修理连线,将元器件焊接到电路板上,烧上程序开始进一步的调试。测试每一部分的功能,待电路检测无误后开始进行进一步的测试。6 系统调试6.1硬件电路部分的调试在以上电路设计的基础上就开始了硬件电路的制作,腐蚀完成的PCB结束之后就准备开始焊接元器件。在焊接的时候发现在用Protel DXP设计电路板的时候犯了一个很不小心的错误,原来电源和接地的标号网络根本就没有保持一致,以至于生成的网络表有错误。虽然软件并没有检测出来错误,但是实际上是个错误的电路图。介于这部分的疏忽大意,导致这个电路板的制作无效。紧接着在非常认真的修改错误之后继续开始制作电路板,焊接电子元器件,并完成了硬件电路的制作。然而当接通电源时又发现LED数码管不亮,开始完全迷茫了。当然,有问题就是要想办法解决的,沉静下来仔细再检查Protel上的原理图,也没有发现什么错误,并且检查了电路的电源部分,发现电源完全正确。在通电测试的时候,数码管一直不亮,经过仔细检查,是三极管封装有误,还好错误可以补救,将三极管旋转90度后正好符合电路要求,修改好的电路可以工作了。满怀信心的再次实验修好的电路,下进去程序后数码管显示正常。忙活一个多月的毕业设计的硬件设计总算完成。数码管显示正常。可是在把完整的程序写入之后发现根本就显示不了,进行资料的查阅,网上的问答高手们指出说:“单片机的驱动太小,加上拉就行了”。我按照高手提供的方案我接了一个上拉,果然工作正常。硬件调试结束。对试验阶段的电路板的安装一般有两种方式即焊接方式和面包板插接方式。使用面包板焊接更加方便,容易更换线路和器件,而且可以多次使用。但在多次使用的面包板中弹簧片会变松,弹性变差,容易造成接触不良,这是需要注意的。实验和测试常用的仪器有:万用表、稳压电源、示波器、逻辑分析仪等。(1)测试前不加电源的检查对照电路图和实际线路检查连线是否正确,包括错接、少接、多接等;用万用表电阻档检查焊接和接插是否良好;元器件引脚之间有无短路;连接处有无接触不良;二极管、三极管、集成电路的电源正负极和电解电容的极性是否正确;电源供电包括极性、信号源连线是否正确;电源端对地是否存在短路(用万用表测量电阻)。若电路经过上述检查,确认无误后,可转入静态检测与测试。(2)静态检测与测试断开输入信号,把经过准确测量的电源接入电路,用万用表电压档监测电源电压,观察有无异常现象。如冒烟、异常气味、手摸元器件发烫,电源短路等。如发现异常情况,立即切断电源,排除故障;如无异常情况,分别测量各关键点直流电压,如静态工作点、数字电路各输入端和输出端的高、低电平值及逻辑关系、放大电路输入、输出端直流电压等是否在正常工作状态下,如不符,则调整电路元器件参数、更换元器件等,使电路最终工作在合适的工作状态;对于放大电路还要用示波器观察是否有自激发生。(3)动态检测与测试动态测试是在静态测试的基础上进行的,测试的方法地在电路的输入端加上所需的信号源,并循着信号的注射逐级检测各有关点的波形、参数和性能指标是否满足设计要求,如有必要对电路参数作进一步调整。若发现问题,要设法找出原因,排除故障后,继续检测完电路至没有错误。(4)测试注意事项1)正确使用测量仪器的接地端,仪器的接地端与电路的接地端要可靠连接。2)在信号较弱的输入端,尽可能使用屏蔽线连线,屏蔽线的外屏蔽层要接到公共地线上,在频率较高时要设法隔离连接线分布电容的影响,例如用示波器测量时应该使用示波器探头连接,以减少分布电容的影响。3)测量电压所用仪器的输入阻抗必须远大于被测处的等效阻抗。4)测量仪器的带宽必须大于被测量电路的带宽。5)正确选择测量点和测量。6)认真观察记录实验过程,包括条件、现象、数据、波形、相位等。7)出现故障时要认真查找原因。6.2软件部分的调试又用了两个月的时间我将写好的程序写入单片机,本来一个个模块功能都能实现,组合到一起就不行了。这就是要求必须的有一个全局的思想,用可靠的变量来传达一个个模块的有用信息。半个月的调试程序算是可以工作了。编程上最主要的是中断的计时程序,当分模块调试时中断是完全可以正常读取时间,显示时间。当把独立按键扫描程序加入到总程序时,发现时间不走动了,原因可能是在单片机根本无法从累加器里面读取数据,也可能是根本采集不到到的数据切无法在显示器上显示,或者是在按键处理的过程中出现了一些问题。通过检查程序和修改,发现是因为按键和中断同时用了一个寄存器口,当重新增加寄存器之后发现计时正常了,显示也基本完成预期效果。如果后期需要扩展功能还可以继续添加。然而在控制定时方面,我是利用单片机查询中断计数器的时间来确定一分钟时间,在定时时单片机实时监测中断的次数的,当次数位为59的时候,就让倒计时分减一。由于单片机在一秒内执行几百次,所以倒计时每次都因为自减过多而无法完成倒计时功能。最后在自减之前先给自减的数赋值,通过反复试验确定所赋的值,确保在一秒内分只减一次。经过调试最后完成了预期目的。6.3 调试结果 通过一番努力,终于在此次设计中完成了预期设计任务。所设计的自动窗帘已经可以实现预期功能。该自动自动窗帘能根据设定值进行开关,并实时监测外界光照。当外界光照达到下限时再进行开启窗帘。以保持室内光照在一定的光照强度范围内,更有利于人们更好的工作。总 结在做我的毕业设计之前,我做过我们专业课的数电、模电课程设计。那时我们都是分组然后通过小组成员之间相互协调相互合作共同完成的。我在小组中主要做的事元器件的排版和焊接等工作。所以,我在我的内心深处知道自己在元器件以及电路设计方面存在很大的缺陷。在这次的毕业设计中,我首先是初步熟悉这些主要器件的外部电路后,在条件允许的情况下先分别制作主要模块的电路,测试其可用性,例如灌溉系统的控制电路,因为之前做过的自动供水器时在这方面就出现过问题没有实现控制,对这块的外部电路还算不熟悉,只能先制作模块部分的电路测试是否可用。在基本掌握了这些模块的电路及其工作原理以后开始用Protel软件设计电路原理图。在设计电路图的过程中由于对一些器件不熟,开始没有STC15F104AD的封装,通过查阅书籍,,查询网络视频,从一无所知到略懂一二,我的感受就是收货颇多。在将近半个月的时间里,我用心学习小心摸索在经历几次失败后我按照我的原理绘制出了我的原理图。做好封装后的原理图很容易的就制成PCB图,经过仔细检查和心细布局最后生成PCB。本次毕业设计到此就告一段落了,所设计的硬件和软件都可以正常工作,各项设计均达到了设计任务的要求。、在设计过程中有喜有忧,但是经过多次反复的问题分析和系统调试,还是解决了各个难题,也使我在设计电路及分析电路问题上学到了很多。而在编程上,通过这次设计,我对C语言编程有了进一步的熟悉,巩固了所学知识。但是,在这过程中,我也发现了自己所学知识的不足,在今后仍需不断努力学习。在2014年的2月分,我开始着手我的毕业论文的编写工作。现在,我的毕业设计论文已经初步成型。当然,我知道这样的毕业论文还不能达到要求。就像雕塑家那样,这还只是一个毛培而已,还需要经过利用我们的能力,用我们的收一点一点把它雕刻刀完美。不过,回想在做毕业设计的这几个月,我从最开始的一片空白,到略懂一二,直至思路渐渐成形。这其中的种种对于我自己来说是无法用言语形容的。这几个月的刻苦努力,终于让我在毕业设计这场战争中去的了初步的胜利。无论在怎么辛勤的付出,我都知道这是值得的。因为我懂,这是我梦想的一部分。去年12月初,在和指导老师的共同讨论中我的毕业设计题目确定了下来,是基于单片机的太阳能自动灌溉系统的设计,这是我自选的题目。确定了题目,确定了选题报告和开题报告,我便开始了我的毕业设计工作。以我当时的知识储备,是无法独立完成这个毕业设计的。所以我第一步便是收集关于我的毕业设计的资料。当时,我在面对网络上庞大的资料储备和图书馆难以计数的书本时,我茫然了,甚至有一点点害怕的感觉。无从下手的感觉就是想努力去做却不知道朝那个方向、用什么办法努力。这时老师帮助了我,她给我指引了方向。在讨论中我确定了思路。对于资料的收集,这是我不太擅长的工作。我询问老师询问同学,尤其是在我们校图书馆查阅的参

温馨提示

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

评论

0/150

提交评论