嵌入式课程设计文档格式.docx

上传人:b****7 文档编号:22729692 上传时间:2023-02-05 格式:DOCX 页数:11 大小:225.66KB
下载 相关 举报
嵌入式课程设计文档格式.docx_第1页
第1页 / 共11页
嵌入式课程设计文档格式.docx_第2页
第2页 / 共11页
嵌入式课程设计文档格式.docx_第3页
第3页 / 共11页
嵌入式课程设计文档格式.docx_第4页
第4页 / 共11页
嵌入式课程设计文档格式.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

嵌入式课程设计文档格式.docx

《嵌入式课程设计文档格式.docx》由会员分享,可在线阅读,更多相关《嵌入式课程设计文档格式.docx(11页珍藏版)》请在冰豆网上搜索。

嵌入式课程设计文档格式.docx

2.1GPIO概况2

2.2本设计使用的高速GPIO控制寄存器3

2.3GPIO端口寄存器简介3

2.4数码管简介4

三、硬件系统设计6

3.1设计电路图6

3.2使用器件明细表8

四、软件设计8

4.1、实现程序8

4.2、调试烧写过程8

4.3、课程设计检验测试与实现9

五、心得体会9

六、参考文献9

七、附录10

附录110

一、设计任务与要求

设计一个按键、一个蜂鸣器和一个一位7段数码管灯指示控制直流电机控制装置;

包括PWM-高速GPIO口延时方式驱动直流电机的转动与停转。

二、设计依据原则

2.1GPIO概况

LPC2103的GPIO有两种模式:

高速GPIO和低速GPIO(本设计使用高速GPIO)。

高速GPIO的控制寄存器位于CPU的局部总线上,可进行高速的读写操作,而低速GPIO的控制寄存器是挂在VPB总线上。

P0口作为高速GPIO使用时,将不能在调试环境下观察GPIO在VPB总线上的寄存器。

2.2本设计使用的高速GPIO控制寄存器

GPIO控制寄存器(通过局部总线访问的寄存器)通用名称

描述

访问

复位

PORT0

地址&

名称

FIODIR

高速GPIO端口方向控制寄存器。

该寄存器单独控制每个端口管脚的方向

R/W

0

0x3FFFC000

FIO0DIR

FIOSET

使用FIOMASK的高速端口输出设置寄存器。

该寄存器控制输出管脚的状态。

写1在相应的端口管脚产生高电平。

写0无效。

读该寄存器返回端口输出寄存器的当前内容

R/W

0x3FFFC018

FIO0SET

FIOCLR

使用FIOMASK的高速端口输出清零寄存器。

写1在相应的端口管脚产生低电平。

写0无效

WO

0x3FFFC01C

FIO0CLR

表1:

GPIO控制寄存器

2.3GPIO端口寄存器简介

、GPIO端口0输出置位寄存器IOSET

当引脚配置为GPIO输出时,该寄存器可以使引脚输出高电平。

向该寄存器写1,对应的引脚将会输出高电平;

向该寄存器写0,无效。

当引脚功能选择为GPIO输入或其它功能时,写IOSET无效。

读该寄存器将返回相应的值,此值由以前对寄存器IOSET和IOCLR(或IOPIN)的写操作决定,此值不会反映外部环境对引脚的影响。

、高速GPIO端口0输出置位字节和半字寄存器(FIO0SET)

高速GPIO除了一个32位的输出置位寄存器之外,还有4个8位字节输出置位寄存器和2个16位半字输出置位寄存器。

它们的功能同32位输出置位寄存器一样

、GPIO端口0方向寄存器IODIR

当引脚选择GPIO功能时,使用该寄存器可以控制引脚的方向。

只有当引脚选择GPIO功能时,IODIR的设置才有意义。

低速GPIO的方向控制寄存器为IO0DIR,高速GPIO的方向控制寄存器为FIO0DIR

④、GPIO输出清零寄存器IOCLR

当引脚配置为GPIO输出模式时,该寄存器可使引脚输出低电平。

向寄存器相应位写1,则对应的引脚将输出低电平并清零IOSET寄存器中相应的位;

写0,无效。

当引脚配置为GPIO输入或其它功能时,写IOCLR无效。

高速GPIO的输出清零寄存器为FIO0CLR

2.4数码管简介

7段数码管其实是八段,有时小数点没有使用,所以常说7段,显示原理是这样的:

数码管首先从上到右,到下到左,到中间,最后到小数点分别标记为abcdefgDP八段,其中小数点位DP为最高位,a段为最低位,要想显示什么字符只需要使对应的段发光即可。

一般的习惯是单片机的端口的最低位接a段,次低位接b段...最高位(如p0.7)接DP,显示码从高往低表示为为DPgfedcba如要显示“1”,只需要将b、c段点亮即可,若是共阴极,片选是低电平选中,某一段输出高电平点亮,即显示码为00000110即0x06,其他的依照该方法类推。

数码管的示意图如图1所示

图1数码管的示意图

2.使用PWM控制直流电动机调速是通过调节输出方波的占空比来实现的,这里采用定频调宽法,即方波的周期不变,只改变方波宽度。

