单片机遥控窗帘课程设计.docx

上传人:b****4 文档编号:7007247 上传时间:2023-05-10 格式:DOCX 页数:26 大小:327.44KB
下载 相关 举报
单片机遥控窗帘课程设计.docx_第1页
第1页 / 共26页
单片机遥控窗帘课程设计.docx_第2页
第2页 / 共26页
单片机遥控窗帘课程设计.docx_第3页
第3页 / 共26页
单片机遥控窗帘课程设计.docx_第4页
第4页 / 共26页
单片机遥控窗帘课程设计.docx_第5页
第5页 / 共26页
单片机遥控窗帘课程设计.docx_第6页
第6页 / 共26页
单片机遥控窗帘课程设计.docx_第7页
第7页 / 共26页
单片机遥控窗帘课程设计.docx_第8页
第8页 / 共26页
单片机遥控窗帘课程设计.docx_第9页
第9页 / 共26页
单片机遥控窗帘课程设计.docx_第10页
第10页 / 共26页
单片机遥控窗帘课程设计.docx_第11页
第11页 / 共26页
单片机遥控窗帘课程设计.docx_第12页
第12页 / 共26页
单片机遥控窗帘课程设计.docx_第13页
第13页 / 共26页
单片机遥控窗帘课程设计.docx_第14页
第14页 / 共26页
单片机遥控窗帘课程设计.docx_第15页
第15页 / 共26页
单片机遥控窗帘课程设计.docx_第16页
第16页 / 共26页
单片机遥控窗帘课程设计.docx_第17页
第17页 / 共26页
单片机遥控窗帘课程设计.docx_第18页
第18页 / 共26页
单片机遥控窗帘课程设计.docx_第19页
第19页 / 共26页
单片机遥控窗帘课程设计.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

单片机遥控窗帘课程设计.docx

《单片机遥控窗帘课程设计.docx》由会员分享,可在线阅读,更多相关《单片机遥控窗帘课程设计.docx(26页珍藏版)》请在冰点文库上搜索。

单片机遥控窗帘课程设计.docx

单片机遥控窗帘课程设计

河南理工大学

《单片机应用与仿真训练》设计报告

基于单片机的遥控

窗帘设计

 

姓名:

学号:

301080131080801

专业班级:

电气班

指导老师:

   

所在学院:

电气工程与自动化学院

20年5月30日

 

摘要

本设计是基于单片机的遥控窗帘,采用8位的AT89S52单片机做控制器,程序采用C语言编程。

利用直流电机正反转,实现控制窗帘的开关。

直流电机用专用驱动集成电路L298N驱动,L298N属于H桥集成电路,输出电流大,功率强,最大输出功率达200W。

用单片机通过光耦TLP521-4控制芯片L298N的使能端ENABLEA和输入端IN1、IN2,达到控制电机正转、反转、停止的目的。

而且,光耦采用砷化镓红外发光二极管耦合到光三极管,输入的电信号驱动发光二极管(LED),使之发出一定波长的光,被光探测器接收而产生光电流,再经过进一步放大后输出。

这就完成了电—光—电的转换,从而起到输入、输出、隔离的作用。

无线遥控是由PT2262/PT2272编码解码芯片组成的无线发送接收模块,通过PT2272接收输出端D0、D1、D2、D3输出信号控制单片机,再利用单片机控制L298N来控制直流电机。

利用霍尔传感器和定时器/计数器T0来实现窗帘的防过卷,将磁钢吸附在直流电机拖动的转盘上做为磁场源,当霍尔器件所在位置的磁场尚未达到工作点之前,器件以高电平输出,当磁场增强到工作点(Bop)时,霍尔片输出的电压UH经差分放大器放大后,送至施密特触发器,使之翻转导通,从而使门电路输出端由高电平变为低电平,高低电平的变化给计数器T0一个外部脉冲信号,计数器计数一次。

 

关键词:

单片机、直流电机、L298N、光耦、无线遥控、霍尔传感器

 

目录

1概述3

1、1单片机发展应用背景3

1、2基于单片机的遥控窗帘设计的基本要求4

1、3智能遥控窗帘的构架框图4

2系统总体方案及硬件设计5

