毕业设计(论文)WIFI传输视频智能小车的设计.doc

上传人:laozhun 文档编号:3977271 上传时间:2023-03-30 格式:DOC 页数:41 大小:3.46MB
返回 下载 相关 举报
毕业设计(论文)WIFI传输视频智能小车的设计.doc_第1页
第1页 / 共41页
毕业设计(论文)WIFI传输视频智能小车的设计.doc_第2页
第2页 / 共41页
毕业设计(论文)WIFI传输视频智能小车的设计.doc_第3页
第3页 / 共41页
毕业设计(论文)WIFI传输视频智能小车的设计.doc_第4页
第4页 / 共41页
毕业设计(论文)WIFI传输视频智能小车的设计.doc_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《毕业设计(论文)WIFI传输视频智能小车的设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)WIFI传输视频智能小车的设计.doc(41页珍藏版)》请在三一办公上搜索。

1、学校代码 10126 学号 01061093 分 类 号 TP342 密级本科毕业论文(设计)WIFI传输视频智能小车的设计学院、系 内蒙古大学鄂尔多斯学院 专业名称 自动化 年 级2010级 学生姓名 指导教师 2014年5 月18日WIFI传输视频智能小车的设计摘要智能小车作为现代的新发明,是以后的发展方向,他可以按照预先设定的模式在一个环境里自动的运作,不需要人为的管理,可应用于科学勘探等等的用途。智能小车能够实时显示时间、速度、里程,具有自动寻迹、寻光、避障功能,可程控行驶速度、准确定位停车,远程传输图像等功能。WIFI视频智能小车由马达、小车底盘、电机驱动、舵机、摄像头、无线路由器、

2、控制主芯片MC9S12XS128MAL、电源等主要硬件构成,还可以根据自己的爱好加灯光、显示屏、蜂鸣器等。WIFI视频智能小车利用电脑或手机等配备无线网卡的设备连接到运行Linux系统的路由器,在上位机软件上显示摄像头采集到的通过无线路由器转发的实时视频数据,再让这些终端设备发送控制命令给无线路由器,通过无线路由器将指令转发给主芯片处理,主芯片控制电机驱动就可以完成小车前后左右的动作。视频的无线传输和终端控制指令的下发都是通过WIFI这种介质实现的,故称它为WIFI视频智能小车。关键词:WIFI,智能小车,路由器,MC9S12XS128MAL,LinuxDESIGN OF VIDEO INTE

3、LLIGENT CAR BASED ON WIFIAuthor: Qu HaonanTutor:Wang ZhalaAbstractWIFI video intelligent car consist of the motor, car chassis, motor drive, steering gear, camera, wireless router, the main control chip MC9S12XS128MAL, the power can also according to their own hobbies add lighting, display, buzzer a

4、nd so on. WIFI, video intelligent car using computer or mobile phone that equipped with wireless network device connected to a router running Linux system, display the real-time video data transmitted through the wireless router collected by the camera in the software, then let the terminal device s

5、ends a control command to the wireless router, will be forwarded instruction to the main chip processing through a wireless router, the main chip control motor drive can be completed car around action. Video wireless transmission and terminal control instruction issued are achieved by WIFI, so it is

6、 a WIFI video intelligent car.KEY WORDS:WIFI ,Intelligent car,Router,MC9S12XS128MAL,Linux目录1绪论12方案论证及选择22.1总体设计方案22.1.1系统工作原理22.1.2系统框图22.2硬件方案的选择32.2.1单片机32.2.2路由器32.2.3摄像头52.2.4电机驱动53硬件电路设计73.1主控板设计73.1.1单片机最小系统73.1.2电机驱动电路原理及使用方法83.1.3电源管理电路原理概述103.1.4液晶显示屏113.1.5灯光控制电路123.2TPLINK WR703N无线路由器的改造1

7、33.3摄像头介绍143.3.1摄像头概述143.3.2摄像头的工作原理153.3云台154 系统程序设计174.1系统程序概述174.1.1主程序流程图184.1.2串口中断服务函数流程图194.1.3定时器中断服务函数流程图19图4.3 定时器中断服务函数流程图205 制作与调试215.1系统仿真215.1.1常用软件介绍215.1.2仿真调试235.2实物调试23结论26致谢27参考文献28附录A291绪论现在是一个智能化的时代,随着信息技术的不断发展,现代通信技术与计算机网络技术、智能控制技术的融合已经成为一种趋势。由于汽车工业的迅速发展,智能车的研究也越来越受到人们的重视。全国电子类

