1、本科生毕业设计论文题目基于MCU的遥控小车舵机部分TOPICREMOTECONTROLCARBASEDONMCURUDDERPART教学单位_电气信息工程学院_姓名_学号_201031006106年级_2010级_专业_自动化_指导教师_职称_副教授2014年3月20日目录摘要错误未定义书签。ABSTRACT错误未定义书签。第1章概述错误未定义书签。11、背景知识介绍错误未定义书签。12、研究现状错误未定义书签。13、设计目的与意义错误未定义书签。14、研究内容与设计任务错误未定义书签。第2章系统总体方案设计错误未定义书签。21、系统框图错误未定义书签。22、功能说明错误未定义书签。221、P
2、WM信号输出错误未定义书签。222、PWM信号驱动舵机错误未定义书签。223、红外通信控制错误未定义书签。224、串口通信错误未定义书签。225、数码管显示数据错误未定义书签。23、器件与模块选型错误未定义书签。231、主控芯片方案选择错误未定义书签。232、晶振方案选择错误未定义书签。233、显示模块方案选择错误未定义书签。234、舵机方案选择错误未定义书签。235、无线控制模块方案选择错误未定义书签。236、最终选型方案错误未定义书签。24、硬件资源介绍错误未定义书签。241、单片机错误未定义书签。242、晶振错误未定义书签。243、数码管错误未定义书签。244、舵机错误未定义书签。245
3、、红外发射器、接收头错误未定义书签。第3章硬件设计实现错误未定义书签。31、硬件电路设计错误未定义书签。32、硬件模块设计错误未定义书签。321、时钟振荡模块错误未定义书签。322、复位模块错误未定义书签。323、红外接收模块错误未定义书签。324、显示模块错误未定义书签。325、舵机模块错误未定义书签。326、串口模块错误未定义书签。第4章系统仿真调试错误未定义书签。41、仿真环境介绍错误未定义书签。42、仿真过程错误未定义书签。421仿真电路错误未定义书签。422仿真结果错误未定义书签。第5章硬件实现与调试1451、硬件实物1452、硬件实现与调试错误未定义书签。521、硬件实现错误未定义
4、书签。522、模块电路检测错误未定义书签。523、硬件电路的静态调试错误未定义书签。524、硬件电路的动态调试错误未定义书签。53、调试问题与解决错误未定义书签。54、注意事项错误未定义书签。第6章总结与展望16致谢17参考文献18附录18I摘要本文是无线遥控现车舵机控制部分研究,舵机其实是一种位置伺服的驱动器(角度伺服),适用于一些需要角度不断变化并可以保持的控制系统。目前在高档遥控玩具,如航模,包括飞机模型,潜艇模型;遥控机器人中已经使用得比较普遍。舵机也是一种俗称,其实是一种伺服马达。与其他电机相比,舵机有着精度高,性能高,抗过敏能力强,输出功率高,稳定性好,及时性强,噪声低等优点。本设
5、计中我们采用单片机来驱动舵机工作,以STC89C51单片机作为核心控制器,单片机是通过改变输出的PWM信号占空比来控制舵机的转角与转速,这样舵机可以实现正转反转自转旋转等功能。利用PROTEUS软件进行仿真调试,依照原理图进行焊接,下载HEX文件到单片机来驱动舵机完成相应的动作。正文将着重介绍硬件选择,工作原理,硬件设计,仿真以及具体实现效果。关键词舵机;STC89C51;单片机;ABSTRACTTHISPAPERISPARTOFTHEWIRELESSREMOTECONTROLCARSTEERINGGEARCONTROL,THESTEERINGGEARISAKINDOFPOSITIONSERV
6、ODRIVEANGLESERVO,APPLICATIONOFCONTROLSYSTEMINSOMEANGLECHANGINGAPRESENT,INTHEHIGHENDREMOTECONTROLTOYS,SUCHASTHEMODEL,INCLUDINGTHEMODELOFAIRCRAFT,SUBMARINEMODELREMOTECONTROLROBOTHASBEENUSEDMOREWIDELYTHESTEERINGGEARISACOMMONLYKNOWNAS,INFACT,ISAKINDOFSERVOMOTORCOMPAREDWITHOTHERMOTOR,STEERINGGEARWITHHIGH
7、PRECISION,HIGHPERFORMANCE,ANTIALLERGICABILITY,HIGHOUTPUTPOWER,GOODSTABILITY,TIMELINESSSTRONG,HASTHEADVANTAGESOFLOWNOISEWEUSEDINTHEDESIGNOFTHESINGLECHIPMICROCOMPUTERTOPOWERSTEERINGGEAR,THESTC89C51MICROCONTROLLERASTHECORECONTROLLER,SINGLECHIPMICROCOMPUTERISBYCHANGINGTHEOUTPUTPWMSIGNALDUTYRATIOCONTROLS
8、TEERINGANGLEANDSPEED,THESTEERINGGEARCANBEROTATEDTOTURNPOSITIVEREVERSEROTATION,ANDOTHERFUNCTIONSUSEOFPROTEUSSIMULATIONSOFTWAREDEBUGGING,INACCORDANCEWITHTHEPRINCIPLEDIAGRAMOFWELDING,DOWNLOADTHEHEXFILETOTHEMICROCONTROLLERTODRIVETHESTEERINGGEARTOCOMPLETETHECORRESPONDINGACTIONTEXTWILLFOCUSONTHEHARDWARESE
9、LECTION,WORKINGPRINCIPLE,HARDWAREDESIGN,SIMULATIONANDIMPLEMENTATIONEFFECTKEYWORDSSTEERINGGEARSTC89C51SINGLECHIPMICROCOMPUTER1引言11课题背景舵机又称微伺服电机,其主要组成部分为伺服电机,包含伺服电机控制电路以及减速齿轮组。早期在模型上使用最多,主要用于控制模型的舵面,所以俗称舵机。伺服电机是指在伺服系统中控制机械元件运转的发动机,是一种补助马达间接变速装置。舵机是机电系统的重要执行机构,其早期是应用在航模中控制方向的,在航空模型中,飞行器的飞行姿态是通过调整发动机和各个
10、控制多面来实现的,后来舵机的体积小、重量轻、扭矩大、精度高等优点,舵机在航模、船模、车模、机器人等领域得到广泛应用。在航天方面,导弹姿态变换的俯仰、偏航、滚转运动都是靠舵机相互配合完成的;在机器人领域,舵机很适合做机器人关节驱动;在智能车中,舵机主要用于转弯控制,同时也可用于传感器的摇头控制、刹车控制。12、现状研究随着社会生产力的不断发展和科学技术水平的不断提高,舵机技术也必将得到进一步的发展。传统的舵机为模拟舵机,主要由马达、减速齿轮、控制电路等组成,但模拟舵机对于发射机的细小动作,反应非常迟钝,或者根本就没有反应。而且容易受干扰。在模拟舵机的基础上,数字舵机的控制电路比模拟舵机的多了微处
11、理器和晶振。这使得数字舵机在以下两点与模拟舵机不同1处理接收机的输入信号的方式;2控制舵机马达初始电流的方式,减少无反应区对小量信号无反应的控制区域,增加分辨率以及产生更大的固定力量。数字舵机能够适应不同的功能要求,并优化性能,“无反应区”变小;反应变得更快;加速和减速时也更迅速、更柔和;能够提供更高的精度和更好的固定力量。总的来看,舵机的发展可以归纳为以下三个方面从性能上看,向高精度、高效率、高可靠性、高适应性方向发展从功能上看,向小型化、轻型化、多功能方向发展从层次上看,向系统化、复合集成化方向发展。以现代控制理论为控制规律,实现全数字化、智能化、综合化是未来舵机发展的总趋势。13、研究内
12、容与设计任务一、研究内容本设计重点研究以下几个方面(1)舵机是一种位置伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。其控制信号是PWM信号,利用占空比的变化改变舵机的位置。其工作原理与工作方式,这是我们研究的主要内容。(2)单片机又称为微控制器,它是一种面向控制的大规模集成电路芯片。我们主要通过单片机输出信号来控制舵机进行工作。所以很好地学会使用单片机是不可或缺的。(3)无线电遥控是一种无线、非接触控制技术,具有抗干扰能力强,信息传输可靠,功耗低,成本低的通信方式。我们采用无线电遥控来控制舵机,需要了解其编码、解码的原理来实现收发信息。(4)串口是计算机上一种非常通用的设备通信
13、协议。我们采用串口通信来与计算机上位机进行通信。需要研究串口通信的原理与执行方式。二、设计任务通过对以上各项目的研究,本设计使用S1123舵机,其控制信号是PWM信号,利用占空比的变化改变舵机的位置。主要工作如下1舵机转动角度范围0度180度。2转动方式左转右转。3无线电遥控控制舵机转动方式。4舵机通过串口模块与单片机机实现通信。第2章系统总体方案设计21、系统概述系统主要包括单片机控制系统,电机驱动模块,舵机模块以及无线遥控模块;通过各个模块的协同配合来完成整个系统的运行。设计的系统概况通过无线遥控发射发出指令,当小车的接受模块接收指令传达给单片机系统,再驱动电机模块和舵机模块协调工作,达到
14、控制小车的目的。仿真图如下11图11仿真图22、功能说明221、PWM信号输出使用单片机系统实现对舵机输出转角的控制,首先完成两个任务一是产生基本的PWM周期信号,本设计是产生20MS的周期信号;其次是脉宽的调整,即单片机模拟PWM信号的输出,并且调整占空比。当系统中需要实现对一个舵机的控制,采用的控制方式是改变单片机的一个定时器中断的初值,将20MS分为两次中断执行,一次短定时中断和一次长定时中断。短中断输出高电平,长中断输出低电平。这样既节省了硬件电路,也减少了软件开销,控制系统工作效率和控制精度都很高。23、器件与模块选型231、主控芯片方案选择51系列单片机相对于其他单片机(PIC、A
15、VR等),它从内部的硬件到软件有一套完整的按位操作系统,称作位处理器。其次具有乘法和除法指令,这给编程也带来了便利。而且其I/O脚的设置和使用非常简单,当引脚作输入脚使用时,只须将该脚设置为高电平(复位时,各I/O口均置高电平)。另外一个重要原因是使用该芯片的人很多,网上的资料也很丰富,方便我们学习与研究。因此选择51系列作为系统控制芯片AT89C51有128BYTERAM,4KROM。它有T0、T1两个16位定时器。232、晶振方案选择110592MHZ无源晶振该晶振在计算时钟、串口通信波特率等运算中能够得到一个整数,使通信波特率更精确、串口通信的可靠性更高、计算的结果更加精确与方便。例如波
16、特率为9600BPS,振动频率为110592MHZ的单片机每个机器周期为(12/110592)US。,每位间隔机器周期个数为1/9600/12/1105921096(即个数波特率位/机器周期),结果正好为整数。233、舵机方案选择数字舵机数字舵机电子电路中带MCU微控制器,其内部直流伺服电机控制芯片处理接收机的输入信号的方式。然后控制舵机马达初始电流的方式,减少无反应区对小量信号无反应的控制区域,增加分辨率以及产生更大的固定力量。有着反应速度更快,无反应区范围小,定位精度高,抗干扰能力强等优势。但价格昂贵,需要消耗更多的动力。234、无线控制模块方案选择无线电遥控235、最终选型方案单片机ST
17、C89C51晶振110592MHZ无源晶振舵机数字舵机1、舵机的结构舵机简单的说就是集成了直流电机、电机控制器和减速器等,并封装在一个便于安装的外壳里的伺服单元。能够利用简单的输入信号比较精确的转动给定角度的电机系统。舵机安装了一个电位器(或其它角度传感器)检测输出轴转动角度,控制板根据电位器的信息能比较精确的控制和保持输出轴的角度。这样的直流电机控制方式叫闭环控制,所以舵机更准确的说是伺服马达,英文SERVO。舵机的主体结构如下图所示,主要有几个部分外壳、减速齿轮组、电机、电位器、控制电路。简单的工作原理是控制电路接收信号源的控制信号,并驱动电机转动;齿轮组将电机的速度成大倍数缩小,并将电机
18、的输出扭矩放大响应倍数,然后输出;电位器和齿轮组的末级一起转动,测量舵机轴转动角度;电路板检测并根据电位器判断舵机转动角度,然后控制舵机转动到目标角度或保持在目标角度。图28舵机结构图2、技术规格当今使用的舵机有模拟舵机和数字舵机之分,不过数字舵机还是相对较少。下面的技术规格同时适用与两种舵机。舵机的规格主要有几个方面转速、转矩、电压、尺寸、重量、材料等。我们在做舵机的选型时要对以上几个方面进行综合考虑。1、转速转速由舵机无负载的情况下转过60角所需时间来衡量,常见舵机的速度一般在011/60021S/60之间。图29舵机转速2、转矩舵机扭矩的单位是KGCM,这是一个扭矩单位。可以理解为在舵盘
19、上距舵机轴中心水平距离1CM处,舵机能够带动的物体重量。图210舵机转矩3、电压速度、转矩数据和测试电压有关,在48V和6V两种测试电压下这两个参数有比较大的差别。如FUTABAS9001在48V时扭力为39KG、速度为022秒,在60V时扭力为52KG、速度为018秒。若无特别注明,JR的舵机都是以48V为测试电压,FUTABA则是以60V作为测试电压。舵机的工作电压对性能有重大的影响,舵机推荐的电压一般都是48V或6V。较高的电压可以提高电机的速度和扭矩。4、尺寸、重量和材质舵机的功率(速度转矩)和舵机的尺寸比值可以理解为该舵机的功率密度,一般同样品牌的舵机,功率密度大的价格高。塑料齿轮的
20、舵机在超出极限负荷的条件下使用可能会崩齿,金属齿轮的舵机则可能会电机过热损毁或外壳变形。所以材质的选择并没有绝对的倾向,关键是将舵机使用在设计规格之内。金属齿轮箱在长时间过载下也不会损毁,最后确是电机过热损坏或外壳变形,而这样的损坏是致命的,不可修复的。塑料出轴的舵机如果使用金属舵盘是很危险的,舵盘和舵机轴在相互扭转过程中,金属舵盘不会磨损,舵机轴会在一段时间后变得光秃,导致舵机完全不能使用。综上,选择舵机需要在考虑所需扭矩和速度,并确定使用电压的条件下,选择有150左右甚至更大扭矩富余的舵机。3、工作原理以FUTABAS3003型舵机为例,下图是FUFABAS3003型舵机的内部电路。图21
21、1FUTABAS3003内部电路图舵机的工作原理是PWM信号由接收通道进入信号解调电路BA66881的12脚进行解调,获得一个直流偏置电压。该直流偏置电压与电位器的电压比较,获得电压差由BA6688的3脚输出。该输出送人电机驱动集成电路BA6686,以驱动电机正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,直到电压差为O,电机停止转动。舵机的控制信号是PWM信号,利用占空比的变化改变舵机的位置。4、舵机的控制方法标准的舵机有3条导线,分别是电源线、地线、控制线,如下图所示。图38舵机模块电源线和地线用于提供舵机内部的直流电机和控制线路所需的能源电压通常介于46V,一般取5V。注意,给
22、舵机供电电源应能提供足够的功率。控制线的输入是一个宽度可调的周期性方波脉冲信号,方波脉冲信号的周期为20MS即频率为50HZ。当方波的脉冲宽度改变时,舵机转轴的角度发生改变,角度变化与脉冲宽度的变化成正比。某型舵机的输出轴转角与输入信号的脉冲宽度之间的关系可用下图来表示。图213舵机输出转角与输入信号脉冲宽度的关系舵机是一种位置伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统其工作原理是控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压它内部有一个基准电路,产生周期为20MS,宽度为15MS的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出最后,电压差的正负输
23、出到电机驱动芯片决定电机的正反转当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动舵机的控制信号是PWM信号,利用占空比的变化改变舵机的位置一般舵机的控制要求如图1所示图1舵机的控制要求单片机实现舵机转角控制可以使用FPGA、模拟电路、单片机来产生舵机的控制信号,但FPGA成本高且电路复杂对于脉宽调制信号的脉宽变换,常用的一种方法是采用调制信号获取有源滤波后的直流电压,但是需要50HZ周期是20MS的信号,这对运放器件的选择有较高要求,从电路体积和功耗考虑也不易采用5MV以上的控制电压的变化就会引起舵机的抖动,对于机载的测控系统而言,电源和其他器件的信号噪声都远大于
24、5MV,所以滤波电路的精度难以达到舵机的控制精度要求也可以用单片机作为舵机的控制单元,使PWM信号的脉冲宽度实现微秒级的变化,从而提高舵机的转角精度单片机完成控制算法,再将计算结果转化为PWM信号输出到舵机,由于单片机系统是一个数字系统,其控制信号的变化完全依靠硬件计数,所以受外界干扰较小,整个系统工作可靠单片机系统实现对舵机输出转角的控制,必须首先完成两个任务首先是产生基本的PWM周期信号,本设计是产生20MS的周期信号;其次是脉宽的调整,即单片机模拟PWM信号的输出,并且调整占空比当系统中只需要实现一个舵机的控制,采用的控制方式是改变单片机的一个定时器中断的初值,将20MS分为两次中断执行
25、,一次短定时中断和一次长定时中断这样既节省了硬件电路,也减少了软件开销,控制系统工作效率和控制精度都很高具体的设计过程例如想让舵机转向左极限的角度,它的正脉冲为2MS,则负脉冲为20MS2MS18MS,所以开始时在控制口发送高电平,然后设置定时器在2MS后发生中断,中断发生后,在中断程序里将控制口改为低电平,并将中断时间改为18MS,再过18MS进入下一次定时中断,再将控制口改为高电平,并将定时器初值改为2MS,等待下次中断到来,如此往复实现PWM信号输出到舵机用修改定时器中断初值的方法巧妙形成了脉冲信号,调整时间段的宽度便可使伺服机灵活运动为保证软件在定时中断里采集其他信号,并且使发生PWM
26、信号的程序不影响中断程序的运行如果这些程序所占用时间过长,有可能会发生中断程序还未结束,下次中断又到来的后果,所以需要将采集信号的函数放在长定时中断过程中执行,也就是说每经过两次中断执行一次这些程序,执行的周期还是20MS软件流程如图2所示图2产生PWM信号的软件流程如果系统中需要控制几个舵机的准确转动,可以用单片机和计数器进行脉冲计数产生PWM信号脉冲计数可以利用51单片机的内部计数器来实现,具体代码如下当系统的主要工作任务就是控制多舵机的工作,并且使用的舵机工作周期均为20MS时,要求硬件产生的多路PWM波的周期也相同使用51单片机的内部定时器产生脉冲计数,一般工作正脉冲宽度小于周期的1/
27、8,这样可以在1个周期内分时启动各路PWM波的上升沿,再利用定时器中断T0确定各路PWM波的输出宽度,定时器中断T1控制20MS的基准时间第1次定时器中断T0按20MS的1/8设置初值,并设置输出I/O口,第1次T0定时中断响应后,将当前输出I/O口对应的引脚输出置高电平,设置该路输出正脉冲宽度,并启动第2次定时器中断,输出I/O口指向下一个输出口第2次定时器定时时间结束后,将当前输出引脚置低电平,设置此中断周期为20MS的1/8减去正脉冲的时间,此路PWM信号在该周期中输出完毕,往复输出在每次循环的第16次2816中断实行关定时中断T0的操作,最后就可以实现8路舵机控制信号的输出也可以采用外
28、部计数器进行多路舵机的控制,但是因为常见的8253、8254芯片都只有3个计数器,所以当系统需要产生多路PWM信号时,使用上述方法可以减少电路,降低成本,也可以达到较高的精度调试时注意到由于程序中脉冲宽度的调整是靠调整定时器的初值,中断程序也被分成了8个状态周期,并且需要严格的周期循环,而且运行其他中断程序代码的时间需要严格把握在实际应用中,采用51单片机简单方便地实现了舵机控制需要的PWM信号对机器人舵机控制的测试表明,舵机控制系统工作稳定,PWM占空比0525MS的正脉冲宽度和舵机的转角9090线性度较好第5章硬件实现51、硬件实物以下是焊接好的硬物实物图图51硬件实物图第6章总结与展望本
29、设计主要研究了舵机的结构、工作方式与控制原理,研究了通过改变PWM信号占空比来控制舵机的运行。基于STC89C51片机输出PWM信号。PWM信号由舵机接收通道进入舵机后获得一个直流偏置电压,该直流偏置电压与电位器的电压比较,获得电压差来驱动电机正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,当电压差为O时,电机停止转动。本次设计,我们小组四人,我主要负责舵机部分程。在充分理解下位机程序的情况下,依照其对应的端口,研究元件特性,合理布局,安排线路,小心焊接,耐心调试,最终得到硬件成品。硬件线路清晰整洁,能够很好地完成我们的设计任务。但是由于时间较紧、知识面有限等原因,设计不可避免地有部
30、分不足1、串口通信协议相对简单,没有合理利用八位数据的传输以完成更复杂的功能、传送更丰富的数据;2、舵机转动方式有些少,能够在此基础上,实现更复杂的运动方式;3、51单片机资源有限,无法拓展更多功能。如果时间上更加宽限,通过查询资料、询问导师等方式,本设计一写能够纠正以上不足,使设计的功能进一步完善,更上一层楼。通过这几个月的不懈努力,终于完成了本次设计,得到了不错的成果,但是我觉得这个过程是更重要的、更难忘的。为了很好地完成设计,我不仅将已有的知识运用于实践,而且还通过查询资料等方式学会了新的知识;既考验自己考虑问题的能力,又锻炼了自己的动手能力。在这过程,我们小组成员共同解决问题,克服一个
31、又一个难关。我们相互鼓舞、相互学习、相互指导。让我明白了良好的团队协作往往能起到事半功倍的效果。致谢在本次设计中,要特别感谢老师给我们的耐心细致的指导与帮助。对于我们的严格要求,让我们在整个过程中,不至于懈怠与放弃。在每周上报的周报所涉及的问题,都会给我们很细心的指拨与引导,使我们能够拨开迷雾,看到正确的方向。每当我们遇到难题,无法解决的时候,都能够给予我们很大的帮助。在老师身上,学到了很多,让我受益匪浅。在此特向老师表达我的敬意与感谢。同时也感谢我们的组员,正因为我们的相互合作、相互配合、相互学习、相互鼓励,克服重重困难,我们才能完成本次设计。设计的成果,是我们共同的汗水与努力的成果。最后要
32、感谢大学四年培养我的母校西南民族大学大学,这四年里我学到了很多有用的知识,能够运用到实践当中。所学到的知识,会使我受用一生。参考文献1郭天祥编著新概念51单片机C语言教程M电子工业出版社20092陈忠平编著基于PROTEUS的51系列单片机设计与仿真第2版M电子工业出版社20123何宏单片机原理及应用基于PROTEUS单片机系统设计及应用M清华大学出版社20125张秀关单片机与计算机串口通信M电子工业出版20136蔡睿妍基于ARDUINO的舵机控制系统设计J电脑知识与技术20127GUNPOLE舵机知识汇总EB果壳网20118伺服电机的调试方法EB电气自动化技术网201210时玮利用单片机PW
33、M信号进行舵机控制北京交通大学200511扈啸,周旭升编著单片机数据通信技术从入门到精通M西安西安电子科技大学出版社,200213宋庆环,才卫国,高志等编著89C51单片机在直流电动机调速系统中的应用M唐山学院,200814刘昌华,易逵编著8051单片机的C语言应用程序设计与实践M国防工业出版社2007附录附录程序源代码INCLUDEINCLUDEDEFINEUCHARUNSIGNEDCHARDEFINEUINTUNSIGNEDINTDEFINEMIDDLE1500/舵机中间值SBITAP00SBITAP31SBITCP32SBITDP33SBITLED4P13SBITLED5P14SBITL
34、ED6P15SBITLED7P16SBITLED8P17SBITPOP10SBITNEP11SBITPWMP12INTE90,0UCHARNUM,GAO,DI,TEMP,COUNT,JD,BJ,LUCHARTEMP,F1,F2,I,M,GAO,DIINTDUTY/舵机周期INTDUTY1/电机周期INTPIDD0INTPIDSZ0INTT_B,T_B1,T_B2,T_B0,T_A,T_A1,T_A2,T_A0,SPEEDUCHARTEMP,F1,F2,IVOIDDELAYUINTZUINTX,YFORXZX0XFORY120Y0YVOIDINITTMOD0X11TH00X00TL00X00ET
35、01TR01TH10X00TL10X00EA1ET10TR11VOIDTIME0TMOD0X01IE0X82TH00XFFTL00X97TR01VOIDTEME0INTERRUPT1TH00XFFTL00X97IFCOUNTJDPWM1ELSEPWM0COUNTCOUNT1COUNTCOUNT40/VOIDT0_TIMEINTERRUPT1IFF10TH0T_BTL0T_B0PWM0F11ELSETH0T_B1TL0T_B2PWM1F10/VOIDT1_TIMEINTERRUPT3IFM1IFF20TH1T_ATL1T_A0PO0NE0F21ELSETH1T_A1TL1T_A2PO1NE0F2
36、0IFM2IFF20TH1T_ATL1T_A0PO0NE1F21ELSETH1T_A1TL1T_A2PO0NE0F20VOIDQUDONGUCHARIIFM1IFDI0FORI0IDIIPO0NE0DELAY1ELSEPO0NE0IFGAO0FORI0IGAOIPO1NE0DELAY1ELSEPO0NE0ELSEPO0NE0IFM2IFDI0FORI0IDIIPO0NE1DELAY1ELSEPO0NE0IFGAO0FORI0IGAOIPO0NE0DELAY1ELSEPO0NE0ELSEPO0NE0VOIDRUNIFC1/右有效10JD10GAO14DI6M1ELSEIFA1/左有效11JD14GAO14DI6M1ELSEIFA1JD12GAO14DI6M1ELSEIFD1JD12GAO6DI14M2ELSEJD12GAO0DI0PIDD600E9DUTYMIDDLEPIDD/DUTY14000MAIN/INITWHILE1T_B45536DUTY/256T_B045536DUTY256T_B165536DUTY/256T_B265536DUTY256T_A45536DUTY1/256T_A045536DUTY1256T_A165536DUTY1/256T_A265536DUTY1256RUNQUDONGTIME0