电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

基于51单片机的US-100(超声波模块)1602显示程序VIP免费

基于51单片机的US-100(超声波模块)1602显示程序_第1页
1/7
基于51单片机的US-100(超声波模块)1602显示程序_第2页
2/7
基于51单片机的US-100(超声波模块)1602显示程序_第3页
3/7
/*****************************************************************************/Name:LCD1602+US-100+STC89C52HC-SR04超声波测距模块串口程序晶振:11.0592MDesignedby:庶野琴风Date:2016/08/11QQ:397739038接线:模块TRIG接P3.1ECH0接P3.0RS(CS)接P2.0;RW(SID)接P2.1;E(SCLK)接P2.2;BF接P0.7;/*****************************************************************************/#include#include#definenops{_nop_();_nop_();_nop_();_nop_();}/******************************引脚及变量的定义****************************/sbitRS=P2^0;//寄存器选择位sbitRW=P2^1;//读取选择位sbitE=P2^2;//使能信号位sbitBF=P0^7;//忙碌信号位unsignedcharcodeTab[]={"0123456789"};unsignedcharcodestring[]={"range:2cm--4.5m"};charpart,ge,shi,bai;charidataGLengthLoh[2];//接收缓冲区bitsuccess_flag;//定义测试成功标志位/*********************************************************//*********函数名称:delay1ms(void)******************//*********函数功能:延时1毫秒******************//*********函数参数:void******************//*********************************************************/voiddelay1ms(void)//误差-0.651041666667us{chara,b;for(b=102;b>0;b--)for(a=3;a>0;a--);}/*********************************************************//*********函数名称:delaynms(charn)******************//*********函数功能:延时n个1毫秒******************//*********函数参数:n******************//*********************************************************/voiddelaynms(charn){chara;for(a=0;a>n;a--)delay1ms();}/*********************************************************//*********函数名称:BusyTest(void)******************//*********函数功能:判断液晶模块忙碌状态******************//*********函数参数:返回值:result******************//*********************************************************/unsignedcharBusyTest(){bitresult;RS=0;RW=1;//RS为低电平,RW为高电平时,可以读状态E=1;//使能为高电平时可读取信息nops;//延时40us,给硬件反应时间result=BF;//将忙碌标志位电平赋给resultE=0;//使能1到0:执行指令returnresult;}/*********************************************************//*********函数名称:WriteInstruction(chardictate)*******//*********函数功能:将模式设置指令或显示地址写入液晶模块**//*********函数参数:dictate******************//*********************************************************/voidWriteInstruction(chardictate){while(BusyTest()==1);//如果忙碌标志位忙碌则等待RS=0;RW=0;//RS/RW位同时为低电平时可写入指令E=0;//使能0到1:写入指令nops;P0=dictate;//将数据送入P0口,写入数据或地址nops;E=1;//使能0到1:写入指令nops;E=0;//使能1到0:执行指令}/*********************************************************//*********函数名称:WriteAddress(charx)*******//*********函数功能:指定字符显示的实际地址***********//*********函数参数:x******************//*********************************************************/voidWriteAddress(charx){WriteInstruction(x|0x80);//80H+地址码}/*********************************************************//*********函数名称:WriteData(chary)*******//*********函数功能:将数据(字符的标准ASCII码)写入液晶模块*//*********函数参数:y******************//*********************************************************/voidWriteData(chary){while(BusyTest()==1);//如果忙碌标志位忙碌则等待RS=1;RW=0;//RS为高电平,RW为低电平时,可以写入数据E=0;P0=y;nops;E=1;nops;E=0;}/*********************************************************//*********函数名称:LCDInit(void)*******//*********函数功能...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

基于51单片机的US-100(超声波模块)1602显示程序

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部