欢迎来到天天文库
浏览记录
ID:9002309
大小:262.00 KB
页数:11页
时间:2018-04-14
《基于51单片机的hs1101湿度采集》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、作者:李霈雯硬件电路程序#include#include#defineuintunsignedint#defineucharunsignedchar#defineulongintunsignedlongintsbitD0=P1^0;//将D0位定义为P1.0引脚uintcodetab[2][11]={0,10,20,30,40,50,60,70,80,90,100,7351,7224,7100,6976,6853,6728,6600,6468,6330,6186,6033};ulongintF=0;ulongintT0_count=0,T1_cou
2、nt=0;bitflag=0;ulongintRH;/*****************************************************函数功能:延时1ms(3j+2)*i=(3×33+2)×10=1010(微秒),可以认为是1毫秒***************************************************/voiddelay1ms(){unsignedchari,j;for(i=0;i<4;i++)for(j=0;j<33;j++);}/**************************************************
3、***函数功能:延时若干毫秒入口参数:n***************************************************/voiddelaynms(unsignedcharn){unsignedchari;for(i=0;i4、******************/sbitfmq1=P3^6;/*****************************************************函数功能:蜂鸣器延时若干250us入口参数:n***************************************************/voiddelay500us(){unsignedcharj;for(j=0;j<57;j++)//500us基准延时程序{;}}voidbeep()//产生1KHZ频率声音的函数{unsignedintt;for(t=0;t<1000;t++){fmq1=~fmq1;5、delay500us();}fmq1=1;delaynms(1000);}/*******************************************************************************以下是对液晶模块的操作程序*******************************************************************************/sbitRS=P2^0;//寄存器选择位,将RS位定义为P2.0引脚sbitRW=P2^1;//读写选择位,将RW位定义为P2.1引脚sbitE=P2^2;//使能信号位,将6、E位定义为P2.2引脚sbitBF=P0^7;//忙碌标志位,,将BF位定义为P0.7引脚/*****************************************************函数功能:判断液晶模块的忙碌状态返回值:result。result=1,忙碌;result=0,不忙***************************************************/bitBusyTest(void){bitresult;RS=0;//根据规定,RS为低电平,RW为高电平时,可以读状态RW=1;E=1;//E=1,才允许读写_nop_();//空操作_no7、p_();_nop_();_nop_();//空操作四个机器周期,给硬件反应时间result=BF;//将忙碌标志电平赋给resultE=0;//将E恢复低电平returnresult;}/*****************************************************函数功能:将模式设置指令或显示地址写入液晶模块入口参数:dictate***********************************
4、******************/sbitfmq1=P3^6;/*****************************************************函数功能:蜂鸣器延时若干250us入口参数:n***************************************************/voiddelay500us(){unsignedcharj;for(j=0;j<57;j++)//500us基准延时程序{;}}voidbeep()//产生1KHZ频率声音的函数{unsignedintt;for(t=0;t<1000;t++){fmq1=~fmq1;
5、delay500us();}fmq1=1;delaynms(1000);}/*******************************************************************************以下是对液晶模块的操作程序*******************************************************************************/sbitRS=P2^0;//寄存器选择位,将RS位定义为P2.0引脚sbitRW=P2^1;//读写选择位,将RW位定义为P2.1引脚sbitE=P2^2;//使能信号位,将
6、E位定义为P2.2引脚sbitBF=P0^7;//忙碌标志位,,将BF位定义为P0.7引脚/*****************************************************函数功能:判断液晶模块的忙碌状态返回值:result。result=1,忙碌;result=0,不忙***************************************************/bitBusyTest(void){bitresult;RS=0;//根据规定,RS为低电平,RW为高电平时,可以读状态RW=1;E=1;//E=1,才允许读写_nop_();//空操作_no
7、p_();_nop_();_nop_();//空操作四个机器周期,给硬件反应时间result=BF;//将忙碌标志电平赋给resultE=0;//将E恢复低电平returnresult;}/*****************************************************函数功能:将模式设置指令或显示地址写入液晶模块入口参数:dictate***********************************
此文档下载收益归作者所有