项目八 微机控制系统设计与实践温控风扇.doc

项目八 微机控制系统设计与实践温控风扇.doc

ID:51944747

大小:50.00 KB

页数:6页

时间:2020-03-20

项目八 微机控制系统设计与实践温控风扇.doc_第1页
项目八 微机控制系统设计与实践温控风扇.doc_第2页
项目八 微机控制系统设计与实践温控风扇.doc_第3页
项目八 微机控制系统设计与实践温控风扇.doc_第4页
项目八 微机控制系统设计与实践温控风扇.doc_第5页
资源描述:

《项目八 微机控制系统设计与实践温控风扇.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、//-----------------------------------------------------------------//程序名称:温度控制直流风扇转速//单片机读取DS18B20的温度值并显示在液晶LCD1602上,同时根据温度值//采用PWM技术控制直流风扇的转速。//-----------------------------------------------------------------//说明:大于等于45℃时加速正转/小于等于10℃时加速反转//75℃时达到全速正转/0℃时达到全速反转//温度回到10℃至45℃之间时风

2、扇逐渐停止转动//-----------------------------------------------------------------#include#include#include#defineucharunsignedchar#defineuintunsignedintucharTemp_Value[];//传感器返回的两字节温度原始数据ucharRead_Temperature();//读传感器温度函数voiddelay_ms(uintx);voidLCD_Initialis

3、e();voidLCD_ShowString(uchar,uchar,uchar*);sbitMA=P1^0;//电机方向控制端(MA,MB)sbitMB=P1^1;sbitPWM1=P1^2;//PWM调整控制端sbitRS=P2^0;//寄存器选择线sbitRW=P2^1;//读/写控制线sbitEN=P2^2;//使能控制线ucharBack_Temp_Value[]={0xFF,0xFF};//温度数据备份charTemp_Disp_Buff[17];//显示缓冲floatf_Temp=35.0;//浮点温度值//---------------

4、--------------------------------------------------sbitDQ=P3^3;//器件引脚定义//从DS18B20读取数据,仅前2字节为温度数据,为进行CRC检验,需要读取所有字节ucharTemp_Value[]={0x00,0x00};voiddelay_ms(uintx);#definedelay4us(){_nop_();_nop_();_nop_();_nop_();};//--------------------------------------------------------------

5、---//延时xms函数//-----------------------------------------------------------------voidDelayX(uintx){while(--x);}//-----------------------------------------------------------------//初始化温度传感器DS18B20//-----------------------------------------------------------------ucharInit_DS18B20()

6、{ucharstatus;DQ=1;DelayX(8);//DQ置高电平并短暂延时(实际约为77us)DQ=0;DelayX(90);//DQ置低电平至少480us(实际约为788us)DQ=1;DelayX(5);//主机写1释放总线,等待15~60us(实际约为50us)status=DQ;DelayX(90);//读取在线脉冲,延时至少480us(实际约为788us)returnstatus;//读取0时正常,否则失败}//--------------------------------------------------------------

7、---//从DS18B20读一字节//-----------------------------------------------------------------ucharReadOneByte(){uchari,dat=0x00;for(i=0x01;i!=0x00;i<<=1){DQ=0;_nop_();//主机置DQ为低电平,读时隙开始DQ=1;_nop_();//主机释放DQ,准备读if(DQ)dat

8、=i;//在1us后读取1位DelayX(8);//读取1位用时60~120us(实际约为77us)}returndat;}//-----

9、-----------------------------------------------

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。