8、大赛,如飞思卡尔杯智能车大赛,全国机器人大赛暨RoboCup公开赛,全国电子产品设计大赛等,智能车竞赛占有相当大的比重。本文设计WiFi小车可以实现视频的实时回传,电脑或手机的远程遥控,自动蔽障,循迹,灯光控制等。本系统控制灵活、可靠、精度高,能满足对系统的各方面要求。本设计以飞思卡尔的MC9S12XS128MAL单片机为控制主芯片,利用超声波传感器测量小车与障碍物之间的距离,通过红外传感器实现自动蔽障,通过PWM控制技术设定小车的速度以及前后左右行走,通过摄像头自动循迹。通过对本系统的研究,我们可以初步建立智能小车的模型和控制理论基础。记得看过的电影,如机器人总动员、速度与激情5,里面有Wi

9、Fi视频小车的影子,“瓦力”和那个视频探测小车都是本系统的实际应用。不仅如此,在军事上,实现危险环境侦察,在发生核生化污染事故现场、战场、地震或其它自然灾害救援现场等代替人从事侦察、排险、救援等危险工作的移动机器人。在家里,它还是移动智能监控设备,让你时时刻刻掌握家里的情况。本设计以小车为移动平台,主要叙述WiFi无线视频传输、WiFi控制原理、电源管理电路、主控板电路、电机驱动电路、程序,应用场合以及前景等。2 方案论证及选择2.1总体设计方案WiFi视频智能小车主要由WiFi路由器、电机驱动模块、核心控制模块、摄像头模块等构成。2.1.1系统工作原理将电脑通过WiFi连接到改装好的路由器上

10、,通过电脑上安装的上位机软件向路由器发送控制指令。路由再把接受的的 指令数据通过串口转发给单片机串口,单片机处理完这些命令后执行相应的指令,比如小车的运动、灯光的控制、云台控制、循迹、蔽障等。视频数据不需要单片机的干涉,路由器会自主的将摄像头采集到的数据处理后转发到电脑,通过上位机软件显示出来。2.1.2系统框图照明等其他设备摄像头 单片机WiFi路由器电脑控制终端MM电机驱动模块本系统包括无线路由器、单片机最小系统、电机驱动电路、电机、电平转换电路、电源管理电路、舵机、摄像头、蜂鸣器电路、灯光电路等。无线路由器负责小车通过WiFi和电脑通信,这里巧妙的最大程度利用了无线路由器的资源,除了保留

11、了本身路由功能外,还在路由器上嵌入了两个软件。一个是处理并转发摄像头采集回来的图像数据的软件mjpg-streamer1,在终端上实时显示视频;一个是将终端下达的TCP控制指令转化为串口数据的软件ser2net2,串口数据再交给单片机处理,单片机再作出相应的反应;单片机最小系统是整个系统的大脑,控制小车各部分协调工作;电机驱动电路顾名思义是驱动提供整个小车得到执行机构电机。电平转换电路负责匹配路由器串口和单片串口的电平,使顺利通信;电源管理电路提供了各个模块需要的不同电平,有3.3V、5V、12V;用舵机制作一个两自由度的云台,云台上安装上摄像头,可以灵活的让摄像头拍摄不同角度的图像;蜂鸣器用

12、来在系统死机的情况下发生警报;灯光是为了小车能在夜间工作,和照相机的闪光灯一个作用。2.2硬件方案的选择硬件结构的选着在本系统中起着决定性作用,为了合理高效地利用硬件资源,我做了很多测试。主要有路由器、摄像头、单片机、电机驱动的选择。2.2.1单片机方案一:使用教学用8位的51系列AT89C52单片机作为WiFi视频小车的控制芯片。这款芯片虽然常用,性能也可以满足要求,但是抗干扰性能太差,电机高速运作产生的电磁干扰经常会使数据链断裂导致小车死机,不受控制。方案二:采用飞思卡尔公司生产的MC9S12XS128MAL单片机,16位,112个引脚,资源丰富,有I2C总线接口、SPI、两路SCI、16

