欢迎来到天天文库
浏览记录
ID:50476754
大小:225.50 KB
页数:11页
时间:2020-03-09
《基于51单片机的HS1101湿度采集.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
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};ulongi
2、ntF=0;ulongintT0_count=0,T1_count=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;
3、j<33;j++);}/*****************************************************函数功能:延时若干毫秒入口参数:n***************************************************/voiddelaynms(unsignedcharn){unsignedchari;for(i=0;i4、******************以下是对蜂鸣器模块的操作程序*******************************************************************************/sbitfmq1=P3^6;/*****************************************************函数功能:蜂鸣器延时若干250us入口参数:n***************************************************/voiddelay505、0us(){unsignedcharj;for(j=0;j<57;j++)//500us基准延时程序{;}}voidbeep()//产生1KHZ频率声音的函数{unsignedintt;for(t=0;t<1000;t++){fmq1=~fmq1;delay500us();}fmq1=1;delaynms(1000);}/*******************************************************************************以下是对液晶模块的操作程序************6、*******************************************************************/sbitRS=P2^0;//寄存器选择位,将RS位定义为P2.0引脚sbitRW=P2^1;//读写选择位,将RW位定义为P2.1引脚sbitE=P2^2;//使能信号位,将E位定义为P2.2引脚sbitBF=P0^7;//忙碌标志位,,将BF位定义为P0.7引脚/*****************************************************函数功能:判断液晶模块的7、忙碌状态返回值:result。result=1,忙碌;result=0,不忙***************************************************/bitBusyTest(void){bitresult;RS=0;//根据规定,RS为低电平,RW为高电平时,可以读状态RW=1;E=1;//E=1,才允许读写_nop_();//空操作_nop_();_nop_();_nop_();//空操作四个机器周期,给硬件反应时间result=BF;//将忙碌标志电平赋给resultE=0;//将E恢复低电平8、returnresult;}/*****************************************************函数功能:将模式设置指令或显示地址写入液晶模块入口参数:dictate***********************************
4、******************以下是对蜂鸣器模块的操作程序*******************************************************************************/sbitfmq1=P3^6;/*****************************************************函数功能:蜂鸣器延时若干250us入口参数:n***************************************************/voiddelay50
5、0us(){unsignedcharj;for(j=0;j<57;j++)//500us基准延时程序{;}}voidbeep()//产生1KHZ频率声音的函数{unsignedintt;for(t=0;t<1000;t++){fmq1=~fmq1;delay500us();}fmq1=1;delaynms(1000);}/*******************************************************************************以下是对液晶模块的操作程序************
6、*******************************************************************/sbitRS=P2^0;//寄存器选择位,将RS位定义为P2.0引脚sbitRW=P2^1;//读写选择位,将RW位定义为P2.1引脚sbitE=P2^2;//使能信号位,将E位定义为P2.2引脚sbitBF=P0^7;//忙碌标志位,,将BF位定义为P0.7引脚/*****************************************************函数功能:判断液晶模块的
7、忙碌状态返回值:result。result=1,忙碌;result=0,不忙***************************************************/bitBusyTest(void){bitresult;RS=0;//根据规定,RS为低电平,RW为高电平时,可以读状态RW=1;E=1;//E=1,才允许读写_nop_();//空操作_nop_();_nop_();_nop_();//空操作四个机器周期,给硬件反应时间result=BF;//将忙碌标志电平赋给resultE=0;//将E恢复低电平
8、returnresult;}/*****************************************************函数功能:将模式设置指令或显示地址写入液晶模块入口参数:dictate***********************************
此文档下载收益归作者所有