智能循迹小车 - 图文

更新时间:2023-11-25 10:00:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

课 程 设 计 报 告

课程名称 嵌入式系统原理与设计

课题名称 智能循迹小车

专 业 通信工程 班 级 学 号 姓 名

指导老师 乔汇东 胡瑛

2014 年 1 月 5 日

目 录

1. 系统总设计 ........................................................................................................................... 1

1.1 功能说明 ...................................................................................................................... 1 1.2 任务分配情况 .............................................................................................................. 1 1.3 使用说明书 ................................................................................................................ 1 2.硬件设计 ................................................................................................................................. 1

2.1 电源模块 .................................................................................................................... 2 2.2 红外循迹模块 ............................................................................................................ 2

2.2.1 红外循迹模块原理图 ...................................................................................... 2 2.2.2 红外循迹模块构造 ............................................................................................ 3 2.3 电机驱动模块 ............................................................................................................ 4

2.3.1 L298N原理图 .................................................................................................. 4 2.3.2 L298N构造 ......................................................................................................... 5 2.3.3 直流电机驱动原理 .......................................................................................... 6

3. 软件设计 ............................................................................................................................... 9 4.实验结果 ............................................................................................................................ 12 5.调试过程 ............................................................................................................................... 14 6.实验心得 ............................................................................................................................... 15 7.附录 ....................................................................................................................................... 19

1. 系统总设计

1.1 功能说明

本课题是基于MSP430

单片机循迹智能小车的设计与实现,小车系统以MSP430

单片机为系统控制处理器,采用红外传感器对赛道进行道路检测,单片机根据检测到的信号的不同状态判断小车的当前状态,通过电机驱动芯片L298N发出控制命令,控制电机的工作状态以实现对小车的控制,最终在黑色跑道上完成循路行走。

1.2 任务分配情况

参与此次项目制作的一共七人,分别是:张振凤,冯志成,肖新加,代小敏,杨小林,谢鹏华和张莹 任务分配情况如表1所示: 表1 任务分配情况

1.3 使用说明书

产品名称:智能循迹小车 技术参数:

L298N基本参数:

类型:半桥 输入类型:非反相 输出数: 4 电流输出/同道:2A 电流峰值输出:3A 工作温度:-25~135°C 器件型号:L298N 产品的使用方法:

用六节干电池9V直流电压作为供电电源,接通电源,在有黑线的跑道上行走。 注意事项:1、所用电源不能超过9V,以免电压过大,把电机烧坏。

2、小孩使用时,应在大人的陪同下使用,以免被小车的尖锐部分弄伤。 3、轻拿轻放,以免损坏小车器件。 4、长期不使用时,应把电池取出。 生产日期:20xx年xx月xx日

2.硬件设计

此次项目中硬件部分的设计主要包含以下模块:电源模块,红外循迹模块,电机驱

1

动模块和MSP430f149单片机。

2.1 电源模块

模型车通过自身系统,采集赛道信息,获取自身速度信息,加以处理,由芯片给出指令控制其前进转向等动作,各部分都需要由电路支持,电源管理尤为重要。在本设计中, 在本设计中,msp430单片机使用5V电源,电机使用5V电源。用了6节1.5V的电池,为单片机和电机供电。如图所示:

图1 电源实物图

其红线接电机驱动模块上的VDD接口,绿线连接GND接口。

2.2 红外循迹模块

采用光敏二极管作为光源探测模块的传感器,由于光敏二极管感光后,内阻有较大的变化,通过一定的电路转化为电压的变化。其实物图为:

图2 红外循迹模块实物图

图中的SSI至SS5分别连接单片机I/O接口的P3.0到P3.4。分别控制五个光敏二极管,当没有检测到黑线,则指示灯不亮,则为高电平。有检测到黑线,则指示灯亮,为低电平。 从而判断出小车是否能够循迹走。

2.2.1 红外循迹模块原理图

2