13、路12位精度的A/D转换器、CAN总线接口、CET定时计数模块、8路PWM生成器、看门狗等。是飞思卡尔被智能车竞赛指定的MCU,抗干扰性能很强,成本虽比传统的51高出很多,但是为了提高控制精度,本方案采用了它。2.2.2路由器 方案一:选择二手的大亚db120-wg无线路由器,这个路由器是好几年前的产品,CPU 300M BOARDCOM6358,FLASH 16M,RAM 32M,有两个USB口,无线AP功能等,由于比较旧,成本低,最重要是它的开源linux系统(openwrt)也比较完善,适合我们改装。图2.2.1 db120-wg路由图2.2.2 db120-wg路由电路板方案二:网上常

14、用的一个便携产品,TPLINK WR703N无线路由器,这款路由器具有体积小,性能稳定,150M无线传输速度,然成本虽高,但是为了保真小车性能的稳定,本系统选择了此方案。图2.2.3 TPLINK WR703N无线路由器2.2.3摄像头方案一:中星微301方案的摄像头,在Linux系统下是免驱的,市面上支持MJPEG格式的很少,这样就给路由器增加负担,需要路由器将其采集到的视频信息转换为JPEG格式,耗费了很多资源,所以系统运行起来会有些卡顿,在测试时大约能获取每秒5-9帧的图像。方案二:支持MJPG格式的UVC免驱摄像头,上面上很常见,常用的有天敏的S605,奥尼的百脑通等,能获得每秒达15

15、帧的图像。为了提高图像的清晰度,本设计采用此方案。2.2.4电机驱动方案一:采用8个三极管构成两路全桥电机驱动电路,这种电路适合小功率电机,常用在玩具遥控车上,分立的元器件使得桥臂极不对称,而且温漂比较严重。方案二:采用飞思卡尔竞赛指定的电机驱动芯片BTN7960,此芯片能容纳峰值电流为30A,负载能力很强,每两个芯片构成一个全桥,电路结构简单,但是输入信号时MOS电平,在和单片机相连时需要通过一个74LS245来使电平匹配,介于本小车电机功率比较大,选用此方案。图2.2.4 三极管构成的电机驱动电路图2.2.5 BTN7960电机驱动电路3硬件电路设计3.1主控板设计主板包含电源管理电路,电

16、机驱动电路,单片机最小系统,显示屏,灯光控制电路等。3.1.1单片机最小系统单片机用的是Freescale公司的16位单片机MC9S12XS128MAL3,由8KB RAM、128KB的程序Flash、8KB数据Flash组成片内存储器。由于是贴片封装且引脚数太多,自己做板子不太现实,这里采用飞思卡尔竞赛指定的最小系统,原理图如下图3.4所示。图3-3 MC9S128 最小系统图3.4 MC9S128 最小系统原理图3.1.2电机驱动电路原理及使用方法电机驱动电路是由4个BTN7960构成的两个全桥电路构成4,为了提高抗干扰能力,与主芯片连接采用光电隔离芯片PC817,电路原理图如下图3.5所

17、示。图3.5 BTN7960电机驱动原理图输入引脚分别为EA、EB、INA1、INA2、INB1、INB2。可以驱动两个电机,实际上,小车一般为四轮车,有四个电机。由于此电机驱动电路负载能力很强,我们可以将车体同一侧的电机并联在一起,通过差速的方法来实现转弯、前进、后退。电机的驱动状态表可以参考下表3.1。ENXINX1INX2电机状态1PWM1正转11PWM反转111刹车0XX停止不刹车表3.1驱动状态表说明:1表示高电平,也就是5V或3.3V,0表示低电平,PWM表示单片机输入的PWM波,X表示任意状态,也就是5V或3.3V或不接线或接0V。3.1.3电源管理电路原理概述电源管理电路为本系

