基于单片机的智能窗帘设计 (程序+仿真+电路+论文)(51+1602+RL+AD0832+18B20+1302+KEY5+MQ2) 0414

目录

1 绪论

2 系统总体结构设计

3 硬件分析与设计

3.1 STC89C52单片机及相关电路

3.1.1 STC89C52单片机概述

3.1.2晶振电路

3.1.3复位电路

3.2时钟模块电路

3.2.1DS1302性能简介

3.3温度检测器模块

3.4 键盘电路

3.5 液晶显示电路

3.6 光敏传感器

3.7 步进电机控制电路

3.8 蜂鸣器报警电路

4 程序分析与设计

5 仿真程序设计

总结

源文件获取


0414 基于单片机的智能窗帘设计 (程序+仿真+电路+论文)(51+1602+RL+AD0832+18B20+1302+KEY5+MQ2)

1 绪论

自动窗帘控制系统核心采用的是单片机STC 89C52,其次利用了光照传感器、键盘显示接口电路以及信号调理电路等外围电路,整个系统在各模块的配合下可实现半自动控制、自动控制、定时控制等功能。

1. 万年历时间显示:年/月/周/日/时/分/秒,掉电记忆/再次上电无需调时; 2. 温度显示/超标报警:可以自行设置温度报警阈值; 3. 烟雾超标报警:可以自行调节烟雾报警阈值; 4. 手动控制窗帘:可根据个人需求通过按键进行窗帘的开/关,此功能可以使窗帘的开闭处于任何一种状态; 5. 定时控制窗帘:可根据设定的时间一次性开/关窗帘; 6. 光强控制窗帘:可根据设定的光强值通过感光器采集光照自动开/关窗帘,同时当监测光强值小于设置光强值时,将自动开LED进行照明;

2 系统总体结构设计

随着人民生活水平的不断提高,人们对家庭生活舒适性的需求越来越强烈,窗帘作为每个家庭生活中最必须的家居用品之一,自然也需要满足人民更舒适性的需求。窗帘最基本的作用无非是保护业主的个人隐私以及遮阳挡尘等功能,但传统的窗帘您必须手动去开关,每天早开晚关也是挺麻烦的,特别是别墅或复式房的大窗帘,比较长,而且重,用时需要很大的力才能开关窗帘,特别不方便;于是电动窗帘应运而生。现有的电动窗帘都可以自动开关闭窗帘,到了时间自动控制窗帘的开关,可以根据光的但是他们也有些缺点。窗帘控制器的自动开关如何让窗帘能够开关自如,停机的时间是否到位。

自动窗帘控制系统总体方案设计是基于满足设计要求的前提并且根据理论上的可实现性和硬件上的经济实用性,而进行设计的重要环节。本章从人们对系统功能需求出发,在综合考虑各种因素的情况下,设计出自动控制系统的总体构架,并且在基本功能需求的基础上尽可能考虑系统的可扩展性。经过综合考虑本系统由单片机最小系统、光照采集电路、数模ADC0832转换模块、温度DS18B20采集模块、按键模块、电源模块、液晶LCD显示模块、蜂鸣器报警模块、步进电机驱动模块和DS1302时钟模块组成。

智能窗帘具有手动和自动两种模式。手动模式和自动模式可以通过按键切换。手动模式是根据用户的需求通过按键进行窗帘的开关,此功能可以使窗帘的开闭处于任何一种状态;自动模式是根据用户设定的光照强度值通过感光器采集光照自动开关窗帘根据用户设定的时间一次性开关窗帘。光照模块采用光敏电阻根据环境光线的变化改变电阻的阻值然后通过ADC0832模数转换器传输给单片机处理。时钟芯片采用的美国DALLAS公司DS1302芯片,实时记录当前时间,可以设置预设时间开启和关闭窗帘。温度模块采用的是DS18B20温度传感器,并且显示当前温度,可以自行设置温度报警温度。液晶显示模块显示当前时间、温度和光线等级和工作模式等信息。

3 硬件分析与设计

3.1 STC89C52单片机及相关电路

3.1.1 STC89C52单片机概述

51系列单片机最初是由Intel 公司开发设计的,但后来Intel 公司把51 核的设计方案卖给了几家大的电子设计生产商,譬如 SST、Philip、Atmel 等大公司。因此市面上出现了各式各样的均以51 为内核的单片机。这些各大电子生产商推出的单片机都兼容51 指令、并在51 的基础上扩展一些功能而内部结构是与51一致的。

