ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:254.70KB ,
资源ID:16490601      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16490601.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于MSP430循迹小车报告源程序分享文档格式.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于MSP430循迹小车报告源程序分享文档格式.docx

1、检测距离为4-13mm。本小车一共采用了5只ST188光电对管,一只位于黑线上方,两只位于黑线左右用于直走微调,最左最右端两只用于转弯。我们在光电对管的发射端串联的一个电位器来调节发射管的电压,以便在不同的环境下进行调节。循迹模块原理如图所示:注意:在实际制作中,光电对管应尽量靠近地面,以减少干扰。二、电压比较模块电压比较模块我们采用了3块LM393芯片,一块LM393芯片上有两个电压比较模块,我们只用到了其中的5个电压比较。我们在LM393的同向输入给定一个参考电压,与在端光电对管的接收端的电压进行比较,若接收端电压比参考电压大,则输出一个 ,反之输出一个 。三、电机驱动模块本次小车采用了由

2、两个减速电机和一个万向轮制作的三轮移动平台,在电机驱动方面采用了L298来控制两个减速电机 。 MSP430F149 为芯片提供驱动信号,传至PWM 控制各个电机的转速,从而调整小车的前进速度和转向。L298模块的原理图如图所示。制作L298模块时应注意在芯片后面留散热片的空间。四、电源模块采用了一块稳压芯片7805搭建的12V转5V的电路,如图:五、控制模块本次设计采用了一片MSP430F149为控制核心,主要用于循迹和电机PWM控制。六、程序部分程序开始运行便进入扫描状态,在直走时不断进行左右微调保证小车行走在线中间。走迷宫的程序必须要有优先级,可左转优先或直走优先,在T字口,十字口一律左

3、转或右转。以左转优先为例,程序优先级顺序为:左转直走右转左微调右微调原地转圈。附录:程序:1初始化程序(具体PWM自己调):#include main.h/*函数名称:CLK_Init()功 能:时钟设置参 数:无返回值 :*/void Clk_Init(void) uchar i; BCSCTL1=0x00; /XT2振荡器、不分频 BCSCTL2=SELM_2+SELS; /选择MCLKSCLK的时钟源为高速时钟,不分频 do IFG1&=OFIFG; /清除振荡失效标志 for(i=0xff;i0;i-); /等待 while (IFG1&OFIFG)!=0); /等待振荡器工作正常PW

4、M_Init初始化PWMvoid delay_us(uint time) uchar i=0; while(time-) while(i+)!=8); i=0; /延时MSvoid delay_ms(uchar time_1) while(time_1-) delay_us(1000);void PWM_Init() P4DIR=0xff; / P4 PWM输出 P4SEL=BIT1+BIT2+BIT3+BIT5; P4DIR=BIT1+BIT2+BIT3+BIT5; TBCCTL1|=OUTMOD_7; /捕获/比较控制寄存器,输出为模式7 TBCCTL2|=OUTMOD_7; /PWM R

5、ESET/SET模式 TBCCTL3|=OUTMOD_7; /TBCCRn-复位 TBCCTL5|=OUTMOD_7; /TBCL0-置位 TBCCR1 =0; /P4.1 L298N IN1 TBCCR2 =0; /P4.2 IN2 TBCCR3 =0; /P4.3 IN3 TBCCR5 =0; /P4.5 IN4 TBCCR0 =1000; TBCTL |= TBSSEL_1+MC_1; /TIMER_B工作于增计数方式void all_init(void) PWM_Init(); Clk_Init(); P2DIR=0x00; / P2.0-P2.4电压比较结果输入 P1DIR|=BIT

6、0+BIT1; /将P3口切换为输出状态 P1OUT|=BIT0+BIT1; /ENA,ENBvoid STRAIGHT(void) /-全速前进 TBCCR2=400; TBCCR1=0; TBCCR5=350; TBCCR3=0;void LEFT(void) /-左转 TBCCR2=0; TBCCR1=250; TBCCR5=250;void RIGHT(void) /-右转 TBCCR2=250; TBCCR5=0; TBCCR3=250;void LEFTS(void) /-左转微调 TBCCR2=100;void RIGHTS(void) /-右转微调 TBCCR5=100;voi

7、d STOP(void) /-停止 void circle(void) TBCCR3=200;/2逻辑判断程序:void judge(void)while(1) if(data&0x01)=0x01) /左优先 delay_us(100);0x01)=0x01) /LEFT(); /delay_ms(10); STRAIGHT(); /冲出一段距离 delay_ms(10); LEFT(); /左转到中间灯离开黑线 delay_ms(35); /时间自己微调 while(1)0x04)=0x04)0x04)=0x04) /转到中间的灯在线上 break; /STRAIGHT();0x04)=0x04) /优先级2 2黑 直走 0x10)=0x10) /优先级3 右转 5黑 0x10)=0x10) delay_ms(5); RIGHT(); delay_us(10);0x02)=0x02) /左转微调 2黑 0x02)=0x02) LEFTS(); break;0x08)=0x08) /右转微调 4黑 0x08)=0x08) RIGHTS(); break0x1f)=0x00) /优先级4 原地转圈 12345白 0x1f)=0x00) circle();0x1f)!=0x00) delay_us(100) /转到不为全白; else STOP();

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1