18、统提供了稳定、可靠、低纹波工作电压,有:3.3V、5V、12V电压,主要用到的芯片有:AMS1117-3.3、LM2596-5.0、LM7812。具体电路原理图如下图3.6、3.7、3.8所示。图3.6 5V稳压电路图3.6 3.3V稳压电路LM7812图3.7 12V稳压电路3.1.4液晶显示屏液晶显示屏用的是Nokia5110手机屏,84*64分辨率,最多可以显示4行汉子。驱动模块为LPH7366,和主芯片通过SPI通信,信号线算上电源线、GND总共9条,使得电路结构简单,应用方便,传输速率能达4Mbps,这是其他显示屏没法比拟的,很适合在本系统采用的XS128单片机上使用,电路原理图和外

19、观图如下图3.8、3.9所示。图3.8 Nokia5110液晶屏原理图图3.9 Nokia5110液晶显示屏模块3.1.5灯光控制电路灯光控制电路的设计方法有很多种,有的用三极管做开关电路5,这种电路适合驱动小功率的灯泡,比如发光二极管;本系统的大灯用的是1W的强光LED,显然不能满足要求,这里我采用了继电器控制电路,电路图如下图3.10所示。图3.10用PNP三极管驱动继电器电路图3.2TPLINK WR703N无线路由器的改造路由器默认的系统,这里我们成为固件,不是开源的,需要给路由器刷一个开源的linux系统。此设备默认是没有引出串口的,这里我们需要小心翼翼把串口引出来。此过程需要用到一

20、些linux终端软件,有:Putty、WinSCP等。刷机过程:把路由器和电脑通过网线连接起来,将电脑IP设置为192.168.1.20,子网掩码设置为255.255.255.0,网管默认。在给通电路由器通电前按住路由的Reset键不放,路由指示灯会闪几下后长亮时表示路由进入刷机模式,此时打开火狐浏览器输入:192.168.1.1,会看到加载固件的选项,找到已经下载好固件的文件夹,载入固件等待2分多路由会重新启动,然后通过Linux命令所安装需要软件mjpg-streamer 、ser2net,设置好串口通信波特率等参数,此时一个WiFi视频模块改造成功。登陆路由器:telnet 192.16

21、8.1.1图3.1 Openwrt 系统界面输入命令:# vi /etc/init.d/wificar可以看到以下界面图3.2 Openwrt 系统配置界面3.3摄像头介绍摄像头是本设计采集图像的主要设备,选择合适的摄像头不仅能提高画质的质量,还可以减小路由器的负载。3.3.1摄像头概述摄像头的种类很多,品牌也很多,但无非是数字摄像头和模拟摄像头两大类。模拟摄像头可以将视频采集设备产生的模拟视频信号转换成数字信号,进而将其储存在计算机的硬盘里。模拟摄像头捕捉到的视频信号必须经过特定的视频采集卡将模拟信号转换成数字模式,并加以压缩后才可以转换成计算机能识别信号运。数字摄像头可以直接捕捉影像,然后

22、通过串、并口或者USB接口传送到计算机里。现在电脑市场上的摄像头基本以数字摄像头为主,而数字摄像头中又以使用新型数据传输接口的USB数字摄像头为主,目前市场上可见的大部分都是这种产品。3.3.2摄像头的工作原理本系统采用的数字USB接口网络摄像头,这里着重介绍数字摄像头的工作原理。景物通过镜头(LENS)生成的光学图像投射到图像传感器(CCD或者CMOS)表面上,然后转为电信号,经过信号放大、A/D转换后变为数字图像信号,再送到数字信号处理芯片(DSP)中加工处理,转化为USB接口协议传输到电脑中处理,通过显示器就可以看到图像了。本系统是将摄像头连接在路由器的USB接口上,通过安装在路由器上的

23、摄像头驱动软件使摄像头工作,并由路由器通过WIFI将视频信号转发出去。电脑终端接收设备,接收到视频信号后通过上位机软件的界面显示图像。在本次设计中,我们使用的是天敏S605摄像头,实物图如下图3.11所示。图3.11天敏S605摄像头3.3云台为了得到我们想要角度的图像信息,我们用两个舵机搭建了一个2自由度云台,将摄像头固定在云台上,通过单片机控制两个舵机的角度就可以满足设计要求,云台的实物图如下图3.12所示。图3.12 2自由度云台4 系统程序设计4.1系统程序概述硬件结构确定后,对应的软件在硬件平台上建筑,完成对各个硬件部分的控制和协调工作。如果说硬件是系统的骨架,软件就是系统的灵魂。因