STC89C52有40个引脚,4个8位并行I/O口,1个全双工异步串行口,同时内含5个中断源,2个优先级,2个16位定时/计数器。STC89C52的存储器系统由4K的程序存储器(掩膜ROM),和128B的数据存储器(RAM)组成。

1. 一个8 位的微处理器(CPU)。

2. 片内数据存储器RAM(128B),用以存放可以读/写的数据,如运算的中间结果、最终结果以及欲显示的数据等,SST89 系列单片机最多提供1K 的RAM。

3. 片内程序存储器ROM(4KB),用以存放程序、一些原始数据和表格。但也有一些单片机内部不带ROM/EPROM,如8031,8032,80C31 等。目前单片机的发展趋势是将RAM 和ROM 都集成在单片机里面,这样既方便了用户进行设计又提高了系统的抗干扰性。SST 公司推出的89 系列单片机分别集成了16K、32K、64K Flash 存储器,可供用户根据需要选用。

4. 四个8 位并行I/O 接口P0~P3,每个口既可以用作输入,也可以用作输出。

5. 两个定时器/计数器,每个定时器/计数器都可以设置成计数方式,用以对外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制。为方便设计串行通信,目前的52 系列单片机都会提供3 个16 位定时器/计数器。

6. 五个中断源的中断控制系统。现在新推出的单片机都不只5 个中断源,例如SST89E58RD 就有9 个中断源。

7. 一个全双工UART(通用异步接收发送器)的串行I/O 口,用于实现单片机之间或单机与微机之间的串行通信。

8. 片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接。最高允许振荡频率为12MHz。SST89V58RD 最高允许振荡频率达40MHz,因而大大的提高了指令的执行速度。

3.1.2晶振电路

电路中的晶振即石英晶体震荡器。由于石英晶体震荡器具有非常好的频率稳定性和抗外界干扰的能力,所以,石英晶体震荡器是用来产生基准频率的。通过基准频率来控制电路中的频率的准确性。同时,它还可以产生振荡电流,向单片机发出时钟信号。

片内电路与片外器件就构成一个时钟产生电路,CPU的所有操作均在时钟脉冲同步下进行。片内振荡器的振荡频率非常接近晶振频率,一般多在1.2MHz~24MHz之间选取。C1、C2是反馈电容,其值在20pF~100pF之间选取,典型值为30pF。本电路选用的电容为30pF,晶振频率为12MHz。

XTAL1接外部晶体的一个引脚,XTAL2接外晶体的另一端。在单片机内部,接至上述振荡器的反相放大器的输出端。采用外部振荡器时,对HMOS单片机,该引脚接外部振。在石英晶体的两个管脚加交变电场时,它将会产生一定频率的机械变形,而这种机械振动又会产生交变电场,上述物理现象称为压电效应。一般情况下,无论是机械振动的振幅,还是交变电场的振幅都非常小。但是,当交变电场的频率为某一特定值时,振幅骤然增大,产生共振,称之为压电振荡。这一特定频率就是石英晶体的固有频率,也称谐振频率。石英晶振起振后要能在XTAL2线上输出一个3V左右的正弦波,以便使MCS-51片内的OSC电路按石英晶振相同频率自激振荡。通常,OSC的输出时钟频率fOSC为0.5MHz-16MHz,典型值为12MHz或者11.0592MHz。电容C1和C2可以帮助起振,典型值为30pF,调节它们可以达到微调fOSC的目的。

3.1.3复位电路

复位是单片机的初始化操作,以便使CPU和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作。除了进入系统的正常初始化之外,当单片机系统在运行出错或操作错误时系统处于死机状态时,也可按复位键重新启动。

复位后,PC内容初始化为0000H,是单片机从0000H单元开始执行程序。单片机复位后不影响内部RAM的状态。89C52单片机复位信号的输入端是RESET引脚,高电平有效。其有效时间持续24个时钟周期以上。

RESET端得外部复位电路有两种操作方式:上电自动复位和按键手动复位。

上电自动复位是利用电容储电来实现的.上电瞬间,RC电路充电,RESET端出现正脉冲,随着充电电流的减少,RESET的电位逐渐下降。按键手动复位用电平方式。按键电平复位是相当于RESET通过电阻接高电平。按键为S1。