2、1自动窗帘总体设计方案5

2、2按键控制模块6

2、3无线遥控模块7

2、4光电隔离芯片8

2、5驱动模块8

2、6霍尔传感器测量模块11

3软件设计12

3、1按键或者遥控控制电机正转、反转、停止12

4Proteus软件仿真15

4、1驱动模块的仿真15

4、2仿真结果18

5课程设计体会18

参考文献19

附1源程序代码21

附2系统原理图25

 

1概述

1、1单片机发展应用背景

当今,计算机技术带来了科研和生产的许多重大飞跃,微型计算机的应用已渗透到生产、生活的各个方面。

其中单片机问世不久,然而体积小、廉价、功能强,其销售额每年近80%的速度增长。

它的性能不断提高,适用范围越来越宽,在计算机应用领域已占有日益重要的地位。

近几年来,随着科学技术的发展和人民生活水平的日益提高,城市建设步伐的加快,一栋栋居民楼、写字楼、宾馆拔地而起。

进入寻常百姓的家用电器品种与数量愈来愈多,这些家用电器有的能减轻人们的家务、有的能丰富人们的文娱生活,有的则能提高人们的生活质量……

为了进一步满足人们高水准生活的需要,家用电器产品性能也在不断的更新挽代,从始初的晶体管、到电子管;由模拟到数字;由分立元件到集成电路;从普通向高性能、多功能型;由手动控制向红外线遥控、向智能化发展。

与此同时,窗帘作为装修业不可缺少的一部分,也日益火爆起来,目前,常用的窗帘轨道都是钢丝绳手拉式或滑轮式,只有一部分高收入的家庭采用是电动遥控轨道。

但价格相当昂贵,不能普及。

所以设计的目标就是实现功能全、造价省。

能够进入大众生活。

一款使用微电脑管理的、红外遥控器控制的多功能窗帘,控制器符合当今的发展趋势。

该窗帘控制器采用AT89S52单片机的最小系统设计,控制一个直流电动机控制窗帘的拉开和关闭。

1、2基于单片机的遥控窗帘设计的基本要求

采用两人一组进行设计,共同协作完成设计:

(1)首先按设计题目要求制订方案。

(2)设计出硬件原理图。

(3)焊接电路。

(4)对设计的硬件、软件调试,直至正确地实现系统功能。

设计系统的功能目标:

1)控制窗帘的开关、利用直流电机正反转实现。

2)防过卷功能。

3)具有无线遥控和手动按键控制两种功能。

4)能够指示运行状态。

我们的设计目标是以以上设计为基础,尽量设计出实用美观的硬件电路,以及智能化、人性化的程序。

使我们的设计总体上更贴近于实际应用,综合性能和工艺造价符合实际应用的要求。

1、3智能遥控窗帘的构架框图

以AT89S51为控制器,程序采用C语言编程。

利用直流电机正反转,实现控制窗帘的开关。

直流电机用专用驱动集成电路L298N驱动,L298N属于H桥集成电路,输出电流大,功率强,最大输出功率达200W。

用单片机通过光耦TLP521-4控制芯片L298N的使能端ENABLEA和输入端IN1、IN2,达到控制电机正转、反转、停止的目的。

而且,光耦采用砷化镓红外发光二极管耦合到光三极管,输入的电信号驱动发光二极管(LED),使之发出一定波长的光,被光探测器接收而产生光电流,再经过进一步放大后输出。

这就完成了电—光—电的转换,从而起到输入、输出、隔离的作用。

无线遥控是由PT2262/PT2272编码解码芯片组成的无线发送接收模块,通过PT2272接收输出端D0、D1、D2、D3输出信号控制单片机,再利用单片机控制L298N来控制直流电机。

利用霍尔传感器和定时器/计数器T0来实现窗帘的防过卷,将磁钢吸附在直流电机拖动的转盘上做为磁场源,当霍尔器件所在位置的磁场尚未达到工作点之前,器件以高电平输出,当磁场增强到工作点(Bop)时,霍尔片输出的电压UH经差分放大器放大后,送至施密特触发器,使之翻转导通,从而使门电路输出端由高电平变为低电平,高低电平的变化给计数器T0一个外部脉冲信号,计数器计数一次。