24、此,设计合理、高效的软件是保证系统稳定运行的基础。本系统涉及路由和单片机的串口通信,舵机的控制,电机PWM调速等,所以在程序的设计中包含对串口、定时器、IO口、PWM模块的编程。4.2主程序流程图系统主程序模块主要完成对系统中各模块电路的初始化等工作,主要包括对定时器、串口中断、外部中断的初始化,同时执行电脑等终端设备所发送的命令,等待外部中断以及根据所需要的功能进行相应操作。软件总体设计及程序流程如下图4.1所示。开始其他控制判断串口接收的指令小车自动蔽障云台控制小车停止小车左转小车右转小车后退小车前进小车自主循迹初始化IO口、PWM、定时器、串口及中断图4.1 主函数流程图4.3串口中断服

25、务函数流程图单片机通过串口和路由通信,路由器每发送一帧数据都要进一次串口中断,将接受到的数据存储到静态数组里供执行函数使用,流程图如下图4.2所示。串口中断接受到指令数据存储到静态数组里YN执行函数接收到结束指令图4.2 串口中断服务函数4.4定时器中断服务函数流程图通过定时器产生控制舵机的PWM波,控制机械手舵机或者云台舵机。这个过程是在定时器中断服务函数里完成的,如下图4.3所示。图4.3 定时器中断服务函数流程图5 制作与调试5.1系统仿真随着科技的发展,计算机仿真技术已成为许多设计部门重要的前期设计手段。它具有设计灵活,结果、过程统一的特点。可使设计时间大为缩短、耗资大为减少,也可降低

26、工程制造的风险。5.1.1常用软件介绍1.CodeWarrior IDECodeWarrior IDE是飞思卡尔智能车竞赛常用的一款程序开发软件,提供了一系列开发软件的工具,有:项目管理器、编辑器、搜索器、源代码浏览器、编译系统、调试器等。支持汇编、C、C+、java等多种高级语言。系统界面如下图5.1所示。图5.1 CodeWarrior IDE软件界面图2Proteus软件Proteus软件是一款常用的仿真工具软件。它不仅有EDA工具软件和单片机及外围器件仿真功能,还可以设计PCB电路板。可以仿真的处理器模型有:8051、HC11AVR、ARM、8086和MSP430等。在编译方面,它也支

27、持IAR、Keil和MPLAB等多种编译。其软件界面如图5.2所示。图5.2 Proteus软件界面3.Altium DesignerAltium Designer是Protel99SE的升级版。不仅兼容Protel可以设计电路板,还增加了许多改进和很多高端功能。该平台拓宽了板级设计的传统界面,全面集成了FPGA设计功能和SOPC设计实现功能,从而允许工程设计人员能将系统设计中的FPGA与PCB设计及嵌入式设计集成在一起。但是我们使用到的功能很少,一般仅用来设计电路板。其系统界面如图5.3所示。图5.3 Altium Designer软件5.1.2仿真调试将电路原理图在Proteus软件中搭建

28、起来,将电机驱动的电压设置为12V,单片机的晶体震荡频率设置为实际使用的16MHz。总之,各方面参数应尽量和实际条件保持一致。调试时采用控制变量法,对各种功能模块分别调试。本设计先调试WiFi遥控,接着调试循迹、蔽障,最后调试机械手部分。在调试的时候可以借助软件自带的示波器来观察数据。5.2实物调试根据系统设计方案,本设计需要硬件调试,软件调试,加载程序后系统整体调试。1.硬件调试由于本系统电路板的焊接、组装工作量很大,所以在电路板焊接完成后,要确认电路板无虚焊,短路,短路等错误,在接入电源线是一定要注意电源正负极,然后对各个功能模块分别调试,逐步实现系统的整体功能。2.软件调试本系统的下位机

29、程序,均使用C语言编写。首先选用单片机开发板作为程序调试的载体,逐步对各模块子程序进行调试,然后再将各子程序模块进行有机组合,尽量使执行效率达到最高,最终完成整个系统的软件调试。3.系统调试将最优的程序烧写到小车的单片机里,观察小车的运行状态,校正相关参数,直到达到预期的效果。实物图如图5.4、5.5所示。5.4 小车实物侧面图图5.5 小车实物正面图图5.6 加了机械手后的小车实物图结论通过本次WIFI视频智能小车的理论学习、论文编写和实物的制作,进一步的认识到了自身存在的不足。特别是自己在路由器方面知识的欠缺,这使得我在小车在起步制作时路由器部分的处理花费了大量的时间。但通过我在网上不断的