3.2时钟模块电路

3.2.1DS1302性能简介

DS1302是Dallas公司生产的一种实时时钟芯片。它通过串行方式与单片机进行数据传送,能够向单片机提供包括秒、分、时、日、月、年等在内的实时时间信息,并可对月末日期、闰年天数自动进行调整;它还拥有用于主电源和备份电源的双电源引脚,在主电源关闭的情况下,也能保持时钟的连续运行。另外,它还能提供31字节的用于高速数据暂存的RAM。

DS1302时钟芯片内主要包括移位寄存器、控制逻辑电路、振荡器。DS1302与单片机系统的数据传送依靠RST,I/O,SCLK三根端线即可完成。其工作过程可概括为:首先系统RST引脚驱动至高电平,然后在SCLK时钟脉冲的作用下,通过I/O引脚向DS1302输入地址/命令字节,随后再在SCLK时钟脉冲的配合下,从I/O引脚写入或读出相应的数据字节。因此,其与单片机之间的数据传送是十分容易实现的,DS1302的引脚排列及内部结构图如图:

DS1302引脚说明:

3.3温度检测器模块

温度是一种最基本的环境参数,人民的生活与环境的温度息息相关,DS18B20装置适用于人民的日常生活和工、农业生产用于温度测量。由半导体公司生产的DS18B20型单线智能温度传感器,属于新一代适配微处理器的智能温度传感器,可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中。它具有体积小,接口方便,传输距离远等特点。

本系统中,DS18B20作为温度传感器,在本系统中可以实时的采集环境温度,并在液晶屏进行显示。当温度超过设定的上限时,进行温度报警。

DS18B20的性能特点:①采用单总线专用技术,既可通过串行口线,也可通过其它I/O口线与微机接口,无须经过其它变换电路,直接输出被测温度值(9位二进制数,含符号位),②测温范围为-55℃-+125℃,测量分辨率为0.0625℃,③内含64位经过激光修正的只读存储器ROM,④适配各种单片机或系统机,⑤用户可分别设定各路温度的上、下限,⑥内含寄生电源。

DS18B20内部结构主要由4部分组成:64位光刻ROM,温度传感器,非挥发的温度报警触发器TH和TL,配制寄存器。DS18B20的管脚排列如图2所示。

光刻ROM中的64位序列号是出厂前被光刻好的,他可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28h)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=x8+x5+x4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。

采用数字温度传感器DS18B20,与传统的热敏电阻相比, 他能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。可以分别在93.75ms和750ms内完成9位和12位的数字量, 并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线( 单线接口) 读写, 温度变换功率来源于数据总线, 总线本身也可以向所挂接的DS18B20供电, 而无需额外电源。因而使用DS18B20可使系统结构更趋简单,可靠性更高,成本更低。测量温度范围为~55℃~+125℃。C,在一10℃~+85℃。C范围内,精度为±0.5℃。DS1822的精度较差为±2℃。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。

引脚功能如下:

NC(1 、2 、6 、7 、8脚) :空引脚,悬空不使用。

VDD(3脚):可选电源脚,电源电压范围3~5.5V。

DQ(4脚):数据输入/输出脚,漏极开路,常态下高电平。

3.4 键盘电路

键盘在单片机应用系统中能实现向单片机输入数据,传送命令等功能,是人工干预单片机的主要手段。本设计中的键盘采用独立键盘式。其中S2是自动和手动切换键,S3是设置退出键,S4是手动反转和设置参数减键,S5是手动正转和设置参数加键,S6是参数设置键。          

获取键盘信息的方法有2种,我们经常用到的是扫描法。在扫描法中,所有的行线固定为输出端口,并依次输出低电平;所有列线固定为输入端口,用来检测按键状态。当全部按键均松开时,从列线上检测不到行线输出的低电平。当某个按键按下时,只有在对应的行线输出低电平时才能在对应的列线端口检测到低电平。按键的触点在闭合和断开时均会产生抖动,这时触点的逻辑电平是不稳定的,如果不妥善处理,将会引起按键命令的错误执行或重复执行。一般消除抖动采用软件方法来解决,将在软件部分介绍这点。

3.5 液晶显示电路

液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在各种小系统中得到了更广泛的应用。本设计中使用的液晶显示模块是LCD1602。

