基于ARM的步进电机细分驱动控制设计.doc

上传人:仙人指路1688 文档编号:4144707 上传时间:2023-04-07 格式:DOC 页数:29 大小:1.33MB
返回 下载 相关 举报
基于ARM的步进电机细分驱动控制设计.doc_第1页
第1页 / 共29页
基于ARM的步进电机细分驱动控制设计.doc_第2页
第2页 / 共29页
基于ARM的步进电机细分驱动控制设计.doc_第3页
第3页 / 共29页
基于ARM的步进电机细分驱动控制设计.doc_第4页
第4页 / 共29页
基于ARM的步进电机细分驱动控制设计.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《基于ARM的步进电机细分驱动控制设计.doc》由会员分享,可在线阅读,更多相关《基于ARM的步进电机细分驱动控制设计.doc(29页珍藏版)》请在三一办公上搜索。

1、ARM课程设计论文 题 目:基于ARM的步进电机细分驱动控制设计 院 (系):电气与控制工程学院 专业班级:自动化 第1章 绪论1.1 ARM概述及其发展ARM公司的IP核已经由ARM7,ARM9发展到今天的ARM11版本。ARM11囊括了Thumb-2,CoreSight,TrusZone 等众多业界领先技术,同时由单一的处理器内核向多核发展,为高端的嵌入式应用提供了强大的处理平台。高集成度SOC芯片的采用可以带来一系列好处,诸如减少了外围器件和PCB面积,提高系统抗干扰能力,缩小产品体积,降低功耗等。 ARM 公司是一家IP供应商,其核心业务是IP核以及相关工具的开发和设计。半导体厂商通过

2、购买ARM公司的IP授权来生产自己的微处理器芯片。由此以来,处理器内核来自ARM公司、各芯片厂商结合自身已有的技术优势以及芯片的市场定位等因数使芯片设计最优化,从而产生了一大批高度集成、各据特色的SOC芯片。例如Intel公司的XScale系列集成了LCD控制器、音频编/解码器,定位于智能PDA市场;Atmel公司的AT91系列片内集成了大容量 Flash和RAM、高精度A/D转换器以及大量可编程I/O端口,特别适合于工业控制领域;Philips公司的LPC2000系列片内集成了128位宽的零等待Flash存储器以及I2C, SPI,PWM,UART等传统接口,极高的性价比使它对传统的

3、8/16位MCU提出了严峻的挑战。本次设计仍使用的ARM7系列。1.2 ARM微处理器1.2.1 ARM微处理器的特点ARM微处理器采用RISC指令集、使用大量寄存器、ARM/THUMB指令支持、三/五级流水线具有低功耗、低成本、高性能等特点。1.2.2 ARM微处理器LPC2131概述及其构造LPC2131简介LPC2131的内核是ARM7TDMI-S核,32位微处理器,采用冯诺依曼结构(数据和指令混合编址)。ARM7TDMI-S核采用三级流水线,还使用了一个被称为Thumb(16位指令长度)的独特结构化策略,适合那些对存储器有限制或者需要较高代码密度的大批量产品的应用。Thumb代码仅为A

4、RM代码规模的65%,但是性能却是连接到16位存储器系统的相同ARM处理器性能的160%。 较小的封装(LQFP64)和极低的功耗使LPC2131可理想的应用于小型系统中,如通信网关、协议转换器、声音辨别、低端成像、工业控制和医疗系统。 LPC2131特性:8KB片内SRAM;32KB片内Flash,128位宽度接口/加速器实现高达60MHz的操作频率;8路10位A/D转换器;2个32位定时器(带4路捕获和4路比较通道),PWM单元(6路输出)和看门狗;2个UART,2个高速IIC接口(400Kb/s),SPI,SSP;向量中断控制器,可配置优先级和向量地址; 47个(P0.0-P0.23,P

5、0.24-P0.31,P1.16-P1.31)可承受5V电压的通用I/O口;9个边沿或者电平触发的外部中断引脚;片内晶体振荡电路支持频率1-30MHz;2个低功耗模式:空闲和掉电; ARM内部结构原理图 单电源供电,含有上电复位(POR)和掉电检测(BOD)电路,CPU操作电压3.0-3.6V。第2章 主要元器件及其各部分电气特性2 .1步进电机部分2.1.1步进电机概述及其分类步进电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。您可以通过控制脉冲个来控制角位移量,从而达到准确定位的目的;同时您可