30、查询相关的资料,在网上请教这方面的高手,最终我还是完成了路由器部分的处理。同时,通过这次的毕业设计,我的各方面能力也得到了大幅度的提高。在知识上:一方面,我系统的总结了自己的专业知识,明确了自己今后事业的发展方向。另一方面,我如饥似渴的自学了单片机及其外围电路知识,并通过自己独立对软件的编写和实物制作,最终完成了整个WIFI智能小车的设计。在能力上:我通过不断查阅资料、与师生交流学习新知识、在网上请教相关的人士,然后又将自己沉淀后的知识和经验运用到实际电路设计理念中,丰富其功能与质量。在综合素质上,我虽然遇到很多的挑战和困难,但从未想过放弃,最终凭借自己百折不饶、勇于钻研的精神解决了这些技术难

31、点。当然,由于我的知识和能力有限,整个设计还有很多不足之处有待完善和改进,恳请老师指教,这必将是我在踏上工作岗位之前的最大一笔收获。致谢为了让我能顺利地完成本次课题的设计和论文的写作,旺扎拉老师给予了我最亲切的关怀和悉心指导。他不论上班时间,还是下班时间都耐心的给我讲解。每当我遇到困难,他都会耐心的、认真的帮助我。他用自己的实际行动让我知道了,不管我们从事什么样的工作都应该首先保持正确的态度。在本次课题的设计中,不论是在生活上,还是在课题研究中老师们都给予我无限的信任和支持,谨此,我向老师们致以真诚的谢意和最崇高的敬意。 论文的完成,单是有导师的帮助还是远远不够的。还有那些无数次无怨无悔的帮助

32、过我的同学。他们放下自己手里的工作,长时间的帮助我奋战在课题设计的第一线,有时甚至连饭都顾不上吃,在此,我由衷的感谢同学们对我的帮助。直到现在,课题的设计和论文的写作都已完成,但是我的心境却不像从前那样平静了。这么多人热心的帮助,让我又一次认识到了“人间自有真亲在”的道理。我对他们的谢意无法用言语来表达。我会用实际行动把课题设计和论文修改到最好,让那些曾经帮助过我的人知道,他们的努力没有白费,他们的付出是值得的。参考文献1鸟哥,王世江.鸟哥的Linux私房菜(第3版).M人民邮电出社.2010.7.12 刘庆敏. 嵌入式Linux开发详解(第2版). M 北京航空航天大学出版社. 2010.5

33、.13 吴晔. MC9S12XS单片机原理及嵌入式系统开发.M电子工业出社.2011.94 (美)纽曼(Neamen,D.A.)王宏宝,于红云,刘俊岭译.电子电路分析与设计. M 北京:清华大学出版社.2009.1.15 (日)汤山俊夫. 数字电路设计. M 科学出版社. 2006.8.11 江志红.51单片机技术与应用系统开发案例精选,北京:清华大学出版社,2008年12月,1-32 詹林.单片机原理与应用,西安:西北工业大学出版社,2008年4月,1-53 赵海兰, 赵祥伟. 智能温度传感器DS18B20的原理与应用M.现代电子技术出版社, 2003, 14(3): 32-344 老杨.5

34、1单片机工程师是怎样炼成的基于C语言+Proteus仿真,北京:电子工业出版社,2012年1月,353-3635 徐爱钧.单片机原理实用教程基于Proteus虚拟仿真,北京:电子工业出版社,2009年1月,150-1686 张靖武,周灵彬.单片机原理、应用与PROTEUS仿真,北京:电子工业出版社,2008年8月,223-2377 江志红.51单片机技术与应用系统开发案例精选,北京:清华大学出版社,2008年12月,58-59附录A/*-*/*作者:曲昊南单位:内蒙古大学鄂尔多斯学院*/*-*/#include /* common defines and macros */#include d