LCD1602是一种用5x7点阵图形来显示字符的液晶显示器模块,它显示的容量为2行16个字。其实物如图3-11和图3-12所示,它的显示内容丰富、体积小、美观和易于控制都是本设计选择作为显示模块的原因。其引脚结构图如图3.6所示。

工作原理:线段的显示.点阵图形式液晶由 M 行×N 列个显示单元组成,假设 LCD 显示屏有64行,每行有 128列,每 8列对应 1 个字节的 8 个位,即每行由 16 字节,共 16×8=128个点组成,屏上 64×16 个显示单元和显示 RAM 区 1024 个字节相对应,每一字节的内容和屏上相应位置的亮暗对应。例如屏的第一行的亮暗由 RAM 区的 000H~00FH 的 16 个字节的内容决定,当(000)=FFH 时,则屏的左上角显示一条短亮线,长度为8个点;当(3FFH=FFH 时,则屏的右下角显示一短亮线;当(000H)=FFH,(001H)=00H,(002H)=FFH,(003H)=00H,…(00EH)=FFH,(00FH)=00H 时,则在屏的顶部显示一条由 8 段亮线和8 条暗线组成的虚线。这就是 LCD 显示的基本意思。

字符的显示.当用 LCD 显示一个字符时就较复杂了,因为一个字符由 6×8 或 8×8点阵组成,即要找到和屏上某几个位置对应的显示 RAM区的 8 个字节,并且要使每个字节的不同的位为‘1’,其它的为‘0’,为‘1’的点亮,为‘0’的点暗,这样一来就组成某个字符。但对于内带字符发生器的控制器(如 T6963C)来说,显示字符就比较简单了,可让控制器工作在文本方式,根据在LCD 上开始显示的行列号及每行的列数找出显示 RAM对应的地址,设立光标,在此送上该字符对应的代码即可。

    汉字的显示.汉字的显示一般采用图形方式,事先从微机中提取要显示的汉字的点阵码,每个汉字占 32 字节,分左右两半部,各占 16 字节,左边为 1、3、5…,右边为 2、4、6…, 根据在 LCD 上开始显示的行列号及每行的列数可找出显示 RAM 对应的地址,设立光标,送上要显示的汉字的第一个字节,光标位置加 1,送第二字节,换行按列对齐,送第三字节…直到32字节显示完就可在 LCD 上得到一个完整的汉字。

带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4行16×16点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。其中:

3.6 光敏传感器

窗帘自动控制系统的光控功能是可以根据光照的强弱来自动控制窗帘的开闭的,因此需要用到光照传感元器件,在本设计中采用了光敏电阻。

光敏电阻又称光导管,常用的制作材料为硫化镉,另外还有硒、硫化铝、硫化铅和硫化铋等材料。这些制作材料具有在特定波长的光照射下,其阻值迅速减小的特性。这是由于光照产生的载流子都参与导电,在外加电场的作用下作漂移运动,电子奔向电源的正极,空穴奔向电源的负极,从而使光敏电阻器的阻值迅速下降。光敏电阻属半导体光敏器件,除具灵敏度高,反应速度快,光谱特性及r值一致性好等特点外,在高温,多湿的恶劣环境下,还能保持高度的稳定性和可靠性,可广泛应用于照相机太阳能庭院灯草坪灯验钞机,石英钟,音乐杯,礼品盒,迷你小夜灯,光声控开关,路灯自动开关以及各种光控玩具,光控灯饰,灯具等光自动开关控制领域。

智能窗帘控制系统采用光敏电阻采集光线,根据光线的变化改变电阻的分压值,让后通过adc0832数模转换芯片传输给单片机,经过单片机处理后在液晶上显示。

3.7 步进电机控制电路

本系统的设计目的为了高效控制步进电机的转动,因此需要将单片机发出的脉冲转化为步进角度,才能控制步进电机转动,我们在这里采用ULN2003为步进电机提供脉冲信号。ULN2003七NPN达林顿连接晶体管是低逻辑电平数字电路(如TTL,CMOS或PMOS/NMOS)和大电流高电压要求的灯、继电器、打印机锤和其他类似负载间的接口的理想器件。广泛用于计算机,工业和消费类产品中。所有器件有集电极开路输出和用于瞬变抑制的续流箝位二极管。ULN2003的设计与标准TTL系列兼容。

ULN2003主要特性表

极限值(若无其他规定,Tamb=25℃)

参数名称

符号

数值

单位

输入电压

VIN

30

V

输入电流

IIN

25

mA

功耗

PD

1

W

工作环境温度

Topr

-20to +85

       ℃

贮存温度

Tstg

-55to+150

ULN2003芯片概述与特点:

ULN2003芯片是高耐压、大电流达林顿阵列,由7组达林顿晶体管阵列和相应的电阻网络以及钳位二极管网络构成,具有同时驱动7组负载的能力,为单片双极型大功率高速集成电路。功率电子电路大多要求具有大电流输出能力,以便于驱动各种类型的负载。功率驱动电路是功率电子设备输出电路的一个重要组成部分。ULN2003芯片高压大电流达林顿晶体管阵列产品属于可控大功率器件。

步进电机驱动电路的工作过程是:首先从P2口输出00000001B,由于单片机与ULN2003连接只用到了P2.0—P2.3,所以ULN2003与单片机连接的四个管脚中每时刻只有一个管脚处于导通状态(采用单拍方式对步进电机控制),其他管脚处于断开状态。这样就使得与ULN2003连接的步进电机只有一个引出端导通。

3.8 蜂鸣器报警电路

本设计中蜂鸣器报警电路采用NPN型S8550三极管驱动,当单片机的P2^4口输出低电平时,三极管的VE>VB>VC>0。三极管的发射结正偏,集电结反偏,三几个饱和导通,此时蜂鸣器发出声报警,当单片机的P2^4口输出高电平时,三极管截止,停止声报警停止工作。

4 程序分析与设计

系统软件设计主要有几部分组成,其中包括显示子程序,定时时钟程序,步进电机控制程序等。本章介绍了自动窗帘控制系统的主程序以及各主要部分功能程序的设计过程,程序代码详见附录。

启动主程序,先关中断并且设置堆栈,接着初始化寄存器,初始化显示内容;然后执行按键查询,执行相应的操作。如果是设定键,则设定时间,开始计时;到时间后步进电机开始相应的工作,工作完成后停机。如果是电机控制键,则也执行相应的工作。如果都不是,则是复位键,采取复位操作。

5 仿真程序设计

总结

    本次设计系统地介绍了自动窗帘控制系统的硬件电路设计以及软件设计。本系统具有手动和自动两种模式。手动模式和自动模式可以通过按键切换。手动模式是根据用户的需求通过按键进行窗帘的开关,此功能可以使窗帘的开闭处于任何一种状态;自动模式是根据用户设定的光照强度值通过感光器采集光照自动开关窗帘根据用户设定的时间一次性开关窗帘。并显示当前温度,可以自行设置温度报警温度。应用STC89C52单片机的优势减少了硬件的复杂性,光敏电阻接收外界光照信号,传送给单片机一个电信号,单片机经过处理后,控制步进电机做出相应的动作,以控制窗帘的开闭。在实现一般应用的基础上,又添加了定时元器件电路,使窗帘的自动化性能得到进一步提升。光敏电阻的良好感光性以及步进电机的结构简单,控制方便的优点使窗帘控制开关更加稳定。

本次毕业设计的整个研究与设计过程包括选题、设计以及完善等。首先,在选题方面查阅了很多与题目有关的资料和课题并且制定设计方案,进行设计的总体规划,然后将这些方案落实到设计环节中。其次,在制定的方案基础上运用所学的知识对硬件以及软件进行设计,并用相关软件进行仿真设计。最后,对设计内容进一步修缮,以求达到最佳设计结果。虽然设计内容完成了基本的功能,但是其中还是存在一定欠缺,比如在设计中没有考虑到窗帘工作方式的显示以及没有添加类似红外遥控的设计等。

    此次设计过程中,在完成设计任务之外也让我系统性地认识和全面地掌握了单片机相关技术,从本次毕业设计中我更加深刻地认识到理念来源于实际的含义。在和同学以及老师的就相关问题的互相讨论交流中,我认识到自己的很多不足,但在这些不足中我又学到了很多知识,使我的综合应用能力有了很大提高。

源文件获取

资源-基于单片机的智能窗帘设计https://download.csdn.net/download/weixin_42625444/90685051或关注公众号【电子开发圈】,首页发送 “窗帘” 获取;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

电子开发圈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值