系统分为遥控模块、驱动模块、霍尔传感器测量模块、按键控制四个大的模块,他们的关系如下图所示:

2系统总体方案及硬件设计

2、1自动窗帘总体设计方案

本设计是基于单片机的遥控窗帘,采用8位的AT89S52单片机做控制器,程序采用C语言编程。

利用直流电机正反转,实现控制窗帘的开关。

直流电机用专用驱动集成电路L298N驱动,L298N属于H桥集成电路,输出电流大,功率强,最大输出功率达200W。

用单片机通过光耦TLP521-4控制芯片L298N的使能端ENABLEA和输入端IN1、IN2,达到控制电机正转、反转、停止的目的。

而且,光耦采用砷化镓红外发光二极管耦合到光三极管,输入的电信号驱动发光二极管(LED),使之发出一定波长的光,被光探测器接收而产生光电流,再经过进一步放大后输出。

这就完成了电—光—电的转换,从而起到输入、输出、隔离的作用。

无线遥控是由PT2262/PT2272编码解码芯片组成的无线发送接收模块,通过PT2272接收输出端D0、D1、D2、D3输出信号控制单片机,再利用单片机控制L298N来控制直流电机。

利用霍尔传感器和定时器/计数器T0来实现窗帘的防过卷,将磁钢吸附在直流电机拖动的转盘上做为磁场源,当霍尔器件所在位置的磁场尚未达到工作点之前,器件以高电平输出,当磁场增强到工作点(Bop)时,霍尔片输出的电压UH经差分放大器放大后,送至施密特触发器,使之翻转导通,从而使门电路输出端由高电平变为低电平,高低电平的变化给计数器T0一个外部脉冲信号,计数器计数一次。

2、2按键控制模块

对应于硬件电路,从上到下。

按键分别为K1表示按键作为外部中断0的触发脉冲、K2表示外部中断1的触发脉冲和K3表示P10按键停止。

作为一个独立的模块,按键能实现执行电机正转、反转、停止的功能。

其中,按键K1(外部中断0的触发脉冲)按下后,程序执行外部中断0的中断服务程序。

按键K2(外部中断1的触发脉冲)按下后,程序执行外部中断1的中断服务程序。

按键K3(对应于P10口)按下后,电机即停止正转或者反转,也即停止窗帘的移动。

2、3无线遥控模块

无线遥控模块采用PT2262/PT2272编码解码芯片做成的无线发送接受模块。

编码芯片PT2262发出的编码信号由:

地址码、数据码、同步码组成一个完整的码字,解码芯片PT2272接收到信号后,其地址码经过两次比较核对后,VT脚才输出高电平,与此同时相应的数据脚也输出高电平,如果发送端一直按住按键,编码芯片也会连续发射。

当发射机没有按键按下时,PT2262不接通电源,其17脚为低电平,所以315MHz的高频发射电路不工作,当有按键按下时,PT2262得电工作,其第17脚输出经调制的串行数据信号,当17脚为高电平期间315MHz的高频发射电路起振并发射等幅高频信号,当17脚为低平期间315MHz的高频发射电路停止振荡,所以高频发射电路完全收控于PT2262的17脚输出的数字信号,从而对高频电路完成幅度键控(ASK调制)相当于调制度为100%的调幅。

PT2262/PT2272特点:

(a)、CMOS工艺制造,低功耗

(b)、外部元器件少

(c)、RC振荡电阻

(d)、工作电压范围宽:

2。

6-15v

(e)、数据最多可达6位

(f)、地址码最多可达531441种

在通常使用中,一般采用8位地址码和4位数据码,这时编码电路PT2262和解码PT2272的第1~8脚为地址设定脚,有三种状态可供选择:

悬空、接正电源、接地三种状态,3的8次方为6561,所以地址编码不重复度为6561组,只有发射端PT2262和接收端PT2272的地址编码完全相同,才能配对使用,遥控模块的生产厂家为了便于生产管理,出厂时遥控模块的PT2262和PT2272的八位地址编码端全部悬空,这样用户可以很方便选择各种编码状态,用户如果想改变地址编码,只要将PT2262和PT2272的1~8脚设置相同即可,例如将发射机的PT2262的第1脚接地第5脚接正电源,其它引脚悬空,那么接收机的PT2272只要也第1脚接地第5脚接正电源,其它引脚悬空就能实现配对接收。

