77范文网 - 专业文章范例文档资料分享平台

哈工大2012测控系单片机课程设计说明书 - 超声波避障小车(3)

来源:网络收集 时间:2019-04-22 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

哈尔滨工业大学课程设计说明书(论文)

}

while(Sin); /SIN信号从高电平变为低电平,此时跳出该循环TR0置0,停止计数 TR0=0; LTime=TL0; HTime=TH0;

Time=HTime*256+LTime; //将高8位乘以256加上低8位得到总值 Dis=Time/(2*29); //计算出所差距离

2.4.3 主函数

主函数的流程图如下

初始化检测DISDIS大于50是快速前进否DIS大于10是慢速前进否左转90度检测DISDIS大于10是慢速前进否右转180度检测DISDIS大于10是慢速前进否右转90度

哈尔滨工业大学课程设计说明书(论文)

主函数如下:

void main() //主程序 {

IO_init(); //初始化 while(1) {

getx(1); //测距

if(Dis>=50) //如果距离大于50 {

Forward_fast(); //快速前进 }

else if(Dis>=10&&Dis<50) //如果距离在10与50之内 {

Forward_slow(); //慢速前进 }

else //否则,小于10,需转向避障 {

Left_90(); // 先左转90度 getx(1); //测量距离

if(Dis>=10) //如果距离大于10 {

Forward_slow(); //慢速前进 }

else //如果距离依旧小于10 {

Right_180(); //右转180 getx(1); //测距

if(Dis>=10) //如果此时距离小于10 {

Forward_slow(); //慢速前进 }

else //否则,继续调试 {

Right_90(); //右转90度 } } } } }

2.4.4 完整程序代码与注释

#include #include

哈尔滨工业大学课程设计说明书(论文)

sbit Sin=P1^5; //超声波模块控制端口 sbit right=P1^0; //右轮控制信号 sbit left=P1^1; //左轮控制信号 unsigned int Dis,Time; unsigned char LTime,HTime;

void IO_init(void) {

EA=1; ET0=1;

TMOD=0x11;//将T0定时器/计数器设置为16位计数模式 TH0=0x00; //初始值为0 TL0=0x00;

TR0=0; //不开始计数 }

void delay_nus(unsigned int i) //延时函数 {

i=i/10; while(--i); }

void delay_5us() //短时间延时函数,为SIN高电平准备 {

_nop_(); }

void getx(unsigned char a) //测距函数 {

TH0=TL0=0; //初始值设置为0 if(a) {

Sin=0; //Sin置0

Sin=1; //Sin置1,并且延时一段时间,提供一个测距的触发脉冲 delay_5us();

Sin=0; //Sin重新置0 }

while(Sin);

while(!Sin);//SIN信号从低电平变为高电平,此时跳出该循环TR0置1,开始计数 TR0=1;

while(Sin); /SIN信号从高电平变为低电平,此时跳出该循环TR0置0,停止计数 TR0=0; LTime=TL0; HTime=TH0;

Time=HTime*256+LTime; //将高8位乘以256加上低8位得到总值

哈尔滨工业大学课程设计说明书(论文)

Dis=Time/(2*29); //计算出所差距离 }

void Forward_fast(void) //快速前进 {

left=1;

delay_nus(1700); left=0;

delay_nus(20000); right=1;

delay_nus(1300); right=0;

delay_nus(20000); }

void Forward_slow(void) //慢速前进 {

left=1;

delay_nus(1580); //减小左电机的高电平时间,增加右电机的高电平时间,减小速度 left=0;

delay_nus(20000); right=1;

delay_nus(1420); right=0;

delay_nus(20000); }

void Left_90(void) //左转90度 {

unsigned int i=0; while(i<20) { i++; left=1;

delay_nus(1300); //令左、右两轮均顺时针转动 left=0;

delay_nus(20000); right=1;

delay_nus(1300); right=0;

delay_nus(20000); } }

哈尔滨工业大学课程设计说明书(论文)

void Right_180() {

unsigned int i=0; while(i<38) { i++;

left=1; //令左、右两轮均逆时针转动 delay_nus(1700); left=0;

delay_nus(20000); right=1;

delay_nus(1700); right=0;

delay_nus(20000); } }

void Right_90() //{

unsigned int i=0; while(i<20) {

i++; left=1;

delay_nus(1700); left=0;

delay_nus(20000); right=1;

delay_nus(1700); right=0;

delay_nus(20000); } }

void main() //{

IO_init(); // while(1) {

getx(1); // if(Dis>=50) // {

令左、右两轮均逆时针转动主程序 初始化 测距

如果距离大于50

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库哈工大2012测控系单片机课程设计说明书 - 超声波避障小车(3)在线全文阅读。

哈工大2012测控系单片机课程设计说明书 - 超声波避障小车(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/615369.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: