田进 - 基于51单片机的超声波导航的设计与制作 - 图文(8)
扬州工业职业技术学院毕业设计
delay_nμs(5); //延时5μs
P1_3 = 0 ;
delay_nμs(750);
while(!P1_3) ;
TR0 = 1;
while (P1_3); TR0 = 0;
H = TH0; L = TL0; H = TH0; L = TL0;
//定时器1计时停止
count=H*256 + L; x=count/29.034;
if(x>0&&x<400) { x=x/2; x1=x/10; x2=x; Set_xy_LCM(0,0);
Write_Data_LCM(0x30+x1);//在LCD上显示距离的十位数 Set_xy_LCM(0,1);
Write_Data_LCM(0x30+x2); //在LCD上显示距离的显示个位数 Display_List_Char(0, 2, \
printf(\ //在PC机上显示器上显示所测到的距离
} else
printf(\
delay_nms(200); //延时200ms }
16
}
扬州工业职业技术学院毕业设计
void delay_nμs(uint i) //延时nμs { i=i/10; while(--i); }
void delay_nms(uint n) //延时n ms { n=n+1; while(--n)
delay_nμs(900); }
void Time0_Init (void) //计数器0初始化程序 { }
4.1.1距离测量程序设计思路
简要分析以上程序的基本设计思路,用流程图表示如下:
TMOD |= 0x01; //计数器选择工作模式1 TL0 = 0; TH0 = 0; TR0 = 0;
//计数器低四位赋初值零 //计数器高四位赋初值零 //停止计数
17
扬州工业职业技术学院毕业设计
开始 LCM及串口初始化 N 引脚电下降沿? 产生5μS触发脉冲 Y 延时75μS 定时器停止计数 控制引脚置高 将计数值转换为距离 定时器计数开始 调显示函数
图4-1距离测量程序流程图
主要分为两步:
1、先是根据位差超声波传感器的控制时序图,起动位差超声波距离传感器,即通过单片机编程,给超声波传感器的信号引脚提供一个持续时间为5μs的高电平,然后拉低信号引脚750μs,这样位差超声波传感器就被启动,发出超声爆裂,与此同时,启动单片机的定时器开始计数,当超声波遇到物体时会立即反射回来,位差超声波传感器的接收器接到回波时,会自动拉低其信号引脚的电平,单片机查询到此引脚的电平下降沿到来时停止定时器计数,此时定时器计数值就间接反应了超声波从反射到返回所经历的时间。
2、然后读出定时器的计数值除以2,便得到超声波在遇到被测物体返回的时间,根据:距离=速度*时间,就可以计算出前方物体的距离,因超声波在常温下的空气介质中传播的速度大约为344m/s, 即29.034μs超声波能传播1cm,所以在程序中用语句x=count/29.034来计算距离值,获得被测距离值后,调用LCD显示函数将距离值在LCD模块上显示出来。
18
扬州工业职业技术学院毕业设计
4.2 超声波导航程序
根据位差超声波距离传感器测量得的“距离”信息进行避障行走;当轮式教育机器人距离前面障碍物小于20cm时,它会向左拐改变行进方向,避免与物体碰撞。 程序名:moveroaming.c
功 能:利用超声波传感器探测前方物体并引导轮式教育机器人避开障碍物 #include\ #define uint unsigned int #define uchar unsigned char void delay_nμs(uint i); void delay_nms(uint n); void Forward(void); void Left_Turn(void); void Right_Turn(void) ; void Backward(void) ; void Time0_Init (void);
int main(void) //主函数,程序从这里开始运行 {
uint count,x,H,L; //定义无符号整型变量count,x,
while(1)//循环 {
TL0 = 0;
//计数器低位赋初值0 //计数器高位赋初值0
Time0_Init ();
TH0 = 0;
P1_3 = 0 ; //置P1_4输出为高电平,其余的输出低电平
P1_3 = 1;
19
扬州工业职业技术学院毕业设计
delay_nμs(5); //延时5μs
P1_3 = 0 ; delay_nμs(750);
while(!P1_3) ;
TR0 = 1;
//定时器1计时停止
while (P1_3); TR0 = 0;
H = TH0; L = TL0;
count=H*256 + L; x=count/29.034; }
void delay_nμs(uint i) //延时nμs { i=i/10; while(--i); }
20
if(x<=20) //如果距离小于20cm时
{
Backward(); //后退 Left_Turn(); //向左转 }
else //距离不小于等于20cm时 {
Forward(); //向前走
}
delay_nms(30); //延时30ms }
…… 此处隐藏:312字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [高等教育]公司协助某村精准扶贫工作总结.doc
- [高等教育]高二生物知识点总结(全)
- [高等教育]苏教版数学三年级下册《解决问题的策略
- [高等教育]仪器分析课程学习心得
- [高等教育]2017年五邑大学数学与计算科学学院333
- [高等教育]人教版七年级下册语文第四单元测试题(
- [高等教育]2018年秋七年级英语上册Unit7Howmuchar
- [高等教育]2017年八年级下数学教学工作小结
- [高等教育]湖南省怀化市2019届高三统一模拟考试(
- [高等教育]四年级下册科学_基础训练及答案教材
- [高等教育]城郊煤矿西风井管路伸缩器更换施工安全
- [高等教育]昆八中20182019学年度上学期期末考试
- [高等教育]项目部各类人员任命书
- [高等教育]上市公司经营水务产业的模式
- [高等教育]人教版高二化学第一学期第三章水溶液中
- [高等教育]【中考物理第一轮复习资料】四.压强与
- [高等教育]金坑水电站报废改建工程机电设备更新改
- [高等教育]高中生物教学工作计划简易版
- [高等教育]2017年西华大学攀枝花学院(联合办学)44
- [高等教育]最新整理超短爆笑英文小笑话大全
- 优秀教师继续教育学习心得体会
- 阳历到阴历的转换
- 留守儿童教育案例分析
- 华师17春秋学期《玩教具制作与环境布置
- 测速传感器新型安装装置的现场应用
- 人教版小学数学三年级下册第四单元
- 创业个人意向书
- 山东省潍坊市2012年高考仿真试题(三)
- [恒心][好卷速递]四川省成都外国语学校
- 多少人错把好转反应当成了病情加重处理
- 中外广播电视史复习资料整理
- 江苏省扬州市江都区宜陵镇中学2014-201
- 工程造价专业毕业实习报告
- 广西师范学院心理与教育统计
- aympkrq基于 - asp的博客网站设计与开
- 建筑业外出经营相关流程操作(营改增后
- 人治 德治 法治
- [精华篇]常识判断专项训练题库
- 中国共产党为什么要实行民主集中
- 小学数学第三册第一单元试卷(A、B、C




