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

六足爬行机器人设计(7)

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

南昌航空大学学士学位论文

鉴于使单片机信号接收更加稳定,特别在解码后对信号进行放大,以便信号能够

正常被识别。电路如图3.7所示。

图 3.7 无线接收模块电路图

表 3.2 单片机 I/O 口分配 单片机 I/O 口分配 P1.0 P1.1 P1.2 P1.3 P2.2 P2.6 P2.7 经放大的解码芯片 PT2272 信号通道 D0 经放大的解码芯片 PT2272 信号通道 D1 经放大的解码芯片 PT2272 信号通道 D2 经放大的解码芯片 PT2272 信号通道 D3 转动舵机控制线 竖直舵机控制线 水平舵机控制线

为了方便对机器人进行控制,在无线接收模块中使用C51语言进行编程,程序头

文件如下:

#include

#define uchar unsigned char

#define uint unsigned int

uint a,b,c,d,order;

/*a,b,c,d为中间变量,order指示中断顺序*/

第 24页共 32页

南昌航空大学学士学位论文

/*以下定义输出管脚*/

sbit P10=P1^0;

sbit P11=P1^1;

sbit P12=P1^2;

sbit P13=P1^3; //4位指令

sbit P22=P2^2; //转动舵机控制线

sbit P26=P2^6; //竖直舵机控制线

sbit P27=P2^7; //水平舵机控制线

因为舵机的控制信号是PWM波,89S51有16位内部计数器,本设计就用它来产生周

期20ms的脉冲信号,并且根据需要改变输出脉宽。程序如下:

void timer0(void) interrupt 1 using 1

{

P26=!P26; /*输出取反*/

c=20000-c; /*20000代表20 ms,为一个周期的时间*/

TH0=-(c/256); TL0=-(c%6); /*重新定义计数初值*/

}

/*定时器1,控制转动舵机控制线,输出引脚为P22 */

void timer1(void) interrupt 3 using 1

{

switch(order) /*判断是控制竖直舵机或是控制水平舵机*/

{

case(0):

P27=!P27;

break;

case(1):

P22=!P22;

break;

}

d=20000-d;

TH1=-(d/256); TL1=-(d%6);

}

第 25页共 32页

南昌航空大学学士学位论文

单片机的晶振频率为12M,一个时钟周期为12

数器每隔1/1000 ms计一次数。以计数器1为例,先设定脉宽的初始值,程序中初始为

1.5ms,设定计数器计数初始值为c,并置输出p22为高位。当计数结束时,触发计数

器溢出中断函数,就是void timer0(void) interrupt 1 using1 ,在子函数中,改

变输出p22为反相(此时跳为低位),在用20000(代表20ms周期)减去高位用的时间c,

就是本周期中低位的时间,c=20000-c,,直到定时器再次产生溢出中断,重复上一过

程。

程序流程图如图3.8所示。

程序初始化

个晶振周期,正好是1/1000 ms,计

P2 口接收无线模块指令

指令=?

动作 1# 动作 2# …… 动作 14# 动作 15#

单片机输出响应 PWM 控制舵机

图3.8 无线接收模块流程图

把机器人的每个动作,即前进,后退,左转和右转封装成一个子函数,以便在主

程序中进行调用。下面以前进子函数为例:

void forward(int a0,int a1,int b0,int b1) //形参传递机器人前进距离

{

P26=1; //置竖直控制信号为高电平

a=a0;

c=a;

第 26页共 32页

南昌航空大学学士学位论文

TH0=-(a/256);TL0=-(a%6);

TR0=1; //启动定时器1

delay50ms(25); //延时,通过定时器不断提供控制信号

TR0=0; //关闭定时器1

P27=1; //置水平控制信号为高电平

order=0; //置控制信号顺序 b=b0; d=b; TH1=-(b/256);TL1=-(b%6); TR1=1; delay50ms(25); TR1=0; P26=1;

a=a1; c=a; TH0=-(a/256);TL0=-(a%6); TR0=1; delay50ms(25); TR0=0; P27=1;

order=0; b=b1; d=b; TH1=-(b/256);TL1=-(b%6); TR1=1; delay50ms(25); TR1=0; }

//启动定时器2 //关闭定时器2 第 27页共 32页

南昌航空大学学士学位论文

主程序即识别由无线发射模块传送过来的指令:

main()

{

EA=1;

ET0=1;ET1=1;

EX0=1;EX1=1; //程序初始化

TMOD=0x11; //设初值

PX0=0;PX1=0;PT1=1;PT0=1; //设定中断优先级

while(1)

{

If (P10==1&&P11==1&&P12==1&&P13==1) //默认指令

{stop(960,2700,2200);} //调用子函数

else if(P10==1&&P11==0&&P12==0&&P13==0) //前进指令

{forward(2000,960,900,2700);}

else if(P10==0&&P11==1&&P12==0&&P13==0) //左转指令

{left(2000,960,1700,2200);}

?

?

else if(P10==0&&P11==1&&P12==1&&P13==0) //右转指令

{right(2000,960,2040,2200);}

else

{stop(960,2700,2200);}

}

}

第 28页共 32页

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库六足爬行机器人设计(7)在线全文阅读。

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