基于STC89C52单片机的自动窗帘的设计.docx
- 文档编号:25521448
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:28
- 大小:1.76MB
基于STC89C52单片机的自动窗帘的设计.docx
《基于STC89C52单片机的自动窗帘的设计.docx》由会员分享,可在线阅读,更多相关《基于STC89C52单片机的自动窗帘的设计.docx(28页珍藏版)》请在冰豆网上搜索。
基于STC89C52单片机的自动窗帘的设计
信息与控制工程学院硬件课程设计说明书
基于STC89C52单片机的自动窗帘的设计
学生学号:
学生姓名:
专业班级:
指导教师:
职称:
起止日期:
2013.04.20~2013.05.10
吉林化工学院
JilinInstituteofChemicalTechnology
课程设计任务书
一、设计题目:
基于STC89C52单片机的自动窗帘的设计
二、设计目的自动窗帘设计
1.掌握STC89C52单片机最小系统及其接口电路的设计;
2.熟练掌握单片机的编程方法;
3.掌握利用Kell进行软件仿真编程及程序下载的方法;
三、设计任务及要求
设计并实现窗帘自动控制系统。
该系统的基本功能有;
1.具有测量光强、温度及显示等功能;
2.具有设置光强、温度阀值以及超阀值报警功能;
3.具有自动拉开和闭合窗帘的功能。
四、设计时间及进度安排
设计时间共三周(2013.04.22~2013.05.10),具体安排如下表:
周安排
设计内容
设计时间
第一周
设计单片机的最小系统及外围电路的原理图,学习单片机开发工具Kell的使用,绘制设计电路原理图。
2013.04.22
~
2013.04.26
第二周
按照与原理图焊接电路板,学习单片机对各模块的的编程驱动方法以及掌握利用Kell进行编程,学习对单片机各模块功能程序的调试和整合。
2013.04.29
~
2013.05.03
第三周
软件下载并调试程序实现系统的基本功能,完成并提交硬件设计作品及硬件课程设计说明书,课程设计答辩。
2013.05.06
~
2013.05.10
五、指导教师评语及学生成绩
指导教师评语:
年月日
成绩
指导教师(签字):
第1章概述
1.1概述窗帘自动控制系统
伴随着信息化时代的到来,人们的生活速度以及对生活质量的追求也在大幅提高。
智能化的产品设计在改变人们工作方式与生活习惯的同时,让人们对生活质量的提升提出了更高的要求,方便、舒适成了人们所追求的生活方式,在现代家庭生活环境中,智能化的电子产品以及设计将以前的被动静止物体转变为人们能够方便操控的工具,这些产品具有提供全方位的信息交换的功能,不仅能够优化人们的生活方式,帮助人们合理的安排时间,增强居家环境的安全性,甚至还可以为各种能源费用节约资金。
在智能化产品中,单片机的应用已经越来越广泛,单片机以它体积小、质量轻、耗电省、可靠性高、价格低等优点。
针对人们对智能化的需求以及对舒适生活的追求,窗帘自动控制系统改变了传统窗帘的劣势,它可以根据外界光照强度的不同而自动开闭窗帘,也可以根据人们设定的时间来控制窗帘。
该系统利用光敏电阻检测光照强度的变化,并且将光敏检测模块的电阻变化转化为电压变化,然后将电压变化的信号送单片机,单片机通过电机驱动模块控制着步进电机的正反转实现窗帘的来回移动。
本设计正是把利用AT89C51单片机的优点以及简单实用性,顺利的完成了对智能控制的要求,并且为智能化的家居设备提供了良好的基础。
该系统具有一般的窗帘控制系统的最基本的功能,即通过电动按钮来开闭窗帘,在此基本功能的前提下,本设计根据需求还设计了可以根据光照强度和设定时间自动开闭窗帘的功能,在选取设计方案和采用元器件方面,该系统本着简单实用经济的思想,尽量简化电路设计,用最简单的电路布线和选用最经济实用的器件来达到设计要求。
光感自动窗帘控制系统具有以下几个基本功能:
(1)手动控制:
该功能是根据用户的需求通过按键进行窗帘的开关,此功能可以使窗帘处于开闭的任何一种状态;
(2)自动控制:
系统可以通过感光器采集室内光照强度,根据亮度的不同而自动控制窗帘的打开程度;
(4)时间控制:
此功能是根据用户设定的时间在特定的时间点一次性开关窗帘。
1.2系统设计方框图
光感自动窗帘控制系统设计的总体框图如图1-1所示。
图1-1光感自动窗帘控制系统设计的总体框图
第二章51单片机简介
2.1STC89C52介绍
STC89C52是一种带8K字节闪烁可编程可檫除只读存储器(FPEROM-FlashProgramableandErasableReadOnlyMemory)的低电压,高性能COMOS8的微处理器,俗称单片机。
该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
图2-1STC89C52PDIP封装图
STC89C52引脚介绍:
①主电源引脚(2根)
VCC(Pin40):
电源输入,接+5V电源
GND(Pin20):
接地线
②外接晶振引脚(2根)
XTAL1(Pin19):
片内振荡电路的输入端
XTAL2(Pin20):
片内振荡电路的输出端
③控制引脚(4根)
RST/VPP(Pin9):
复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。
ALE/PROG(Pin30):
地址锁存允许信号
PSEN(Pin29):
外部存储器读选通信号
EA/VPP(Pin31):
程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。
④可编程输入/输出引脚(32根)
STC89C52单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。
P0口(Pin39~Pin32):
8位双向I/O口线,名称为P0.0~P0.7
P1口(Pin1~Pin8):
8位准双向I/O口线,名称为P1.0~P1.7
P2口(Pin21~Pin28):
8位准双向I/O口线,名称为P2.0~P2.7
P3口(Pin10~Pin17):
8位准双向I/O口线,名称为P3.0~P3.7
STC89C52主要功能如表2-1所示:
表2-1
主要功能特性
兼容MCS51指令系统
8K可反复擦写FlashROM
32个双向I/O口
256x8bit内部RAM
3个16位可编程定时/计数器中断
时钟频率0-24MHz
2个串行中断
可编程UART串行通道
2个外部中断源
共6个中断源
2个读写中断口线
3级加密位
低功耗空闲和掉电模式
软件设置睡眠和唤醒功能
2.2STC89C52时钟电路
STC89C52内部有一个用于构成振荡器的高增益反相放大器,引脚RXD和TXD分别是此放大器的输入端和输出端。
时钟可以由内部方式产生或外部方式产生。
内部方式的时钟电路如图2—2所示,在RXD和TXD引脚上外接定时元件,内部振荡器就产生自激振荡。
定时元件通常采用石英晶体和电容组成的并联谐振回路。
晶体振荡频率可以在1.2~12MHz之间选择,电容值在5~30pF之间选择,电容值的大小可对频率起微调的作用。
外部方式的时钟电路如图2—3所示,RXD接地,TXD接外部振荡器。
对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。
片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。
RXD接地,TXD接外部振荡器。
对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。
片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。
图2-2内部方式时钟电路
图2—3外部方式时钟电路
2.3STC89C52复位电路
(1)复位操作
复位是单片机的初始化操作。
其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。
除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键重新启动。
除PC之外,复位操作还对其他一些寄存器有影响,它们的复位状态如表2-2所示。
表2-2
寄存器
复位状态
寄存器
复位状态
PC
0000H
TCON
00H
ACC
00H
TL0
00H
PSW
00H
TH0
00H
SP
07H
TL1
00H
DPTR
0000H
TH1
00H
P0-P3
FFH
SCON
00H
IP
XX000000B
SBUF
不定
IE
0X000000B
PCON
0XXX0000B
TMOD
00H
(2)复位信号及其产生
RST引脚是复位信号的输入端。
复位信号是高电平有效,其有效时间应持续24个振荡周期(即二个机器周期)以上。
若使用颇率为6MHz的晶振,则复位信号持续时间应超过4us才能完成复位操作。
产生复位信号的电路逻辑如图2—4所示:
图2—4产生复位信号的电路逻辑
整个复位电路包括芯片内、外两部分。
外部电路产生的复位信号(RST)送至施密特触发器,再由片内复位电路在每个机器周期的S5P2时刻对施密特触发器的输出进行采样,然后才得到内部复位操作所需要的信号。
复位操作有上电自动复位相按键手动复位两种方式。
上电自动复位是通过外部复位电路的电容充电来实现的,其电路如图2—5所示。
这佯,只要电源Vcc的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就成了系统的复位初始化。
按键手动复位有电平方式和脉冲方式两种。
其中,按键电平复位是通过使复位端经电阻与Vcc电源接通而实现的,其电路如图2—6所示;而按键脉冲复位则是利用RC微分电路产生的正脉冲来实现的,其电路如图2—7所示:
图2—5上电复位
图2—6按键电平复位
图2—7按键脉冲复位
2.4STC89C52最小系统
最小系统是指能进行正常工作的最简单电路。
STC89C52最小应用系统电路如图2-8所示。
它包含五个电路部分:
电源电路、时钟电路、复位电路、片内外程序存储器选择电路、输入/输出接口电路。
其中电源电路、时钟电路、复位电路是保证单片机系统能够正常工作的最基本的三部分电路,缺一不可。
①电源电路芯片引脚VCC一般接上直流稳压电源+5V,引脚GND接电源+5V的负极,电源电压范围在4~5.5之间,可保证单片机系统能正常工作。
为提高电路的抗干扰性能,通常在引角Vcc与GND之间接上一个10uF的电解电容和一个0.1uF陶片电容,这样可抑制杂波串扰,从而有效确保电路稳定性。
②时钟电路单片机引脚18和引脚19外接晶振及电容,STC89C52芯片的工作频率可在2~33MHz范围之间选,单片机工作频率取决于晶振XT的频率,通常选用11.0592MHz晶振。
两个小电容通常取值3pF,以保证振荡器电路的稳定性及快速性。
③复位电路一般若在引脚RST上保持24个工作主频周期的高电平,单片机就可以完成复位,但为了保证系统可靠地复位,复位电路应使引脚RST保持10ms以上的高电平。
如图复位电路带有上电自动复位功能,当电路上电时,由于C1电容两端电压值不能突变,电源+5V会通过电容向RST提供充电电流,因此在RST引脚上产生一高电平,使单片机进入复位状态。
随着电容C1充电,它两端电压上升使得RST电位下降,最终使单片机退出复位状态。
正常运行时,可按复位按钮对单片机复位
图2-8STC89C52最小系统
第三章硬件电路设计
3.1直流稳压电源设计
本次设计所用电源如图3-1,图3-2所示,分别为+5V和+9V。
220V交流电经降压变压器降压后输出到整流桥变成单向脉动电压,经滤波电容滤波后变为直流电压。
该直流电压值随电网电压波动,不能直接供给电子电路使用。
7805是专用三端稳压器件,输入滤波后的电压(约为9V)输出稳定的5V电压供单片机使用。
51单片机电源电压范围是2.7-5.5V,因此将5V电压经二极管降压0.7V后,供单片机系统使用。
经长期实验验证,单片机系统可长期安全可靠运行,其优点是与5V供电的TTL或CMOS电路接口,不必再加电平转换电路。
同样的7809也是专用的三端稳压器件,得到稳定度9V电压为电机供电。
交流220V电压经过交流变压器变为7.5V,再经过H桥变直流电压,在经过7805稳压器到直流+5V。
如图3-1所示:
图3-1电源为+5V的直流稳压源电路
交流220V电压经过交流变压器变为15V,再经过H桥变直流电压,在经过7805稳压器到直流+5V。
如图3-2所示
图3-2电源为+9V的直流稳压源电路
3.2单片机与键盘接口电路设计
在图3-3中按键没有按下时,按键所接单片机引脚被上拉电阻拉高,单片机P2端口高四位读入该位数据是“1”;有按键按下时,按键所接单片机引脚直接接于地,单片机读入该位数据是“0”。
图3-3单片机与键盘电路
3.3单片机与液晶显示1602接口电路设计
液晶显示器(LCD)具有工作电压低、微功耗、显示信息量大和接口方便等优点,现在已被广泛应用于计算机和数字式仪表等领域,成为测量结果显示和人机对话的重要工具。
液晶显示器按其功能可分为三类:
笔段式液晶显示器、字符点阵式液晶显示器和图形点阵式液晶显示器。
前两种可显示数字、字符和符号等,而图形点阵式液晶显示器还可以显示汉字和任意图形,达到图文并茂的效果,其应用越来越广泛。
LCD显示器在使用之前须根据具体配置情况初始化,初始化可在复位后完成,LCD1602初始化过程一般如下:
(1)清屏。
清除屏幕,将显示缓冲区DDRAM的内容全部写入空格(ASCII20H)。
光标复位,回到显示器的左上角。
地址计数器AC清零。
(2)功能设置。
设置数据位数,根据LCD1602与处理器的连接选择(LCD1602与51单片机连接时一般选择8位),设置显示行数(LCD1602为双行显示)。
设置字形大小(LCD1602为5×7点阵)。
(3)开/关显示设置。
控制光标显示、字符是否闪烁等。
(4)输入方式设置。
设定光标的移动方向以及后面的内容是否移动。
初始化后就可用LCD进行显示,显示时应根据显示的位置先定位,即设置当前显示缓冲区DDRAM的地址,再向当前显示缓冲区写入要显示的内容,如果连续显示,则可连续写入显示的内容。
由于LCD是外部设备,处理速度比CPU的速度慢,向LCD写入命令到完成功能须要一定的时间,在这个过程中,LCD处于忙状态,不能向LCD写入新的内容。
LCD是否处于忙状态可通过读忙标志命令来了解。
另外,由于LCD执行命令的时间基本固定,而且比较短,因此也可以通过延时等待命令完成后再写入下一个命令。
图3-4是LCD1602与STC89C51单片机的接口图,图中LCD1602的数据线与STC89C51的P2口和P0口相连,RS与STC89C51的P2.0相连,R/
与STC89C51的P2.1相连,E端与STC89C51的P2.2相连。
图3-4LCD1602与STC89C51单片机的接口电路
3.4光强检测电路设计
光敏电阻又称光导管,常用的制作材料为硫化镉,另外还有硒、硫化铝、硫化铅和硫化铋等材料。
这些制作材料具有在特定波长的光照射下,其阻值迅速减小的特性。
这是由于光照产生的载流子都参与导电,在外加电场的作用下作漂秱运动,电子奔向电源的正极,空穴奔向电源的负极,从而使光敏电阻器的阻值迅速下降。
光敏电阻的工作原理是基于内光电效应。
在半导体光敏材料两端装上电极引线,将其封装在带有透明窗的管壳里就构成光敏电阻,为了增加灵敏度,两电极常做成梳状。
在有光照射时入射光强,电阻减小,入射光弱,电阻增大。
当光线比较暗的时候,光敏电阻感应由A/D转换(AD0832)输入单片机并启动电机打开窗帘。
当光线比较亮时单片机又控制电机关闭窗帘,而且通过程序可根据光线强度分档。
电路如图3-5所示。
图3-5光强检测电路
3.4.1AD0832
ADC0832有8只引脚(如图3-6所示),CH0和CH1为模拟输入端,CS为片选引脚,只有CS置低才能对ADC0832进行配置和启动转换。
CLK为ADC0832的时钟输入端。
CS在整个转换过程中都必须为低,当CS为低时,在数据输入端DI(数据输入端)加一个高电平,接着在CLK上加一个时钟,DI上的逻辑1就会使ADC0832的DI脱离高阻态,然后通道配置数据拌随着时钟通过DI端移入多路器,当最后一位数据移入多路器时,DI变为高阻态,在这以前DO都为高阻态。
在经过一个时钟,DO脱离高阻态并启动转换。
接着从处理器接收时钟信号,每经过一个时钟,转换后的数据就会从高位到低位逐次从DO移出,经过8个时钟后,数据又以从低位到高位的形式从DO移出。
当最后一位数据移出时转换完成。
当CS从低变为高时,ADC0832内部所有寄存器清零。
如想要进行下一次转CS必须做一个从高到低的跳变,后跟着地此配置数据重复上面的过程。
图3-6AD0832
3.5电机控制电路设计
3.5.1电机驱动L293D介绍
L293D是集成电路芯片,片内含有双H桥驱动器,引脚图如图3-7所示。
输入小电流控制信号,输出高电压、大电流驱动信号。
用逻辑电平控制、驱动感性负载(比如继电器,直流电机和步进电机等)。
通过改变芯片控制端的输入电平,即可以对电机进行正反转操作。
芯片具有1.2A峰值输出电流通道,使用简易便。
其额定工作电流为1A,最大可达1.5A,Vss电压最小4.5V,最大可达36V;Vs电压最大值也是36V。
L293D是16引脚塑料封装,中间的4个引脚是短路的(为了散热),L293D的Vss和Vs电源端可分别接入芯片电源和电机驱动电源。
图3-7L293D引脚图
图3-8L293D功能示意图
L293D功能示意图如图3-7所示(对应20引脚芯片)。
L293D使能、输入引脚和输出引脚的逻辑关系如表3-1所示。
表3-1引脚和输出引脚的逻辑关系
ENA(B)
IN1(IN3)
IN2(IN4)
电机运行情况
H
H
L
正转
H
L
H
反转
H
同IN2(IN4)
同IN1(IN3)
快速停止
L
X
X
停止
H-桥电路的输入量可以用来设置电机转动方向,使能信号可以用于脉宽调整(PWM),实现电机转速控制。
L293D将2个H-桥电路集成到1片芯片上,这就意味着用1片芯片可以同时控制2个直流电机。
每1个直流电机需要3个控制信号EN1、IN1、IN2,其中EN1是使能信号,IN1、IN2为电机转动方向控制信号,IN1、IN2分别为1,0时,电机正转,反之,电机反转。
选用一路PWM连接EN1引脚,通过调整PWM的占空比可以调整电机的转速。
3.5.2单片机控制电路设计
驱动电路如图3-9所示,单片机PIO端口线P1.0、P1.1驱动。
当P1.0为高电平、P1.1位低电平时,L293D的IN4为高、IN3为低电平,OUT4为高、OUT3位低电平,电机正转;反之,当P1.0位低、P1.1为高电机反转;当P1.0、P1.1电平同时为高或低时,电机停转,实现了电机转向控制。
E2是OUT4、OUT3的使能端,高电平有效。
当在E2端加PWM信号时,可实现调速。
高速转动对应的PWM信号占空比为1;次高速占空比为0.75;中速转动占空比为0.5;低速转动占空比为0.25。
图3-9直流电机驱动电路
3.6温度检测电路设计
3.6.1DS18B20介绍
AD0832是美国国家半导体公司生产的一种8位分辨率、双通道A/D转换芯片。
由于它体积小,兼容性强,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。
学习并使用AD0832可是使我们了解A/D转换器的原理,有助于我们单片机技术水平的提高。
AD0832具有以下特点:
8位分辨率;双通道A/D转换;输入输出电平与TTL/CMOS相兼容;5V电源供电时输入电压在0~5V之间;工作频率为250KHZ,转换时间为32μS;一般功耗仅为15mW;8P、14P—DIP(双列直插)、PICC多种封装;商用级芯片温宽为0°Cto+70°C,工业级芯片温宽为−40°Cto+85°C;
芯片接口说明:
CS片选使能,低电平芯片使能。
CH0模拟输入通道0,或作为IN+/-使用
CH1模拟输入通道1,或作为IN+/-使用
GND芯片参考0电位(地)
DI数据信号输入,选择通道控制
DO数据信号输出,转换数据输出
CLK芯片时钟输入
Vcc/REF电源输入及参考电压输入(复用)
DS18B20芯片封装结构如图3-10所示:
图3-10DS18B20
DS18B20引脚功能:
GND:
电压地,DQ:
单数据总线,VDD:
电源电压。
DS18B20工作原理及应用:
DS18B20的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。
其一个工作周期可分为两个部分,即温度检测和数据处理。
在讲解其工作流程之前我们有必要了解18B20的内部存储器资源。
18B20共有三种形态的存储器资源,它们分别是:
ROM只读存储器:
用于存放DS18B20ID编码,其前8位是单线系列编码(DS18B20的编码是19H),后面48位是芯片唯一的序列号,最后8位是以上56的位的CRC码(冗余校验)。
数据在出产时设置不由用户更改。
DS18B20共64位ROM。
RAM数据暂存器:
用于内部计算和数据存取,数据在掉电后丢失,DS18B20共9个字节RAM,每个字节为8位。
第1、2个字节是温度转换后的数据值信息,第3、4个字节是用户EEPROM(常用于温度报警值储存)的镜像。
在上电复位时其值将被刷新。
第5个字节则是用户第3个EEPROM的镜像。
第6、7、8个字节为计数寄存器,是为了让用户得到更高的温度分辨率而设计的,同样也是内部温度转换、计算的暂存单元。
第9个字节为前8个字节的CRC码。
EEPROM非易失性记忆体,用于存放长期需要保存的数据,上下限温度报警值和校验数据,DS18B20共3位EEPROM,并在RAM都存在镜像,以方便用户操作。
3.6.2与单片机接口电路设计
只要求一个I/O口即可实现通信,本设计选用单片机端口P1.7。
图3-11温度测量电路
3.7报警电路设计
报警电路如图3-12所示,当光强超阀值P2.3和P1.3发出“1”,二极管发亮,蜂鸣器报警。
图3-12报警电路
第四章软件设计
4.1Keil软件的使用
Keil是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。
运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。
如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。
Keil软件具体使用方法:
一、先建立一个空文件夹,把工程文件放到里面,以避免和其他文件混合;作
二、点击桌面上的KeiluVision4图标;
三、点击“project---NewuVisionProject”新建一个工程,如图4-1所示;
)
图4-1新建一个工程
四、在对话框,选择放在刚才建立的“Mytest”文件夹下,给这个工程取个名后保存,不需要填后缀(如图4-2所示),注意默认的工程后缀与uVision3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 STC89C52 单片机 自动 窗帘 设计