6、以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。步进电机分为三种:永磁式(PM),反应式(VR)和混合式(HB)。永磁式步进电机一般为两相,转矩和体积较小,步进角一般为7.5度 或15度;反应式步进电机一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大;混合式步进电机混合了永磁式和反应式的优点。它分为两相和五相,两相混合式步进电机步距角一般为1.8度而五相混合式步进电机步距角一般为 0.72度。其中混合式步进电机的应用最为广泛2.1.2步进电机的工作原理该步进电机为一四相步进电机,采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步

7、进电机步进转动。图3是该四相反应式步进电机工作原理示意图。 四相步进电机步进示意图 开始时,开关SB接通电源,SA、SC、SD断开,B相磁极和转子0、3号齿对齐,同时,转子的1、4号齿就和C、D相绕组磁极产生错齿,2、5号齿就和D、A相绕组磁极产生错齿。当开关SC接通电源,SB、SA、SD断开时,由于C相绕组的磁力线和1、4号齿之间磁力线的作用,使转子转动,1、4号齿和C相绕组的磁极对齐。而0、3号齿和A、B相绕组产生错齿,2、5号齿就和A、D相绕组磁极产生错齿。依次类推,A、B、C、D四相绕组轮流供电,则转子会沿着A、B、C、D方向转动。四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、

8、八拍三种工作方式。单四拍与双四拍的步距角相等,但单四拍的转动力矩小。八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图4.a、b、c所示:a. 单四拍 b. 双四拍 c八拍2.1.3 28BYJ48步进电机及其电气特性步进电机28BYJ48型四相八拍电机,电压为DC5VDC12V。当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度(一个步距角)。当通电状态的改变完成一个循环时,转

9、子转过一个齿距。四相步进电机可以在不同的通电方式下运行,常见的通电方式有单(单相绕组通电)四拍(A-B-C-D-A。),双(双相绕组通电)四拍(AB-BC-CD-DA-AB-。),八拍(A-AB-B-BC-C-CD-D-DA-A。)28BYJ48电气性能:1. 额定电压:12VDC另有电压:5V、6V、24V2.相数:43.减速比:1/64另有减速比:1/16、1/324.步距角:5.625/645.驱动方式:4相8拍6.直流电阻:2007%(25)7.空载牵入频率:600Hz8.空载牵出频率:1000Hz9.牵入转矩:34.3mN.m(120Hz)10.自定位转矩:34.3mN.m11.绝缘

10、电阻:10M(500V)12.绝缘介电强度:600VAC/1mA/1S13.绝缘等级:A14.温升:50K(120Hz)15.噪音:40dB(120Hz)16.重量:大约40g17.未注公差按:GB1804-m18.转向:CCW2 .2 步进电机驱动部分 2.2.1 ULN2003A芯片驱动ULN2003 的每一对达林顿都串联一个2.7K 的基极电阻,在5V 的工作电压下它能与TTL 和CMOS 电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。ULN2003 工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V 的电压,输出还可以在高负载电流并行运行。 ULN

11、2003 采用DIP16 或SOP16 塑料封装。 ULN2003A原件封装图ULN2003内部还集成了一个消线圈反电动势的二极管,可用来驱动继电器。它是双列16脚封装,NPN晶体管矩阵,最大驱动电压=50V,电流=500mA,输入电压=5V,适用于TTL COMS,由达林顿管组成驱动电路。 ULN是集成达林顿管IC,内部还集成了一个消线圈反电动势的二极管,它的输出端允许通过电流为200mA,饱和压降VCE 约1V左右,耐压BVCEO 约为36V。用户输出口的外接负载可根据以上参数估算。采用集电极开路输出,输出电流大,故可直接驱动继电器或固体继电器,也可直接驱动低压灯泡。通常单片机驱动ULN2