采用比较器对 5 个二极管的输出电压进行比较,光敏二极管引起的电压变化送到比较器的反相端与基准信号进行比较,将结果输入到单片机执行判断。基于的寻光电压比较电路:二号管脚为基准电压输入端,将需要进行比较的电压输入到三号管脚,如果比基电压的值大,则一号管脚输出为高电平,反之为低电平。其原理图为:

图4 红外循迹模块原理图

在板子的下面有五个循迹传感器,其实图为:

图5 循迹传感器

通过这五个传感器检测,没有检测到黑线,则H4发光到白纸光反射到H4接收端,H4接收端导通,导通则T1接地=0,指示灯不亮,则为高电平。有检测到黑线,则H4发光到黑线光全部被吸收,H4接收端,没有收到任何信号,因为H4不导通(截止),则T1=VCC,指示灯亮,为低电平。

2.2.2 红外循迹模块构造

红外循迹模块由循迹传感器,触碰传感器,测距距离调 节器组成,其元件清单如下

3

表所示:

表2 红外循迹模块元件清单

2 3 碰触传感器 序号 1 名称 循迹传感器 个数 作用 5个 1个 循迹作用 检查障碍物 调节与地面的高度 测距距离调节器 1个 SSI至SS5分别连接单片机I/O接口的P3.0到P3.4。

2.3 电机驱动模块

电机驱动芯片L298N是SGS公司的产品,内部包含4通道逻辑驱动电路。是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。L298可驱动2个电机,OUT1、OUT2和OUT3、OUT4之间分别接2个电动机。IN1IN2 IN3 IN4脚接输入控制电平,控制电机的正反转,ENA,ENB接控制使能端,控制电机的停转。也利用单片机产生PWM信号接到ENA,ENB端子,对电机的转速进行调节。 其实物图为:

图6 电机驱动模块实物图

2.3.1 L298N原理图

4

U15710126111158IN1IN2IN3IN4ENAENBGNDGNDGNDL298NU25710126111158IN1IN2IN3IN4ENAENBGNDGNDGNDL298NVSSOUT1OUT2OUT3OUT4VCC42313149+12V+12VD54007D64007+5VD74007+VSSOUT1OUT2OUT3OUT4VCC42313149+12V+12VD14007D24007+5VD34007+MG1MOTOR RIGHTD4A4007-J1123456P3.1P3.3P3.5P3.7P4.2P4.4单片机引脚MG2MOTOR LEFTD8A4007-小 车 电 机 驱 动U3J2IN1VSS 1 GND 图 77 L298N原理图22IN2OUT1+5VP5.754310126111158IN3IN4ENAENBGNDGNDGND3 灭火风扇+A-OUT2L298可驱动OUT1、OUT2和OUT3、OUT4之间分别接2个电动机。IN1IN2 CON32个电机,IN3 IN4脚接输入控制电平,控制电机的正反转,ENA,ENB接控制使能端,控制电机14OUT4的停转。也利用单片机产生PWM信号接到ENA,ENB端子,对电机的转速进行调节。其L298N逻辑功能图为: 灭 火 风 扇 驱 动L298NVCC9OUT313 表3 L298N的逻辑功能图 2IN1(IN3) 0 1 0 1 IN2(IN4) 1 0 0 1 3ENA 1 1 0 1 电机状态 正转 反转 停止 停止 4 其OUT1、OUT2和OUT3、OUT4之间分别接2个电动机,IN1IN2 IN3 IN4脚接输入控制电平,控制电机的正反转,P4.0~4.3分别连接IN1~IN4。

2.3.2 L298N构造

电机驱动芯片L298N包括LED发光二极管、续流二极管、极性电容、稳压器、散热片、接线端子、L298N、一般电容等元件组成,其作用如下表所示: 表4 L298N元件清单

序号 1

名称 LED发光二极管 个数 4个 5 作用 信号指示

2 3 4 5 6 7 8 续流二极管 极性电容 稳压器 散热片 接线端子 L298N 一般电容 8个 2个 1个 1个 3个 1个 2个 芯片续流保护 滤波作用 稳压输出 驱动芯片散热 电机驱动芯片 滤波作用

