欢迎来到天天文库
浏览记录
ID:41867237
大小:375.43 KB
页数:10页
时间:2019-09-04
《18B20温度检测及其液晶显示》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、//DS18B20温度检测及其液晶显示#include〃包含单片机寄存器的头文件#include〃包含_nop_()函数定义的头文件unsignedcharcodedigit[10]={u01234567891'};〃定义字符数组显示数字unsignedcharcodeStr[]={"TestbyDS18B20"};〃说明显示的是温度unsignedcharcodeError[]={"Error!Check!H;〃说明没有检测到DS18B20unsignedcharcodeTemp[]二{"Temp:”};〃说明显示的是温度un
2、signedcharcodeCern[]二{"Cent”};〃温度单位以下是对液品模块的操作程序•上•上•上•匕•上^2^•上•匕•上;•匕*1*•匕■匕•匕■匕■匕•匕•匕■匕•匕*7*彳・哼・哼・sbitRS=P2A0;sbitRW=P2Al;〃寄存器选择位,将RS位定义为P2.0引脚〃读写选择位,将RW位定义为P2.1引脚sbitE=P2A2;sbitBF=P0A7;〃使能信号位,将E位定义为P2.2引脚〃忙碌标志位,,将BF位定义为P0.7引脚函数功能:延时1ms(3j+2)*1=(3X33+2)X10=1010(微秒),可以认为是1毫秒•上«£««£«•上«
3、£«•上«£««£«•丄“«£««£«•丄■«£«•丄“«£«•丄■«£«•丄■•丄■•卜•丄■•丄■•卜•丄■•丄■•丄■•卜•丄■•丄■•卜•丄■•丄■•丄■•丄■•丄■/#T%叫.#T%#T%#T%#T%#T%#T%rvoiddelaylms(){unsignedchari,j;for(i=0;i<10;i++)for(j=0;jv33;j++))/%lxkL#kL#kL^%x^J吃、rp吃、rj^吃、rp齐、rj^吃、rj^rj%•卜吃、•卜吃、•卜吃、•卜吃、•卜•卜rj*rj*rj%rj*rj*rj*rj^rj^rj^rj^rj^r
4、j^■評rj^♦評rj^函数功能:延吋若干毫秒入口参数:n■“■"■“•上•上・上•:••上•上•上•:••上••上•上••丄•••上•丄••!*<1*•£*•!*•丄••!*f•:•^T*彳.*y*5、j*rj^rj^rj^rj^rj^rj^■評rj^♦評rj^函数功能:判断液晶模块的忙碌状态返冋值:resultoresult=l,忙碌;result=0,不忙****************************************:bitBusyTest(void)bitresult;RS=0;RW=1;E=l;〃根据规定,RS为低电平,RW为高电平时,可以读状态//E=l,才允许读写_nop_();〃空操作_nop_();_nop_();_nop_();〃空操作四个机器周期,给硬件反应时间result=BF;E=0;//将忙碌标志电平赋给result〃将E6、恢复低电平returnresult;函数功能:将模式设置指令或显示地址写入液晶模块入口参数:dictate■上■上■上^3^•上•上•卜•上••丄•••上••上••上••上/*7*彳・哼・哼・哼・哼・哼・哼・哼・$voidWriteinstruction(unsignedchardictate)while(BusyTest()==1);RS=0;RW=0;E=0;//如果忙就等待〃根据规定,RS和R/W同时为低电平时,可以写入指令〃E置低电平(根据表86写指令时,E为高脉冲,//就是让E从0到1发生正跳变,所以应先置“0“_nop_();_nop_();P0二dict7、ate;_nop_();_nop_();_nop_();〃空操作两个机器周期,给硬件反应时间〃将数据送入P0口,即写入指令或地址_nop_();E=l;_nop_();_nop_();_nop_();_nop_();〃空操作四个机器周期,给硬件反应时间〃E置高电平〃空操作四个机器周期,给硬件反应时1'可E=0;〃当erti高电平跳变成低电平时,液晶模块开始执行命令函数功能:指定字符显示的实际地址入口参数:XvoidWriteAddress(unsignedcharx)Writelnstruction(x8、0x80);//显示位置的确定方法规定为'80
5、j*rj^rj^rj^rj^rj^rj^■評rj^♦評rj^函数功能:判断液晶模块的忙碌状态返冋值:resultoresult=l,忙碌;result=0,不忙****************************************:bitBusyTest(void)bitresult;RS=0;RW=1;E=l;〃根据规定,RS为低电平,RW为高电平时,可以读状态//E=l,才允许读写_nop_();〃空操作_nop_();_nop_();_nop_();〃空操作四个机器周期,给硬件反应时间result=BF;E=0;//将忙碌标志电平赋给result〃将E
6、恢复低电平returnresult;函数功能:将模式设置指令或显示地址写入液晶模块入口参数:dictate■上■上■上^3^•上•上•卜•上••丄•••上••上••上••上/*7*彳・哼・哼・哼・哼・哼・哼・哼・$voidWriteinstruction(unsignedchardictate)while(BusyTest()==1);RS=0;RW=0;E=0;//如果忙就等待〃根据规定,RS和R/W同时为低电平时,可以写入指令〃E置低电平(根据表86写指令时,E为高脉冲,//就是让E从0到1发生正跳变,所以应先置“0“_nop_();_nop_();P0二dict
7、ate;_nop_();_nop_();_nop_();〃空操作两个机器周期,给硬件反应时间〃将数据送入P0口,即写入指令或地址_nop_();E=l;_nop_();_nop_();_nop_();_nop_();〃空操作四个机器周期,给硬件反应时间〃E置高电平〃空操作四个机器周期,给硬件反应时1'可E=0;〃当erti高电平跳变成低电平时,液晶模块开始执行命令函数功能:指定字符显示的实际地址入口参数:XvoidWriteAddress(unsignedcharx)Writelnstruction(x
8、0x80);//显示位置的确定方法规定为'80
此文档下载收益归作者所有