12、003时,上拉2K的电阻较为合适,同时,COM引脚应该悬空或接电源。ULN2003是一个非门电路,包含7个单元,单独每个单元驱动电流最大可达350mA,9脚可以悬空。比如1脚输入,16脚输出,你的负载接在VCC与16脚之间,不用9脚。ULN2003是大电流驱动阵列,多用于单片机、智能仪表、PLC、数字量输出卡等控制电路中。可直接驱动继电器等负载。输入5VTTL电平,输出可达500mA/50V。ULN2003是高耐压、大电流达林顿陈列,由七个硅NPN达林顿管组成。 该电路的特点如下: ULN2003的每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下它能与TTL和CMOS电路 直接相连

13、,可以直接处理原先需要标准逻辑缓冲器来处理的数据。 ULN2003芯片引脚图ULN2003 是高压大电流达林顿晶体管阵列系列产品,具有电流增益高、工作电压高、温度范围宽、带负载 能力强等特点,适应于各类要求高速大功率驱动的系统。 2.2.2 L290芯片驱动L298驱动模块,可以驱动一个步进电机,2个直流减速电机。作为混合式步进电机的驱动器,基于L297/298驱动芯片的组合是较为常见的一种。基于L297/298驱动器的混合式步进电机有三种不同的工作模式:即半步模式(HALF STEP)(见图2)、整步一相励磁模式(FULL STEP ONE PHASE ON)(见图3)、整步两相励磁模式(F

14、ULL STEP TWO PHASE ON)(见图4)。步进电机工作于半步模式时,其内部定子绕组的励磁是一相与两相相间的,此时步进电机每接受一个脉冲,只转过半个步距角。步进电机工作于半步模式时,步进电机所获得的转距较常规值偏小。步进电机工作于整步一相励磁模式时,其内部定子绕组的励磁在任何一个时刻都是一相的,此时步进电机每接受一个脉冲,转过一个步距角。步进电机工作于整步一相励磁模式时,步进电机获得常规转距。步进电机工作于整步两相励磁模式时,其内部定子绕组的励磁在任何一个时刻都是两相的,此时步进电机每接受一个脉冲,转过一个步距角。步进电机工作于整步两相励磁模式时,步进电机获得的转距相对前两种而言是

15、最大的。驱动芯片的选择: ULN2003 选择原因:L298为H桥驱动芯片。2003为极电极开路驱动芯片。L298可以为负载提供双向的电流。适合驱动2相或4相的步进电机,也可以驱动2台普通的有刷直流电机。驱动电流为2A。ULN 2003能驱动4相步进电机。如果用于驱动直流电机的话只能按一个方向转动。换向要改变电机的接法。本次课设为四相步进电机,可以选用ULN2003.2 .3 12864显示部分带中文字库的128X64 是一种具有4 位/8 位并行、2 线或3 线串行多种接口方式,内部含有国标一级、二级简体 中文字库的点阵图形液晶显示模块;其显示分辨率为12864, 内置8192 个16*16

16、 点汉字,和128 个16*8 点ASCII 字符 集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示84 行1616 点 阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶 显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。1.液晶显示模块是12864点阵的汉字图形型液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16X16点阵)、128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM)。可与CPU直接接口,提供两种界面来连

17、接微处理机:8-位并行及串行两种连接方式。具有多种功能:光标显示、画面移位、睡眠模式等。2.外观尺寸:937012.5mm 3.视域尺寸:7339mm第3章 步进电机细分控制方案3 .1步进电机细分控制原理步进电机控制已经蕴含了细分的原理。电机内部磁场每旋转一个圆周, 步进电机前进一整个步距角。若四相步进电机按ABCDA 的顺序轮流通电, 即整步工作, 磁场分四拍旋转, 每次电流换向, 步进电机将前进整步距角的1/4。而按AABBBCCCDDDAA 的顺序轮流通电, 即半步工作, 每次电流换向, 步进电机将前进整步距角的1/8。但是, 如果半步工作状态下每拍前进的角度超过控制精度要求, 则需要

18、对步距角进行更进一步的细分。我们知道, 电磁力的大小跟绕组通电电流的大小是相关的。当通电相的电流不马上到达峰值, 而断电相的电流也不立即降为零时, 电机内部磁场为上两相电流共同合成, 而产生的磁场合力, 会使转子有一个新的平衡位置, 这个新的平衡位置在原步距角的范围内。也就是说, 如果绕组电流的波形不再是一个近似方波, 而是分成N 个阶梯的近似阶梯波, 则电流每升或者降一个阶梯时, 转子转动一小步。当转子按照这个规律转过N 小步时, 实际相当于它转过一个步距角。这种将一个步距角分成若干小步的驱动方法, 称为细分驱动。3 .2设计方案步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。电机