35、erivative.h /* derivative-specific definitions */#include lcdDriver.h#include definee.h#define BUS_CLOCK 32000000 /总线频率#define OSC_CLOCK 16000000 /晶振频率#define BAUD 9600unsigned char data_receive; /SBUFuint buffer3; /数据缓冲器uint rec_flag=0; /串口命令标志uchar a3=0;/命令存储区uint n=0;/主函数中的全局变量uint table4=60,32;/

36、 -90,0,90/*/* 初始化锁相环 */*/void INIT_PLL(void) CLKSEL &= 0x7f; /set OSCCLK as sysclk PLLCTL &= 0x8F; /Disable PLL circuit CRGINT &= 0xDF; #if(BUS_CLOCK = 40000000) SYNR = 0x44; #elif(BUS_CLOCK = 32000000) SYNR = 0x43; #elif(BUS_CLOCK = 24000000) SYNR = 0x42; #endif REFDV = 0x81; /PLLCLK=2OSCCLK(SYNR+1

37、)/(REFDV+1)64MHz ,fbus=32M PLLCTL =PLLCTL|0x70; /Enable PLL circuit asm NOP; asm NOP; while(!(CRGFLG&0x08); /PLLCLK is Locked already CLKSEL |= 0x80; /set PLLCLK as sysclk/*/* 软件延时 */*/void Delay(uint n) uchar i=100;while(n-)while(i-);/*/* 初始化PWM */*/ void PWM_Init (void) /函数作用:输出PWM波,输出端口为PWM3和PWM5

38、,接电机驱动 /* put your own code here */ /SetSysCLK_16M ( ); / 设置系统时钟 PWME = 0X00; /关闭PWM通道 PWMPRCLK = 0X75;/对总线时钟给A,B时钟预分频,总线时钟为32M,分频后A时钟为1M ,B时钟为250kHz PWMCLK = 0Xc0;/设0,1,4,5为A时钟源;2,3,为B时钟6,7 为sb PWMSCLA = 0X3F;/SA时钟通过对PWMSCLA设置分频产生,clock SA=clock A/(2*PWMSCLA) ,clock SA=250k/(2*62.5)=2000Hz (3F=63)

39、PWMSCLB = 0X05; /SB =250k/25=7.8125khz PWMPOL = 0X80;/0-6输出的PWM先低后高(下降沿沿翻转) 7通道先高后低 PWMCAE = 0X00; /左对齐输出 PWMDTY0 = 0X17;/占空比为 23/90=25.555% 占空比=(PWMDTYx/ PWMPERx)*100% PWMPER0 = 200; /输出180kHz的脉冲 CAE0=0,PWM0周期=通道时钟周期*PWMPER0=90*2000Hz=180KHz (5A=90) PWMCNT0 = 0X00;/通道计数器清零 PWMDTY1 = 0X17; PWMPER1 =

40、 200; PWMCNT1 = 0X00; PWMDTY4 = 0X17; /0,1,4,5通道初始占空比均为25% PWMPER4 = 200; PWMCNT4 = 0X00; PWMDTY5 = 0X17; PWMPER5 = 200; PWMCNT5 = 0X00; /级联6,7通道控制一路舵机 PWMCTL_CON67 = 1;/6,7联合成16位pwm PWMDTY67 = 32; /20-32-50 PWMPER67 = 400; PWMCNT67 = 0; /计数器清零 DDRP = 0XFF; PWME = 0XFF;/通道使能 /_FEED_COP ( ); /* 清看门狗

41、*/ /*电机控制*/ void motor_A(int r0,int l0) /r0:左电机RPWM l0:左电机LPWM A是右电机控制 RPWMA = r0; LPWMA = l0; ENA = 1; void motor_B(int r1,int l1) / r1: 右电机RPWM l1:右电机LPWM B是左电机控制 RPWMB = r1; LPWMB = l1; ENB = 1;void farward(int r) /r:左右电机的pwm motor_A(r,0); motor_B(r,0); void backward(int r) motor_A(0,r); motor_B(0,r);void turn(int r0,int l0,int r1,int l1) motor_A(r0,l0); motor_B(r1,l1);void brake() /刹车 motor_A(0,0); motor_B(0,0);void init_motor() ENA = 0; ENB = 0

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号