




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于12C5A60S2单片机的温控风扇系统学院: 自 动 化 学 院1、 摘要如今随着物联网的不断发展,在我们身边不断出现智能设备,这些设备多多少少都离不开单片机的应用。诸如小米的智能手环,智能机顶盒等。可见学会单片机应用的重要性,本系统采用12C5A60S2单片机实现温控风扇系统。生活中,我们经常会使用到电风扇。比如,在炎热的夏天人们用电风扇来降温;在工业生产中,大型机械用电风扇来散热等。但是当环境温度变化的时候,人工很难做到及时控制风扇的转速,也很难有效利用宝贵的电资源。随着温度控制的技术不断发展,温控技术已经完全满足现代的日常生活和生产的要求,应运而生的温控电风扇也逐渐走进了人们的生活中。温控电风扇可以根据环境温度自动调节电风扇启停与转速,在实际生活的使用中,温控电风扇不仅可节省宝贵的电资源,也大大方便了人们的生活和生产。2、 设计方案(一)系统整体设计本设计的整体思路是:利用温度传感器DS18B20检测环境温度并直接输出数字温度信号给单片机12C5A60S2进行处理,在LED数码管上显示当前环境温度值以及预设温度值。其中预设温度值只能为整数形式,检测到的当前环境温度可精确到整数。同时利用LED数码管正确显示当前时间,并可通过按键进行日期的修改,时间采用风时显示的模式,年、月、日、时、分、秒单独显示,显示时第一位数码管会用相应排位,例如数码管第一位显示的为二时,数码管后两位显示的数值为年。本系统通过按键控制来设置温度的报警值,如达到报警值蜂鸣器报警并闪烁LED报警灯,同时也可按键关闭报警。同时本系统使用12C5A60S2单片机自带的A/D,采样,动态调整灯光亮度。风扇可以实现温度智能调速(假设启动温度为20度,如果慢慢增加温度,风扇的转速也会随之慢慢增加,当温度超过设定的最大温度时,风扇达到最大转速,并且报警。当然降温情况时,风扇的转速也随之改变)同时也能实现当前温度掉电留存。本系统设定一个低于室温的温度,实现风扇温控(具体如下,假设在一个不封盖的纸箱内,假设室温为25度,我们就设定20度为目标温度,此时风扇进行控温,当温度达到200.5度,时达到平衡状态)(2) 部分硬件简介1、12C5A60S2单片机STC12C5A60S2/AD/PWM系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S),针对电机控制,强干扰场合。2、DS18B20温度传感器DS18B20数字温度传感器,是采用美国DALLAS半导体公司生产DS18B20可组网数字温度传感器芯片封装而成,它具有微型化、低功耗、高性能、抗干扰能力强、易配微型处理器等优点,可直接将温度转化成串行数字信号供处理器处理。适用于各种狭小空间设备数字测温和控制领域。DS18B20的主要特征:测量的结果直接以数字信号的形式输出,以“一线总线”方式串行传给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力;温度测量范围在-55+125之间,在-10+85时精确度为0.5;可检测温度分辨率为912位,对应的可分辨温度分别为0.5,0.25,0.125和0.0625,可实现高精度测温;它单线接口的独特性,使它与微处理器连接时仅需一条端口线即可实现与微处理器的双向通信;支持多点组网功能,即多个DS18B20可以并联在唯一的三线上,实现组网多点测温的功能;工作电压范围宽,其范围在3.05.5V。DS18B20内部结构主要有四部分:64位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。其管脚有三个,其中DQ为数字信号端,GND为电源地,VDD为电源输入端。(3) 系统设计原理图三、附录(一) 元件清单:项目个数项目个数12C5A60S2单片机1蜂鸣器1 12M晶振110UF电解电容130PF陶瓷电容2按钮6 DS18B20温度传感器1 自锁按钮1 4.7K电阻2103排阻1 1K电阻10排针2 4位共阳数码管1 40P座1 8550三极管5 USB母座1LED灯39*15洞洞板1风扇1光敏电阻1L293电机驱动芯片116P座110K电阻2稳压二极管1(二)程序源代码#include#include#define uint unsigned int#define uchar unsigned char/-关于EEPROM的-sfr IAP_DATA = 0xC2;sfr IAP_ADDRH = 0xC3;sfr IAP_ADDRL = 0xC4;sfr IAP_CMD = 0xC5;sfr IAP_TRIG = 0xC6;sfr IAP_CONTR = 0xC7;#define CMD_IDLE 0#define CMD_READ 1#define CMD_PROGRAM 2#define CMD_ERASE 3#define IAP_ADDRESS 0x0000#define ENABLE_IAP 0x82sbit ds = P20;sbit beep = P21;sbit led = P33;sbit dj = P22;sbit jian1 = P37;sbit jian2 = P36;sbit jian3 = P35;sbit jian4 = P34;sbit we1 = P27;sbit we2 = P26;sbit we3 = P25;sbit we4 = P24;/-关于AD的-sfr ADC_CONTR = 0XBC;sfr ADC_RES = 0XBD;sfr P1ASF = 0X9D;sfr ADC_RESL = 0XBE;uchar code number = 0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90;void delayms(uint x) uint i,j;for(i = x; i 0; i-) for(j = 110; j 0; j-); /* void Delay(uchar n) /EEPROM的延时程序uint x; while(n-) x = 0;while(+x); */=DS18B20的延时= void delay_us(uchar x) uchar i;for(i=0;i 0; i-) beep = 0; led = 0;if(flag 0; i-) beep = 0; led = 1;if(flag = 60) miao = 0; fen+;if(fen = 60) fen = 0; shi+;if(shi = 24) shi = 0; ri+;if(yue=1|yue=3|yue=5|yue=7|yue=8|yue=10|yue=12) & ri=32) ri = 1; yue+;else if(yue=2 & ri=29) ri = 1; yue+;else if(ri=31) ri = 1; yue+;if(yue = 13)yue = 1;void IapIdle() /关闭EEPROMIAP_CONTR = 0;IAP_CMD = 0;IAP_TRIG = 0;IAP_ADDRH = 0x80;IAP_ADDRL = 0;uchar IapReadByte(uint addr) /EEPROM读一个字节uchar dat;deal_shijian();IAP_CONTR = ENABLE_IAP;IAP_CMD = CMD_READ;IAP_ADDRL = addr;IAP_ADDRH = addr 8;IAP_TRIG = 0x5a;IAP_TRIG = 0xa5;_nop_();dat = IAP_DATA;IapIdle();deal_shijian();return dat;void IapProgramByte(uint addr, uchar dat) /EEPROM写一个字节deal_shijian();IAP_CONTR = ENABLE_IAP;IAP_CMD = CMD_PROGRAM;IAP_ADDRL = addr;IAP_ADDRH = addr 8;IAP_DATA = dat;IAP_TRIG = 0x5a;IAP_TRIG = 0xa5;_nop_();IapIdle();deal_shijian();void IapEraseSector(uint addr) /EEPROM扇区擦除deal_shijian();IAP_CONTR = ENABLE_IAP;IAP_CMD = CMD_ERASE;IAP_ADDRL = addr;IAP_ADDRH = addr 8;IAP_TRIG = 0x5a;IAP_TRIG = 0xa5;_nop_();IapIdle();deal_shijian();void display_adc(uchar x) /显示采集的AD信号uchar i;i = x/1000;we1 = 0;P0 = numberi;delayms(5);we1 = 1;i = x%1000/100;we2 = 0;P0 = numberi;delayms(5);we2 = 1;i = x%100/10;we3 = 0;P0 = numberi;delayms(5);we3 = 1;i = x%10;we4 = 0;P0 = numberi;delayms(5);we4 = 1;uint adc_in() /自带的AD转换uint res;ADC_CONTR = 0xc9; res+; res+; res+;while(!(ADC_CONTR&0x10);res = ADC_RES*4 + ADC_RESL;ADC_RES = 0;ADC_RESL = 0;ADC_CONTR = 0;return(res);void led_control() /通过光敏电阻控制LED灯的亮度uchar ad = adc_in();uchar ad_num,gao_led,di_led,i;keyscan();if(ad 235)ad_num = 0;else if(ad 215)ad_num = 1;else if(ad 195)ad_num = 2;else if(ad 175)ad_num = 3;elsead_num = 4;switch(ad_num) case 0:gao_led = 4; di_led = 1; break;case 1:gao_led = 3; di_led = 2; break;case 2: gao_led = 2; di_led = 3; break;case 3:gao_led = 1; di_led = 4; break;case 4:gao_led = 0; di_led = 5; break;if(gao_led != 0) for(i = 0; i gao_led; i+) led = 1;display_adc(ad);for(i = 0; i di_led; i+) led = 0;display_adc(ad);void display_dj() /显示电机的档数和编号we1 = 0;P0 = numberflag;delayms(5);we1 = 1;we4 = 0;P0 = numberdj_num1;delayms(5);we4 = 1; void dispose(uchar dj_num) /根据速度标志进行数据处理switch(dj_num) case 0:if(flag = 8)display_dj();else if(flag = 10)display_wendu(temp);gao_dj = 1; di_dj = 3; break;case 1:if(flag = 8)display_dj();else if(flag = 10)display_wendu(temp);gao_dj = 2; di_dj = 2; break;case 2:if(flag = 8)display_dj();else if(flag = 10)display_wendu(temp);gao_dj = 3; di_dj = 1; break;case 3:if(flag = 8)display_dj();else if(flag = 10)display_wendu(temp);gao_dj = 4; di_dj = 0; break;void dj_qudong() /控制电机程序uchar i;if(di_dj != 0) for(i = 0; i di_dj; i+) dj = 0;if(flag = 8)display_dj();else if(flag = 10)display_wendu(temp);for(i = 0; i gao_dj; i+) dj = 1;if(flag = 8) display_dj();else if(flag = 10)display_wendu(temp);void wen_feng(uchar t) /温度控制风扇的速度if(t 20)dj = 0;else if(t 24)dj_num2 = 0;else if(t 28)dj_num2 = 1;else if(t = 31)dj_num2 = 3;void feng_wen(uchar t) /风扇控制温度if(t 21)dj_num3 = 3;else if(t = 21)dj_num3 = 0;elsedj = 0;void display_zong() /数码管总显示uchar i;deal_shijian();if(flag=1|flag=2|flag=3|flag=4|flag=5|flag=6|flag=8|flag=9)beep = 1;if(flag != 9)led = 1;if(flag=1|flag=2|flag=3|flag=4|flag=5|flag=6|flag=7|flag=9)dj = 0;if(flag = 1) /基本功能1,显示温度keyscan();deal_shijian();for(i = 10; i 0; i-) display_shu(temp);else if(flag = 2) /基本功能2,月keyscan();deal_shijian();for(i = 10; i 0; i-) display_shu(yue);else if(flag = 3) /基本功能2,日keyscan();deal_shijian();for(i = 10; i 0; i-) display_shu(ri);else if(flag = 4) /基本功能2,时keyscan();deal_shijian();for(i = 10; i 0; i-) display_shu(shi);else if(flag = 5) /基本功能2,分keyscan();deal_shijian();for(i = 10; i 0; i-) display_shu(fen);else if(flag = 6) /基本功能2,秒keyscan();deal_shijian();/for(i = 10; i 0; i-) display_shu(miao);else if(flag = 7) /基本功能3,控制报警温度并且能报警keyscan();deal_shijian();for(i = 10; i 0; i-) display_shu(warn_temp);if(temp = warn_temp&voice = 1) beep = 0;baojing(warn_temp);else beep = 1; led = 1;else if(flag = 8) /基本功能4,控制电机,并且至少有3档keyscan();deal_shijian();dispose(dj_num1);dj_qudong();else if(flag = 9) /扩展功能1,采集数据,AD处理,并控制LED的亮度keyscan();deal_shijian();display_adc(adc_in();led_control();else if(flag = 10) /扩展功能2,温度控制风扇的转速keyscan();deal_shijian();for(i = 10; i 0; i-) display_wendu(temp);wen_feng(temp);dispose(dj_num2);dj_qudong();if(dj_num2 = 3) baojing(temp);beep = 0;else beep = 1;led = 1;else if(flag = 11) /风扇控制温度的高低keyscan();deal_shijian();for(i = 10; i 0; i-) display_wendu(temp);feng_wen(temp);dispose(dj_num3);dj_qudong();if(flag = 12)flag = 1;bit dsreset() /温度传感器复位uchar fla,i;deal_shijian(); ds=0;/ delay_us(198); /255for(i = 10; i 0; i-) display_zong(); ds=1;/ delay_us(1); /30 fla=ds;/ delay_us(255);/ delay_us(120);for(i = 10; i 0; i-) display_zong();if(warn_temp temp|voice = 0) beep = 1;led = 1; return fla;uchar tempread() /读一个字节数据uchar i=0,dat,j;deal_shijian();for(i=0;i=1; if(ds=1) dat|=0x80; else dat|=0x00;/ delay_us(23); /50for(j = 3; j 0; j-) display_zong();if(warn_temp temp|voice = 0) beep = 1;led = 1; return(dat);void tempwritebyte(uchar x) /向温度传感器写一个字节数据uchar i;deal_shij
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 知识产权侵权行为的法律分析与防范策略
- 2025至2030年中国液体燃料雾化装置数据监测研究报告
- 维修调试合同范本
- 科室药事工作安全教育与应急演练
- 公寓分租合同范本
- 现代办公环境下的网络教育平台管理挑战与机遇
- 劳动合同解除的细节分析
- 2024年河北互通高速公路发展集团有限公司招聘考试真题
- 2025至2030年中国李饼数据监测研究报告
- 2025至2030年中国无袖衬衫数据监测研究报告
- 外研版英语五年级下册第一单元全部试题
- GB∕Z 27735-2022 野营帐篷
- 培养小学生课外阅读兴趣课题研究方案
- 部编版四年级语文下册课程纲要
- 【课件】第二单元第三节汉族民歌课件-2021-2022学年高中音乐人音版(2019)必修音乐鉴赏
- 高中人音版必修 音乐鉴赏20人民音乐家课件
- 风电齿轮箱讲义(20151010)
- 圆二色谱仪操作规程培训
- 华文出版社三年级下册书法教案
- GB_T 30789.3-2014 色漆和清漆 涂层老化的评价 缺陷的数量和大小以及外观均匀变化程度的标识 第3部分:生锈等级的评定
- 药物非临床研究质量管理规范(共113页).ppt
评论
0/150
提交评论