19、的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。本次课程设计所设计的步进电机的控制系统可通过键盘设定转速和方向,并能显示转速。3 .2.1 设计方案1和方案2方案一:采用ARM7的脉宽调制器PWM产生脉冲对步进电机进行控制。第一种方案中PWM技术是采用脉宽调制技术,即占空比不同的方波电压产生不同的平均电流使步进电机转动,通过调节占空比即可调节电机转速。精确,简单。器件:四相步进电机,ARM最小系统,12864显示器,ULN2003达林顿集成驱动芯片。方案二:利用定时器定时中断进行步进电机的控制。第二种方案中采用定时器的方式,

20、只需要几条简单的指令就可以产生具有一定频率和数目的脉冲信号,而且在整个脉冲产生过程中,CPU 可用来处理其他工作,大大提高了系统的实时处理能力。LPC2131具有2个32位可编程定时/器,均具有4路捕获4路比较匹配并输出电路,定时器对外设时钟(PCLK)周期进行计数,根据4个匹配寄存器的设定,可设置为匹配时产生中断或执行其他动作。他还包含4个捕获输入,用于在输入信号发生跳变时捕获定时器的当前值,并可选择产生中断。3 .2.2确定设计方案方案选择结果(第一种)常用计算机数字处理技术和数模转换技术,对步进电动机各相绕组电流进行脉宽调制(PWM)控制,获得按一定规律改变其幅值和方向的绕组电流,可利用

21、ARM的PwM功能产生变占空比信号,实现步进电动机细分控制,这种办法可以实现较准确的位置控制,省去了传统细分电路中的数模转换模块以及电流检测控制模块.第4章 硬件电路设计4 .1 ARM最小系统总电路图4 .2 电机及其驱动部分4 .3 12864显示部分4 .4 按键控制部分第5章 软件设计5.1软件实现方框图系统软件采用C语言编程,程序详情请参见附录。程序的流程图如下: 开始IO口配置设置U0LCR的最高位为1,设置U0DLL和U0DLM即波特率的设置。步进电机进入最近一次设定的模式(初始时为模式0)是否有按键按下否进入模式1:显示单四拍A-B-C-D步距角1.8度是KEY1按 下?是进入

22、模式2:显示双四拍AB-BC-CD-DA步距角0.9度KEY2按 下?否是进入模式3:显示单双八拍A-AB-B-BC-C-CD-D-DA,步距角0.45度KEY3按 下?否 是KEY4按 下?否进入模式4:显示单机反转, 是 否停止KEY5按 下? 是 否 5.2编程 程序见附录1第6章 总结卢祖起的总结:两周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。学会了合作,学会了宽容,学会了理解,也学会了做人与处世,在设计的过程中培养出了我们的团队精

23、神,同学们共同协作,解决了很多个人无法解决的题目;在今后的学习过程中我们会更加努力和团结。这次课程设计我们选的题目是基于ARM的步进电机细分驱动控制设计。而我主要是负责硬件设备的设计和焊接。刚拿到这个题目时,我们小组的每一个成员都是一头雾水,无从下手。对于步进电机和液晶显示屏的相关知识也比较欠缺。于是我们首先决定从步进电机入手,查找各种有关步进电机驱动控制的资料和有关程序,确定硬件电路的设计,然后根据电路图所需要的确定元器件。确定好电路图后,我按照电路图焊接了板子,并且由同组队员设计了基本的对电机进行正反转控制的程序。然后我们在此基础上,加进去了对电机运行方式的控制程序,实现了基本的设计要求。