2.3.3 直流电机驱动原理

(1)其内部采用H桥驱动电路,如图所示:

图8 H桥驱动电路

H桥式电机驱动电路包括四个三极管和一个电机,其外形像大写字母H,故叫做H桥驱动电路。

要使电机M运转,必须使对角线上的一对三极管导通,其驱动原理示意图如图所示:

图9 驱动原理示意图 H桥式电机驱动电路,利用PWM波对其转速。

6

(2)功能

对于单项的电机驱动,只要用一个大功率的三极管带动电机即可,当电机需要双向转动时,则需要四个三极管的’H’桥电路,如果需要调速,则需要三极管和场效应管等开关元件实现PWM波调速。 (3)性能

①.输出电流和电压的范围,它决定电路能驱动多大功率电机。 ②.效率。

③.对控制输入端的影响。 ④.对电源的影响。 ⑤.可靠性。

2.4 主控制模块

本项目的控制芯片均采用MSP430F149芯片,这是一款TI生产的以低功耗著称的16位单片机。其在1MHz 的时钟条件下运行时,芯片的电流最低会在165μA左右,RAM 保持模式下的最低功耗只有0.1μA。座位显示屏最靠电力工作,采用这款芯片降低了功耗,增强了其使用的周期时间,节约了能源。实物图如图所示:

图10 MSP430F149单片机实物图

小车采用MSP430F149单片机作为控制芯片 ,系统硬件组成共包括九个模块,分

7

别为MSP430F149单片机最小系统模块,4路A/D转换模块,D/A 转换模块,键盘数码管显示模块,温度传感器模块,实时时钟模块,非易失性存储器模块,液晶显示模块,2路串口通信接口模块。系统软件组成为各个功能模块程序设计,包括七个部分,分别为A/D转换程序,温度传感器显示当前环境中的温度,用液晶来显示实时时钟,通过串口向单片机发送字符,单片机又发回字符给电脑,D/A输出方波,非易失性存储器的读写。

键盘数码管显示模块液晶显示模块A/D转换模块MSP430F149单片机最小系统D/A转换模块电平转换

温度传感器模块实时时钟模块非易性存储器模块上位机

图11 MSP430F149单片机最小系统

MSP430系列单片机提供三个时钟信号以供给片内各部分电路使用,这三个时钟源分别是:辅助时钟信号(ACLK),来自32.768kHz晶振或者另一个外接高频晶振,一般用于低速外设;主时钟信号(MCLK),CPU正常运行时使用的主时钟,一般由8MHz外接晶振提供;子系统时钟(SMCLK),主要用于高速外围模块。在本实验中我们采用了主时钟信号(MCLK) 。

图12 msp430f149单片机的I/O引脚图

8

在单片机的I/O接口中,P1.2和P1.3连接两个PWM波的输出,P3.0~3.4分别连接红外循迹模块上的控制五个红外对管的五个引脚,P4.0~4.3分别连接IN1~IN4.

图13 MSP430F149单片机原理图

将PWM波植入单片机中,然后通过单片机控制电机,PWM波控制速度,在转弯的时候,通过改变PWM波中的占空比而达到转弯,转弯有两种方案:一种是一边不转,另一边转动而达到转弯的效果;另一方案则为一边转的快一边转的慢,从而达到转弯的效果。 3.软件设计 软件总体框图如图所示: 电机驱动模块 软件设计 图14 软件总体框图 红外循迹模块 软件设计 软件总体设计 PWM 脉冲宽度调制是通过控制固定电压的直流电源开关频率,改变负载两端的电压,从

9

而达到控制要求的一种电压调整方法。PWM应用在许多方面,比如:电机调速,温度控制等。在PWM驱动控制的调整系统中,按一个固定的频率来接通喝断开电源,并且根据需要改变一个周期内“接通”和“断开”时间的长短。通过改变直流电机上电压的“占空比”来达到改变平均电压大小的目的,从而来控制电动机的转速。