当两者地址编码完全一致时,接收机对应的D1~D4端输出约4V互锁高电平控制信号,同时VT端也输出解码有效高电平信号。

用户可将这些信号加一级放大,便可驱动继电器、功率三极管等进行负载遥控开关操纵。

使用过程中,我们将GND端接地,Vss接+5V电源,D0、D1、D2、D3分别引到单片机的引脚上,VT不用悬空。

当遥控发送模块按下按键A时,可以用万用表测得D0对应的引脚由低电平翻转为高电平。

同样地,当遥控发送模块按下按键B时,可以用万用表测得D1对应的引脚由低电平翻转为高电平。

当遥控发送模块按下按键C时,可以用万用表测得D2对应的引脚由低电平翻转为高电平。

当遥控发送模块按下按键D时,可以用万用表测得D3对应的引脚由低电平翻转为高电平。

我们可以根据电平的变化,来控制相关模块。

2、4光电隔离芯片

TLP521是可控制的光电藕合器件,光电耦合器广泛作用在电脑终端机,可控硅系统设备,测量仪器,影印机,自动售票,家用电器,如风扇,加热器等电路之间的信号传输,使之前端与负载完全隔离,目的在于增加安全性,减小电路干扰,减化电路设计。

TLP521-1,-2和-4组成的砷化镓红外发光二极管耦合到光三极管。

该TLP521-2提供了两个孤立的光耦8引脚塑料封装,而TLP521-4提供了4个孤立的光耦中16引脚塑料DIP封装集电极-发射极电压:

55V(最小值)经常转移的比例:

50%(最小)隔离电压:

2500Vrms(最小)

TLP521TLP521-2TLP521-4光藕内部结构图及引脚图:

应用时,可以在二极管的阳极加一个1K左右的上拉电阻,三极管的集电极加一个1K左右的上拉电阻。

当用单片机给二极管的阴极施加低电平时,对应的三极管的发射极就会导通,可以作为电流驱动。

一般光电隔离的两端的所有器件,不要再共用同一个电源和地。

2、5驱动模块

恒压恒流桥式2A驱动芯片L298NL298是SGS公司的产品,比较常见的是15脚Multiwatt封装的L298N,内部同样包含4通道逻辑驱动电路。

可以方便的驱动两个直流电机,或一个两相步进电机。

L298N芯片可以驱动两个二相电机,也可以驱动一个四相电机,输出电压最高可达50V,可以直接通过电源来调节输出电压;可以直接用单片机的IO口提供信号;而且电路简单,使用比较方便。

L298N可接受标准TTL逻辑电平信号VSS,VSS可接4.5~7V电压。

4脚VS接电源电压,VS电压范围VIH为+2.5~46V。

输出电流可达2.5A,可驱动电感性负载。

1脚和15脚下管的发射极分别单独引出以便接入电流采样电阻,形成电流传感信号。

L298可驱动2个电动机,OUT1,OUT2和OUT3,OUT4之间可分别接电动机,本实验装置我们选用驱动一台电动机。

5,7,10,12脚接输入控制电平,控制电机的正反转。

EnA,EnB接控制使能端,控制电机的停转。

表1是L298N功能逻辑图。

(1)虚线框图1控制电机正反转,U1A,U2A是比较器,VI来自炉体压强传感器的电压。

当VI>VRBF1时,U1A输出高电平,U2A输出高电平经反相器变为低电平,电机正转。

同理VI<VRBF1时,电机反转。

电机正反转可控制抽气机抽出气体的流量,从而改变炉体压强。

(2)虚线框图2中,U3A,U4A两个比较器组成双限比较器,当VB<VI<VA时输出低电平,当VI>VA,VI<VB时输出高电平。

VA,VB是由炉体压强转感器转换电压的上下限,即反应炉体压强控制范围。

根据工艺要求,我们可自行规定VA,VB的值,只要炉体压强在VA,VB所确定范围之间电机停转(注意VB<VRBF1<VA,如果不在这个范围内,系统不稳定)。