24、最后,我们查阅了大量有关液晶显示屏的资料,通过几天在实验室的程序调试,终于完成了在液晶显示屏上显示电机控制时的相关信息。通过这次为期两周的课程设计,在不断的失败和努力中,锻炼了我们的动手能力,培养了团队协作及永不放弃、不屈不挠的精神。并且使我们对ARM的知识得到了进一步的提高,同时也补充了我们对电机控制的相关知识。总之,无论在这过程中学到的知识是多是少,关键在于态度。说实话,起初自己对于课题很是有把握,以至于觉得很简单。但是在做的过程中我发觉自己错了。一件看起来很简单的事情其实也足以磨炼一个人的心志。看着别人一个个都快做好了,自己很着急,就想草草做完了事。谁知越急躁就是越达不到想要的效果。等到

25、静下心来,和其他同伴商量后才又回到正常状态,最后终于实现了效果。尽管不是很完美,但是我却觉得很满意。个人能力很重要,但是团队的合作才是力量的源泉。张凯龙的总结:本次的ARM课程设计结束了,但是对于知识的学习也仅仅才是个开始,因为从这次的课设中也学到了很多的东西,不仅仅是干好一件事,更应该是找到一种干好某事的方法。在设计开始后我们首先是对于每个人的分工做了详细的规划,这样可以井井有条地去做,每个人都可以很好地利用时间来做好事情。我的任务是资料的搜集。在拿到任务后,我先是查找了有关的课程设计,查找步进电机的细分知识,具体为步进电机的细分,怎样进行细分,细分的拍数,步距角的计算,步进电机的选择,驱动

26、芯片的选择。对于本次的课设要求,我们需要设置几个功能键等,了解到相关的硬件需求后,对每一个硬件的功能及其相关的系数做一了解,比如这次我们的课设中使用的驱动芯片有L298,ULN2003,可供选择,这就要求我们知道每一个芯片的功能及其优缺点,再使用到课设中,对于显示部分我们的选择是12864显示屏,这个在做显示部分可以使用串行传输,也可以使用并口传输,怎样简单并能节约资源就是我们要学习并掌握的。实习期间的调试给我的记忆最深,因为我可以说是对ARM很生疏的,所以学起来就比较的困难,更别说是实际的操作了,但是在实践中学习,并且学习别人的方法,在学习中找自己的缺点就比较容易了,错了就是错了,就得改。并

27、且要及时的总结经验教训,这才是最为重要的。避免以后犯错才是我们学习的重中之重。 结束之时也得感谢我们组其他成员,他们认真的风格是我工作、学习中的榜样;同学的帮助和他们不拘一格的思路给予我无尽的启迪;这次课程设计的每个细节和每个步骤,都离不开团队的力量。正是由于成员的努力,我们才能完成此次设计。同时感谢对我们帮助的同学和老师,谢谢你们对我们的帮助和支持。郭亚楠的总结:通过这次ARM课程设计,我从一开始对系统的不太熟悉,到能开发一个简单的系统,在这整个过程中我学到了很多东西,掌握了一些常用的开发技能,也发现了大量的问题,有些在设计过程中已经解决,有些还有待今后慢慢学习。只要学习就会有更多的问题,有

28、更多的难点,但也会有更多的收获。 最后,在这次设计中,感谢李老师和杨老师对我们的细心指导,感谢同学们的帮助,感谢我的父母对我的无微培养,在此表示衷心的感谢!衡海龙的总结:此次的ARM课程设计持续两周的时间,在这短暂的时间里,经过老师的指导,使得自己对ARM的应用更加熟练和更加深入的了解,学习了不少关于自己专业方面的知识。同时,将自己的的理论知识和实践结合起来对ARM控制有了更深的理解,同时也成功完成了设计。我们的课题是基于ARM的步进电机细分驱动控制设计,分小组进行,组员分别为:张凯龙、卢祖起、衡海龙、郭亚楠。分别负责硬件设计调试,软件程序设计调试,材料搜集和整理,本次实习主要任务是过ARM控

29、制驱动步进电机完成单四拍、双四拍、八拍的转动控制,同时还要实现转速、角度、方向在TH12864LCD显示屏上的显示,对于步进电机的的驱动通过ULN2003A芯片驱动。通过这次课程设计其次,使我更加清楚地认识了团队合作的重要性,所有设计环节都脱离不了集体的力量,遇到问题和小组成员之间相互讨论交流,这样,我们组员可以尽可能的统一思想和确定正确的设计方案,这样就不会使在做的过程中没有方向,并且这样也是为了保证我们最终设计的正确性。从讨论不仅是一些思想设计方向的问题,如一些元器件的选择,是选择ULN2003A还是选择L289作为步进电机的驱动芯片,是选择采用外部脉冲时序控制还是采用ARM自带的定时器产