当PWM输出占窄比为50%时,电机处于静止状态;

当占空比小于50%时,电机反转;

当占空比大于50%时,电机正转。

调节占空比就可以改变转速。

按键KEY1和KEY2用来控制占空比进行调速实验,按下KEY1时占空比提高10%,按下KEY2时占空比降低10%。

直流电动机PWM调速控制原理图如图2所示。

其中,LPC2103是直流电动机驱动芯片,工作电压为4~20V,最大输出电流为0.4A。

3、硬件系统设计 

3.1设计电路图:

3.3、使用器件明细表:

数量

直流电机

1

烧写器

蜂鸣器

按钮

数码管

发光二极管

导线

若干

表1使用器件明细表

四、软件设计

4.1、实现程序:

见附录1

4.2、调试烧写过程:

将计算机USB接口与EasyJTAG-H仿真器相连,然后再将EasyJTAG-H仿真器的JTAG接口连接到所焊的板子,选择匹配的CPU型号和flash,按运行启动烧写,添加完EasyJTAG-H驱动后,选择该驱动程序,关闭AXD界面,回到ADS中,在正常情况下,点击Debug仿真后,PC指针会指向中断向量表的起始处.

调试时若选择使用DebugInFLASH生成目标,并进行调试后(使用EasyJTAG-H仿真器),程序即烧写到片内Flash中。

将EasyJTAG-H和电源断开,等待五秒,重新上电,程序将脱机运行,看到LED显示和直流电机启停。

使用RelInFlash生成目标时,编译连接生成的目标代码会将芯片加密。

此时不能再进行调试,除非使用ISP进行全片擦除,否则是不能再进行调试的。

4.3、课程设计检验测试与实现:

功能实现,使用PWM-高速GPIO口延时方式驱动直流电机的转动与停转。

并结合数码管显示,电机循环启停,数码管循环显示从“0”到“9”,“0”时电机启动,“6”时停止。

五、心得体会

《嵌入式系统原理》是一门实践性较强的课程,为了做好此课程设计,必须在掌握理论知识的同时,强化实践,一个人的力量是有限的,要学会吸取别人的经验,提升自己的能力,在程序编写上需要更强的耐心,分析错误,解决问题。

在这个过程中,我们能感受到缺乏知识的失落,成功的兴奋,体会到此设计的重要意义!

同时,在设计过程中遇到了许多的困难和障碍,特别感谢刘敦放老师的谆谆教导,细心引领,对我们无私的指导和帮助,给我们从毫无头绪中的杂乱中理出设计的主干,再次表示衷心的感谢。

六、参考文献

1)《嵌入式系统原理与应用技术》北京航空航天大学出版社教材袁智勇著

2)《EasyARM2103教材》广州周立功单片机发展有限公司编

3)直流电机dynamo-0程序指导教师刘敦放

七、附录

附录1

#include"

config.h"

#defineLED01<

<

0

#defineLED11<

1

#defineLED21<

2

#defineLED31<

3

#defineLED41<

4

#defineLED51<

5

#defineLED61<

6

#defineLED71<

7

voidDelayNS(uint32uiDly)

{

uint32i;

for(;

uiDly>

0;

uiDly--)

for(i=0;

i<

50000;

i++);

}

voidTimer1(void)

{

T1TCR=0x02;

/*定时器0复位*/

T1PR=0;

/*不设时钟分频*/

PWM1CON=0x0C;

/*使能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*/

}

intmain(void)

PINSEL0=PINSEL0&

0x0000/*选择P0.0~P0.6的GPIO功能*/

SCS=0x01;

/*设定为高速GPIO模式*/

PINSEL1=(PINSEL1&

(~(0x03<

6)))|(0x02<

6);

/*选择MAT1.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=LED1|LED2;

FIO0SET=LED0||LED3|LED4|LED5|LED6|LED7;

/*显示2*/

FIO0CLR=LED0|LED1|LED3|LED4|LED6;

FIO0SET=LED2|LED5;

/*显示3*/

FIO0CLR=LED0|LED1|LED2|LED3|LED6;

FIO0SET=LED4|LED5;

/*显示4*/

FIO0CLR=LED1|LED2|LED5|LED6;

FIO0SET=LED0|LED3|LED4;

/*显示5*/

FIO0CLR=LED0|LED2|LED3|LED5|LED6;

;

FIO0SET=LED1|LED4;

/*显示6*/

PINSEL1=(PINSEL1&

(~(0x00<

6)))|(0x00<

/*停止电机*/

FIO0CLR=LED0|LED2|LED3|LED4|LED5|LED6;

FIO0SET=LED1;

/*显示7*/

FIO0CLR=LED0|LED1|LED2;

FIO0SET=LED3|LED4|LED5|LED6;

/*显示8*/

FIO0CLR=LED0|LED1|LED2|LED3|LED4|LED5;

/*显示9*/

FIO0CLR=LED0|LED1|LED2|LED3|LED5|LED6;

FIO0SET=LED4;

}/*当显示0时,同时电机转动,显示6时,电机停止,循环启停*/

return0;

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

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1