基于STC89C52单片机的温控风扇系统设计.docx
《基于STC89C52单片机的温控风扇系统设计.docx》由会员分享,可在线阅读,更多相关《基于STC89C52单片机的温控风扇系统设计.docx(15页珍藏版)》请在第一文库网上搜索。
1、基于STC89C52单片机的温控风扇系统设计1功能本设计为一种温控风扇系统,具有灵敏的温度感测和显示功能,系统选用STC89C52里左机作为控制平台对风扇转速进行控制。可在测得温度值在高低温度之间时打开风扇弱风档,当温度升高超过所设定的温度时自动切换到大风档,当温度小于所设定的温度时自动关闭风扇,控制状态随外界温度而定。2.硬件设计硬件电路主要由:1 .单片机最小系统2 .风扇驱动电路3 .1CD1602显示屏电路4 .DS18B20温度采集电路3.程序设计(1) 1CDI602驱动程序define1CD1602_DBPOsbit1CD1602RS=P20;sbit1CD1602RW=P2;s
2、bit1CD1602_E=P22;*等待液晶准备好*/void1cdWaitReady()(unsignedcharsta;1CD1602DB=OxFF;1CD1602RS=0;1CD1602RW=1;do1CD1602_E=1;sta=1CD1602_DB;读取状态字1CD1602_E=0;whi1e(sta&0x80);bit7等于1表示液晶正忙,重复检测直到其等于0为止/*向1CDI602液晶写入一字节命令,Cmd-待写入命令值*/void1cdWriteCmd(unsignedcharcmd)1cdWaitReadyO;1CD1602_RS=0;1CD1602_RW=0;1CD1602
3、_DB=cmd;1CD1602_E=1;1CD1602_E=O;*向1CDI602液晶写入一字节数据,dat-待写入数据值*/void1cdWriteDat(unsignedchardat)1cdWaitReadyO;1CD1602_RS=1;1CD1602_RW=0;1CD1602_DB=dat;1CD1602_E=1;1CD1602_E=0;*设置显示幽起始地址,亦即光标位置,(x,y)-对应屏幕上的字符坐标*/void1cdSetCursor(unsignedcharx,unsignedchary)unsignedCharaddr;if(y=O)/由输入的屏幕坐标计算显示RAM的地址ad
4、dr=OxOO+x;第一行字符地址从OXOO起始e1seaddr=0x40+x;第二行字符地址从0x40起始1cdWriteCmd(addrI0x80);设置RAM地址/*在液晶上显示字符串,(x,y)-对应屏幕上的起始坐标,St1字符串指针*/void1cdShowStr(unsignedcharx,unsignedchary,unsignedchar*str)1cc1SetCursor(x,y);设置起始地址whi1e(*str!=O)连续写入字符串数据,直到检测到结束符(1cdWriteDat(*str+);)/*初始化1602液晶*/voidInit1cd1602()1cdWriteC
5、md(0x38);16*2显示,5*7点阵,8位数据接口1cdWriteCmd(OxOc);显示器开,光标关闭1cdWriteCmd(0x06);文字不动,地址自动+11cdWriteCmd(OxO1);清屏(2) DS18B20驱动程序sbitI0-18B20=P32;I软件延时函数,延时时间C1O)us*/voidDe1ayX1Ous(unsignedchart)do-P-();-P-();-P-();0P-();-P-();-P-();-P-();_nop_();whi1e(一t);)/复位总线,获取存在脉冲,以启动一次读写操作/bitGet18B20Ack()(bitack;EA=O;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 STC89C52 单片机 温控 风扇 系统 设计