(3)虚线框图3是一个长延时电路。

U5A是一个比较器,Rs1是采样电阻,VRBF2是电机过流电压。

Rs1上电压大于VREF2,电机过流,U5A输出低电平。

由上面可知,框图1控制电机正反转,框图2控制炉体压强的纹波大小。

当炉体压强太小或太大时,电动机转到两端固定位置停止,根据直流电机稳态运行方程[3]:

U=CeФN+RaIa

其中:

Ф为电机每极磁通量; Ce为电动势常数;N为电机转数;Ia为电枢电流;Ra电枢回路电阻。

电机转数N为0,电机的电流急剧增加,时间过长将会使电机烧坏。

但电机起动时,电机中线圈中的电流也急剧变大,因此我们必须把这两种状态分开。

长延时电路可把这两种状态区分出来。

长延时电路工作原理:

当Rs1过流U5A产生一个负脉冲经过微分后,脉冲触发555的2脚,电路置位,3脚输出高电平,由于放电端7脚开路,C1,R5及U6A组成积分器开始积分,电容C1上的充电电压线性上升,延时运放积分常数为100R5C1。

当C1上充电电压,即6脚电压超过2/3VCC,555电路复位,输出低电平。

电机启动时间一般小于0.8s,C1充电时间一般为0.8~1s。

U5A输出电平与555的3脚输出电平经U7相或,如果U5A输出低电平大于C1充电时间,U7在C1充电后输出低电平由与门U8输入到L298N的6脚ENA端使电机停止。

如果U5A的输出电平小于C1充电时间,6脚不动作电机的正常启动。

长延时电路吸收电机启动过流电压波形,从而使电机正常启动。

下图是其引脚图:

1、15脚是输出电流反馈引脚,其它与L293相同。

在通常使用中这两个引脚也可以直接接地。

上图是其与51单片机连接的电路图。

应用时,我们将Vss和Vs引脚都接+5V。

用ENA选择使用第一组输入IN1、IN2。

GND和SENSEA和SENSEB接地。

IN1、IN2从光耦的发射极引出。

Output1和Output2受IN1和IN2的控制,做输出端控制直流电机正转、反转、停止。

2、6霍尔传感器测量模块

根据霍尔效应制成的霍尔传感器不仅可以用于磁场的测量,大量的还是以磁场为工作媒体,将物体的多种运动参量转变为电压输出,因而在自动控制、各种物理量的测量中得到了大量的应用。

集成霍尔传感器主要由霍尔片和放大器组成,根据不同应用的需要,有的还加温度补偿电路、稳压电源或施密特触发器及开关电路等,加了不同附加器件后其应用和特性各不相同。

集成霍尔传感器的特点是:

体积小、频响宽、动态特性好、对外围电路要求简单、使用寿命长及价格低廉。

器件输出电压与器件所在位置的磁场强度成线性关系。

如SS95A系列和MLX90215系列,运用此类器件时,只要选取适当的小磁钢,就可将与小磁钢一起运动的物体的位置、位移、速度、角度等信息以电信号的形式传感出来,达到了自动测量与控制的目的。

当霍尔器件所在位置的磁场尚未达到工作点之前,器件以高电平输出,当磁场增强到工作点(Bop)时,霍尔片输出的电压UH经差分放大器放大后,送至施密特触发器,使之翻转导通,从而使门电路输出端由高电平变为低电平,称此为“开”状态。

反之,当磁场减小到释放点(Brp)时,门电路输出端截止,则由低电平变为高电平,称为“关”状态。

常见的霍尔开关有UGN3109、A44E和US5881。

由于该传感器只对一定强度的磁场起作用,抗干扰能力强,因而应用广泛。

当磁场超过工作点时,其输出导通为低电平,而当磁场变小乃至完全撤消后,其输出状态保持不变,必须施加一个反向磁场,才能达到释放点,输出截止转为高电平,可见具有锁存记忆功能。

常见的集成霍尔锁存器有UGN3075和US1881。

US1881有两种封装形式:

当磁钢从霍尔传感器的前面重复消磁、励磁的过程中,其OUT端会输出一个电平变化信号,作为计数器T0的外部脉冲。

