PWM低速GPIO口延时方式驱动直流电机的转动与停转.doc
《PWM低速GPIO口延时方式驱动直流电机的转动与停转.doc》由会员分享,可在线阅读,更多相关《PWM低速GPIO口延时方式驱动直流电机的转动与停转.doc(15页珍藏版)》请在沃文网上搜索。
1、课 题: PWM-低速GPIO口延时方式驱动直流电机的转动与停转专 业: 计算机科学与技术 班 级: 一 班 学 号: 20091641 姓名: 孟令楠 指导教师: 刘敦放设计日期: 2012-12-252012-12-29成 绩:目录1.设计任务及要求22设计依据原则32.1 LPC2103特点及其开发环境(一)LPC2102简介32.2 直流电动机调速原理32.3 七段数码管驱动原理4三硬件系统设计43.1硬件系统图设计43.2 直流电机PWM驱动原理图设计53.3 硬件电路连接图设计53.4使用器件明细表6四软件系统设计64.1 实现程序编写64.2 试验程序调试与烧写过程71、启动Co
2、deWarrior IDE72、建立工程73、建立汇编源程序文件84、设置工程版本类型85、设置目标86、设置汇编处理器型号87、设置ARM链接器88、启动AXD debugger调试器并对其进行配置89、对程序源进行汇编和链接910、利用AXD debugger调试器。94.3 课程设计结果验证9五心得体会9六参考文献11一.设计任务及要求设计由一个7段数码管灯指示控制直流电机的装置;包括PWM-低速GPIO口延时方式驱动直流电机的启动与停转,并根据设计要求在ARM嵌入式开发系统与ARM芯片上演示设计结果。二设计依据原则本设计需用ARM2103处理器,功率放大器,七段数码管,直流电机等元件,
3、这些元件均用跳线连接。各种元件的结构及驱动原理如下:2.1 LPC2103特点及其开发环境(一)LPC2102简介 LPC2103基于一个支持实 时仿真 的 ARMTTDMIS CPU,由于21 03非常小的尺寸和极低 的功耗,它们非 常适 用于控制系统 的应用。1 632位 ARM7TDMIS处理器,极小型 LQ,kB的片内静态 RAM,16kB的片内 Flash10位的 AD转换器含有 8个模拟输入,每1as; 6路输出的 PWM 单元; 多个串行接口包括 2个 UART,2个快速 I据长度功能的 SPI和 SSP。 多达 32个可承受 5V的通用 IO 口。 高达 13个边沿或电平有效的
4、外部中断管脚。2.2 直流电动机调速原理图1普通有刷永磁直流电机工作原理根据电动机的原理只要调节电动机的电枢平均电压,就可以改变电动机的转速,而目前采用的主流调速技术就是利用PWM调节电动机的转速,使用PWM控制直流电动机调速是通过调节输出方波的占空比来实现的,这里采用定频调宽法,即方波的周期不变,只改变方波宽度。当PWM输出占窄比为50时,电机处于静止状态;当占空比小于50时,电机反转;当占空比大于50时。对直流电机进行调速和控制,需经过直流电机的驱动电路,驱动电路实际上就是大功率的放大器。直流电机的驱动电路有线性放大驱动型和开关驱动型。线性驱动器就是一个线性功放,线性驱动器的工作原理如下:
5、图2线性功率驱动工作原理2.3 七段数码管驱动原理7段数码管其实是八段,有时小数点没有使用,所以常说7段,显示原理是这样的:数码管一共是10个引脚,其从上到右,到下到左,到中间,最后到小数点即以最上面一段为起点顺时针旋转,再到中间,最后是小数点分别标记为a 、b 、c 、d 、e 、f 、g、dp八段其中小数点位dp为最高位,a段为最低位,要想显示什么字符只需要使对应的段发光即可,共阳极的恰巧相反。数码管的示意图如下图所示。图3数码管驱动原理图三硬件系统设计3.1硬件系统图设计本系统需要由ARM处理器驱动两个元件分别是直流电机,数码管均由电源模块供电,本设计是使用主机USB供电,其整体硬件设计
6、系统图如图4所示。图4 硬件系统图3.2 直流电机PWM驱动原理图设计直流电动机PWM调速控制原理图如图5所示。其中,LPC2103是直流电机驱动芯片,工作电压为420V,最大输出电流为0.4 A。图5 直流电机PWM调速控制原理图3.3 硬件电路连接图设计硬件电路图设计主要是ARM对数码管,直流电机的驱动电路设计,一共用了ARM的06、8、20、24、39号共11个引脚,其中39号为电源线,20号为接地线,24号线为直流电机驱动信号接口,8号为蜂鸣器驱动接线口,06七个口则是用于数码管的驱动,由于数码管、直流电机都为有源元件则公用一根电源线,而LED灯则作为电源接通指示灯,灯亮则电源接通灯灭
7、则电源断开,电源由按键控制,其整体接线图如图6所示。图6 各元件接线图3.4使用器件明细表在设计出电路图后要进行元件选择,元件选择必须遵循的要求是:可靠,经济,适用,方便以后拓展升级。根据以上要求进行综合考虑选择了如表1元件即可满足设计要求。元件名称数量ARM2103处理器1程序烧录器1放大器1排针2LED灯1跳线若干数码管1表1 元件明细表四软件系统设计4.1 实现程序编写(1)本次设计用C语言底层开发语言进行主程序调用汇编子程序实现了用七段数码管显示数字9,6,1,0.当显示6时驱动直流电机,当显示0时电机停止转动。源代码:#include config.h#define LED0 10#
8、define LED1 11#define LED2 12#define LED3 13#define LED4 14#define LED5 15#define LED6 16uint32 count=0;void _irq Timer0ISR (void) count +;if(count%4)=1) /显示9 IO0CLR=LED0|LED1|LED2|LED3|LED5|LED6; IO0SET=LED4;if(count%4)=2) /显示6PINSEL1=PINSEL1&(0x038)|(0x028);IO0CLR=LED0|LED2|LED3|LED4|LED5|LED6;IO0
9、SET=LED1;if(count%4)=3) /显示1 IO0SET = LED0|LED3|LED4|LED5|LED6; IO0CLR = LED1|LED2;if(count%4)=0) /显示0 PINSEL1=PINSEL1&0xFFFFFCFF; IO0SET=LED6; IO0CLR=LED0|LED1|LED2|LED3|LED4|LED5;T0IR=0x0F; VICVectAddr=0x00; void Timer0Init(void)T0TCR=0x02; T0PR=0; T0MCR=0x649; T0MR0=Fpclk*5; T0MR1=Fpclk*7; T0MR2=
10、Fpclk*14; T0MR3=Fpclk*15; T0IR=0x0F; T0TCR=0x01;void Timer1Init(void)T1TCR=0x02;T1PR=0;PWM1CON=0x0C;T1MCR=0x02; T1MR0=Fpclk/2000;T1MR2=(Fpclk/2000)/2;T1MR3=(Fpclk/2000)/4)*3;T1TCR=0x01; int main (void)PINSEL0=PINSEL0&0xFFFFC000; PINSEL1=PINSEL1&(0x038)|(0x028);IO0DIR=LED0|LED1|LED2|LED3|LED4|LED5|LE
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PWM 低速 GPIO 延时 方式 驱动 直流电机 转动 停转