版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/*****************************************************************************/Name:LCD1602+US-100+STC89C52HC-SR04超声波测距模块串口程序 晶振:11.0592MDesignedby:庶野琴风Date:2016/08/11 QQ:397739038 接线:模块TRIG接P3.1ECH0接P3.0 RS(CS)接P2.0; RW(SID)接P2.1; E(SCLK)接P2.2; BF接P0.7; /*****************************************************************************/#include<reg52.h>#include<intrins.h>#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;//将忙碌标志位电平赋给result E=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)intk; longPreLength; LCDInit(); //调用液晶初始化函数 delaynms(10);UART_Init(); PreLength=0; k=0; while(1) { WriteAddress(0x01); while(string[k]!='\0') { WriteData(string[k]); k++; } UART_Send(0X55); PreLength=GLengthLoh[0]*256+GLengthLoh[1]-5;conversion(PreLength); WriteAddress(0x41); //从第2行第6列开始显示 WriteData('J'); //将特定的字符常量写入LCD WriteData('U'); WriteData('L'); WriteData('I'); WriteData(':'); if(PreLength<=4500&&PreLength>=20) { WriteData(Tab[bai]); //将百位数字的字符常量写入LCD WriteData(Tab[shi]); //将十位数字的字符常量写入LCD WriteData(Tab[ge]); //将个位数字的字符常量写入LCD WriteData('.'); WriteData(Ta
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 临时用电施工方案 (四)
- 初级水平几套试题及完整答案
- 生活语文竞赛试题及答案公布
- 副高心电图考试高频试题及答案
- 聚焦娄烦脱贫:试题与答案全解
- 中班升大班:家长会上这样沟通
- 小班上学期家长会沟通指南
- 四川省成都市青羊区树德实验中学2027届九年级数学第一学期期末学业质量监测试题含解析
- 2026年矿山爆破考试题库(含答案)
- 2026年抽查考核伤寒考模拟题及答案详解
- 2026下半年杭州市数据资源管理局所属杭州市大数据管理服务中心招聘9人笔试备考试题及答案详解
- 重点专科建设赋能医院核心竞争力
- 2026年农业综合行政执法试卷(带答案)
- 浙江交投物流集团有限公司2027年校园招聘40人考试备考题库及答案详解
- 新疆交通投资集团有限责任公司笔试题目
- 环境安全资金投入表
- 23CG60 预制桩桩顶机械连接(螺丝紧固式)
- GB/T 42611-2023非公路用旅游观光车辆制动性能试验方法
- 茂名石化PP PPH-T03物性表
- GB/T 4423-2007铜及铜合金拉制棒
- GB 11291.1-2011工业环境用机器人安全要求第1部分:机器人
评论
0/150
提交评论