https://www.myziyuan.com/
- 11212121
- 智能窗帘就是带有自动调节自动控制功能窗帘,主要技术是光电感应技术以及无线传输技术。光电感应就是能够感知外界光的强度变化能够智能光控,无线传输技术就是遥控器控制窗帘控制器。
- 2021-12-29 23:06:14
- 111
- 目前的趋势是集成所有家用系统,如窗帘,灯和空调。
- 2021-12-29 23:05:03
- 苹果cms
- 急需用单片机设计一个窗帘的控制器的程序,窗帘控制器 Files#include <iom48v.h>#include <macros.h>/*****************************************************************工程名:自动窗帘控制系统工程建立者:Kevin 2008年11月25日程序版本:V1.0硬件环境:AVR单片机,CPU时钟8MHZ,预分频:8软件环境:ICC AVR7.16说明:控制窗帘进行 开,关,停止,左旋,右旋操作。****************************************************************///Data Dyte defined#define uChar unsigned char#define uInt unsigned int#define PORTCOPEN 0X01;#define PORTCSTOP 0x02;#define PORTCCLOSE 0x05;#define PORTCTURNLEFT 0x03;#define PORTCTURNRIGHT 0x06;#define _SLEEP() asm("SLEEP");//65535-8000000/(8*0.01)#define TIME_10MS 0xD8EF; uChar KeyValue;//press key valueuChar timer1sign;//timer interrupt signuChar KeyTmpValue; //temporary key valueuChar KeyOld;uInt KeyNoChangedTime; uInt KeyProcessSign; #pragma interrupt_handler Timer1_ovf_isr:iv_TIM1_OVF#pragma interrupt_handler Pcint1_isr:iv_PCINT1/********************************************************************函数功能:端口,定时器1初始化入口参数:无。返 回:无。备 注:无。********************************************************************/ void Init(void){//Port initDDRC=0xF0;PORTC=0x00;DDRD=0xF0;PORTD=0x0F;//Time/Count1 InitTCCR1B=0x02; //8分频TCNT1H=0xD8;TCNT1L=0xEF;TIMSK1=0x01;}/********************************************************************函数功能:键盘初始化入口参数:无。返 回:无。备 注:无。********************************************************************/ void KeyInit(){KeyValue=0;//press Key valuetimer1sign=0;KeyTmpValue=0; //temporary Key valueKeyOld=0;KeyProcessSign=0;}/********************************************************************函数功能:定时器中断函数入口参数:无。返 回:无。备 注:无。********************************************************************/ void Pcint1_isr(void){SMCR&=0xFE;PCMSK1&=(~((1<<PCINT8)|(1<<PCINT9)|(1<<PCINT10)));PCICR&=(~(1<<PCIE1));}/********************************************************************函数功能:定时器中断函数入口参数:无。返 回:无。备 注:无。********************************************************************/ void Timer1_ovf_isr(void){CLI();TCNT1H=0xD8;TCNT1L=0xEF;TIMSK1=0x01;timer1sign=1;SEI(); }/********************************************************************函数功能:按键判断入口参数:无。返 回:uChar备 注:无。********************************************************************/ uChar Key_Press(void){DDRC&=0xF0;KeyTmpValue=PINC;if(KeyTmpValue==0x00){return 0;}else{return 1;}}/********************************************************************函数功能:键盘扫描程序入口参数:无。返 回:无。备 注:无。********************************************************************/ void Scan_Key(void){if(timer1sign==1) {if(!Key_Press()) {KeyValue=0;if((KeyOld==PORTCOPEN)){KeyValue=KeyOld;KeyProcessSign=1;}else{KeyProcessSign=0;KeyOld=KeyValue;}return;}else if(KeyTmpValue!=KeyOld){KeyProcessSign=1;KeyNoChangedTime=0;KeyOld=KeyTmpValue;KeyValue=KeyOld;return;}else{KeyProcessSign=1;KeyNoChangedTime++;if(KeyNoChangedTime>=1){KeyNoChangedTime=1;KeyValue=KeyOld;}return;}}}/********************************************************************函数功能:开入口参数:无。返 回:无。备 注:无。********************************************************************/ void KeyOpenning(void){uChar pd;pd=PIND;if(pd==PIND|0x0D){Init();KeyInit();}else{PORTD=0x0F;PORTD=0x4F;}}/********************************************************************函数功能:停止入口参数:无。返 回:无。备 注:无。********************************************************************/ void KeyStopping(void){Init();KeyInit();}/********************************************************************函数功能:关闭入口参数:无。返 回:无。备 注:无。********************************************************************/ void KeyClosing(void){uChar pd;pd=PIND;if(pd==PIND|0x0E){Init();KeyInit();}else{PORTD=0x0F;PORTD=0x8F;}}/********************************************************************函数功能:左转入口参数:无。返 回:无。备 注:无。********************************************************************/ void KeyTurnL(void){uChar pd;pd=PIND;if(pd==PIND|0x0E){if(pd==PIND|0x0C){ PORTD=0x0F;//delay(5); //delay 10ms;PORTD=0x2F;//delay(5);PORTD=0x0F;}else{//delay(5);PORTD=0x1F;}}}/********************************************************************函数功能:右转入口参数:无。返 回:无。备 注:无。********************************************************************/ void KeyTurnR(void){uChar pd;pd=PIND;if(pd==PIND|0x0E){if(pd==PIND|0x07){ PORTD=0x0F;//delay(5); //delay 10ms;PORTD=pd|0x1F;//delay(5);PORTD=0x0F;}else{//delay(5);PORTD=0x1F;}}}/********************************************************************函数功能:键盘功能处理程序入口参数:value。返 回:无。备 注:无。********************************************************************/ void Key_Process(uChar value){if(value==PORTCOPEN){KeyOpenning();}else if(value==PORTCSTOP){KeyStopping();}else if(value==PORTCCLOSE){KeyClosing();}else if(value==PORTCTURN_LEFT){KeyTurnL();}else if(value==PORTCTURN_RIGHT){KeyTurnR();}return;}/********************************************************************函数功能:入口主函数入口参数:无。返 回:无。备 注:无。********************************************************************/ void main(void){Init();KeyInit();SEI();while(1){Scan_Key();if(KeyProcessSign==1){Key_Process(KeyValue);}else{PORTC=0x00;PORTD=0x00;PCMSK1|=((1<<PCINT8)|(1<<PCINT9)|(1<<PCINT10)); //enable PCINT8..10;PCICR|=(1<<PCIE1); SMCR=0x05;_SLEEP();POCTC=0x00;POCTC=0x0F;}}}
- 2021-12-29 23:05:03