电路原理图如下:
10UF电解电容 C2
47UF电解电容 C6
光敏电阻 R10
限位开关 K1, K2
微动开关 KEY1, KEY2, KEY3, KEY4, KEY5
步进电机 P1
DC-002电源插座 P2
LCD1602液晶 Q1
红外一体接头 Q5
10K色环电阻 R1, R4, R5, R6, R8, R9
10K电位器 R2
10k排阻 R3
双掷开关 SW1
2Pi插针 U2
STC89C52单片机 U3
ADC0832模数转换芯片 U4
ULN2003电机驱动芯片 U5
DS1302时钟芯片 U6
12MHZ晶振 Y1
32.768KHZ晶振 Y2
单片机源程序如下:
/*************************************************************
智能窗帘
补充说明:
***************************************************************/
#include #include #include #include<28BYJ48.h> #include #include #include #define uchar unsigned char//宏定义 #define uint unsigned int /*******************引脚定义*********************/ sbit key_mode = P1^0; //设置键 sbit key_jia = P1^1; //加值键 sbit key_jian = P1^2; //减值键 sbit key_ok = P1^3; //确定键 sbit sw1=P3^7; //全开 限位开关 sbit sw2=P3^6; //全关 限位开关 /*******************变量定义*********************/ uchar light_up,light_down;//存储光强上、下限值 uchar set_f=0; //设置选择标记,=0非设置,=1设置年,=2设置月,=3设置日,=4设置时,=5设置分,=6设置秒 // =7设置定时-时,=8设置定时-分,=9设置定时-开关,=10设置窗帘打开/关闭 // =11设置光强上限,=12设置光强下限,=13设置校准窗帘位置 uchar num; //计数变量 uchar ds[4]; //定时控制开时、分、控制关时、分 uchar mode=0; //模式标记。=0手动,=1定时,=2光控 uchar light; //存储光强 uint moto_num=0; //记录窗帘位置 uchar moto_state=0;//窗帘状态,=0已经关闭,=1处于运转过程中,=2已经打开 bit moto_f=0; //标记当前控制状态,=0控制关,=1控制开 uchar code display_mode[3][3]={"SD ","DS ","GK "};//显示模式 /******************************************************** 函数名称:void delayms(uint ms) 函数作用:毫秒延时函数 参数说明: ********************************************************/ void delayms(uint ms) { unsigned char i=100,j; for(;ms;ms--) { while(--i) { j=10; while(--j); } } } /******************************************************** 函数名称:void display(void) 函数作用:正常显示日期、时间、光强等函数 参数说明: ********************************************************/ void display(void) { uint t[3]; //显示时间 LCD_disp_char(0,2,ASCII[time[2]/10]);//显示时【0:表示第1列,2:表示第2行,所有关于显示都一样】 LCD_disp_char(1,2,ASCII[time[2]%10]); LCD_disp_char(2,2,':'); LCD_disp_char(3,2,ASCII[time[1]/10]);//显示分【3:表示第4列,2:表示第2行,所有关于显示都一样】 LCD_disp_char(4,2,ASCII[time[1]%10]); LCD_disp_char(5,2,':'); LCD_disp_char(6,2,ASCII[time[0]/10]);//显示秒 LCD_disp_char(7,2,ASCII[time[0]%10]); //显示日期 LCD_disp_char(0,1,ASCII[time[6]/10]);//显示年 LCD_disp_char(1,1,ASCII[time[6]%10]); LCD_disp_char(2,1,'/'); LCD_disp_char(3,1,ASCII[time[4]/10]);//显示月 LCD_disp_char(4,1,ASCII[time[4]%10]); LCD_disp_char(5,1,'/'); LCD_disp_char(6,1,ASCII[time[3]/10]);//显示日 LCD_disp_char(7,1,ASCII[time[3]%10]); //显示模式 lcd1602_write_character(9,1,display_mode[mode]); //显示光强 if(light>99) LCD_disp_char(12,1,ASCII[light/100]); else LCD_disp_char(12,1,' '); LCD_disp_char(13,1,ASCII[light%100/10]); LCD_disp_char(14,1,ASCII[light%10]); LCD_disp_char(15,1,'%'); //光强控制 if(mode==2)//光控模式 { if((light>=light_up||light moto_f=0; //标记当前控制窗帘关闭 moto_state=1;//标记窗帘处于运转过程中 } else if((light { moto_f=1; //标记当前控制窗帘打开 moto_state=1;//标记窗帘处于运转过程中 } } else if(mode==1)//定时模式 { t[0]=time[2]*60+time[1];//当前时间 t[1]=ds[0]*60+ds[1]; //窗帘开启时间点 t[2]=ds[2]*60+ds[3]; //窗帘关闭时间点 if(t[1] { if(t[0]>=t[1]&&t[0]<=t[2]) moto_f=1; //标记当前需要打开窗帘 else moto_f=0; //标记当前需要关闭窗帘 } else //0时 --> t[2] --> t[1] --> 24时 { if(t[0]>=t[1]||t[0]<=t[2]) moto_f=1; //标记当前需要打开窗帘 else moto_f=0; //标记当前需要关闭窗帘 } moto_state=1; //标记窗帘处于运转过程中 } if(moto_f==0&&moto_state!=0&&sw2!=0)//控制关闭窗帘
上一篇:单片机DIY模拟冰球
下一篇:pid算法讲解
推荐阅读
史海拾趣
面对日新月异的市场需求和不断变化的技术趋势,Concurrent Logic始终坚持创新驱动的发展战略。他们投入大量资源在研发上,不断探索新的并行计算技术和应用。通过持续的创新和市场的不断拓展,Concurrent Logic逐渐巩固了其在电子行业中的领导地位,成为了并行计算领域的一面旗帜。他们的产品被广泛应用于云计算、大数据分析、人工智能等多个前沿领域,为整个电子行业的发展注入了新的活力。
以上是关于电子行业里Concurrent Logic公司发展起来的相关故事,每个故事都反映了该公司在不同发展阶段所面临的关键节点和决策。
Advanced Power Solutions公司自创立之初,就致力于电源管理技术的研发。在一次偶然的实验中,公司的研发团队发现了一种新的电源转换技术,可以显著提高能源利用效率。公司迅速投入资源,完善这项技术,并成功将其应用于新产品中。这款高效能的产品迅速在市场上获得了认可,为公司带来了可观的收益,也奠定了公司在电源管理领域的领先地位。
为了保持技术领先,ATP公司积极与高校、科研机构等进行技术合作。他们共同研发新的热管理技术,不断推动产品升级换代。同时,公司还加大研发投入,引进先进的研发设备和人才,为公司的技术创新提供了有力支持。这些举措使得ATP公司在热管理领域的技术实力得到了显著提升。
Elekon Industries公司,简称Elekon,于XXXX年在某科技园区正式成立。公司由一群富有远见和热情的电子工程师创立,他们共同看到了电子行业的巨大潜力和广阔市场。初创阶段,Elekon主要致力于研发和生产高品质的电子元器件,为电子设备制造商提供可靠的产品。通过不断努力,Elekon凭借优秀的产品质量和卓越的创新能力,逐渐在电子行业中崭露头角。
- 创业初期:
- 描述Clulite公司的创始人或核心团队如何识别电子行业中的某个市场机遇。
- 讲述他们是如何筹集初始资金,设立公司,并开发出第一款产品或解决方案的。
- 可以提及公司在初创阶段面临的挑战,如技术难题、市场竞争等。
- 技术创新:
- 讲述Clulite如何通过研发创新,推出了一款颠覆性的产品或技术,从而获得了市场认可。
- 详细描述这一创新过程,包括研发团队的努力、关键技术的突破等。
- 提及这一创新如何帮助公司在市场上取得了竞争优势。
- 市场拓展:
- 描述Clulite如何逐步扩大市场份额,从地区市场走向全国乃至国际市场。
- 可以讲述公司如何建立销售网络、与合作伙伴建立合作关系,以及参与行业展会等活动来推广品牌和产品。
- 提及公司在市场拓展过程中遇到的挑战和应对策略。
- 品质管理:
- 讲述Clulite如何注重产品质量和客户体验,通过严格的质量控制流程来提升产品可靠性。
- 描述公司如何建立完善的售后服务体系,为客户提供及时、专业的支持。
- 提及这些举措如何帮助公司赢得了客户的信任和口碑。
- 可持续发展:
- 讲述Clulite如何关注环境保护和社会责任,推动公司的可持续发展。
- 描述公司如何采取环保措施,减少生产过程中的污染排放。
- 提及公司如何参与社会公益事业,回馈社会。
请注意,这些故事需要根据Clulite公司的实际情况进行调整和补充。如果你需要更具体的内容,建议查阅Clulite公司的官方网站、新闻报道或行业分析报告,以获取更详细的信息和数据。
电源变压器可通过磁场、电磁感应和电路对放大器形成干扰,是音响机器中最大的干扰源。所以,要处理好它的工作状态和应用环境,才能有效地避免由电源变压器产生的干扰,使放大器得到优良的音效。下面我将对此与大家做一讨论。 1、电源变压器除 ...… 查看全部问答∨ |
|
进入LED这个行业已经两年了,对LED有或多或少的认识,下面谈谈自己对LED的看法: 1. 太精贵,容易毁坏。 2. 寿命很短(实际工作,不要说理论)。 3. 成本太高。 4. 热量太大。 5. 维修麻烦。 大家谈谈自己的看法???… 查看全部问答∨ |
|
我用VS2005做了个多对话框程序,现在在程序的第一个对话框就打开IO流驱动,进入别的对话框是不是关闭重新打开,还是整个程序就打开一次IO流驱动呢???因为有个IO控制蜂鸣器,是要一直打开IO流驱动的,请高手给个方法!… 查看全部问答∨ |
|
看过64脚的STM32没有参考电压输入端子。如果需要比较精确的参考电压怎么处理?如果用一个高精度的电源给模拟部分供电,是否能达到高精确采集?如果用电源直接供电的话,需要电源的电流是多少啊?手册上也不说模拟器件的功耗。还有ad内部有个参 ...… 查看全部问答∨ |
|
哪位发现过官方那个LaunchPad_Temp_GUI第一次打开可能发现不了com口? 我试验了一下,新启动的电脑,可以用一段时间(但是不要插LaunchPad),然后第一次插LaunchPad,按按键转到应用模式,然后第一次打开LaunchPad_Temp_GUI.exe,这个时候发现不了LaunchPad对应的端口,只有电脑的其它端口。关闭LaunchPad_Temp_GUI, ...… 查看全部问答∨ |