30、生PWM调制波来驱动芯片等等,这些位的解决都为我们最后设计的成功不可缺少的组成部分,在设计的过程中少走弯路,避免的了一些不必要的错误。 总之,这次课程设计对我真的很有好处,给我弥补了很多欠缺的知识,像步进电机方面和对ARM有了更加深入的理解与设计操作。同时,使我认识到不同的学习方法和实践的重要性。在今后的学习过程中,要更加努力将自己的所学的专业知识应用到以后的生产实践中,要更加注重自己的操作能力和实践能力,多多与同学和老师交流,相信定能在专业方面有所掌握,有所专攻。第7章 调试及实物照片:调试现场实物照片参考文献:【1】周立功,ARM嵌入式系统基础教程【M】北京航空航天大学出版社,2008.9

31、【2】周明安,朱光忠,步进电机驱动技术发展及现状【J】机电工程技术,2005【3】许大中、贺益康,电机控制【M】杭州:浙江大学出版社,2002【4】周立功、陈明计、陈渝,ARM嵌入式Linux系统构建与驱动开发范例【M】: 北京航空航天大学出版社,2006致谢值此论文完成之际,我要衷心的感谢给予我关心和帮助的所有师长,同学和朋友们。而且,我要特别感谢此次课程设计的李红岩老师,在我们小组进行电路硬件和软件设计的时候悉心的指导和无微不至的关怀给予了我们很大的帮助,是我受益匪浅。他渊博的学识和平易近人的风范、严谨的治学态度和以身作则的高贵品质,不断激励我们奋进,在这里我们小组全体学生在这表示诚挚的谢

32、意!最后,感谢我的母校西安科技大学电气与控制工程学院,希望她能越办越强大,培养出更多的优秀人才。 附录1 程序/* 文 件 名:main.c* 功 能:LED显示控制。* 通过GPIO控制步进电机* 说 明:将跳线JP14和JP19全部短接。 */#include config.h#define MOTOA 110 / P0.10 #define MOTOB 111/ P0.11 #define MOTOC 112/ P0.12 #define MOTOD 113/ P0.13 #define key1 116 / A-B-C-D#define key2 117 / AB-BC-CD-DA-A

33、B#define key3 118 / A-AB-B-BC-C-CD-D-DA-A#define key4 119 /反转#define key5 120 /停止#define KEYCON0x001f0000 / LED控制字#define MOTOCON0x00003c00 / MOTO控制字#define GPIOSET(PIN) IO0SET = PIN / 方便修改置位端口#define GPIOCLR(PIN)IO0CLR = PIN / 方便修改清位端口#define RS 19 /P0.9#define SID 16 /P0.6#define E 14 /P0.4#define

34、 PSB 12 /P0.2并行或串行,选择低电平串行模式#define RST 10; dly-) for(i=0; i5000; i+); /* 名 称:MOTO_Mode1()* 功 能:单四拍程序* 入口参数:uint8 i延时参数,值越大,延时越久* 出口参数:无*/void MOTO_Mode1(uint8 i) / A-B-C-Dinitinal(); while(IO0PIN&key2)&(IO0PIN&key3)&(IO0PIN&key4)&(IO0PIN&key5)!=0) lcd_mesg(IC_DAT1); /显示汉字界面1 /* A */ GPIOSET(MOTOA);

35、 DelayNS(i); GPIOCLR(MOTOA); /* B */ GPIOSET(MOTOB); DelayNS(i); GPIOCLR(MOTOB); /* C */ GPIOSET(MOTOC); DelayNS(i); GPIOCLR(MOTOC); /* D */ GPIOSET(MOTOD); DelayNS(i); GPIOCLR(MOTOD); void MOTO_Mode10(uint8 i) / A-B-C-Dinitinal(); while(IO0PIN&key1)&(IO0PIN&key2)&(IO0PIN&key3)&(IO0PIN&key5)!=0) lcd_mesg(IC_DAT4); /* D */ GPIOSET(MOTOD);

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号