版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、简单温度控制完整程序#include<reg52*h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintsbitrs=P3A4;sbitrw=P3A5;sbitep=P3A7;unsignedintsetl=30?set2=10;unsignedcharflag=O;'sbitDQ=P1A7;定义通信端口sbitfengmingqi=P1A1;sbitjidianqi=PlA5;.codeiltiiarmayuan=,0,l,2,3,4y5,6r,r7,8r,r9,;codeucha
2、raa=nwenduis:1*);codeucharbb=f1sheding:WpedefbitBOOL;unsignedchark,dat_wr8,dat_rd8;voidputchar(ucharweizhi,ucharda);3>voiddelay(uchar);voidlcd_wcmd(uchar);BOOLlcd_bz();voidlcd_pos(uchar);voidlcd_wdat(uchar);voiddisplay(uchar,uchar*);voidlcdinit();voidlongdelay(uchars);voidkeyscan(void);BOOLlcd_bz
3、()/测试LCD忙碌状态BOOLresult;rs=0;rw=1;result=(BOOL)(P2&0x80);:外孑:k.&Tep=0;returnresult;voidlcd_wcmd(ucharcmd)/写入指令数据到LCDwhile(lcdbz();rs=0;rw=0;ep=0;P2=cmd;ep=1;ep=0;voidlcd_pos(ucharpos)设定显示位置RC:4,Cg%'J:/Olcdwcmd(posI0x811);)voidlcdwdat(uchardat)写入字符显示数据到LCDwhile(lcd_bz();Oft、ep=1;ep=0;voidl
4、edJnit()/LCD初始化设定lcd_wcmd(0x38);/functionset'delay;lcd_wcmd(0x38);/functionsetdelay;Icd_wcmd(0x08);/displayon/offdelay;lcd_wcmd(0x01);清除LCD的显示内容delay(1);lcd_wcmd(0x06);/entrymodesetdelay(1);lcd_wcmd(0x0c);/entrymodesetdelay(l);/*函数名称:display()功能:在LCD上显示数组的数据说明:先写显示地址,后写显示数据调用:lcd_wcmd(),lcd_pos(
5、)入口参数:pos写入的位置,q指向要写入的数据所在的数组返回值:无*/voiddisplay(ucharpos,uchar*q)uchari;/lcd_wcmd(0x01);/clear/delay(lO);lcd_pos(pos);for(i=0;i<9;i+)kd_wdat(*q);q+;0Zflongdelay(2);voidputchar(ucharweizhi,ucharda)(delay(2);lcd_pos(weizhi);lcd_wdat(da);延时函数void delay(uchar ms)/延时子程序uchari;while(ms-)for(i=0;i<25
6、0;i+);voiddelayl(uchara):w(while(a-);)voiddelay2(unsignedinti)延时函数(while(i-);)voidInit_DS18B20(void)(unsignedcharx=0;'DQ=1;/DQ复位delay2(8);稍做延时DQ=0;单片机将DQ拉低delay2(80);精确延时大于480us©DQ=1;拉高总线delay2(10);;x=DQ;稍做延时后如果x=0则初始化成功x=l则初始化失败V.8.sOif.delay2(5);DQ=1;/return(x);)4UiiUf8it|iwt>4&mU.
7、E*Jrj>>ggwrjw<Jw<J>rp><p>CMr|wrj*J>,<jwrjwr1*Jwrj*sIjp3%jJjp,必Tjr1#<T%1>,!>JrSjpy|<|<J*JW<1-<J<JJWFj<JiJW<J<1<JW<J<JW<|<J><Jli2mTi«ftfif*Jwrpirj*rjw<Jwrjwf读一个字节unsignedcharReadOneChar(void)unsignedchari=0;uns
8、ignedchardat=0;for(i=8;i>0;i-)DQ=1;delay2(5);DQ=0;/给脉冲信号dat»=l;*DQ=1;/给脉冲信号if(DQ)datl=0x80;delay2(5);DQ=1;return(dat);工1A:.>H:4工.°°A:-二>u:工.”:A:.,y<J#vf>31>%Lf%2/i7,kLf<1<2%1><&»%K>%2>7,2*<S2#J*J*rp-*J>rjv<prjvr1*J*<pq>*pr不rj
9、v<prf>rj>*jv<prjv<J%rj>q><p<prrjv*j%rjv<prjv<Jjjvrj><1«&2(<t>mbi<V>4bjut:M*"产«ki«f>a&ial>dUfrtA*“产6&i«£«*jwrjrjwwj*rjwrj*J*rjw*J*rjwfmivmjwrjJwrjrj*rjw*J*rjwfmivK*Jwrjwrjwwjwrj*rjw<pi./.A0,4.%T
10、jRkI7hT|jp%14lp.7/%f/i7/t<Ji#Jli、Jr写一个字节voidWriteOneChar(unsignedchardat)°°.,°°一,.,-3k,。、b°-;°八r'/unsignedchari=0;for(i=8;i>0;i«)p"au|DQ=1;delay2(5);DQ=0;DQ=dat&OxOl;delay2(5);DQ=1;dat»=l;,七)delay(5);)mfi,Jrpk<pivfwrj>«Mwrjwrjw<
11、;jjwf读取温度unsignedintReadTemperature(void)unsignedinta=0;unsignedintb=0;unsignedintt=0;Init_DS18B20();WriteOneChar(OxCC);/跳过读序号列号的操WriteOneChar(Ox44);/启动温度转换delay2(200);Init_DS18B20();WriteOneChar(OxCC);跳过读序号列号的操。V作WriteOneChar(OxBE);读取温度寄存器等(共可读9个寄存器)前两个就是温度a=ReadOneChar();读低八位数据b=ReadOneChar();位读最高四位,一共十二/b«=4;/b+=(a&0xf0)»4;/b与a组成最高的八位c,算时舍去了最低四位,只保留5到12位(c*2*2*2*2*0.0625=c*l=c),所以c的值就是实测温度t=b+a;return(t);)main()(uintbai9shi,ge;floatv;intj;unsignedinti;fengmingqi=l;jidianqi=l;delay(lO);lcd_init();/初始化LCD
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑工程进度管理与监控报表模板
- 压力管道焊接全过程记录模板
- 医疗器械使用及维护标准操作规程
- 金融风险管理基础知识与实务案例
- 2025航空维修工程服务市场供需发展及投资机会规划分析研究报告
- 软件开发项目成本控制方法
- 2025航空旅游行业复苏迹象与行业壁垒突破策略分析报告
- 2025航空客运市场供需平衡现状投资评估发展策略研究报告
- 2025航海造船行业市场供需结构分析投资策略规划研究报告
- 2025航海运输业市场分析及发展趋势与投资前景研究报告
- 2024年联勤保障部队专业技能类文职人员招考2067人笔试备考题库及完整答案详解1套
- 孤立性浆细胞瘤影像诊断
- 建筑设计防火规范-实施指南
- 汾酒营销活动方案
- 口腔科职业暴露与防护
- 咨询公司文档管理制度
- CJ/T 511-2017铸铁检查井盖
- 智能采血管理系统功能需求
- 团体标准解读及临床应用-成人经鼻高流量湿化氧疗技术规范2025
- 石材废渣处理协议书
- 资产移交使用协议书
评论
0/150
提交评论