1、 嵌入式原理与应用嵌入式原理与应用课程设计报告课程设计报告 PWMPWM- -高速高速 GPIOGPIO 口延时方式口延时方式驱动驱动直流电机的转动与停转直流电机的转动与停转 学学 院院: : 电气信息学院电气信息学院 专专 业:业: 电气工程及其自动化电气工程及其自动化 日日 期:期: 20122012 年年 1212 月月 2626 日日 目录目录 一、设计任务与要求 2 二、设计依据原则 3 2.1 GPIO 概况 . 3 2.2 本设计使用的高速 GPIO 控制寄存器 . 3 2.3 GPIO 端口寄存器简介 . 3 2.4 数码管简介 . 4 三、硬件系统设计 6 3.1 设计电路图
2、 : 6 3.2 电板焊接图(焊接过程) . 7 3.3、使用器件明细表:. 8 四、软件设计. 8 4.1、实现程序: . 8 4.2、调试烧写过程: 8 4.3、课程设计检验测试与实现:. 9 五、心得体会. 9 六、参考文献. 9 七、附录 10 附录 1 . 10 一、设计任务与要求一、设计任务与要求 设计一个按键、 一个蜂鸣器和一个一位 7 段数码管灯指示控制直流电机控制 装置;包括 PWM-高速 GPIO 口延时方式驱动直流电机的转动与停转。 二、设计依据原则二、设计依据原则 2.1 GPIO 概况 LPC2103的GPIO有两种模式:高速GPIO和低速GPIO(本设计使用高速GP
3、IO) 。 高速GPIO的控制寄存器位于CPU的局部总线上,可进行高速的读写操作,而低速 GPIO的控制寄存器是挂在VPB总线上。P0口作为高速GPIO使用时,将不能在调试 环境下观察GPIO在VPB总线上的寄存器。 2.2 本设计使用的高速 GPIO 控制寄存器 GPIO控制寄存器(通过局部总 线访问的寄存器) 通用名称 描述 访问 复位 PORT0 地址 uiDly-) for(i = 0; i 50000; i+); void Timer1 (void) T1TCR = 0x02; /* 定时器 0 复位 */ T1PR = 0; /* 不设时钟分频 */ PWM1CON= 0x0C;
4、/* 使能 PWM 输出 */ T1MCR = 0x02; /* 设置 T0MR0 匹配后复位 T0TC */ T1MR0 = Fpclk / 2000; /* 设置 PWM 输出的周期 */ T1MR2 = (Fpclk / 2000) / 25)*13; /* 设置 PWM1.2 输出占空比为 50 */ /T1MR3 = (Fpclk / 2000) / 4) * 3; /* 设置 PWM1.3 输出占空比为 25 */ T1TCR = 0x01; /* 启动定时器 0 */ int main (void) PINSEL0 = PINSEL0 /* 设定为高速 GPIO 模式 */ PI
5、NSEL1 = (PINSEL1 /* 选择 MA T1.2 输出 */ FIO0DIR = LED0|LED1|LED2|LED3|LED4|LED5|LED6|LED7; /* 设置输出 */ FIO0SET = LED0|LED1|LED2|LED3|LED4|LED5|LED6|LED7; /* 设置输出高电平 */ while(1); /*显示 0*/ Timer1 (void);/*启动电机*/ FIO0CLR = LED0|LED1|LED2|LED3|LED4|LED5|LED7; FIO0SET = LED6; DelayNS (200); /*显示 1*/ FIO0CLR
6、= LED1|LED2; FIO0SET = LED0|LED3|LED4|LED5|LED6|LED7; DelayNS (200); /*显示 2*/ FIO0CLR =LED0| LED1|LED3|LED4|LED6; FIO0SET =LED2 |LED5; DelayNS (200); /*显示 3*/ FIO0CLR = LED0|LED1|LED2|LED3|LED6; FIO0SET = LED4|LED5; DelayNS (200); /*显示 4*/ FIO0CLR = LED1|LED2|LED5|LED6; FIO0SET = LED0|LED3|LED4; DelayNS (200); /*显示 5*/ FIO0CLR = LED0|LED2|LED3|LED5|LED6; FIO0SET = LED1|LED4; DelayNS (200); /*显示 6*/ PINSEL1 =