小车利用PWM波控制速度,在转弯的时候,通过改变PWM波中的占空比而达到转弯,转弯有两种方案:一种是一边不转,另一边转动而达到转弯的效果;另一方案则为一边转的快一边转的慢,从而达到转弯的效果。在本实验中,我们采用了第二个方案。

图15 PWM波 在这我们用了模式7,复位/置位模式。

我们利用两个PWM波分别控制两个电机,利用PWM波中的占空比不同而达到转弯的效果。 其程序为:

void Init_PWM(void) {

TACTL = TASSEL1 + MC0 + TACLR;

//TimerA选择MCLK时钟,不分频,增计数模式,

CCTL1 = OUTMOD2 + OUTMOD1 + OUTMOD0 + CCIE; P1DIR|=0X0C;

10

P1SEL|=0X0C;

//捕获,比较模块1选定为输出比较模式,输出模式7,禁止比较中断 CCTL2 = OUTMOD2 + OUTMOD1 + OUTMOD0 + CCIE;

//捕获,比较模块2选定为输出比较模式,输出模式7,禁止比较中断 CCR0 = 8000; }

/*******设置PWM1的占空比*******/ void Set_PWM1_Duty(uchar duty) {

if((duty >= 5) && (duty <= 95)) //将占空比限制在5% ~ 95%之间 {

CCR1 = 8000 / 100 * duty; }

else //否则将占空比强制设置为50% {

CCR1 = 4000; } }

/*******设置PWM2的占空比*******/ void Set_PWM2_Duty(uchar duty) {

if((duty >= 5) && (duty <= 95)) //将占空比限制在5% ~ 95%之间 {

CCR2 = 8000 / 100 * duty; }

else //否则将占空比强制设置为50% {

CCR2 = 4000; } }

程序设计流程图为:

11

开始启动循迹检测黑线否是否检测到是判断处理程序否左轮检测到是左 转右轮检测到是右 转左右轮都检测到是否否继续向前结 束图16 程序设计流程图

4.实验结果

1. 循迹小车整体实物图如图所示:

12

图17 循迹小车整体图

2. 小车在直道行走图如图所示:

图 18 小车在直道上行走图

3. 小车在弯道上行走图:

13

图19 小车在弯道上行走图 表5 器件清单

材 料 单片机 连接线 车模 电机驱动 电池 循迹传感器 黑胶带 型 号 MSP430F149 杜邦线 L298N 五号电池 BFD-1000 数 量 1个 若干 1个 2个 6节 一个 1卷

5.调试过程

1 在最开始的时候,最开始认为遇到黑线时为高电平,然后指示灯亮,而在实际走的时候就导致完全不按自己预想的走。

解决方法:用万能表测试在黑线上时红外管两端的电压,测试为低电平。

14

2 在跑弯道的时候,车不能按照预定的轨道走。

解决方法:通过多次调试PWM波的占空比,从而使轮子的速度达到一定得速度,从而按照预定的路行驶。

3 直接按照给的资料,IN1、IN2、IN3、IN4正转/翻转的条件,结果发现车子一个正转,一个反转。

解决方法:通过改写程序,然后一一确定正转/反转的条件。 4 红外对管不管遇到黑线还是没遇到,指示灯却一直亮着。

解决方法:通过检测发现,这个红外对管坏了,然后只用了三个红外对管循路。

6.实验心得

基于这次长达两周的课程设计,对我们组来说是一个非常严峻的考验,成员都觉

得一个字,难!两个字,很难!三个字,非常难!对于我们来说,我们是一个初学者,而且上课的时候都是打酱油飘过。

