三档八小时遥控电风扇控制电路和单片机程序
单片机综合实验(基于单片机实现风扇红外遥控电路的设计)
攀枝花学院专业基础综合实验报告基于单片机实现风扇红外遥控电路的设计二〇一三年六月摘要电风扇作为一种价格便宜、体积小巧的清热解暑的家用电器,在家庭中的普及率非常高,其技术的发展也越来越成熟。
本文介绍了一种利用红外无线遥控来对电风扇调速定时的设计方法。
整个系统的核心部分就是红外遥控和单片机控制。
系统以AT89S51单片机为控制器,通过红外接收管接收遥控器信号,单片机解码后进行相应的控制。
控制方面包括两个方面:自动控制和手动控制。
自动控制状态下风扇根据温度自动调档;手动控制状态下通过遥控器定时和调速。
系统的温度测量采用DS18B20数字温度传感器,定时采用DS1307时钟芯片。
当前的时间和温度都可以通过液晶显示器显示。
关键词红外遥控单片机定时AbstractInfrared remote control circuit has now become a circuit design fashion, remote electric control fan in the early 90s has set up a file in the pearl river delta of guangdong began the research, development and production ,is simply introduced the infrared remote control transmitting and receiving system principle, through the infrared system control fan operation, this design based on the demand of the market combined with infrareds remote control design ,simple, cheap, easy characteristics ,with the dedicated remote control launch receiver chips ,based on this design a simple intelligent infrared remote control electric fan system ,including receiving and launch of two parts.Key word: infrared; remote control ; fan.目录摘要 (2)Abstract (3)1引言 (5)2方案设计 (5)2.1方案比较与选择 (5)2.1.1遥控方式选择 (5)2.1.2定时方案选择 (6)2.2设计方案 (6)3系统硬件设计 (7)3.1硬件设计应用环境简介 (7)3.2红外遥控单元 (8)3.2.1红外简介 (8)3.2.2遥控电路设计 (9)3.3单片机控制单元 (10)3.3.1单片机简介 (10)3.3.2单片机控制电路 (11)3.4时钟单元 (12)3.4.1DS1307简介 (12)3.4.2时钟电路设计 (13)3.5测温单元 (13)3.5.1DS18B20简介 (13)3.5.2测温电路设计 (14)3.6液晶显示单元电路 (15)3.7风扇档位控制单元 (17)4系统软件设计 (17)4.1软件的设计的架构 (17)4.1.1程序设计应用环境 (17)4.1.2软件设计流程图 (18)4.2主控程序的设计 (19)4.3各功能模块程序的设计 (21)4.3.1读取时间数据程序设计 (21)4.3.2读取温度数据程序设计 (22)4.3.3读取红外信号程序设计 (23)4.3.4显示程序设计 (23)5 硬件制作 (24)5.1元件清单 (24)5.2制作与调试 (25)5.2.1焊接 (25)5.2.2出现的问题 (25)附录 (27)电路原理图 (27)PCB图 (28)实物图 (29)参考文献 (30)程序如下 (31)致谢 ........................................................................................................ 错误!未定义书签。
电风扇自动温控调速器电路设计
电风扇自动温控调速器电路设计
给大家介绍一下
这是一个电风扇自动温控调速器,可根据温度变化情况自动调节电风扇的转速,电路加以调整,也可用于其它电气设备的控制。
它与电脑中主板的风扇调速一样同属于PWM脉冲调宽来调压的.所以如果主板风扇是三针的或者4针想独立调整的也可以外界这个电路来实现自动调整.这时要把热敏电阻换成一个可调电阻即可
.特别注意:调阻值时要防止电压过小而导致风扇停转.
电路工作原理:图中IC是555时基电路,与R2、R3和C2等元件构成多谐振荡器,可发出占空比可调的矩形波信号。
当温度变化时,热敏电阻的阻值发生变化,改变多谐振荡器输出方波的占空比,调节双向晶闸管VT的导通角,从而改变风扇电极两端的电压,自动调节电风扇的转速。
元器件选择集成电路IC 选用NE555时基电路,也可使用LM555和TLC555等型号。
VT为双向晶闸管,其耐压应在400V以上,额定电流应根据所控制的电风扇容量来合理选用。
电阻R1~R5可选用普通1/8或1/4W碳膜电阻器;Rt为负温度系数热敏电阻,可选常温下阻值为10KΩ左右的热敏电阻。
电容C1选用普通铝电解电容器;电容C2和C3选用涤纶电容器。
VD为稳压值为9.1V的稳压二极管。
51单片机多功能红外遥控电风扇(自然风+阵风+多档风速+定时)
51单片机多功能红外遥控电风扇(自然风+阵风+多档风速+定时)51单片机多功能红外遥控电风扇(自然风+阵风+多档风速+定时) #include "AT89x051.H"#define uchar unsigned char#define uint unsigned int#define b1 0xe200#define b2 0xe210#define b3 0xe208#define b4 0xe218#define b5 0xe204#define b6 0xe214#define b7 0xe20c //阵风#define b8 0xe21c //自然风#define b9 0xe280 //自动档#define on_off 0xe240 //电源开关#define ch_a 0xe250 //加档#define ch_s oxe248 //减档#define time 0xe2e8 //定时#define louver 0xe24c //转页#define count_num 500 //显示次数#define time1_num 18000#define time2_num 100#define bell P3_4#define c_f 0xd4 //"F"#define c_h 0xce //"H"#define c_g 0x81 //"="uint time1=time1_num; //18000*100*2ms=1huchar time2=time2_num;uint count=count_num; //显示次数uchar sort=3; //显示offuchar dis_bit=0; //显示的位uchar code_length=16;uchar data dis[4]={0x02,0x02,0x00,0xff}; //显示数据区uchar temperature;uint code_t=0;uchar code1=0;uchar code2=0;bit bdata code_start=0; //代码起始标志bit bdata button=0; //无键按下bit bdata i_flag=0; // 有无中断标志bit bdata t_flag=0;//测温标志bit bdata bt=0; //判断是否是定时键bit bdata off=0; //为0无定时uchar codeTAB[11]={0x5f,0x0a,0x9d,0x9b,0xca,0xd3,0xd7,0x5a,0xdf,0xd b, 0x75};void timer_0(void);void dis_t(void); //温度显示void dis_s(void); //档位显示void dis_h(void); //时间void dis_off(void); //关机显示void delay(uint t); //延时uchar d_code(uint t); //解码uchar begin=0; //开始补偿void c_code(void); //键号转换void off_time(void); //定时关void measure_temperature(void);void key_time(void); //定时按钮void sort_key(void); //风类按钮void mov_p1(uchar t0,t1,t2); //显示void button_process(void); //按键处理//********定时关机*********void off_time(void){if(off==1){if(time1--==0){time2--;time1=time1_num; }if(time2==0){dis[3]=dis[3]-1; time2=time2_num; } if(dis[3]==0){code_t=on_off; //关机 c_code();}}}//********定时器0中断*********void timer0() interrupt 1 using 2 {off_time();if(dis_bit==0&&t_flag==0){key_time();sort_key();}switch(sort){case 0:if(count!=0){mov_p1(dis[0],dis[1],TAB[10]); //显示温度count--;}break;case 1:if(count!=0){mov_p1(c_f,c_g,TAB[dis[2]]); //显示档位count--;}break;case 2:if(count!=0){dis_h(); //显示时间count--;}break;case 3:mov_p1(0x5f,c_f,c_f);//显示关机default:break;}timer_0();if(count==0) //轮流显示P3_0=P3_1=P3_5=1;if(i_flag==0&&t_flag==0) measure_temperature(); count=count_num;sort=(sort&0x03)+1;if(sort>=3)sort=0; //完成一轮显示}}//***********定时按钮************void key_time(void){bit i=P1_2;P1_2=1;if(P1_2==0){delay(50);if(P1_2==0) //确认有按键{bell=0;delay(100);bell=1;while(P1_2==0){;}if(dis[3]==0xff){dis[3]=1;off=0; //取反后为1,定时}elseif(dis[3]<9){dis[3]=dis[3]+1; off=0; //取反后为1,定时}elseoff=1; //取反后为0,取消定时}sort=2;code_t=time; //显示时间c_code();//bt=0; //恢复}}P1_2=i;i_flag=0; //恢复执行其它任务}//***********换档按钮************void sort_key(void){bit i=P1_1;P1_1=1;if(P1_1==0){delay(50);if(P1_1==0){button=1;bell=0;delay(200);bell=1;while(P1_1==0){;}if(dis[2]<9){dis[2]=dis[2]+1;code2=dis[2];}else{dis[2]=0;code2=10; //power off}delay(100);sort=1;count=5000;//TF0=1;}}P1_1=i;i_flag=0; //恢复执行其它任务}//********定时器1中断测温************ void timer1() interrupt 3 using 3{uint temp;TR0=0; //计数停TR1=0; //定时停temp=TH0*256+TL0; //取温度值temperature=(7000-temp)/11; //计算温度//if(dis[2]!=0)// temperature--; //工作时补偿1度/*if(F0==0&&begin<=10) //开始温度加3度 temperature+=3; if(F0==0&&begin<=60&&begin>10)temperature+=2;if(F0==0&&begin<=150&&begin>60) temperature+=1;*/dis[0]=TAB[temperature/10];dis[1]=TAB[temperature%10];IE0=0;t_flag=0;timer_0();EX0=1;}//**********判断代码************uchar d_code(uint t){if(t<=0x220&&t>=0x190)return 0;else{if(t<=0x430&&t>=0x390)return 1;elsereturn 0xff;}}//***********键号转换************void c_code(void){bit bdata i=0;switch(code_t){case b1:code1=1; break; case b2: code1=2; break; case b3: code1=3; break; case b4: code1=4; break; case b5: code1=5; break; case b6: code1=6; break; case b7: code1=7; break; case b8: code1=8; break; case b9: code1=9;。
智能风扇的单片机控制系统设计
智能风扇的单片机控制系统设计
智能风扇的单片机控制系统设计步骤如下:
1. 确定系统需求:确定智能风扇的功能需求,例如温度控制、
风速控制、定时控制等。
2. 选择合适的单片机:根据系统需求选择合适的单片机,例如STC89C52、AT89S52等。
3. 传感器接口设计:根据系统需求设计传感器接口,例如温度
传感器DS18B20等,将传感器与单片机进行连接。
4. 电机控制设计:设计电机驱动电路,控制电机的转速和方向。
可以采用PWM进行速度控制。
5. 人机交互界面设计:设计人机交互界面,例如LCD显示屏、
按键等,提供给用户进行操作。
6. 控制算法设计:根据系统需求设计控制算法,例如PID控制
算法、开环控制等。
7. 程序编写与调试:根据上述硬件设计完成程序编写,进行调试,保证系统正常运行。
8. 测试与优化:进行系统测试,根据测试结果进行优化,完善
系统的功能和性能。
最终实现一个智能风扇的单片机控制系统。
电风扇智控系统(源代码)
uchar speed,rate,gear;//全局速度
uchar minute,second,second1,min,sec,via;
uint ms,ms1;
bit flag; //定时开启标志
uchar watch=60,a,b=6,c;//定时变量,默认一小时,最长三小时(可任意设置)
speed=0;
TR0=0;//关T0
}
speaker=1;//关闭蜂鸣器
}
/*------------------定时器0产生pwm-----------------*/
void Timer0() interrupt 1
{
TR0=0;
TH0=0xfe;
TL0=0x33;
num0++;
key_scan();//按键扫描
#define T 100//脉冲周期,100ms
#define M (T/2) //半个周期
#define Min_speed 48//最小速度
#define Max_speed 100//最大速度
#define pwm_div 10 //pwm间隔
sbit pwm=P1^0;//电机控制端
sbit k0=P3^4;//功能键
}
else{second1=0;}
break;
case 3://Motor_pwm(56);/*................睡眠风````````^^^3^^^^^*/
ms1++;
if(ms1==1000)
{P0=0xbf;
ms1=0;
speed-=4;
second1++;
单片机课程设计+电风扇模拟控制系统设计
目录一总体方案设计1.1设计要求以电风扇模拟控制系统设计内容:1、有3个独立按键分别控制“自然风”、“睡眠风”、“常风”,(三者的区别是直流电机的停歇时间不同),并在数显管上显示出区别。
2、每种类型风可以根据按下独立按键次数分为4个档的风力调节。
3、设计风扇的过热保护,用继电器实现。
即当风扇运行一段时间后,暂停10秒。
4、其他创新内容(蜂鸣器报警提示)1.2 优点及意义这款电风扇可以根据自己日常存在的环境还有在不同情况下的需求随时调节三种不同的模式。
三种模式分别是“自然风”、“睡眠风”、“常风”。
如果在使用的过程中感觉三种模式下的风速不适合自己的要求的话,还可以在三种单独的模式下根据按键按动次数的不同来微调节风速,在一个模式下有4中不同的档位,相当于这款电风扇可以有12种可调节的模式,可以满足日常的基本需求。
不同的档位可以在数码管上显示出来,可以做到更加的直观、准确。
风扇电机的部分采用的是无刷直流电机,静音效果和节能效果出色,比较省电;风量档位多,风比较柔和;送风距离更远。
同时在加上蜂鸣器过热保护,使得风扇使用寿命更长,在风扇稳定性还有占用的体积来说这款电风扇都是有着较强的优势1.2初步设计思路2电风扇的系统以AT89C51单片机为核心,由时钟电路,复位电路,显示电路,直流无刷电机组成。
由复位电路来保证程序的复位和初始化,时钟电路来保证内各部件协调工作的控制信号。
作用是来配合外部晶体实现振荡的电路提供高频脉冲,更是作为电机的PWM占空比的前提条件。
矩阵键盘作为电风扇的按键来控制电机的转动速度,键盘控制的原理就是调节电动机的输出电压来控制电动机的转速。
实际上是利用了PWM控制方法,可以更好的控制电动机的频率,确保了运行时候的准确度还有精度也是较强的二硬件电路设计2.1 AT98C51单片机与蜂鸣器模块图二蜂鸣器模块2.1.1 89C51单片机89C51单片机由中央处理器(CPU)、存储器、定时/计数器、输入/输出(I/O)接口、中断控制系统和时钟电路组成。
51单片机电机三档调速程序
/*******************************************一键三档风扇程序 2022年8月28日******************************************/#include<reg52.h> //包含52单片机寄存器定义的头文件#include<intrins.h>unsigned char Tab[ ]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //段码表sbit ON_OFF=P3^2;//开关定义sbit motor=P3^5;//马达控制脚sbit dis=P3^4;int i=0;//档位标志void delay1ms(unsigned int i) //1ms延时程序{unsigned int j;for(;i>0;i--)for(j=0;j<125;j++){;}}/******************************************************************函数功能:延时约0.6ms********************************************************************/void delay(void){unsigned char j;for(j=0;j<200;j++);}void settinglow(){motor=0;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();motor=1;}/****************************************************************** 函数功能:显示计数次数的子程序入口参数:i********************************************************************/ void Display(unsigned char i){dis=0; //P3.4引脚输出低电平,数码管点亮P1=Tab[i%10]; //显示个位delay();dis=1;P1=0xff;delay();}/*******************************************函数功能:主函数******************************************/void main(void){EA=1; //开放总中断EX0=1; //允许使用外中断IT0=1; //选择负跳变来触发外中断i=0;motor=0;while(1){if(i>0){Display(i);}switch(i){case 0:motor=0;break;case 1:motor=1;break;case 2:settinglow();break;case 3:motor=~motor;break;}}}/************************************************************** 函数功能:外中断T0的中断服务程序**************************************************************/ void it0(void) interrupt 0 using 0 //外中断0的中断编号为0{if(ON_OFF==0){delay1ms(50);if(ON_OFF==0){i++;//按一次开关键,改变一个档位}}if(ON_OFF==0){delay1ms(1000);//长按1秒则关闭风扇if(ON_OFF==0){i=0;}}if(i==4)//最慢档后再按一次到最快档{i=1;}}。
单片机pwm风扇调速电路
单片机pwm风扇调速电路单片机PWM风扇调速电路一、概述二、单片机PWM技术的原理三、PWM风扇调速原理1. PWM调制原理2. PWM调速原理四、硬件设计1. 单片机的选择2. 驱动电路设计3. PWM信号发生电路设计五、软件设计1. 单片机引脚配置2. PWM初始化设置3. 软件实现PWM调速六、实验结果与分析七、总结概述:随着科技的发展,风扇在很多场景中被广泛应用,其调速功能更是被重视。
本文将介绍一种基于单片机PWM技术的风扇调速电路,通过合理的硬件设计和软件编程实现风扇的调速控制。
单片机PWM技术的原理:PWM(脉宽调制)技术是一种通过改变周期不变的方波的占空比来模拟连续信号的一种调制技术。
在单片机中,通过改变方波的高电平时间与低电平时间的比例来实现输出不同占空比的PWM波形。
PWM风扇调速原理:PWM风扇调速原理是通过改变PWM信号的占空比来调节风扇的转速。
当PWM信号的占空比较小时,风扇的转速较低;当PWM信号的占空比较大时,风扇的转速较高。
通过不断改变PWM信号的占空比,可以实现风扇的无级调速。
硬件设计:1. 单片机的选择:根据需求选择合适的单片机,一般选择具有PWM输出功能的单片机。
2. 驱动电路设计:将单片机的PWM信号通过驱动电路放大,得到足够的驱动电流,驱动风扇的转动。
3. PWM信号发生电路设计:根据单片机的PWM输出引脚和驱动电路的连接方式,设计合理的PWM信号发生电路。
软件设计:1. 单片机引脚配置:根据选择的单片机,配置相应的GPIO引脚作为PWM输出口。
2. PWM初始化设置:设置单片机的PWM参数,包括PWM信号频率和占空比的范围。
3. 软件实现PWM调速:根据需要调整的转速范围,编写相应的控制算法,通过改变PWM信号的占空比实现风扇的调速控制。
实验结果与分析:通过实验验证,本文设计的单片机PWM风扇调速电路可以实现风扇的无级调速。
通过改变PWM信号的占空比,可以精确控制风扇的转速。
DIY改造三档遥控八小时风扇
DIY改造三档遥控八小时风扇风扇原来的机械式定时器普通型的一小时特别型的好像二小时经常都是睡到半梦半醒又被热醒了,只好拿风扇来“开刀”了,把它改成遥控三档八小时控制风扇.;**********************************风扇控制程序**************************;用P3.0\P3.1\P3.7分别控制风速定时关机;P3.3\P3.4\P3.5分别为风速1风速2风速3;P1.0~P1.7分别接共阳极数码管A~H指示(风速值)\1H~8H(以及长通不定时定时)\档位一~二~三;长通不定时时只显示当前风速档数分别为一、二、三。
在有定时时轮流显示当前风速档数和定时时间值;P1.7也作开机OUT控制,全部都是低电平有效。
;注意晶体:4MHZ MCU:89C2051系列;****************************************************************************** ***********************本电路为了关机后切断全部电源包括电路板的供电故开机键是直接与继电器的开关引脚组并联的当按下开机按钮时电路得电继电器自锁直到定时结束或按下关机按钮为止遥控三档八小时风扇PCB板正面遥控三档八小时风扇PCB板反面遥控三档八小时风扇电路图程序:ORG0000H SwFengSu BIT P3.0;风速SwTime BIT P3.1;定时SwOff BIT P3.7;关机FengSu1BIT P3.3;风速1 FengSu2BIT P3.4;风速2 FengSu3BIT P3.5;风速3JMP STARTORG0003HJMP YAO_KONGORG000BH;定时器0入口JMP TIME;中断程序ORG0030HSTART:MOV SP,#60HMOV P3,#0F7H;11110111B;默认为风速1MOV22H,#09H;使其取得一.的显示码MOV R3,#00HMOV R2,#00HMOV R4,#00HCLR20H.0;开关标志位MOV TMOD,#01H;定时器0工作于方式1MOV TH0,#HIGH(65536-50000)MOV TL0,#LOW(65536-50000);50MS(当4mhz晶体时为150MS) SETB EA;开总中断SETB ET0;定时器0中断允许SETB EX0SETB IT0LOOP:JNB20H.0,ON;不是关机即转ON处OFF:MOV P1,#8EH;显示F且P1.7为高即关机MOV P3,#0FFH;风速全部关JMP OFFON:MOV DPTR,#TABLEMOV A,R4;JB20H.1,ON1;如果20H.1=1即显示定时值MOV A,22H;使其取得一.二.三.的显示码ON1:MOVC A,@A+DPTRMOV P1,A;送P1口显示CALL SW_OFFCALL SW_FengSuCALL SW_TimeJMP LOOPSW_OFF:JB SwOff,SWO;是否有关机键压下CALL DELAY;防抖JB SwOff,SWOJNB SwOff,$SW1:SETB20H.0;取反即为高电平故关闭总电源SWO:RETSW_FengSu:;调风速键JB SwFengSu,LAO;是否有调风速键压下CALL DELAYJB SwFengSu,LAOLA1:MOV PSW,#00HCLR20H.1;标志位置0显示风速值SETB20H.2;延时轮流显示标志位MOV21H,#8;延时轮流显示INC R3JNB SwFengSu,$C01:;风速2CJNE R3,#01H,C02MOV22H,#0AH;使其取得二.的显示码SETB FengSu1;关风速1CALL DELAY;延时防抖14946us CALL DELAY;延时防抖14946usCLR FengSu2;开风速2JMP LAOC02:;风速3CJNE R3,#02H,C03MOV22H,#0BH;使其取得三.的显示码SETB FengSu2;关风速2CALL DELAY;延时防抖14946us CALL DELAY;延时防抖14946usCLR FengSu3;开风速3JMP LAOC03:;风速1MOV22H,#09H;使其取得一.的显示码SETB FengSu3;关风速3CALL DELAY;延时防抖14946us CALL DELAY;延时防抖14946usCLR FengSu1;开风速1MOV R3,#00HLAO:RETSW_Time:;调定时键JB SwTime,LBO;是否有定时键压下CALL DELAYJB SwTime,LBOLB:MOV PSW,#00HSETB20H.1;标志位置1显示定时值SETB20H.2;延时轮流显示/风速标志位置1 JNB SwTime,$MOV21H,#8;延时轮流显示MOV R7,#00HMOV R6,#00HMOV R5,#00HINC R4;定时时间加1小时CJNE R4,#09H,C04;如果大于8即长通不会定时关机CLR20H.1;标志位置0显示风速值MOV R4,#00HCLR TR0RETC04:SETB TR0LBO:RETDELAY:;延时防抖14946usMOV R1,#10;1*3=3DD:MOV R0,#248;1*3=3DJNZ R0,$;2*3*248*10=14880DJNZ R1,DD;2*3*10=60RETTIME:PUSH ACCPUSH PSWMOV TH0,#HIGH(65536-50000)MOV TL0,#LOW(65536-50000);重置初定时值INC R7INC R5CJNE R5,#7,TT1;150MS*7=1S到了吗?MOV R5,#00HJNB20H.2,TT2;延时轮流显示/风速标志位置DJNZ21H,TT1CLR20H.2TT2:CPL20H.1;标志位置0显示风速值TT1:CJNE R7,#200,TT;150MS*200=30S到了吗? MOV R7,#00HINC R6CJNE R6,#120,TT;30S*120=3600S到了吗? MOV R6,#00HDJNZ R4,TT;将R4的值减1SETB20H.0;取反即为高电平故关闭总电源TT:POP PSWPOP ACCRETIYAO_KONG:PUSH PSWPUSH ACCCLR EAMOV PSW,#10HIR:MOV R6,#10SB:ACALL DELAY882JB P3.2,REM_BAKDJNZ R6,SBJNB P3.2,$ACALL DELAY2400JNB P3.2,REM_BAKACALL DELAY2400MOV R1,#1AHMOV R2,#4PP:MOV R3,#8JJ:JNB P3.2,$LCALL DELAY882MOV C,P3.2JNC UUULCALL DELAY1000UUU:MOV A,@R1RRC AMOV@R1,ADJNZ R3,JJINC R1DJNZ R2,PPDAN_JI:NOPMOV A,1AHXRL A,#01H;用户码低八位01HJNZ REM_BAKMOV A,1BHXRL A,#0FFH;用户码高八位FFHJNZ REM_BAKMOV A,1CHCPL AXRL A,1DHJNZ REM_BAKMOV A,1CHCJNE A,#80H,E81CALL SW1;关机JMP REM_BAKE81:CJNE A,#81H,E82CALL LB;定时JMP REM_BAKE82:CJNE A,#82H,E83CALL LA1;风速E83:;CJNE A,#83H,E84REM_BAK:POP ACCPOP PSWSETB EARETIDELAY882:;882usMOV R7,#73;3*1=3;NOP;3*1=3D3:NOP;3*1*73=219NOP;3*1*73=219DJNZ R7,D3;2*3*73=438RETDELAY1000:;999usMOV R7,#83;3*1=3D4:NOP;3*1*83=249NOP;3*1*83=249DJNZ R7,D4;2*3*83=498RETDELAY2400:;2403usMOV R7,#89;3*1=3D5:NOP;3*89=267NOP;3*89=267NOP;3*89=267NOP;3*89=267NOP;3*89=267NOP;3*89=267NOP;3*89=267DJNZ R7,D5;2*3*89=534RETTABLE:;P1.0-P1.7分别接共阳极数码管A-H DB40H;0.DB79H;1.DB24H;2.DB30H;3.DB19H;4.DB12H;5.DB02H;6.DB58H;7. DB00H;8. DB3FH;一. DB37H;二. DB36H;三. END。
单片机智能风扇程序
#define uint unsigned int
/***********************定义数据接口**************************/
sbit sound=P2^2; //将sound位定义为P2.2
sbit lcden=P2^7; //E 12864使能端
}
/**********************功能:液晶12864写,写数据函数********************************/
void xieling_shu(uchar qq,uchar shu)
{
if(qq==1){lcdrs=0;}//qq等于1时是写指令
if(qq==0){lcdrs=1;}//qq等于0时是写数据
}
/******************* Windows XP专业版启动成功*********************/
qingping();//清屏
xieludizhi(1,0);xiezifuchuan(chu2);delay(5);
xieludizhi(2,0);xiezifuchuan(chu3);delay(5);
void tempwritebyte(uchar dat)
{
uint i;
uchar j;
bit testb;
for(j=1;j<=8;j++)
{
testb=dat&0x01;
dat=dat>>1;
if(testb) //写1
{
wd=0;
i++;i++;
单片机风扇控制电路原理
单片机风扇控制电路原理单片机风扇控制电路原理作为一种常见的控制电路,在工业、实验室等领域得到了广泛的应用。
下面从原理、电路结构、软硬件设计等方面对其进行详细介绍。
一、原理单片机风扇控制电路采用了控制器和驱动器相结合的方法,其中,控制器依靠程序控制来对驱动器提供指令。
程序控制是通过内置的指令集对控制器进行编程实现的。
驱动器则是对电机进行控制的关键,它可以将控制器的指令翻译成实际的控制信号。
这两个组成部分共同构成了单片机风扇控制电路,从而完成了对电机的精确控制。
二、电路结构单片机风扇控制电路结构主要包括以下部分:1. 单片机:单片机是控制器的核心部件,它负责控制整个系统的运作。
单片机需要与其他模块进行通讯,并按照编程指令提供电机控制信号。
2. 驱动器:驱动器是控制电机的重要部分,它需要翻译单片机的指令,以适配电机的特性。
驱动器一般由场效应管、电容器、电阻器等元器件组成,其中场效应管是控制电机最关键的元件。
3. 升压转换器:升压转换器是一个将低电压转换为高电压的电路,它可以通过变压、倍压等方式将电压升高到所需要的操作电压。
对于风扇控制电路而言,升压转换器可以将控制器提供的低电平信号转换为驱动器需要的高电平信号。
4. 电机:电机是整个系统中最关键的部分,它需要提供所需要的风力。
电机的特性和规格也会影响到整个系统的控制。
5. 温度传感器:温度传感器可以对系统进行温度监测,并通过控制器提供的程序判定是否需要调整电机转速。
6. 电源部分:电源部分负责为整个系统提供电力支持。
对于单片机风扇控制电路而言,电源部分应该提供稳定可靠的电源,以保证系统的正常运转。
三、软硬件设计单片机风扇控制电路的软硬件设计是非常关键的,它可以直接影响到系统的可靠性和控制精度。
下面介绍其中重要的几个环节:1. 硬件设计:硬件设计是单片机风扇控制电路中极为重要的部分。
硬件设计需要根据具体场景对电路进行设计,对于常见的设计方案,可以参考如下几点:(1)选用尽量小的单片机,以降低电路成本和功耗。
单片机课程设计报告---电风扇模拟控制系统设计
电风扇模拟控制系统设计一、选题背景本次单片机C语言设计选题为电风扇模拟控制系统设计,我们需要解决的主要问题为如何实现电风扇的运转,控制档位与转速并且在过热时系统会做出及时的调整。
我们还应达到以下技术要求:利用 L298N 驱动模块,驱动直流风扇,设计一个电风扇控制系统;3 个独立按键分别控制“自然风”、“睡眠风”、“常风”,(三者的区别是直流电机的停歇时间不同),并在数显管上显示出区别;每种类型风可以根据按下独立按键次数分为 4 个档的风力调节;设计风扇的过热保护,即当风扇运行一段时间后,暂停10秒。
本次实验的指导思想主要是在学习完单片机C语言程序后,并且做了多次实验,我们已经熟练掌握程序编写、画电路图、进行仿真实验。
通过课程设计来锻炼我们自己的动手能力并且检验我们的学习成果。
二、方案论证(设计理念)设计原理:本次设计以单片机AT89CA51作为核心,从而建立一个控制系统,实现三个按键控制直流电机的不同转速,来实现“自然风”、“常风”、“睡眠风”三种状态,并且每种“风”都有四种档位。
同时在数码管上显示对应的风种类和档位。
同时设计过热保护,系统在运行一段时间后自动暂停10s。
AT89C51是一个低功耗,高性能的8位单片机。
4k字节Flash闪速存储器,256字节片内数据存储器(00H -7FH为片内RAM,80H-FFH为特殊功能寄存器SFR),32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
三、过程论述首先先使用一张proteus模拟电路图来展现设计原理。
让我们更好的理解设计中使用的元器件以及运行原理。
基于单片机的温度控制智能电风扇
新疆工业高等专科学校电气与信息工程系课程设计基于单片机的温度控制智能电风扇专业班级:电力系统自动化10-10(1)班学生姓名:张玉杰指导教师:陈晓云完成日期: 2012-6-8新疆工业高等专科学校电气与信息工程系系课程设计任务书11/12学年下学期2012 年6 月4 日专业电力系统自动化班级电力10-10(1)课程名称单片机课程设计设计题目基于单片机的温度控制智能电风扇指导教师陈晓云老师起止时间2012.6.4—2012.6.8 周数1周设计地点电气系机房设计目的:1.掌握keil编程软件及proteus单片机仿真软件的使用;2.学习掌握单片机的特性及单片机的应用;3.熟悉掌握单片机的编程语言。
设计任务或主要技术指标:本设计是以51单片机为主要控制核心,用51单片机系统对用户设定信号数据的采集以及分析,能通过温度传感器对环境温度进行数据采集,并用各种可控型电子元器件对电风扇各种工作状态,实现“温度高,风力大,温度低,风力弱”的性能的控制,以达到用户需求从而建立一个控制系统。
设计进度与要求:1.先确定设计方案并查阅相关资料;2.学习keil编程软件及proteus单片机仿真软件并开始绘制电路原理图;3.编写程序并调试;4.要求在proteus单片机仿真软件上调试出预定结果,作出报告。
主要参考书及参考资料:[1] 张鑫.单片机原理及应用.电子工业出版社[1] 明德刚.DS18B20在单片机温控系统中的应用.贵州大学学报,2006,2[2] 黄朝民,肖明清,吴志强.单片机原理与应用.现代电子技术,2006,12[3] 刘进山.基于MCS-51电风扇智能调速器的设计.电子质量,2004,10教研室主任(签名)系(部)主任(签名)年月日新疆工业高等专科学校电气与信息工程系课程设计评定意见设计题目:基于单片机的温度控制智能电风扇学生姓名:张玉杰专业:电力系统自动化班级:电力10-10(1)班评定意见:评定成绩:指导教师(签名):年月日评定意见参考提纲:1.学生完成的工作量与内容是否符合任务书的要求。
自动调速电风扇(单片机)
“自动调速电风扇”(单片机)#include<absacc.h>#include<reg51.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned char/*******************************************///P0_0为DS18B20通讯//P1_0~P1_7为段码输出,P2_0~P2_3位码输出//按键2个//脉冲输入P0_1,脉冲输出P0_2/*********************************************//**********************延时程序**************/void delay(uint v){while(v!=0) v--;}/******************显示模块**************/uchar code led_segment[12]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8 ,0x80,0x90,0x49,0xFF};uchar disbuffer[4]={0,0,0,0};uchar bitselect;sbit led4=P2^0;sbit led3=P2^1;sbit led2=P2^2;sbit led1=P2^3;void display(void){for(bitselect=0;bitselect<4;bitselect++){if(bitselect==0){led1=0;led2=1;led3=1;led4=1;} else if(bitselect==1){led1=1;led2=0;led3=1;led4=1;}else if(bitselect==2){led1=1;led2=1;led3=0;led4=1;}else if(bitselect==3){led1=1;led2=1;led3=1;led4=0;}P1=led_segment[disbuffer[bitselect]];delay(100);}P1=0xff; //及时关闭P2口,以免造成最后一灯较亮}/**************DS18B20****************/sbit P0_0=P0^0;uchar temp111;uchar a,b;bit tmreset (void)// 发送复位和初始化{ static bit presence;unsigned int i;P0_0 = 0;i = 103;while (i>0) i--;// 延时P0_0 = 1;i = 4;while (i>0) i--;presence= P0_0;delay(20);return (presence); }bit tmpread (void)// 读取数据的一位{unsigned int i;bit dat;P0_0 = 0;P0_0 = 1; i++; i++; //延时dat = P0_0;i = 8; while (i>0) i--;// 延时return (dat);}unsigned char tmpread2 (void)//读一个字节{unsigned char i,j,dat;dat = 0;for (i=1;i<=8;i++){j = tmpread ();dat = (j << 7) | (dat >> 1);}return (dat);}void tmpwrite (unsigned char dat)//写一个字节{unsigned int i;unsigned char j;bit testb;for (j=1;j<=8;j++){testb = dat & 0x01;dat = dat >> 1;if (testb){P0_0 = 0;// 写1i++; i++;P0_0 = 1;i = 8; while (i>0) i--;}else{P0_0 = 0;// 写0i = 8; while (i>0) i--;P0_0 = 1;i++; i++;}}}void tmpchange(void)// ds1820 开始转换{tmreset ();// 复位delay(200);// 延时tmpwrite (0xcc);// 跳过序列号命令tmpwrite (0x44);// 发转换命令44H,}void tmp (void)// 读取温度{tmreset ();// 复位delay(200);// 延时tmpwrite (0xcc);// 跳过序列号命令tmpwrite (0xbe);// 发送读取命令a = tmpread2 ();// 读取低位温度P0_0 = 0;b = tmpread2 ();//读取高位温度P0_0 = 0;}tm_read(){ tmpchange();// 开始温度转换delay(200);// 读取延时tmp();P0_0=0;//读取温度temp111=(b<<4)|(a>>4);disbuffer[0]=(temp111/10)%10;disbuffer[1]=temp111%10;}/***************按键************/ sbit key1=P3^0;sbit key2=P3^1;bit keyon,keyoff,key1av,key2av;bit key1_state=0;uint key2_state=0;void read_key(void){keyon=0;if(key1==0) {key1av=1;keyon=1;keyoff=1;} if(key2==0){key2av=1;keyon=1;keyoff=1;} }/**************防连击***************/ KeyProcess(){while(keyoff){read_key();if(keyon==0){keyoff=0;if(key1av==1){key1_state=~key1_state;}}}}/***************主进程**********/ void process(void){KeyProcess();if(key1_state)//自动{disbuffer[2]=11;switch(key2_state){case 0 :if(temp111>=27)key2_state=1;break;case 1 :if(temp111>=30)key2_state=2;if(temp111<=26)key2_state=0;break;case 2 :if(temp111>=32)key2_state=3;if(temp111<=29)key2_state=2;break;case 3 :break;default :key2_state=0;break;}}else//手动{disbuffer[2]=10;if(key2av){key2av=0;key2_state=key2_state++;}if(key2_state==4){key2_state=0;}}disbuffer[3]=key2_state;}/******************可控硅控制******/ sbit din=P0^1;sbit dout=P0^2;bit av;uint t;void kekong(void){switch(key2_state){case 0 : dout=0;break;case 1 : if(din)av=1;if(!din){if(av){t=t+1;av=0;}}if(t==1){dout=1;}else if(t==3){t=0;dout=0;}else{dout=0;}break;case 2 : if(din)dout=1;elsedout=0;break;case 3 : dout=1;default : break;}}/*******************************/ void main(void){EA=0;delay(100);while(1){tm_read();process();kekong();display();}}。
51单片机汇编三档八小时风扇控制程序,内有源程序和PDF文档
MOV TL0,#LOW(65536-50000);50MS(当4mhz晶体时为150MS)
SETB EA ;开总中断
SETB ET0 ;定时器0中断允许
DELAY: ;防抖
MOV R1,#20
DD: MOV R0,#248
DJNZ R0,$
DJNZ R1,DD
RET
TIME: ;1小时基准
MOV TH0,#HIGH(65536-50000);重置初定时值
;P1.7也作开机OUT控制,全部都是低电平有效。
;注意晶体为12MHZ IC为89C2051系列
ORG 00H
JMP START
ORG 0BH ;定时器0入口
JMP TIME ;中断程序
CLR TR0 ;关闭定时器0
JMP LOOP
CLRR: ;清除软件计数器为0
MOV R7,#00H
MOV R6,#00H
MOV R5,#00H
RET
51单片机汇编三档八小时风扇控制程序,内有源程序和PDF文档
;;;;;;;风扇控制程序;;;;;;; 14\4\07
;用P3.0\P3.1\P3.2 分别控制档位\定时\和关机
;P3.3\P3.4\P3.5分别为1\2\3档位
;P1.0~P1.7分别接共阳极数码管A~H指示(长通E.)\1H~8H定时
CALL DELAY
JB P3.1,LOOP
INC R2
JNB P3.1,$
SETB TR0 ;启动定时器0
CJNE R2,#01H,C002
MOV R4,#01H ;1小时
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三档八小时遥控电风扇控制电路和单片机程序-----广东、五华、李标清大家都知道风扇是每家每户都不可缺少一个电器用品,现在已到夏天了气温渐渐上升用鸿运扇(或台扇)原来的机械式定时器,由于有些老人家说太噪很难入睡,普通型的定时器最长定时时间1小时,特别型的好像2小时经常都是睡到半梦半醒又被热醒了,只好拿风扇来“开刀”了,把它改成遥控三档八小时控制风扇,哈哈!如果朋友们也有这种困扰就不要等了马上开始行动吧!硬件联接与功能简介如下:;*****************************风扇控制程序*******************************;用P3.0\P3.1\P3.7 分别控制风速定时关机;P3.3\P3.4\P3.5分别为风速1 风速2 风速3;P1.0~P1.7分别接共阳极数码管A~H指示----->定时:\1H~8H定时\ 风速: 一~二~三;P1.7也作开机OUT控制,全部都是低电平有效。
;开发软件:TKStudio V3.2.5 (2011-05-22);注意晶体: 4MHZ MCU:89C2051系列;************************************************************************电原理图如下:电路板实物图:电路工作原理:市电220V/50HZ经J1进入后按下SW0开机键(或RY1的开关组,开机后由主控芯片控制保持RY1自锁)后通过R2\C0(泄放电阻R10)限流\D1\D2\ZD1\C2整流滤波稳压后得到12V的直流电压(用来给RY1提供工作电压用),再经Q4\ZD2稳压为5V直流给CPU AT89C2051 供电。
开机后默认为风速一档DS1显示为中文的一,不定时状态(即风扇一直工作到按下SW3关机键或市电停止为止,当然风扇马达有故障也会)每按下SW2定时按键一次DS1显示值会自动加一,定时时间也相对应的加一(可从1~8,再到不显示阿拉伯数字,循环。
当不显示阿拉伯数字时表示长通不定时),如果风扇是工作在定时自动关机状态时DS1会以约1秒钟的时间来切换当前风速与定时的时间值,显示阿拉伯数字对(此应定时时间如果为1小时即1小时后风扇会自动停止工作,为了低碳包括整个电路都会停止工作,按键可以通过红外遥控器来实现)。
如果每按下SW1风速按键一次则同样DS1显示值会加一(从中文的一~ 三,循环),分别对应控制风扇马达的1~3档(此按键可以通过红外遥控器来实现)。
如果控按下SW3则整个电路都会停止工作,(此按键可以通过红外遥控器来实现)。
此次设计的遥控器要求是NEC编码格式的遥控器,且不具备遥控码学习工能。
故仿制的朋友要在原程序里面更改遥控器解码部分的用户码与按键的操作码,需要改动的部分在原程序里面有详细的注释。
与本文所提供的HEX文件对应的遥远控器可以用以(众合RM-139C型万能电视机遥控器的代码为000时),遥控器上的POWER键对应本电路的SW3关机键,睡眠键对应本电路的SW2定时键,回看键对应本电路的SW1风速键。
#1:本电路带有强电请仿制的朋友注意安全。
;*****************************风扇控制程序*******************************;用P3.0\P3.1\P3.7 分别控制风速定时关机;P3.3\P3.4\P3.5分别为风速1 风速2 风速3;P1.0~P1.7分别接共阳极数码管A~H指示----->定时:\1H~8H定时\ 风速: 一~二~三;P1.7也作开机OUT控制,全部都是低电平有效。
;开发软件:TKStudio V3.2.5 (2009-12-18);注意晶体: 4MHZ MCU:89C2051系列;程序设计:广东、五华、李标清2011-05-22;************************************************************************;;代码的特征:; 1. HT6221键码的形成; 当一个键按下超过36ms 振荡器使芯片激活如果这个键按下且延迟大约108ms,; 这108ms 发射代码由一个起始码9ms, 一个结果码4.5ms, 低8 位地址码9ms~18ms,; 高8 位地址码9ms~18ms,8 位数据码9ms~18ms 和这8 位数据的反码9ms~18ms 组成; 如果键按下超过108ms 仍未松开接下来发射的代码连发代码将仅由起始码9ms; 和结束码2.5ms 组成.; 2.代码格式以接收代码为准接收代码与发射代码反向;;888888888888888888888888888888888888888888888888888888888888888888888888ORG 0000HSwFengSu BIT P3.0 ;风速SwTime BIT P3.1 ;定时SwOff BIT P3.7 ;关机FengSu1 BIT P3.3 ;风速1FengSu2 BIT P3.4 ;风速2FengSu3 BIT P3.5 ;风速3JMP STARTORG 0003HJMP YAO_KONGORG 000BH ;定时器0入口JMP TIME ;中断程序ORG 0030HSTART:MOV SP,#60HMOV P3,#0F7H ;11110111B ;默认为风速1MOV 22H,#09H ;使其取得一.的显示码MOV R3,#00HMOV R2,#00HMOV R4,#00HCLR 20H.0 ;开关标志位MOV TMOD,#01H ;定时器0工作于方式1MOV TH0,#HIGH(65536-50000)MOV TL0,#LOW(65536-50000);50MS(当4mhz晶体时为150MS)SETB EA ;开总中断SETB ET0 ;定时器0中断允许SETB EX0SETB IT0LOOP:JNB 20H.0,ON ;不是关机即转ON处OFF: MOV P1,#8EH ;显示F且P1.7为高即关机MOV P3,#0FFH ;风速全部关JMP OFFON: MOV DPTR,#TABLEMOV A,R4 ;JB 20H.1,ON1 ;如果20H.1=1 即显示定时值MOV A,22H ;使其取得一.二.三.的显示码ON1:MOVC A,@A+DPTRMOV P1,A ;送P1口显示CALL SW_OFFCALL SW_FengSuCALL SW_TimeJMP LOOPSW_OFF:JB SwOff,SWO ;是否有关机键压下CALL DELAY ;防抖JB SwOff,SWOJNB SwOff,$SW1:SETB 20H.0 ;取反即为高电平故关闭总电源SWO:RETSW_FengSu:;调风速键JB SwFengSu,LAO ;是否有调风速键压下CALL DELAYJB SwFengSu,LAOLA1: MOV PSW,#00HCLR 20H.1 ;标志位置0 显示风速值SETB 20H.2 ;延时轮流显示标志位MOV 21H,#8 ;延时轮流显示INC R3JNB SwFengSu,$C01:;风速2CJNE R3,#01H,C02MOV 22H,#0AH ;使其取得二.的显示码SETB F engSu1 ;关风速1CALL DELAY ;延时防抖14946usCALL DELAY ;延时防抖14946usCLR FengSu2 ;开风速2JMP LAOC02: ;风速3CJNE R3,#02H,C03MOV 22H,#0BH ;使其取得三.的显示码SETB F engSu2 ;关风速2CALL DELAY ;延时防抖14946usCALL DELAY ;延时防抖14946usCLR FengSu3 ;开风速3JMP LAOC03: ;风速1MOV 22H,#09H ;使其取得一.的显示码SETB F engSu3 ;关风速3CALL DELAY ;延时防抖14946usCALL DELAY ;延时防抖14946usCLR FengSu1 ;开风速1MOV R3,#00HLAO: RETSW_Time:;调定时键JB SwTime,LBO ;是否有定时键压下CALL DELAYJB SwTime,LBOLB:MOV PSW,#00HSETB 20H.1 ;标志位置1 显示定时值SETB 20H.2 ;延时轮流显示/风速标志位置1JNB SwTime,$MOV 21H,#8 ;延时轮流显示MOV R7,#00HMOV R6,#00HMOV R5,#00HINC R4 ;定时时间加1 小时CJNE R4,#09H,C04 ;如果大于8即长通不会定时关机CLR 20H.1 ;标志位置0 显示风速值MOV R4,#00HCLR TR0RETC04:SETB TR0LBO:RETDELAY:;延时防抖14946usMOV R1,#10 ;1*3=3DD: MOV R0,#248 ;1*3=3DJNZ R0,$ ;2*3*248*10=14880DJNZ R1,DD ;2*3*10=60RETTIME:PUSH ACCPUSH PSWMOV TH0,#HIGH(65536-50000)MOV TL0,#LOW(65536-50000);重置初定时值INC R7INC R5CJNE R5,#7,TT1 ;150MS*7=1S到了吗?MOV R5,#00HJNB 20H.2,TT2 ;延时轮流显示/风速标志位置DJNZ 21H,TT1CLR 20H.2TT2:CPL 20H.1 ;标志位置0 显示风速值TT1:CJNE R7,#200,TT ;150MS*200=30S到了吗?MOV R7,#00HINC R6CJNE R6,#120,TT ;30S*120=3600S到了吗?MOV R6,#00HDJNZ R4,TT ;将R4的值减1SETB 20H.0 ;取反即为高电平故关闭总电源TT: POP PSWPOP ACCRETIYAO_KONG:PUSH PSWPUSH ACCCLR EAMOV PSW,#10HIR: MOV R6,#10SB: ACALL DELAY882JB P3.2,REM_BAKDJNZ R6,SBJNB P3.2,$ACALL DELAY2400JNB P3.2,REM_BAKACALL DELAY2400MOV R1,#1AHMOV R2,#4PP: MOV R3,#8JJ: JNB P3.2,$LCALL DELAY882MOV C,P3.2JNC UUULCALL DELAY1000UUU:MOV A,@R1RRC AMOV @R1,ADJNZ R3,JJINC R1DJNZ R2,PPDAN_JI:;(众合RM-139C型万能电视机遥控器的代码为000时);遥控器上的POWER键对应本电路的SW3关机键;睡眠键对应本电路的SW2定时键;回看键对应本电路的SW1风速键)NOPMOV A,1AHXRL A,#40H ;用户码低八位40H (若你的遥控器不一样请修改其中的立即数)JNZ REM_BAKMOV A,1BHXRL A,#0BFH ;用户码高八位BFH (若你的遥控器不一样请修改其中的立即数)JNZ REM_BAKMOV A,1CHCPL AXRL A,1DHJNZ REM_BAKMOV A,1CHCJNE A,#12H,E81 ;遥控器关机键的操作码(若你的遥控器不一样请修改其中的立即数)CALL SW1 ;关机JMP REM_BAKE81: CJNE A,#17H,E82 ;遥控器定时键的操作码(若你的遥控器不一样请修改其中的立即数) CALL LB ;定时JMP REM_BAKE82: CJNE A,#0BH,E83 ;遥控器关风速键的操作码(若你的遥控器不一样请修改其中的立即数) CALL LA1 ;风速E83: ;CJNE A,#83H,E84REM_BAK:POP ACCPOP PSWSETB E ARETIDELAY882: ;882usMOV R7,#73 ;3*1=3;NOP ;3*1=3D3: NOP ;3*1*73=219 NOP ;3*1*73=219DJNZ R7,D3 ;2*3*73=438RETDELAY1000: ;999usMOV R7,#83 ;3*1=3D4: NOP ;3*1*83=249 NOP ;3*1*83=249DJNZ R7,D4 ;2*3*83=498RETDELAY2400: ;2403usMOV R7,#89 ;3*1=3D5: NOP ;3*89=267NOP ;3*89=267NOP ;3*89=267NOP ;3*89=267NOP ;3*89=267NOP ;3*89=267NOP ;3*89=267DJNZ R7,D5 ;2*3*89=534RETTABLE:;P1.0-P1.7分别接共阳极数码管A-H DB 40H ;0.DB 79H ;1.DB 24H ;2.DB 30H ;3.DB 19H ;4.DB 12H ;5.DB 02H ;6.DB 58H ;7.DB 00H ;8.DB 3FH ;一.DB 37H ;二.DB 36H ;三.END。