




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一个超声波测距的程序源码下面是一个超声波测距的程序,硬件电路由于电脑格盘已丢失,下面的代码是从样机上复制的。硬件电路包括液晶显示、超声波的发射、超声波的接受、滤波、单片机处理。液晶显示采用LCD1602模块,下面的代码里有液晶的驱动,可以拷贝用于它处。超声波发射电路包括压电换能器及其支持电路,发射约44KHz的超声波。超声波的接收电路包含一块CD40106处理芯片。技术指标大约是测距范围在三米左右,测量精度约在厘米级别。大量用于倒车雷达的测距中。#include<reg51.h>#include <intrins.h>#define Busy
2、160; 0x80 /用于检测LCM状态字中的Busy标识#define LCM_Data P0 #define uchar unsigned char#define uint unsigned int#define ulong unsigned longextern void cs_t(void);extern void delay(uint);void LCMInit(void);void DisplayOneChar(uchar X, uchar Y, uchar DData);void DisplayListChar(u
3、char X, uchar Y, uchar *DData);void Delay5Ms(void);void Delay100Ms(void);void WriteDataLCM(uchar WDLCM);void WriteCommandLCM(uchar WCLCM,BuysC);data float distant=0.0;uchar ReadDataLCM(void);uchar ReadStatusLCM(void);uchar cdle_net = "-Daoche_Leida-"uchar e
4、mail = "Juli:"uchar cls=" "uchar DIS7;data ulong time;float distant;sbit LCM_RS=P11; /定义LCD引脚sbit LCM_RW=P12; sbit LCM_E=P13; sbit P10=P10;data uchar flag;void zhuanhuan(float juli)unsigned long juli1;juli
5、1=juli*100;DIS6=juli1%10+0x30;juli1=juli1/10;DIS5=juli1%10+0x30;juli1=juli1/10;DIS4='.'DIS3=juli1%10+0x30;juli1=juli1/10;DIS2=juli1%10+0x30;juli1=juli1/10;DIS1=juli1%10+0x30;DIS0=juli1/10+0x30;void main(void) Delay100Ms(); /启动等待,等LCM讲入工作状态
6、; P10=1; TMOD=0x01; /计数器0工作在方式1 TH0=0; TL0=0;
7、60; /计数值初始化 IT1=0; /低电平触发中断 EA=1; /开总中断 /IP=0
8、x04; /设置外部中断1为高优先级中断 flag=0; LCMInit(); /LCM初始化 while(1) cs_t()
9、; Delay5Ms(); ET0=1; /打开计数器0中断 EX1=1; /打开外部中断1 TR0
10、=1; while(!flag) DisplayListChar(0, 0, cdle_net); DisplayListChar(0, 1, email); if(flag=1)
11、0; time=TH0; time=(time<<8)|TL0; distant=time*1.72/100; zhuanhuan(distant); if(DIS0='0') Displ
12、ayOneChar(5,1,' '); else DisplayOneChar(5,1,DIS0); if(DIS0='0')&&(DIS1='0') DisplayOneChar(6,1,' '); else
13、160; DisplayOneChar(6,1,DIS1); if(DIS0='0')&&(DIS1='0')&&(DIS2='0') DisplayOneChar(7,1,' '); else DisplayOneChar(7,1,DIS2);
14、160; DisplayOneChar(8,1,DIS3); DisplayOneChar(9,1,DIS4); DisplayOneChar(10,1,DIS5); DisplayOneChar(11,1,DIS6); DisplayOneChar(12,1,'c');
15、; DisplayOneChar(13,1,'m'); flag=0; else DisplayListChar(5,1,"error! "
16、;); flag=0; TH0=0; TL0=0; Delay100Ms(); void cs_r(void) interrupt 2TR0=0;EX1=0;ET0=0;flag=1;void overtime(void) interrupt 1EX1=0;TR0=0;ET0=0;flag=
17、2;/写数据void WriteDataLCM(uchar WDLCM) ReadStatusLCM(); /检测忙 LCM_Data=WDLCM; LCM_RS=1; LCM_RW=0; LCM_E=0; /若晶振速度太高可以在这后加小的延时 LCM_E=0; /延时 LC
18、M_E=1;/写指令void WriteCommandLCM(uchar WCLCM,BuysC) /BuysC为0时忽略忙检测 if (BuysC) ReadStatusLCM(); /根据需要检测忙 LCM_Data = WCLCM; LCM_RS = 0; LCM_RW = 0; LCM_E = 0; &
19、#160; LCM_E = 0; LCM_E = 1; /读数据uchar ReadDataLCM(void) LCM_RS = 1; LCM_RW = 1; LCM_E = 0; LCM_E = 0; LCM_E = 1;
20、60; return(LCM_Data);/读状态uchar ReadStatusLCM(void) LCM_Data=0xFF; LCM_RS=0; LCM_RW=1; LCM_E=0; LCM_E=0; LCM_E=1; while(LCM_Data &
21、 Busy); /检测忙信号 return(LCM_Data);void LCMInit(void) /LCM初始化 LCM_Data=0; WriteCommandLCM(0x38,0); /三次显示模式设置,不检测忙信号 Delay5Ms(); WriteCommandLCM(0x38,0); Delay5Ms();
22、 WriteCommandLCM(0x38,0); Delay5Ms(); WriteCommandLCM(0x38,1); /显示模式设置,开始要求每次检测忙信号 WriteCommandLCM(0x08,1); /关闭显示 WriteCommandLCM(0x01,1); /显示清屏 WriteCommandLCM
23、(0x06,1); / 显示光标移动设置 WriteCommandLCM(0x0F,1); / 显示开及光标设置/按指定位置显示一个字符void DisplayOneChar(uchar X, uchar Y, uchar DData) Y &= 0x1; X &= 0xF; /限制X不能大于15,Y不能大于1 if (Y) X |= 0x40; /当要显示第二行时地址码+0x40; &
24、#160; X |= 0x80; /算出指令码 WriteCommandLCM(X, 1); /发命令字 WriteDataLCM(DData); /发数据/按指定位置显示一串字符void DisplayListChar(uchar X, uchar Y, uchar *DData) uchar ListLength; ListLength = 0;
25、0;Y &= 0x1; X &= 0xF; /限制X不能大于15,Y不能大于1 while (DDataListLength>0x20) /若到达字串尾则退出 if (X <= 0xF) /X坐标应小于0xF
26、; DisplayOneChar(X, Y, DDataListLength); /显示单个字符 &
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 充分条件与必要条件教学设计
- 统编版语文四下《第七单元复习》课件
- 动物检疫个人工作总结模版
- 流动商住楼小区重大危险源专项的施工组织方案
- 大学生职业规划大赛《国际商务专业》生涯发展展示
- 老年卧床女性护理
- 普通服务员年终总结模版
- 员工消防培训试题及答案
- 银行投行面试题目及答案
- 一级建造师资格考试试题及答案
- 【解析】陕西省渭南市富平县2023年小升初语文试卷
- 2023年广西壮族自治区南宁市47中入学数学试卷(pdf无答案)
- 急性心肌梗死的急救护理
- 2023年04月江苏南京师范大学附属中学公开招聘教科室文员1人笔试参考题库附答案详解
- 当HR遇见AI:用人工智能重新定义人力资源管理
- 物流客户服务试卷doc资料
- 监事会成员任职决定
- 砂卡井的处理方法
- 《高等教育心理学》试题参考答案
- 线段的垂直平分线 课件
- 桌面运维工程师能力试卷试卷题库面试版本
评论
0/150
提交评论