不过总体来说还是有收获的,对于一个课题,组长分别把成员都安排了任务,每个人都有自己的任务,这样谁都不能依赖谁,只能靠自我学习完成任务。在课设过程中也看到了组员之间的团结,也看到组员之间的着急,知道自己的在学习中的不足,碰到不懂的问题立马找同学或者老师解决。在设计的过程中我们也不可避免的遇到了很多的问题。尤其是在调试过程中,会因为某些原因出不来结果。通过这次的课程设计,我们也发现了不少自己不会的知识,通过查询各方面资料,我们也进步了很多,有学会了很多上课时没掌握的东西, 最后在调试结果出来后,我们更是无比的兴奋,无比的自豪。总之,通过这次单片机应用项目设计,我们不仅对自己的知识有了更深的掌握和应用,更了解到团队精神的力量.在以后的学习和生活中受用终身。

作为通信工程专业的学生,单片机课程的学习是很有意义,并且至关重要的。在大学前三年对基础知识以及通过对专业课的学习,我们掌握了很多理论知识,却很少有实践的机会,而这次硬件课设是对前面学习的一个很好的考察。

(张振凤)

学习msp430单片机已经有一个学期了,很高兴在最后的课设里自己能为小组出一份微薄之力,和他们一起完成这个能循迹的小车。记得我们做小车断断续续做了一个多星期,这虽然说有点枯燥,但是和他们一起探讨而且有成果就是快乐。在这里我首先要

15

感谢我们的胡老师,感谢她一个学期认真的教我们430的单片机知识,我们小车课设用到了定时器A,用它产生两路PWM波去控制小车两个跑道带的跑动速度。其次我得感谢我的那帮在实验室呆的同学,他们为我们成功做出小车提供了资料上的和代码问题上的帮助。可以说小车代码很简单,但由于我们学习得有点浅,所以我在写有定时器的TA产生两路PWM波上有点力不从心,其他的用单片机上的引脚的定义提供数据上也有点生疏。小车循迹部分我们也遇到可一些困难,我们在用小车红外检测的时候用手指代替黑色胶带去测反馈回来的电平,导致把引脚电平都搞反了。总之,在这个过程中我们遇到了很多困难,我们小组成员各司其职,各尽所能,比较顺利的完成了。在这个过程中我学到了很多,我觉得要成功我们就的团结,就得喜于问,就得多动手去探试,就得有一颗必成的心。

(谢鹏华)

这次的课程设计,组长安排大家每个人分配着不同的版块。我和冯志诚一起负责红外管,负责红外管整个的部分,主要是红外管发光原理以及这个部分的代码等。 在这个课程设计的过程中,自己一直在和整个组员一起分析整个原理,设计以及组装。对于自己而言,代码不是很熟悉,单片机的学习不是很到位,面对自己的学习,第一次发现自己学习的这么认真。组长很认真,对我们的要求很高。主要是自己负责自己的版块,自己去弄懂自己要负责的部分,组长只是在我们特别的没有思绪时,才会帮我们解决下问题。经过这一次的学习,自己大概清楚知道一些关于电子控件等物件的运行的原理,面对以前一直认为特别神奇的物件,现在是比较清楚的了解那些小物件的东西。学习后,自己真正的发现自己对于自己专业掌握的太少,自己开始对自己以后就业担忧 。面对自己在专业知识上的缺陷,自己现在必须对自己的未来负责,对自己的就业有个详细规划。通过一次学习,让自己有了更深的感悟,这是自己认为最重要的一个学习感悟。

(张莹)

作为通信工程专业的学生,单片机课程的学习室很有意义,并且至关重要的。在大学前几个学期对基础知识以及通过对专业课的学习,我们掌握了很多理论知识,却很少有实践的机会,而这次硬件课设是对前面学习的很好的考察,既考察了我们C语言的编程能力,硬件实践能力,快速学习能力,也考察了我的团队合作,发现以及解决问题的

16

能力。所以这次硬件课设给我们提供了一个很好的平台。

本次课设我负责电机驱动模块,电机驱动模块采用H桥式电动驱动电路。该电路包括四个三极管和一个电机,要是电机运转,必须使对角线上的一对三极管导通,利用PWM波控制其转速。H型电路保证了可以简单实现转速和方向的控制,稳定性也极强,是一种广泛应用的PWM调速技术。

