1、信息工程学院电子制作大赛参赛作品之智能温控风扇参赛者:潘炳森学号:07100128 班级:控制 1001 班1目录页码 一、 前言 2 二、 总体方案设计 3三、 单元模块设计 4四、系统调试: 5五、系统功能、指标参数: 6六、设计总结: 7七、 参考文献: 8八、 附录: 92一、前言本设计是以 51 单片机为主要控制核心,以 51 单片机系统设定信号的数据,能通过各种控制电子元器件对风扇各种状态的控制,以达到不同的需求。关键字:DS18B20 温度控制、定时开关、按键判断、数码管显示3二、总体方案设计按键输入单片机数码管显示 电机控制DS18B20利用 AT89C52 单片机实现直流电机
2、的四种速度的控制,简易地通过四个按键调整电路。DS18B20 四位数码管显示系统的当前状态,根据不同的功能选择,可以分为自动和定时两种方式。当选择自动档位时,电机可实现三级调速;当选择定时档位时,同样可以实现三级调速,当电机转动的时间到了设定时间电机会自动关闭。二、系统能实现的功能:通过按键控制,能实现四级调速,数码管显示等级。选择定时的功能,可以实现限时,不限时两种状态。4 位数码管前状态,前两位显示定时时间,第三位显示定时还是自动方式,第四位显示速度等级。三、软件仿真:4XTAL218XTAL119ALE301PSN29RST9P0./AD039.1/18P0.2/AD237.3/36P0
3、.4/AD435.5/54P0.6/AD63.7/72P1.0/T21./EX2P1.23.34P1.45.56P1.67.78P3.0/RXD10.1/TP3.2/IN012./IT13P3.4/014P3.7/RD17.6/W6.5/T15P2.7/A1528P2.0/A821.1/9P2./A023.3/14P2.4/A225.5/136.6/47U1AT89C52C130PF C230PFX1CRYSTALR110kC410uFP1.4R1010kP1.5P1.6P1.7R110kR1210kR1310k Q1PNR21k Q2PNR31kQ3PNR41kQ4PNR51kR610kR7
4、10kR810kR910kR144.7kR1510kR1610k1710kR1810k1910k210k210k 210k单 片 机 智 能 风 扇R2410 Q5PN如上原理图所示,P0 内部无上拉电阻,执行输出功能时,外部必须接上拉电阻(10K) ;电机为 5 伏风扇,与电机相连的 PNP 晶体管相当于一个开关,具有通断的作用;而与数码管相连的 PNP 晶体管,扫描信号分别输入基极,且基极都接 1K 的限流电阻,低电平将使其所连接的晶体管导通,驱动的位数才可能会显示,为低电平扫描,各元件合理连接。其中,电机调整是整个电路重要部分,通过调节脉宽,使输出电压发生改变,从而使施加在风扇的输入电压
5、发生改变,以调节风扇的转速,实现各档位风速的调节。经过测量,得到各档的电压如下表,风扇起始档位 1,表格如下:档位 1 2 3 4电压(V)5 2.6 2 0.9四、各单元模块功能的联系:(1) 、按键:按下位声明的按键,系统读取按键的键值,对四个按键键值判断5(2) 、数码管:采用动态扫描式显示方式,将数码管所要显示的数字传到总线,再将扫描信号送到基极即可显示数字(3) 、电机:电机的转换是根据电机电压导通与关闭时间的长短,达到简易调速的功能通过不同的按键选择,可实现智能控制。按键的选择,具体实现以下功能按键按键 1 按键 2 按键 3 按键 4时间+1 时间-1 为 0 时 档位转换为 1
6、 时不定时 可定时五、设计总结: 对设计的小结:刚开始在实际电路中遇到了很多问题,但结合所学知识和参考资料的帮助,通过不断尝试,解决了实际问题。同时,通过自己的不断地去查资料和动手尝试调试电路,提高了动手能力,并加深了对单片机基本原理的认识,大大地提高了对电子学的学习兴趣6 设计收获体会:通过这次比赛,让我学到了很多东西,对单片机的理论和作用有了更进一步的了解,深入学习元器件的功能,对各器件的使用规格使我们如何把理论的东西用到实践中去。同时在具体的制作过程中发现现在书本上的知识与实际的应用存在差距,使我更深刻的体会到了理论联系实际的重要性加,因此在学习的过程中,一定要软硬件结合。单片机的学习有
7、些少难度,但我不要会退缩,以后学习,要努力克服它。六、程序:/*程序名称:单片机智能风扇程序功能:利用 AT89C52 单片机实现直流电机的四种速度的控制,通过四个按键调整个电路*/#include /头文件声明#define uint unsigned int /宏定义7#define uchar unsigned charcode uchar seg7code10= 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; /数码管段码 uchar wei4=0XEf,0XDf,0XBf,0X7f; /数码管位的控制端/*函数声明*/void d
8、elay(uint ms); void key_detection(); /按键判断void Led(uchar date,uchar data1,uchar data2); /显示函数void motor_control(uchar temp); /电机转速控制/*位声明*/ sbit CLOCK_ADD = P14; /时间+按键 sbit CLOCK_MINUS = P15; /时间- 按键sbit TIME_QIEHUAN = P16; /定时选择按键sbit DW_ZHUANH = P17; /档位选择sbit KZ_DIANJI = P36 ; /电机控制/*全局变量声明*/cha
9、r time,timin=0,gear=1; / 定时时间,定时选择,档位全局变量uchar tcnt,tcnt2;/*函数名称:主函数*/ void main()TMOD=0x10; TH1=0x3c;TL1=0xb0;while(1)key_detection(); /键盘扫描Led(time,timin,gear); /数码管显示motor_control(gear); /电机转动if(tcnt2time) 8KZ_DIANJI=1; /电机停止转动gear=1;EA=0; ET1=0; TR1=0; /*函数名称:延时函数函数功能:毫秒级延时*/void delay(uint ms) uint ti;while(ms-) for(ti=0;ti=99)time=99;break;case 0xDF: /时间-time-; /时间-1if(time=1)time=99;break;case 0xBF: /定时选择按键timin+;if(timin=1)EA=1; ET1=1;