




免费预览已结束,剩余7页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/超声波测距程序#include #include #define uint unsigned int#define uchar unsigned charsbit rs=P26; /1602的数据/指令选择控制线 sbit rw=P25; /1602的读写控制线 sbit en=P27; /1602的使能控制线 sbit trig=P20; /超声波测距模块Trigsbit echo=P21; /超声波测距模块Echobit flag1; /触发信号标志位/uchar count; /中断累加变量long int distance; /测量所得距离unsigned char code table =0123456789;uchar code table1= distance: ; /定义字符数组显示数字 void delay(uint n) uint x,y; for(x=n;x0;x-) for(y=110;y0;y-); void delayt(uint x) uchar j; while(x- 0) for(j = 0;j 125;j+) ; void lcd_wcom(uchar com) rs=0; /选择指令寄存器 rw=0; /选择写 P0=com; /把命令字送入P0 delay(5); /延时一小会儿,让1602准备接收数据 en=1; /使能线电平变化,命令送入1602的8位数据口,这点非常重要 en=0; /*- 1602写数据函数 -*/void lcd_wdat(uchar dat) rs=1; /选择数据寄存器 rw=0; /选择写 P0=dat; /把要显示的数据送入P0 delay(5); /延时一小会儿,让1602准备接收数据,也就是检测忙信号,这点非常重要。 en=1; /使能线电平变化,数据送入1602的8位数据口 en=0; void lcd_init() lcd_wcom(0x38); /8位数据,双列,5*7字形 ,用到功能设定指令 lcd_wcom(0x0c); /开启显示屏,关光标,光标不闪烁,用到显示开关控制指令 lcd_wcom(0x06); /显示地址递增,即写一个数据后,显示位置右移一位,用到了写入模式设置指令 lcd_wcom(0x01); /清屏,用到了清屏指令 void lcd_xianshi() uchar i ;lcd_wcom(0x80);for(i=0;i13;i+) lcd_wdat (table1i) ; lcd_wcom(0xcc); lcd_wdat(.); lcd_wcom(0xce);/单位是厘米/ lcd_wdat(c); lcd_wdat(m);/*-定时器0初始化,用于计算响应信号时间-*/void init_t0() TMOD=0x01; TL0=0x66; TH0=0xfc; /1ms ET0=1; EA=1; /*- 超声波模块触发信号-*/void trigger() trig=0; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); trig=1; /*- 超声波模块相应端口初始化函数-*/void init_measuring() trig=1; echo=1; count=0;/*- 超声波模块距离测试函数-*/void measuring() uchar l; uint h,y; TR0 = 1; while(echo=1) ; TR0 = 0; l = TL0; h = TH0; y = (h 8) + l; y = y - 0xfc66;/us部分 distance = y + 1000 * count;/计算总时间,单位是微秒 TL0 = 0x66; TH0 = 0xfc; delayt(30); distance = 3453* distance / 20000;/原始为:(0.34毫米/us)*时间/2/ /*- 超声波模块测量结果显示函数-*/void display(uint x) uchar qian,bai,shi,ge; qian=x/1000; bai=(x/100)%10; shi=(x/10)%10; ge=x%10; lcd_wcom(0x80+0x49);/单位是厘米/ lcd_wdat(tableqian); lcd_wdat(tablebai); lcd_wdat(tableshi); lcd_wcom(0x80+0x4d); lcd_wdat(tablege);/*- 主函数-*/void main() lcd_init(); /液晶初始化 init_t0(); /定时器0初始化 init_measuring(); /超声波相应端口初始化 while(1) lcd_xianshi(); /液晶显示特定字符 trigger(); /触发超声波启动 while(echo=0) /等待回声 ; measuring(); /进行距离测量 display(distance); /对测量结果进行显示 init_measuring(); /超声波相应端口初始化 delayt(600); /每次测量间隔60ms /中断服务
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 淄博培训用管理办法
- 限高设施管理办法
- 积分贷贷款管理办法
- 云南省仓储管理办法
- 监理项目群管理办法
- 临时团支部管理办法
- vts内部管理办法
- 人才供应链管理办法
- 液氮罐储存管理办法
- 临时措施费管理办法
- 16949-PPAP培训资料课件
- 公司年度季度预算项目明细记录excel表模板
- ☆初中语文阅读理解必备100篇
- 教练场地技术条件说明
- 电力电缆基础知识培训
- 胡寿松 自动控制原理(第7版)笔记和课后习题(含考研真题)及答案详解(第七版-上册)
- 2023年重庆市大渡口区八桥镇社区工作人员考试模拟题及答案
- JJF 1251-2010坐标定位测量系统校准规范
- GB/T 40831-2021资产管理财务与非财务职能在资产管理活动中的一致性指南
- GB/T 28046.1-2011道路车辆电气及电子设备的环境条件和试验第1部分:一般规定
- GB/T 24405.2-2010信息技术服务管理第2部分:实践规则
评论
0/150
提交评论