通过这次课设我学到了很多,对单片机的应用有了更深刻的理解。在动手实践的过程中,加深了对课本理论知识的理解,也认识到自己的不足,使我体会到实践的重要性,在学习一个新知识时,要不骄不躁,认真研究,相信自己,终究会取得成功。 (肖新家) 经过这次课设我深刻体会到了平时不好好学习就会重修的道理。在这段课设的时间里,我也有很认真的问同学一些我不懂的东西。在做小车的期间,我了解到小车需要PWM给它调节电机的转速,单片机的IO端分别给该模块的IN1到IN4高低电平来实现小车的前进或后退,把程序弄懂。但在第一轮答辩的时候,胡老师问我那个电容叫什么,我却说成是电阻,这确实是我不对,我承认在这方面,不懂的很多,这也是我本不该犯的错误。但是下来以后我又很认真的把上面的原件一一认识了一遍,了解他们各自的作用。第二轮答辩的时候,胡老师问我L298电路原理图中那个二极管叫什么,我没有回答得出来,之后我了解到了它叫整流二极管,起到保护原件的作用。第三轮答辩的时候,胡老师又问我L298内部的驱动原理是什么。为此我更加深入的去了解了一下L298n,它内部含有两个H桥的高电压大电流全桥式驱动器,要使电机M运转,必须使H桥的对角线的一对三极管导通,完整的晶体管H桥驱动电路,PWM1,PWM2,为电机方向控制输入端,例如,PWM1=1,PWM2=0时正转,PWM1=0,PWM2=1时电机反转。PWM1,PWM2同时也是电机调速的脉宽输入端;采用标准逻辑电平信号控制。

在这次课设的过程中胡老师的语言惊醒了我,我意识到作为学生就应该好好掌握科学文化知识,通俗的讲,就是要给自己一个,给关心我们的亲朋好友还有老师一个很好的交代。这是我们的义务也是责任,要好好珍惜这一去不复返的大学时光。在我们身边,很多同学都在追时间,分配自己的时间。然而时间却在我玩游戏时从我的指尖悄悄的划过,我却很白痴一样在游戏中沾沾自喜。过去的就让她像风一样过去吧人始终得向前 看,努力的过好明天。不管怎样我还是谢谢我最敬爱的胡英胡老师,谢谢你的教导,谢谢。

(杨小林)

我做的是小车循迹的模块,循迹模块中主要部分就是红外对管对对黑色胶带的识别,通过红外对管对胶带的识别然后传送给放大器进行比较,循迹模块最重要的就是内部的

17

放大器模块,这是一个难点,因为要比较熟悉放大器的工作原理,当小车红外对管在黑色胶带上时,接受放射光的电阻式光敏电阻,根据光敏电阻的特点,光敏电阻遇见光电阻的阻值会变小,光敏电阻的阻值变大造成放大器的反向端的电压大于同相端的电压,则放大器(四运算放大器)输出低电平0给单片机识别,单片机通过IF语句来扫描输入的引脚来进行对小车的左右两个电机的转速进行调节(转弯)。循迹模块还有一个测距距离调节电位器来调节红外对管的灵敏度,电位器其实就是一个可以调节的电阻,电位器是具有三个引出端、阻值可按某种变化规律调节的电阻元件。电位器通常由电阻体和可移动的电刷组成。当电刷沿电阻体移动时,在输出端即获得与位移量成一定关系的电阻值或电压。电位器既可作三端元件使用也可作二段元件使用。后者可视作一可变电阻器。通过这次的课程设计让我意识到了我对模电掌握,过程也遇见了很多问题,通过问组长解决了,课程设计还是很有意义的!

(冯志诚) 这次课设我是负责循迹小车的电机驱动模块,这让我认识了L298这一芯片,同时也让我把原本不怎么熟悉的MSP430单片机有了一个全新的认识。采用功率三极管作为功率放大器的输出控制直流电机。线性型驱动的电路结构和原理简单,加速能力强,采用由达林顿管组成的H型桥式电路。用单片机制达林顿管使之工作在占空比可调的开关状态下,精确调整电动机转速。

