您好,欢迎访问三七文档
智能风扇调速系统总体设计框图系统电路设计总体设计方框图所示,控制器采用单片机AT89S52,温度传感器采用DS18B20,用2位LED数码管以串口传送数据实现温度显示。总体设计方框图主控制器单片机AT89S52具有低电压供电和体积小等特点,四个端就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。状态显示显示风扇调速系统处于的工作状态,状态有三种分别是低速状态、中速状态和高速状态,此系统以发光二极管指示作演示。LED显示本系统共使用的三个共阳极七段数码管分别显示,当前的温度和设定定时的倒计时时间。温度以标准摄氏度为单位。时间以分钟为单位。数码管采用单片机P0口并行数据输出,P2口数据扫描控制显示,三极管8550做数码管的驱动。键盘控制有一组键盘控制倒计时温度的设定加与减。另一组控制系统处于的三种状态,分别对应的是低速状态、中速状态和高速状态,此系统以发光二极管指示作演示。还有一个开关按键是控制系统是处于自动状态和手动状态的开关。温度传感器DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。DS18B20的性能特点如下:●独特的单线接口仅需要一个端口引脚进行通信;●多个DS18B20可以并联在惟一的三线上,实现多点组网功能;●无须外部器件;●可通过数据线供电,电压范围为3.0~5.5V;●零待机功耗;●温度以9或12位数字;●用户可定义报警设置;●报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;●负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;系统复位系统单片机采用的是上电复位,当复位键按下时,系统会变为,开始的初始状态。时钟振荡系统单片机使用的是外部时钟振荡,振荡频率为标准的11.0592MHZ。主要参数序号参数数值备注1电源电压220V交流2工作电压4V~6V直流3功率8W4设定值0~9分钟5低速30度~32度6中速32度~34度7高速34度以上8误差范围精度误差小于0.5℃主要元器件序号名称作用个数1AT89S52单片机运算处理12DS1802传感器温度测量13数码管LG5011BSR温度显示44蜂鸣器温度报警15变压器变压16整流桥交流变直流17三端稳压器7805稳定电压值18AT24C02掉电存储器元件清单元件名称单位(只)型号参数备注温度传感器1DS18B20-55~100度5V单片机1AT89S52变压器1220V变9V9V/8W整流桥11安C1,C2230PC3,C6222UF/25VC41220UF/25VC512.2UF/25R1~R67100欧姆1/8WR7~R93510欧姆1/8WR10110K1/8WR11~R1554.7K1/8WR16~R216510欧姆1/8WD11发光二极管发红电源指示D2~D65发光二极管发红按下指示D71发光二极管白发白低速指示D81发光二极管白发蓝中速指示D91发光二极管白发红高速指示稳压管1LM7805Y11晶震11.0592HZS1~S66按键S1-11开关Q1~Q348550NPNU10~U123LG5011BSR7段数码管电路板2块电源线1条风扇调速系统使用说明书1.接通交流220伏电源,电源指示灯亮。2.按下启动电源开关,系统开始运行。3.当手动/自动按键弹起时,为手动状态,温度显示为当前温度,时间显示为零,加,减键不起作用。4.分别按下,低速至高速按键,相应的指示灯亮。5.当手动/自动按键按下时,为自动状态,温度显示为当前温度,时间显示为零,加,减键起作用。每次加1或减1。系统处于倒计时状态。6.分别按下,低速至高速按键,相应的指示灯亮。7.当系统处于自动状态时,如果温度大于30度,低速灯自动点亮。如果温度大于32度,中速灯自动点亮。如果温度大于34度,高速灯自动点亮。风扇调速最终程序#includereg52.hcodeunsignedcharseg7code[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x40};//显示段码sbitTMDAT=P3^1;//DS18B20的数据输入/输出脚DQ,根据情况设定sbitP2_7=P2^7;sbitP2_6=P2^6;sbitP2_5=P2^5;sbitjia=P2^4;sbitjian=P2^3;sbitdi=P2^2;sbitzh=P2^1;sbitga=P2^0;unsignedintz=0;sbitq=P1^7;unsignedintsdata;//测量到的温度的整数部分//unsignedcharxiaoshu1;//小数第一位//unsignedcharxiaoshu2;//小数第二位//unsignedcharxiaoshu;//两位小数bitfg=1;//温度正负标志//////////*显示延时程序*///////////////voidDelay(unsignedinttc){while(tc!=0){unsignedinti;for(i=0;i80;i++);tc--;}}////////////延时部分///////////////voidyanshi(unsignedintcount){unsignedchari;while(count--){for(i=0;i115;i++);}}/////////////发送复位///////////////voidfashong(void){unsignedchari;TMDAT=0;for(i=0;i103;i++);TMDAT=1;for(i=0;i4;i++);}bittmrbit(void)//读一位//{unsignedinti;bitdat;TMDAT=0;i++;TMDAT=1;i++;i++;//微量延时//dat=TMDAT;for(i=0;i8;i++);return(dat);}unsignedchartmrbyte(void)//读一个字节{unsignedchari,j,dat;dat=0;for(i=1;i=8;i++){j=tmrbit();dat=(j7)|(dat1);}return(dat);}voidtmwbyte(unsignedchardat)//写一个字节{unsignedcharj,i;bittestb;for(j=1;j=8;j++){testb=dat&0x01;dat=dat1;if(testb){TMDAT=0;//写0i++;i++;TMDAT=1;for(i=0;i8;i++);}else{TMDAT=0;//写0for(i=0;i8;i++);TMDAT=1;i++;i++;}}}voidtmstart(void)//发送ds1820开始转换{fashong();//复位yanshi(1);//延时tmwbyte(0xcc);//跳过序列号命令tmwbyte(0x44);//发转换命令44H,}voidtmrtemp(void)//读取温度{unsignedchara,b;fashong();//复位yanshi(1);//延时tmwbyte(0xcc);//跳过序列号命令tmwbyte(0xbe);//发送读取命令a=tmrbyte();//读取低位温度b=tmrbyte();//读取高位温度if(b0x7f)//最高位为1时温度是负{a=~a;b=~b+1;//补码转换,取反加一fg=0;//读取温度为负时fg=0}sdata=a/16+b*16;//整数部分//xiaoshu1=(a&0x0f)*10/16;//小数第一位//xiaoshu2=(a&0x0f)*100/16%10;//小数//xiaoshu=xiaoshu1*10+xiaoshu2;//小数}voidDS18B20PRO(void){tmstart();//yanshi(5);//如果是不断地读取的话可以不延tmrtemp();//读取温度,执行完毕温度将存于}voidLed(){if(fg==1)//温度为正时显示的数据{P2_7=0;P0=seg7code[sdata/10];//输出十位Delay(8);P2=P2|0xf0;P2_6=0;P0=seg7code[sdata%10]|0x80;//输出个位Delay(8);P2=P2|0xf0;P2_5=0;P0=seg7code[z%10]|0x80;//输出延时位Delay(4);P2=P2|0xf0;if(sdata30){P1=0xfe;}if(sdata32){P1=0xfd;}if(sdata34){P1=0xfb;}}}voidbuzidong(){voidDS18B20PRO();voidLed();DS18B20PRO();Led();if(di==0){Delay(200);P1=0xfe;}if(zh==0){Delay(200);P1=0xfd;}if(ga==0){Delay(200);P1=0xfb;}}voidzidong(){while(z--){voidDS18B20PRO();voidLed();unsignedchari,k;//for(y=30;y0;y--)for(i=12;i0;i--)//for(j=80;j0;j--)for(k=248;k0;k--){if(jia==0){Delay(200);z++;}if(jian==0){Delay(200);z--;}DS18B20PRO();Led();if(di==0){Delay(200);P1=0xfe;}if(zh==0){Delay(200);P1=0xfd;}if(ga==0){Delay(200);P1=0xfb;}/*if((di==0)||(sdata30)){Delay(200);P1=0xfe;}if((zh==0)||(sdata32)){Delay(200);P1=0xfd;}if((ga==0)||(sdata34)){Delay(200);P1=0xfb;}*/};}}voidmain(){fg=1;while(1){//if(jia==0)//{Delay(200);z++;}//if(jian==0)//{Delay(200);z--;}//zidong();buzidong();if(q==0){z++;zidong();P1=0xff;}}}Y111.0592MC130PC230PS1RST+C322uVCCR1010kVCCP1.0(T2)1P1.1(T2EX)2P1.23P1.34P1.45P1.56P1.67P1.78P3.3(INT1)13P3.2(INT0)12P3.4(T0)14P3.5(T1)15EA/VPP31XTAL018XTAL119RESET9P3.6(WR)16P3.7(RD)17PSEN29ALE(PROG)30(RXD)P3.010(TXD)P3.111VCC40VSS20P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728P0.039P0.138P0.237P0.336P0.435P0.534P0.633P0.73289C52U189S52VCC/RDabcdefg/WRCOM1COM2COM3aabbccddeeffggdpdpabcdefgdpabcdefdpgCOMU107段数码管abcdefdpgCOMU12七段数码管abcdefdpgCOMU11七段数码管R0~R6100欧R0R1R2R3R4R5R6510R7510R8510R9D9高速指示D7低速指示VCCQ0PNPQ1PNPQ2PNP4.7kR114.7kR124.7kR13VCCVCCVCCCOM1COM2COM3123U218B204.7k
本文标题:风扇调速系统说明
链接地址:https://www.777doc.com/doc-1964216 .html