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

上传人:F****n 文档编号:98877421 上传时间:2019-09-15 格式:DOC 页数:7 大小:33KB
返回 下载 相关 举报
基于51单片机的us-100(超声波模块)1602显示程序.doc_第1页
第1页 / 共7页
基于51单片机的us-100(超声波模块)1602显示程序.doc_第2页
第2页 / 共7页
基于51单片机的us-100(超声波模块)1602显示程序.doc_第3页
第3页 / 共7页
基于51单片机的us-100(超声波模块)1602显示程序.doc_第4页
第4页 / 共7页
基于51单片机的us-100(超声波模块)1602显示程序.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《基于51单片机的us-100(超声波模块)1602显示程序.doc》由会员分享,可在线阅读,更多相关《基于51单片机的us-100(超声波模块)1602显示程序.doc(7页珍藏版)》请在金锄头文库上搜索。

1、/*/ Name: LCD1602+US-100+STC89C52 HC-SR04 超声波测距模块串口程序 晶振:11.0592M Designed by : 庶野琴风 Date:2016/08/11 QQ: 接线:模块TRIG接 P3.1 ECH0 接P3.0 RS(CS) 接 P2.0; RW(SID) 接 P2.1; E(SCLK) 接 P2.2; BF 接 P0.7; /*/#include#include#define nops _nop_();_nop_();_nop_();_nop_();/*引脚及变量的定义*/sbit RS = P20; /寄存器选择位sbit RW = P2

2、1; /读取选择位sbit E = P22; /使能信号位sbit BF = P07; /忙碌信号位unsigned char code Tab = ;unsigned char code string = range:2cm-4.5m;char part,ge,shi,bai;char idata GLengthLoh2; /接收缓冲区bit success_flag; /定义测试成功标志位/*/*函数名称:delay1ms(void) */*函数功能:延时1毫秒 */*函数参数:void */*/void delay1ms(void) /误差 -0.7us char a,b; for(b=

3、102;b0;b-) for(a=3;a0;a-); /*/*函数名称:delaynms(char n) */*函数功能:延时n个1毫秒 */*函数参数:n */*/void delaynms(char n) char a;for(a = 0;a n;a-) delay1ms();/*/*函数名称:BusyTest(void) */*函数功能:判断液晶模块忙碌状态*/*函数参数:返回值:result */*/unsigned char BusyTest() bit result; RS = 0; RW = 1; /RS为低电平,RW为高电平时,可以读状态E = 1; /使能为高电平时可读取信息

4、nops; /延时40us,给硬件反应时间result = BF; /将忙碌标志位电平赋给resultE = 0; /使能1到0:执行指令return result;/*/*函数名称:WriteInstruction(char dictate)*/*函数功能:将模式设置指令或显示地址写入液晶模块*/*函数参数:dictate */*/void WriteInstruction(char dictate) while(BusyTest() = 1); /如果忙碌标志位忙碌则等待RS = 0;RW = 0; /RS/RW位同时为低电平时可写入指令E = 0; /使能0到1:写入指令nops;P0

5、= dictate; /将数据送入P0口,写入数据或地址nops;E = 1; /使能0到1:写入指令nops;E = 0; /使能1到0:执行指令/*/*函数名称:WriteAddress(char x) */*函数功能:指定字符显示的实际地址 */*函数参数:x */*/void WriteAddress(char x) WriteInstruction(x|0x80);/80H+地址码/*/*函数名称:WriteData(char y) */*函数功能:将数据(字符的标准ASCII码)写入液晶模块*/*函数参数:y */*/void WriteData(char y) while(Bus

6、yTest() = 1); /如果忙碌标志位忙碌则等待RS = 1;RW = 0; /RS为高电平,RW为低电平时,可以写入数据E = 0;P0 = y;nops;E = 1;nops;E = 0;/*/*函数名称:LCDInit(void) */*函数功能:液晶模块初始化 */*函数参数:void */*/void LCDInit(void) delaynms(15); /延时15毫秒,首次写入液晶指令应给反应时间WriteInstruction(0x38);/显示模式设置:162显示,57点阵,8位数据接口delaynms(5); /延时5秒,反应时间 WriteInstruction(0

7、x38);delaynms(5); /延时5秒,反应时间WriteInstruction(0x38);delaynms(5); /连续三次,确保初始化成功WriteInstruction(0x0c); /显示模式设置:显示开,无光标,光标不闪烁delaynms(5);WriteInstruction(0x06);/显示模式设置:显示光标右移,屏幕不移动delaynms(5);WriteInstruction(0x01); /清屏delaynms(5);/*/*函数名称:UART_Send(char dat) */*函数功能:串口发送函数 */*函数参数:dat */*/void UART_Send(char dat) TI = 0; / 清发送标志 SBUF = dat; /如果TI为0等待 while (!TI); /等待发送数据/*

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号