1、 基于单片机的遥控窗帘设计 基于单片机的遥控窗帘设计摘要:本产品是以AT89S52为控制核心的遥控窗帘,通过键盘控制或者远程遥控可以实现遥控窗帘不同的工作模式以及对窗帘的位置通过霍尔传感器反馈信号控制。遥控窗帘的不同模式通过共阴极的发光二极管进行显示。每次进行模式切换时能实现窗帘的左右移动,窗帘的左右移动是利用单片机通过光电耦合器用一个由L298N驱动芯片驱动的5V的直流电机的正反转带动实现的。除此进行电子设。总体来说产品从功能上来说较为简单,从成本上来说造价低,经济实用。关键字:AT89S52 窗帘 霍尔传感器 发光二极管L298N 直流电机1 引言窗帘是我们房屋设计中必须有的东西,对于大多
2、数来说,都需要认为的机械拉动来实现,对于现在的日益发达的科技来说显得十分不协调,不利于实现电力自动化。因此基于以上的原因,我们组经过共同的讨论和深入考虑决定做遥控窗帘。我们的作品采用了AT89S52单片机进行了简单的设计,并通过驱动放大电路驱动电机,中间还有控制不同模式遥控窗帘开关控制电路。总的来说我们的作品还算成功吧,只是在设计时出现了光耦电路无法实现,最后由上拉电阻,由低电平信号来实现的,软件设计很简单。但是我们还会继续努力争取取得更大的进步。2 基本硬件系统的设计与功能实现2.1 基本要求(1)控制窗帘的开关、利用直流电机正反转来实现窗帘的开与关。(2)防过卷功能:利用霍尔传感器引入反馈
3、来达到防止过卷。(3)具有无线遥控和手动按键控制两种功能控制单片机来控制窗帘的开关。(4)能够指示运行状态:通过发光二极管来指示电机的正反转,以控制窗帘开关。2.2单片机控制系统原理及电路图为了简化电路、降低成本、提高可靠性,本系统采用AT89S52作为主控制核心部件,主要通过按键或者远程控制信号来实现电机的驱动的控制信号。电路图见附页。 2.2.1 AT89S52简介 AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可
4、编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。2.2.2 AT89S52引脚介绍 图1 AT89S52引脚图 DIP封装 与工业80C51 产品指令和引脚完 全兼容。片上Flash允许程序存储器在系统可编程,亦适于 常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统 可编程Flash,使得AT89S52为众多嵌入式控制应用系统提 供高灵活、超有效的解决方案。 AT89S52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16
5、 位 定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路另外,AT89S52 可降至0Hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工 作。掉电保护方式下,RAM内容被保存,振荡器被冻结, 单片机与工业80C51 产品指令和引脚完 全兼容。片上Flash允许程序存储器在系统可编程,亦适于 常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统 可编程Flash,使得AT89S52为众多嵌入式控制应用系统提 供高灵活、超有效的解决方案。 AT89S52具有以下标准功能: 8k字节Flash,25
6、6字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路另外,AT89S52 可降至0Hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工 作。掉电保护方式下,RAM内容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。 P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻 辑电平。对P0端口写“1”时,引脚用作高阻抗输入。 当访问外部程序和数据存储器时,P0口也被作为
7、低8位地址/数据复用。在这种模式下, P0不具有内部上拉电阻。 在flash编程时,P0口也用来接收指令字节;在程序 校验时,输出指令字节。程序校验 时,需要外部上拉电阻。 P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个 TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.1分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2 的触发输入(P1.1/T2EX)。 在flash编程和校验时,P1口
8、接收低8位地址字节。引脚号第二功能:P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出;P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制); P1.5 MOSI(在系统编程用);P1.6 MISO(在系统编程用);P1.7 SCK(在系统编程用)P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个 TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行
9、MOVX DPTR) 时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用 8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。 在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p3 输出缓冲器能驱动4 个 TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。 在flash编程和
10、校验时,P3口也接收一些控制信号。 端口引脚 第二功能:P3.0 RXD(串行输入口) ;P3.1 TXD(串行输出口) ;P3.2 INTO(外中断0) ;P3.3 INT1(外中断1) ;P3.4 TO(定时/计数器0) ;P3.5 T1(定时/计数器1) ;P3.6 WR(外部数据存储器写选通) ;P3.7 RD(外部数据存储器读选通) 此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。 RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低
11、8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有
12、效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。 EA/VPP:外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。2.3 单片机选择及主机系统电路 2.3.1 单片机介绍单片机又称
13、单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可.用它来做一些控制电器一类不是很复杂的工作足矣了。我们现在用的全自动滚筒洗衣机、排烟罩、VCD等等的家电里面都可以看到它的身影!.它主要是作为控制部分的核心部件。 它是一种在线式
14、实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用PC)的主要区别。 单片机是靠程序的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性!目前单片机渗透到我们生活的各个领域,几乎很
15、难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。2.3.2 单片机最小应用系统图图2 AT89S51最小系统接线图2.4 基于单片机的遥控窗帘设计2.4.1 设计要求1. 控制窗帘的开关、利用直流电机正反转实现。2. 防过卷功能。3. 具有无线
16、遥控和手动按键控制两种功能。4. 能够指示运行状态。 2.4.2 各部分介绍图3 键盘电路 当无按键按下时,输出端口为高电平,当有按键按下的时候,则对应的端口为低电平,并且对应的发光二极管点亮。从右到左依次为A B分别接单片机AT89S52的P2.0 P2.1口。图4 远程遥控芯片接口图 对应的端口接对应的接口。GND +5分别介于地与+5V上,D0 D1分别接单片机AT89S52的P0.0 P0.1口,D2 D3 悬空不用,VT端口接个发光二极管用来指示是否用无线遥控开关控制的。当遥控器上的A B分别按下时D0 D1分别置于1,且每次按下VT为1。1.技术参数 : (1) 工作电压(V):D
17、C5V(2) 静态电流(mA):4.5MA(3) 调制方式:调幅(OOK)(4) 工作温度:-10+70(5) 接收灵敏度(dBm):-105DB(6) 工作频率:315、433.92MHz(266-433MHZ频率段可任选)(7) 编码方式:焊盘编码(固定码)(8) 工作方式:M4(点动:按住不松手就输出,一松手就停止输出)、L4(互锁:四路同时只能有一路输出)、T4(自锁:四路相互独立输出、互不影响,按一下输出再按一下停止输出)(9) 尺寸(LWH):41*23*7mm2. 产品特点:超再生接收模块采用LC振荡电路,内含放大整形,输出的数据信号为解码后的高电平信号,使用极为方便,并且价格低
18、廉,所以被广泛使用。带四路解码输出(同时也可改为六路点动或互锁输出),使用方便;频点调试容易,供货周期短;产品质量一致性好,性价比高。 接收模块有较宽的接收带宽,一般为10MHz,出厂时一般调在315MHz或433.92MHZ(如有特殊要求可调整频率,频率的调整范围为266MHz433MHz。)。接收模块一般采用DC5V供电,如有特殊要求可调整电压范围。3. 脚位及使用说明:脚位名称功能说明1VT输出状态指示2D3数据输出3D2数据输出4D1数据输出5D0数据输出65V电源正极7GND电源负极ANT接天线端 表1 脚位 接收模块一共有八个外部接口,上面有英文表示。“5V”表示接电源正极,“ D
19、0、D1、D2、D 3”表示输出,“GND”表示接电源负极,“ANT”表示接天线端。使用前要接上50欧姆1/4波长的天线,并且天线应该是直的,以达到最佳的接收效果,波长=光速/频率。4. 应用环境(应用领域)无线遥控开关、遥控插座、数据传输、遥控玩具、防盗报警主机、车库门、卷闸门、道闸门、伸缩门等门控业及其遥控音响领域等。5. 备注VCC电压要与模块工作电压一致,且要做好电源滤波;天线位置对模块接收效果亦有影响,安装时,天线尽可能伸直,远离屏蔽体,高压,及干扰源的地方;使用时接收频率、解码方式应与发射匹配。图5 光耦驱动电路 端口1接+5V,当2端口为GND时,电压驱动发光二极管发光,同时光敏
20、三极感光,输出低电平;当端口1为0时,发光二极管不导通,不发光,输出为电平为高电平。光电耦合器主要起到光电隔离,防止相互干扰。图6 L298N 管脚图引脚符号功能115SENSING ASENSING B此两端与地连接电流检测电阻,并向驱动芯片反馈检测到的信号23OUT 1OUT 2此两脚是全桥式驱动器A的两个输出端,用来连接负载4Vs电机驱动电源输入端57IN 1IN2输入标准的TTL逻辑电平信号,用来控制全桥式驱动器A的开关611ENABLE AENABLE B使能控制端.输入标准TTL逻辑电平信号;低电平时全桥式驱动器禁止工作。8GND接地端,芯片本身的散热片与8脚相通9Vss逻辑控制部
21、分的电源输人端口1012IN 3IN 4输入标准的TTL逻辑电平信号,用来控制全桥式驱动器B的开关1314OUT 3OUT 4此两脚是全桥式驱动器B的两个输出端,用来连接负载表2L298的逻辑控制见如下表3.3。其中C、D分别为IN1、IN2或IN3、IN4;L为低电平,H为高电平,为不管是低电平还是高电平。输入输出Ven=HC=H;D=L正转C=L;D=H反转C=D制动Ven=LC=;D=没有输出,电机不工作表3 L298对直流电机控制的逻辑真值表图7 L298N接线图图为本次课程设计的L298N接线图,1 8 15分别接地,4 6 9分别接+5V电源,2 3为输出,5 7为输入。图8 指示
22、电路图上图为指示电路图,当有一端输出时,也就是一个高电平一个低电平,发光二极管发光,当相反时,另一个二极管发光来达到指示电机正反转。图9 如图所示,对应的端口分别接对应的地与+5V。当有磁铁靠近时,输出为高电平。当窗帘右移时,达到指定的位置时,对应的输出为高电平,电机停转。当窗帘左移时,到达指定的位置时,对应的输出为高电平,电机停转。总电路接线图如下:见附页。3 软件设计3.1 流程图开始霍尔感应,电机停止转动键盘扫描 电机反转电机正转霍尔感应,电机停止转动 重新扫描键盘 图10 流程图课程设计体会通过本次课程设计,使我对单片机有了更深入的理解。单片机是一门实践性较强的课程,为了学好这门课程,
23、必须在掌握理论知识的同时,加强实践。一个人的力量是有限的,要想把课程设计做的更好,就要学会参考一定的资料,吸取别人的经验,让自己和别人的思想有机的结合起来,得出属于你自己的灵感。 程序的编写需要有耐心,有些事情看起来很复杂,但问题需要一点一点去解决,分析问题,把问题一个一个划分,划分成小块以后就逐个去解决。再总体解决大的问题。这样做起来不仅有条理也使问题得到了轻松的解决。 在这个过程中,我也曾经因为实践经验的缺乏失落过,也曾经仿真成功而热情高涨。生活就是这样,汗水预示着结果也见证着收获。劳动是人类生存生活永恒不变的话题。虽然这只是一次的极简单的课程制作,可是平心而论,也耗费了我不少的心血,这就
24、让我不得不佩服开发技术的前辈,才意识到老一辈对我们社会的付出,为了人们的生活更美好,他们为我们社会所付出多少心血啊!对我而言,知识上的收获重要,精神上的丰收更加可喜。让我知道了学无止境的道理。我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你。挫折是一份财富,经历是一份拥有。这次课程设计必将成为我人生旅途上一个非常美好的回忆!通过这次的课程设计我对于专业课的学习有了更加深刻的认识,以为现在学的知识用不上就加以怠慢,等到想用的时候却发现自己的学习原来是那么的不扎实。以后努力学好每门专业课,让自己拥有更多的知识,才能解决更多的问题!参考文献1 余发山,王福忠
25、.单片机原理及应用技术.徐州:中国矿业大学出版社,2008.62 何立民.单片机应用系统设计.M.北京:北京航空航天大学出版社,19933 楼然笛.单片机开发.M.北京:人民邮电出版社,19944 董爱华.检测与转换技术.北京:中国电力出版社,2009.45 李光才.单片机课程设计实例指导.M:北京:北京航空航天大学出版社,20046 姚福安.电子电路设计与实践.济南:山东科学技术出版社,20057 何西才、杨静、任丽英.实用传感器接口电路实例.北京:中国电力出版社,20078 刘守义.单片机应用技术.陕西:西安电子科技大学出版社,20079 王丽、杨伟丰.电机无线遥控系统设计的研究大众科技.
26、2009,11 124-12510 周航慈、朱兆优.智能仪器原理与设计.北京:北京航空航天大学出版社,200511 汪世明、周继明.传感技术及应用.中南大学出版社,200512 付家才.单片机控制工程实践技术.M:北京:化学工业出版社,2004.3 附录一 附录二 实验程序#include#define uint unsigned int#define uchar unsigned charuchar result;uchar a1=0,a2=0;bit a3;bita4;sbit shouzheng=P20; /手动按键sbit shoufan=P21;sbit zheng1=P00; /无
27、线接收sbit fan1=P01;sbit zheng=P10; /光耦端sbit fan=P11;sbit zheng2=P22; /霍尔接收端sbit fan2=P23;void delay(uchar a);shou();shou1(); void main()P1=0;P2=0;P0=0;P3=0;if(zheng1=1) /无线接收/a1=1;a2=0;else if(fan1=1)a2=1;a1=0;shou();shou1();if(zheng2=0) /霍尔接收端 a3=0;if(fan2=0) a4=0;if(a1=1&a2=0)|a3=1) /PWM波的产生,正转while
28、(fan2=1)zheng=1;delay(5);zheng=0;delay(1);zheng=1;else if(a2=1&a1=0)|a4=1) /PWM波得产生,反转while(zheng2=1)fan=1;delay(5);fan=0;delay(1);fan=1;void delay(uchar a) /延时uchar c,d;for(c=a;c0;c-)for(d=110;d0;d-);shou() /手动控制正反转扫描,消除抖动if(shouzheng=1)delay(10);if(shouzheng=1)a3=1;return a3;shou1()if(shoufan=1)delay(10);if(shoufan=1)a4=1;return a4;致谢经过白龙老师细心教导和指点,加上我们小组的积极配合和参与,经过自己不断的搜索努力,本设计已经基本完成。在这段时间里,老师严谨的治学态度和热忱的工作作风令我十分钦佩并受益非浅,在此对白老师表示深深的感谢。通过这次毕业设计,使我深刻地认识到学好专业知识的重要性,也理解了理论联系实际的含义,并且检验了大学四年学习成果。虽然在这次设计中对于知识的运用和衔接还不够熟练。但是我将在以后的工作和学习中继续努力、不断完善。这两周的设计是对过去所学知识的系统提高和扩充的过程,为今后的发展打下了良好的基础。23