这次课程设计让我受益匪浅,无论从知识上还是其他的各个方面。上课的时候的学习从来没有见过真正的单片机,只是从理论的角度去理解枯燥乏味。但在实习中见过甚至使用了单片机及其系统,能够理论联系实际的学习,开阔了眼界,提高了单片机知识的理解和水平。在这次课程设计中又让我体会到了合作与团结的力量,当遇到不会或是设计不出来的地方,我们就会在QQ群里讨论或者是同学之间相互帮助。团结就是力量,无论在现在的学习中还是在以后的工作中,团结都是至关重要的,有了团结会有更多的理念、更多的思维、更多的情感。

(代小敏)

18

7.附录

#include #define uchar unsigned char #define uint unsigned int void Init_PWM(void) {

TACTL = TASSEL1 + MC0 + TACLR;

//TimerA选择MCLK时钟,不分频,增计数模式,

CCTL1 = OUTMOD2 + OUTMOD1 + OUTMOD0 + CCIE; P1DIR|=0X0C; P1SEL|=0X0C;

//捕获,比较模块1选定为输出比较模式,输出模式7,禁止比较中断 CCTL2 = OUTMOD2 + OUTMOD1 + OUTMOD0 + CCIE;

//捕获,比较模块2选定为输出比较模式,输出模式7,禁止比较中断 CCR0 = 8000; }

/*******设置PWM1的占空比*******/ void Set_PWM1_Duty(uchar duty) {

if((duty >= 5) && (duty <= 95)) //将占空比限制在5% ~ 95%之间 {

CCR1 = 8000 / 100 * duty; }

else //否则将占空比强制设置为50% {

CCR1 = 4000; } }

/*******设置PWM2的占空比*******/ void Set_PWM2_Duty(uchar duty) {

if((duty >= 5) && (duty <= 95)) //将占空比限制在5% ~ 95%之间 {

CCR2 = 8000 / 100 * duty; }

else //否则将占空比强制设置为50% {

CCR2 = 4000; } }

void stop() {

P4OUT=0X0f; }

void zhizou(char D)

19

{

if(D==1) {

P4OUT = 0X05;

Set_PWM1_Duty(50); Set_PWM2_Duty(50); }

if(D==2) {

P4OUT = 0X0a;

Set_PWM1_Duty(50); Set_PWM2_Duty(50); } }

void right(char L) {

P4OUT = 0X05; if(L==1) {

Set_PWM1_Duty(30); Set_PWM2_Duty(70); }

if(L==2) {

Set_PWM1_Duty(30); Set_PWM2_Duty(90); } }

void left(char R) {

P4OUT = 0X05; if(R==1) {

Set_PWM1_Duty(70); Set_PWM2_Duty(30); }

if(R==2) {

Set_PWM1_Duty(90); Set_PWM2_Duty(30); } }

void main(void) {

WDTCTL=WDTPW+WDTHOLD;

20

P3DIR &= ~(BIT1 + BIT2 + BIT3);//选中P3.0~P3.4为采集信号输入端 P4DIR |= 0X0F;//控制轮子转向 Init_PWM(); while(1) {

switch(P3IN & 0X0E) {

case 0x0A:zhizou(1);break; //case 0x1c:left(2);break;

case 0x02:case 0x06:left(1);break; //case 0x07:right(2);break;

case 0x08:case 0x0c:right(1);break; case 0x00:stop();break; default:zhizou(1); break; } } }

21

课程设计评分表

课程名称: 嵌入式系统原理与设计 项 目 设计方案的合理性与创造性 设计与调试结果 设计说明书的质量 答辩陈述与回答问题情况 课程设计周表现情况 综合成绩

评 价

教师签名: 日 期:

22

本文来源:https://www.bwwdw.com/article/4hst.html

Top