整个系统也就是根据霍尔传感器和磁钢一起用产生外部脉冲,使得T0计数的这个特性来实现窗帘的防过卷功能的。

是整个设计的关键点之一,使用它可以实现窗帘的智能化。

3软件设计

3、1按键或者遥控控制电机正转、反转、停止

用一下程序实现电机的真反转,并计数

while

(1)//等待中断

{

delay

(2);

if((AK==1)&&(P10==0))//遥控或者按键正转

{

TR0=1;

EX1=0;//关外部中断1

ENABLEA=1;

while(!

CK)

{

P26=1;

P25=0;

}

P26=1;

P25=1;

TR0=0;

EX1=1;//开外部中断1

ENABLEA=0;

}

if((P0==0xf2)&&(P10==0))//遥控或者按键反转

{

EX0=0;//关外部中断0

TR0=1;

ENABLEA=1;

fanzhuanjishuH=TH0;

fanzhuanjishuL=TL0;

while(!

CK)

{

P26=0;

P25=1;

}

P26=1;

P25=1;

TH0=fanzhuanjishuH-TH0;

TL0=fanzhuanjishuL-TL0;//重新设定计数初值

TR0=0;

EX0=1;//开外部中断0

ENABLEA=0;

}

}

}

voidzhengzhuan()interrupt0//按键正转(外部中断0)

{

EX1=0;//关外部中断1

TR0=1;

ENABLEA=1;

while((!

CK)||(P10==0))

{

P26=1;

P25=0;

delay

(2);

}

P26=1;

P25=1;

EX1=1;//开外部中断1

TR0=0;

delay

(2);

}

voidfanzhuan()interrupt2//按键反转(外部中断1)

{

EX0=0;//关外部中断0

TR0=1;

ENABLEA=1;

fanzhuanjishuH=TH0;

fanzhuanjishuL=TL0;

while((!

CK)||(P10==0))

{

P26=0;

P25=1;

delay

(2);

}

P26=1;

P25=1;

TH0=fanzhuanjishuH-TH0;

TL0=fanzhuanjishuL-TL0;//重新设定计数初值

EX0=1;//开外部中断0

TR0=0;

delay

(2);

}

利用一下程序模块来实现防过卷功能

voidfangguojuan()interrupt1//定时器0中断

{

EA=0;

P26=1;

P25=1;

TH0=COUNTTH0;

TL0=COUNTTL0;

TF0=0;

EA=1;

}

利用以下程序来使系统能嵌入不同的窗户上使用

if((P0==0xf8)&&(P10==0))//firstuse

{

EA=0;

TR0=1;

ENABLEA=1;

delay

(2);

while((!

CK)||(P10==0))//窗户关闭后按遥控发送C键或者固定停止键

{

P26=1;

P25=0;

}

P26=1;

P25=1;

COUNTTH0=0xff-TH0;//计算计数初值高8位

COUNTTL0=0xff-TL0;//计算计数初值低8位

TH0=COUNTTH0;

TL0=COUNTTL0;

ENABLEA=0;

EA=1;

}

4Proteus软件仿真

4、1驱动模块的仿真

仿真程序

#include

unsignedcharflag=1;

sbitP10=P1^0;//按键停止

sbitENABLEA=P2^7;//选择第一组IN1、IN2

sbitP26=P2^6;//正转IN1

sbitP25=P2^5;//反转IN2

voiddelay(intn)//10ms延时

{

inti=0,j;

while(n--)

{

for(i=0;i<10;i++)

{

for(j=0;j<125;j++);

}

}

}

voidmain(void)

{

EA=1;//开总中断

IT0=1;//边沿触发

IT1=1;

EX0=1;//开外部中断0

EX1=1;//开外部中断1

delay

(2);

if(P0==0xf8&&P10==0)//firstuse

{

ENABLEA=1;

delay(100);

while(P10)

{

P26=0;

P25=1;

}

ENABLEA=0;

}

while

(1)//等待中断

{

delay

(2);

if(flag&&P10==1)

{

ENABLEA=1;

while(flag)

{

P26=1;

P25=0;

delay

(2);

if(P10==0)

{

break;

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2