基于单片机的智能光控窗帘设计内容摘要:

始工作,单片机应用程序必须以此作为设计的前提。 ( 2)单片机执行指令的过程可分为取指令、分析指令和执行指令三个步骤,每个步骤又由许多微操作,这些微操作必须在一个统一的时钟控制下才能按照正确的顺序执行。 如图 2: 光信号 /手动 89C51 单片机 直流电机 4 图 2 光信号的模拟与判断 当光敏电阻收到光照的时候,电阻减小,运放同向输入端为低电平,端口 1 输出为低电平;当光照较弱时,电阻增加,运放同向输入端为高电平,端口 1 输出为高电平。 光控电路的输出信号经过电压跟随器后,将比较微 弱的电流信号放大到单片机能够识别的电流,然后由运放输出端传输放大后的信号。 然后经过一个非门,形成相反的电压,分别传输给 与 口。 5 图 3 开关控制电路 如果 k7 断开,系统将执行光控控制, k 4 是控制光信号的输入; k k6 分别是对正转、反转的反向控制。 当 k7 闭合卖系统执行手动控制, k k2 是对窗帘拉开、闭合的控制。 图 4 6 指示灯电路 当电动机正传时, led1 灯亮,当电动机反转时, led2 灯亮。 图 5 控制电动机正反转电路 由电动机与 PNP 和 NPN 三极管控制,当 口低电平,控制电动机正传,当 低电平,电动机反转。 图 6 系统整体电路 7 X T A L 218X T A L 119A L E30EA31P S E N29RS T9P 0 .0 /A D 039P 0 .1 /A D 138P 0 .2 /A D 237P 0 .3 /A D 336P 0 .4 /A D 435P 0 .5 /A D 534P 0 .6 /A D 633P 0 .7 /A D 732P 1 .01P 1 .12P 1 .23P 1 .34P 1 .45P 1 .56P 1 .67P 1 .78P 3 .0 /R X D10P 3 .1 /T X D11P 3 .2 /I NT 012P 3 .3 /I NT 113P 3 .4 /T 014P 3 .7 /R D17P 3 .6 /W R16P 3 .5 /T 115P 2 .7 /A 1 528P 2 .0 /A 821P 2 .1 /A 922P 2 .2 /A 1 023P 2 .3 /A 1 124P 2 .4 /A 1 225P 2 .5 /A 1 326P 2 .6 /A 1 427U1A T 8 9 C5 1C12 2 p FG NDX1CR Y S T A LR11 0 kV C CV C CR21 0 kR31 0 kR41kR51kR61kQ1NP NQ2NP NQ3NP NQ4P N PQ5NP NQ6P N PQ7NP NR71kQ8NP NG NDG NDD1L E D B IB YD2L E D B IB YC22 2 p FC31 0 u F32184U 2 :AL M 3 9 312L D R 1T O RC H_L DRR81 0 kR91 0 kR V 12 5 K2 31U 3 :A7 4 HC 0 2S W 1S W DP S T M O M 图 7 5 软件设计 系统软件设计 系统软件主要实现智能光控、手动控制两大功能,采用 C 语言进行编程,可实现用户在使用窗帘时任意选择自动或手动控制方式 [45]。 程序流程图 光控窗帘程序流程图如图 3所示。 8 图 8 程序设计 (1)光控程序 当天亮时,有阳光射进屋内,传感器感应到光信号, 此时电机正转,窗帘开始打开,当碰到开限位开关时,电机停止转动。 当天黑时,传感器接收到信号,电机反转,窗帘闭合,当碰到关限位开关时,电机停止转动。 具体程序如下: include include define uchar unsigned char define uint unsigned int sbit K3=。 开始 控制方式选择 手动。 Y 正转 反转 判断按钮 N 判断按钮 判断光照 反转 反转 停止 结束 9 //光控正转或反转,此处接光敏传感器 sbit K5=。 //开限位 sbit K6=。 //关限位 sbit LED1=。 //正转指示灯 sbit LED2=。 //反转指示灯 sbit MA=。 sbit MB=。 void main(void) { LED1=1。 LED2=1。 while(1) { if(K7==0) sd()。 if (K3==0amp。 amp。 K4==1) //光控正转 { while (K3==0amp。 amp。 K5==1amp。 amp。 K4==1) {LED1=0。 LED2=1。 MA=0。 MB=1。 } LED1=1。 LED2=1。 MA=1。 MB=1。 } if (K4==0amp。 amp。 K3==1) //光控反转 { while (K4==0amp。 amp。 K6==1amp。 amp。 K3==1) { LED1=1。 LED2=0。 MA=1。 MB=0。 } LED1=1。 LED2=1。 MA=1。 MB=1。 } } } (2)手动程序 当阴天或者晚上用户要打开窗帘时,只需将 控制方式选择按钮 按下,就可以实现手动控制窗帘的开合。 程序如下: include include define uchar unsigned char define uint unsigned int sbit K1=。 //手动正转 sbit K2=。 //手动反转 sbit K7=。 //控制方式选择按钮 sbit LED1=。 //正转指示灯 sbit LED2=。 //反转指示灯 sbit MA=。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。