文档库 最新最全的文档下载
当前位置:文档库 › 嵌入式系统课程设计报告

嵌入式系统课程设计报告

嵌入式系统课程设计报告
嵌入式系统课程设计报告

嵌入式系统课程设计报告

课程设计报告

俄罗斯方块游戏

班级: vb

风格

姓名: 发的根本

教师评语:

教师签名:

2013年9月

俄罗斯方块游戏课程设计题目

本次课程设计的主要内容是通过前8次小实验中完成的任务和实现的功能,综合前面的设计方法,利用学到的LCD接口控制、中断控制以及所学的I/O控制的知识等完成本次所选课程设计实验题目----俄罗斯方块游戏,俄罗斯方块游戏是在博创UP-NETARM3000实验平台上综合应用前序课程嵌入式课程实验

主要内容中的串口、键盘、LED接口、A/D、定时器中断、LCD接口及触摸屏驱动控制等模块设计而成,其整体设计包括四个不同层次:功能层、软件层、中间层、硬件层,实验中用到了图形库,并利用多任务嵌入式操作系统对多任务进行有效地调度。同时通过这次课设的体会应该总结到自己在实践中的不足和欠缺的知识,及时的补充和完善个人能力,争取学到更多的知识和实践技能。硬件: ARM嵌入式开发平台、用于 ARM7TDMI的JTAG 仿真器、PC机Pentium100 以上、示波器。

软件:

PC机操作系统win98、Win2000 或WinXP 、ARM SDT 2.51或ADS1.2集成开发环境、仿真器驱动程序、超级终端通讯程序。

采用的工具方法

1.第一次实验:俄罗斯方块游戏的需求分析与概要设计

2.第二、三次实验:相关功能模块的划分,及其设计

3.第四至第六次实验:编写各部分代码,与调试各个模块功能

进度安排 4.第七次实验:整体调试并修改BUG

5.第八、九次实验:添加新的功能例如:添加对应动作下的音效,调节游戏速度

1、武俊鹏、张国印、姚爱红、赵国冬,基于ARM的嵌入式系统

设计实验与实践教程,清华大学出版社2011

2、吴学智,基于ARM的嵌入式系统设计与开发,人民邮电出版社2007 参考资料

1. 题目

俄罗斯方块游戏

2. 系统简介

俄罗斯方块是一款风靡全球的电视游戏机和掌上游戏机游戏,最初由前苏联游戏制作人Alex Pajitnov制作的,无数人进入游戏编程的世界都是从编写俄罗斯方块游戏开始的,它能极大的检验一个人对开发语言、环境和基本数据结构知识的熟练程度,其设计过程涉及到如何使用图形库,如何利用多任务嵌入式操作系统对多任务进行有效地调度等内容。

本次课程设计要求开放一个简单的俄罗斯方块游戏,并达到以下基本要求: 【1】实验台上的小键盘的要求

(1)按“*”键重新开始游戏,随机产生方块并自动下落;

(2)按“/”键可以暂停游戏,再次按键开始游戏;

(3)用“8”键变换方块角度,用“4”实现左移,用“6”实现右移,用“5”实现方块加速下移;

【2】触摸屏上的功能要求

(1)按START键开始游戏,随机产生方块并自动下移。

(2)按PAUSE键可以暂停游戏,再次按键可以重新开始游戏。

(3)按T键可以转换方块角度。

(4)按L、R键实现向左移动和向右移动。

(5)按D键实现方块加速下移。

系统能够正确判断是否满行,并对已经填充满的行进行消行和计分。

以上是基本要求,我们在实现了以上的基本要求后,我们又增加了一些新的功能,首先,我们在游戏中加入了音乐,当你重新开始游戏时、或者游戏得分时、方块下落时都有不同的音乐出现,增加了趣味性。其次,我们设置了不同的游戏级别(级别通过速度来表示),当你觉得太难或者太简单时,都可以根据你的需要通过小键盘上的按键(+、,)来调节游戏难度,使更人性化。

3. 系统设计

3.1体系结构设计

游戏设计的体系结构应分为4个不同的层次:硬件层、功能层、软件层、中间层。整个设计需要完成在不同的层次上完成不同的设计要求。

硬件层:选择博创UP-NETARM3000实验平台。

功能层:在这一层上要实现俄罗斯方块游戏的应用代码、算法实现等,我们组选择了博创UP-NETARM3000的硬件实验平台,那么主要工作就主要集中在这一层次上,因为其他的层次已经由硬件平台的提供商基本实现了。

软件层:提供用户图形几口、实现多任务调度管理、移植一个RTOS(实时操作系统),本设计是基于uC/OS这一嵌入式实时操作系统实现的。

中间层:硬件抽象层和板级支持包,这一般由硬件平台提供商实现。如果选择从头设计一个俄罗斯方块游戏,自己去实现硬件体系结构,还是需要考虑这一部分的,但我们组的设计不需要这一部分。

- 1 -

俄罗斯方块游戏设计

图形用户界面多任务管理

实时操作系统

BSP/HAL板级支持包/硬件抽象包

GPIOD/A

ARMROMA/D处理器

RAMI/O

人机交互界面

图3.1 体系结构图

1) 整个游戏界面的设计和控制:设计一个左边是带有框格的游戏界面。右边为控制和

显示的界面,控制自然是绘制按键图案通过触屏控制来实现。显示的内容有START、

PAUSE、SCORE、LEVEL、L、R、T、D。

2) 方块的移动:通过定时器1,改变方块左右移动的地址来实现。 3) 方块的变形:可通过运用三维数组储存7个基本方块形状,采用线性代数转置的思路改变数组的值并设定一个缓冲区储存变形数组,从而达到变形的效果。 4) 方块的碰边处理:可设定一个二维数组储存整个游戏界面的最新状态,有方块为1,

没有则为0,并在游戏界面周围填入1,通过方块地址和数组位置的转换判定

数组中

的值,为0说明可走,为1则不能通过,从而实现碰边处理。

5) 方块的嵌套:与碰边原理相似,可将之前停止在界面上的方块位置对应数组

中的值

赋1,再判断当前方块每一列的最后一行下是否有方块,实现方块嵌套。 6)

方块的随机出现:当方块到达最后一行或嵌套成功后停止,然后将出现下一个方

块,

可通过定时器取出末尾三位实现随机性。并在右边显示下一个方块的形状。 7) 消行处理:可通过处理界面的数组判断某一行是否都为1,若为1就执行将上一行赋给下一行,并将第一行赋为0。

8) 分数及等级的计算:当方块到达最后一行或嵌套成功后停止分数加1分,当

消一行

成功加1,当分数超过5分时等级加1。

3.2功能层模块

根据需求分析的结果,以及针对在需求分析中总结出来的具体要求,对整个功

能层做出的进一步划分,如图3.2所示:

- 2 -

俄罗斯方块游

戏设计

游戏界面方块处理消息循环绘制

绘制API随机触摸方块接口调动动态键盘产生屏消自动绘制静态刷新消息新方

息落下框架块

消行图3.2 功能层模块划分碰撞与计因此我们可以将俄罗斯方块设计分为3个部分:游戏界面绘制、消息循环和方块处理。检测分

3.3绘图API数据结构

首先,进行游戏界面的绘制,在uC/OS-II系统环境下,绘图必须通过使用绘图设备上下文(DC)来实现。绘图设备上下文(DC)中包括了与绘图相关的信息,比如画笔宽度、绘图的原点等。这样在多任务的系统中,不同的任务通过不同的绘图设备上下文(DC)绘图才不会相互影响。同时要使μC/OS,II内核能够正常工作,处理器必须满足:处理器的C编译器能产生可重入代码,在程序中可以打开或者关闭中断,处理器支持中断,并且能产生定时中断,处理器能够容纳一定量数据的硬件堆栈以及处理器有将堆栈指针和其他CPU寄存器存储和读出到堆栈(或内存)的指令。在移植μC/OS,II内核时,只需修改OS_CPU.H、OS_CPU_C.C、OS_CPU_A.ASM这三个文件的内容。μC/OS,II的所有系统服务均有内核提供,内核将应用系统和底层硬件结合成一个完整的实时系统。μC/OS,II提供的服务有:任务调度和管理,时间管理,内存管理及任务间的通信与同步。

绘图设备上下文(DC)中包括了与绘图有关的相关信息,比如,画笔的宽度、绘图的原点等。这样早多任务的系统中,不同任务通过不同的绘图设备上下文(DC)绘图才不会相互影响。绘图设备上下文(DC)的结构定义如下:

typedef struct{

int drawPointx;

int DrawPointy; //绘图所使用的坐标点

int PenWidth; //画笔宽度

U32 PenMode; //画笔模式

COLORREF PenColor; //画笔颜色

int DrawOrgx; //绘图的坐标原点位置

int DrawOrgy;

int WndOrgx; //绘图的窗口坐标位置

int WndOrgy;

int DrawRangex; //绘图的区域范围

int DrawRangey;

- 3 -

structRECT DrawRect; //绘图的有效范围

U8 bUpdateBuffer; //是否更新后台缓冲区及显示

U32 Fontcolor; //字符的颜色

}DC,*PDC;

遵照国际通用流行的俄罗斯方块游戏设计,我们把方块设计成7种(方形、长条形、7形、反7形、Z形、反Z形、T形)如下:

3.4消息循环机制

通常在多任务操作系统中,人物之间的通信是通过发送消息来实现的。消息队列是操作系统uC-OS的一种通信机制,他可以是一个任务或者中断服务程序向另一个任务发送指针定义的变量。程序中可以用OSCreateMessage()函数为某个控件创建消息,用SenMessage()函数将消息发送到消息队列中,用WaitMessage()函数等待消息,用DeleteMessage()函数删除消息。

消息的数据结构定义如下:

typedef struct{

POS_Ctrl pOSCtrl;

U32 Message;

U32WParam;

U32LParam;

}OSMSG,*POSMSG;

3.5方块处理模块

(1)通过仔细地规划屏幕,规划出一个20行10列的游戏区域,每个小方块用10X10的像素来构成。

int BoardArray[10][20]; //定义一个10x20的游戏区域 (2)标准的俄罗斯方块共有7种基本方块及其变换体有19种形式,每个形状划分为4种角度且有四个小方块组成,每个小方块的坐标由(x,y)确定,小方块的坐标的表示是根据下面的方块形状图中的方块定位点来确定的,即以方块定位为原点建立坐标系,以此来表示每个形状,所以数组定义如下:

int BlockInfo[7][4][4][2]=

{

{

{{0,0},{1,0},{0,1},{1,1}},

{{0,0},{1,0},{0,1},{1,1}},

{{0,0},{1,0},{0,1},{1,1}},

{{0,0},{1,0},{0,1},{1,1}}

}(正方形),

- 4 -

{

{{0,0},{-1,0},{1,0},{2,0}},

{{0,0},{0,-1},{0,1},{0,2}},

{{0,0},{-1,0},{1,0},{2,0}},

{{0,0},{0,-1},{0,1},{0,2}}

}(长方形)

...... };

这里只给出正方形的和长方形的,具体见下图3.3方块形状图。

图3.3 方块形状图

(3)判断方块碰撞:先把背景比喻成大盒子,前面在给大盒子(背景)建模的时候,给大盒子的四周都围了1层1。

那我们可以这样来判断小盒子与大盒子的碰撞。小盒子的数组与其在大盒子数组中的对应位置的值相与,显然若与后的值为1,证明大盒子与小盒子在此处的值都为1,即表明在此处发生了碰撞。或者当小盒子的值大于大盒子的值时,表明了方块超过了大盒子边界,即表明在此处也发生了碰撞。而在最首先背景(大盒子)中都为0,只有边界层1。当小盒子降落到大盒子底部后,将小盒子的内容对应写入

大盒子数组中(即存储该方块信息到对应的数组中),这样大盒子(背景)就得以更新。换句话说,方块处理主要功能是不停更新方块位置。每次更新还需判断游戏是否暂停,是否结束,是否过关,方块是否碰到下界,如果暂停则延时等待释放暂停的键盘消息,如果游戏介绍则延时等待重新游戏的消息,如果碰到下界则方块不再下移同时判断是否有某行被填满,如果填满则清除,然后产生新的方块(用rand()产生随机数,从而产生与之对应随机方块)。 (4)方块消行加分:方块满一行自动消除,同时加一分,分数不设上限。 3.6程序流程图

经过系统设计,设计出程序流程图,如图3.4所示::

- 5 -

图3.4 程序流程图

4. 系统实现

4.1 程序任务处理流程

主任务,它主要来完成一些初始化工作,要初始化游戏界面,必须创建一个绘图用的DC,主任务通过DC绘制游戏界面调用API函数显示相应的文字。初始化工作完成后,主任务进入消息循环机制来等待来自键盘或触摸屏的消息,获得消息后发送到消息处理机制中。主任务创建方式及流程图如下:

创建方式:

void Main_Task(void*Id);

#define Main_Task_Prio

OSTaskCreate(Main_Task,(void*)0,(OS_STK*)&Main_Stack[STACKSIZE*8-1], Main_Task_Prio);

流程图:

- 6 -

定义消息循环机制

所需参数

创建绘图PDC

绘制游戏界面

进入消息循环机制

等待消息

根据触摸点位置做相应的处理:开判断触摸点位始、暂停、左移、触屏信息右移、快速下落、置调节游戏速度

判断消

息类型

根据键值作相应的的处理:开始、暂停、左移、右移、键盘信息判断键值快速

下落、调节游

戏速度

图4.1俄罗斯方块主任务流程图

1)方块自动下落任务,主要完成当前方块的动态显示,不停的更新方块的位置,另外还要判断系统的运行状态,方块是否发生碰撞等。自由下落任务的创建方式与流程图如下:

创建方式:

void AutoDrop_Task(void*Id);

#define AutoDrop_Task_Prio

OSTaskCreate(AutoDrop_Task,(void*)0,(OS_STK*)&AutoDrop_Task_Stack[ST ACKSIZE

-1],AutoDrop_Task_Prio);

2)键盘消息捕捉任务:在此任务中,除了可以捕捉键盘输入信息:方块的左、右移动,方块的快速下落,方块的变形,游戏的暂停、开始,游戏的重新启动;还可以试试调节方块下落速度:在此由慢到快分别设置了四种不同的方块下落速度,增加游戏的趣味性与挑战性。

void onKey(int nkey,int fnkey) {

switch(nkey)

{

case 0: //动态调节游戏中方块的下落速度

delay=1000;

return;

case 1:

delay=500;

return;

- 7 -

case 2:

delay=300;

return;

case 3:

delay=100;

return;

case 14:

Play("1.wav");

newGame(); // 游戏的重新启动Zlg7289_Reset();//zlg7289复位return;

case 15:

pause(); //暂停游戏,保存return;

case 8:

moveLeft(); // 方块的左移动return;

case 10:

moveRight(); //方块的向右移动return;

case 12:

drop(); // 当前方块快速落下Play("653.wav");

return;

case 9:

rotateClockwise(); //实现当前方块的变形

return;

default: //若无按键动作,跳出

return;

}

}

4.2 任务的实现

1)主任务:

void Main_Task(void*Id)

{

POSMSG pMsg; //定义消息指针

structPOINT Touch_Position,*pTouch_Position;

ButtonCtrl NewGame_Button,Pause_Button,Left_Button, Right_Button,Down_Button,Rotate_Button;

PButtonCtrl pNewGame_Button,pPause_Button,pLeft_Button, pRight_Button,pDown_Button,pRotate_Button;

//定义创建按钮和窗体的属性

Wnd MainDraw_Wnd,PieceDraw_Wnd,ScoreDraw_Wnd;

PWnd pMainDraw_Wnd,pPieceDraw_Wnd,pScoreDraw_Wnd;

char NewGame_Button_Caption_8[]="Start";

char MainDraw_Wnd_Caption_8[]="Main Draw";

- 8 -

char Score_Caption_8[]="Score";

U16 Score_Caption_16[10];

U16 NewGame_Button_Caption_16[10];

pTouch_Position =&Touch_Position;

pNewGame_Button_RECT =&NewGame_Button_RECT;

//把字符转化成Unicode字符

strChar2Unicode(NewGame_Button_Caption_16,NewGame_Button_Caption_8); strChar2Unicode(Score_Caption_16,Score_Caption_8);

//在指定的位置画图形,用坐标来定位

NewGame_Button_RECT.bottom=40;

NewGame_Button_RECT.left=180;

NewGame_Button_RECT.right=230;

NewGame_Button_RECT.top=10;

pNewGame_Button=CreateButton(NewGame_Button_ID,pNewGame_Button_RE CT, FONTSIZE_SMALL,CTRL_STYLE_3DDOWNFRAME,

NewGame_Button_Caption_16,NULL);//创建按钮

pMainDraw_Wnd=CreateWindow(

MainDraw_Wnd_ID,pMainDraw_Wnd_RECT,

FONTSIZE_SMALL,WND_STYLE_MODE,

MainDraw_Wnd_Caption_16,NULL);//创建窗体

DrawButton(pNewGame_Button);//在屏幕上划出创建好的按钮

DrawWindow(pMainDraw_Wnd);//在屏幕上划出创建好的窗体

pdc=CreateDC();//创建device context绘图

pdc->DrawRect=ScoreDraw_Wnd_RECT;

//在指定的位置输出文本

TextOut(pdc,190,60,Score_Caption_16,TRUE,FONTSIZE_SMALL); SetScoreText(pdc);

pdc->DrawRect=MainDraw_Wnd_RECT;

DrawMainFrame(pdc);

//消息循环

for(;;)

{

pMsg=WaitMessage(0);

switch(pMsg->Message)

{

case OSM_TOUCH_SCREEN: //触摸屏

Touch_Position.x=pMsg->WParam&0xffff;

Touch_Position.y=pMsg->WParam>>16;

if(IsInRect2(pNewGame_Button_RECT,pTouch_Position))

{

newGame();

}else if(IsInRect2(pPause_Button_RECT,pTouch_Position)) {

pause();

}else if(IsInRect2(pLeft_Button_RECT,pTouch_Position)) {

- 9 -

moveLeft();

}else if(IsInRect2(pRight_Button_RECT,pTouch_Position))

{

moveRight();

}else if(IsInRect2(pDown_Button_RECT,pTouch_Position))

{

drop();

}else if(IsInRect2(pRotate_Button_RECT,pTouch_Position))

{

rotateClockwise();

}

case OSM_KEY: //键盘

onKey(pMsg->WParam,pMsg->LParam);

break;

}

DeleteMessage(pMsg);

OSTimeDly(100);

}

DestroyDC(pdc);

}

2)绘制方块

设计了一个三维数组储存7个基本方块形状,通过数组里的数将方块绘制出来。 void Drawblock(U16 x,U16 y,U16 z) {

U16 i,j;

for(i=0;i<4;i++)

for(j=0;j<4;j++)

{

if(block[z][j][i]==1)

{ Set_Color (GUI_BLACK); //边框黑色

Draw_VLine(x+i*32+1, y+j*30+1, y+(j+1)*30-1);//竖线

Draw_VLine(x+(i+1)*32-1, y+j*30+1, y+(j+1)*30-1);

Draw_HLine(y+j*30+1, x+i*32+1, x+(i+1)*32-1); //横线

Draw_HLine(y+(j+1)*30-1, x+i*32+1, x+(i+1)*32-1);

Set_Color (GUI_BLUE); //填充蓝色

Fill_Rect(x+i*32+2, y+j*30+2,x+(i+1)*32-2,y+(j+1)*30-2);//填充}

}

}

3)擦除方块

通过将当前有方块的地方填充成白色达到擦除效果。

void Eraseblock(U16 x,U16 y,U16 z) {

- 10 -

U16 i,j;

for(i=0;i<4;i++)

for(j=0;j<4;j++)

{

if(block[z][j][i]==1)

{

Set_Color (GUI_WHITE); //填充白色

Fill_Rect(x+i*32+1, y+j*30+1,x+(i+1)*32-1,y+(j+1)*30-1);

}

}

}

4)随机生成一个方块

通过取出定时器1的后三位值产生随机值,为了避免取值时间几乎相同随机值相近的概率比较高,所以采用当前时刻取出的值与之前相加达到更加随机的效果。并且在右侧下一个中显示出来。

void Creatblock()

{

U16 i,j;

s=rTCNTO1&0x0007+s;//取随机值 &0x0007取后三位

for(i=0;i<4;i++)

for(j=0;j<4;j++)

{

if(block[ZZ][j][i]==1)

{

Set_Color (GUI_BLACK); //填充黑色

Fill_Rect(9*40+i*32+1, 40+j*30+1,9*40+(i+1)*32-1,40+(j+1)*30-1);

}

}

k=s&0x0007;

Drawblock(9*40,40,k);

Delay(50);

}

5)左移函数

当触屏界面的左移按键被按下后,方块首地址的列坐标将会减去32像素达到左移一格的效果。根据取出的最左列坐标判断方块是否到达游戏界面最左侧,若不是继续左移,若是则不再左移。右移、下降同理,下面不再赘述。

void Goleft()

{

U16 m,n,k;

k=getL(); m=k/10;n=k%10;

rTCON=(0<<8); //time1 stop

- 11 -

if(oldblock[(m*30+i*30+YY)/30][((n+1)*32+XX)/32-1]==1);

else

{

Eraseblock(XX,i*30+YY,ZZ); //擦除

XX=XX-32;//左移

Drawblock(XX,i*30+YY,ZZ);

}

rTCON=(1<<11)|(0<<9)|(1<<8);//time1 start

}

6)变形函数

利用转置的原理,达到方块变形的效果。先将当前数组的值赋给缓冲区,然后再将缓冲区转置变形后的值再赋给原来的数组。

void Changeblock(U16 z)

北京科技大学 嵌入式课程设计报告

《嵌入式控制系统》课程设计报告 学院 专业班级 姓名 学号 指导教师 _

目录 摘要 (4)

Abstract (4) 引言 (5) 带中断LED数码管驱动程序设计 (6) 1.设计内容 (6) 1.1 基本功能 (6) 1.2 扩展功能 (6) 1.3创新功能 (6) 2.实验设备 (6) 3.设计功能块说明 (6) 4.设计原理 (7) 4.1 LED发光原理 (7) 4.2 八位LED显示器 (8) 5. 实验步骤 (8) 5.1 驱动程序加载 (8) 5.2 添加控件 (8) 5.3基本功能的实现 (9) 5.4 使用指南 (10) 6. 实验结果 (10) 6.1 基本功能实现结果 (10) 6.2 LED数码管清零功能实现结果 (11) 6.3 中断计数功能实现结果 (12) 6.4 频率设置功能实现结果 (13) 7. 心得体会 (14) 附录 (16)

摘要 通过嵌入式控制系统课程的学习并结合本次课程设计,了解嵌入式系统的开发方法和流程,熟悉Intel XScale硬件平台及其应用处理机的使用方法,熟悉Windows CE嵌入式系统的基本原理、概念。能针对Intel XScale硬件平台、应用需求自行定制、优化WinCE操作系统,并独立编写可在Intel XScale嵌入式设备上运行的应用程序。 本课程设计主要实现了LED数码管的驱动程序,中断计数功能、LED显示清零功能、LED 数字显示频率设置的功能。 关键字:WINCE 中断数码管驱动 Abstract Learning Embedded Control Systems and combining the curriculum design can help us understand the Embedded Control Sy stems’ development methods and processes, and be familiar with Intel XScale Hardware platform and its usage. Know well the basic principles and concepts about WINCE. Design and optimize Windows Embedded Compact and compose Application software program that can operate on the Intel XScale Hardware platform. The main achievement of the curriculum design are drivers for LED, Interrupt Count, clean the results of the LED and set up the display frequency of the LED. Key words: WINCE Interrupt Digital Driving

基于STM32和uC_OS-II的多任务设计-嵌入式系统课程设计报告

基于STM32和uC_OS-II的多任务设计-嵌入式系统课程设 计报告 NORTH CHINA UNIVERSITY OF SCIENCE AND TECHNOLOGY 嵌入式系统课程设计报告 学生姓名: 学号: 学院: 专业班级: 指导教师: 同组成员: 2016年 12 月 26 日 嵌入式系统课程设计报告 一、课程设计目的 本课程设计是在《嵌入式系统原理与应用》课程的基础上,通过软件编程及仿真调试的实践,进一步掌握嵌入式系统的原理和应用方法,是毕业设计前的一 次重要实践,为今后从事嵌入式系统相关工作岗位打下良好的基础。 二、设计题目及要求 2.1 设计题目: 基于STM32和uC/OS-II的多任务设计 2.2 功能实现:

使用uC/OS-II的任务管理函数和STM32库函数控制相应的寄存器,完成一个多任务设计。整个设计共有4个任务,驱动一个LED指示灯闪烁、由3个LED指示灯组成的流水灯、驱动蜂鸣器和利用swd方式进行printf输出。 2.3 设计要求: 理解和熟练使用KEIL软件、STM32寄存器、STM32库函数和uC/OS-II任务管理函数,用KEIL软件完成编程和调试,下载到开发板中实现4个设定的任务,并完成课程设计报告。 四个任务分别为: (1)驱动1个LED指示灯闪烁、 (2)由3个LED指示灯组成流水灯 (3)驱动蜂鸣器发出响声。 (4)利用swd方式进行printf输出。 三、设计原理说明 3.1 硬件说明 本次课程设计主要使用的是STM32 神舟 IV 号开发板为基础进行课程设计的,本节将详细介绍神舟IV号开发板的各部分硬件原理与实现。 (1)开发板资源图 - 1 - 嵌入式系统课程设计报告

ARM课程设计报告

摘要 单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D 转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。 定时器是对外设时钟(PCLK)进行计数,根据4个匹配寄存器的设定,可以设置为匹配时产生中断或执行其他动作。它还包括4个捕获输入,用于在输入信号发生跳变时捕获定时器的当前值,并可选择产生中断。 关键字:单片机 LPC2106 GPIO 定时器timer 实时时钟外部中断Int 目录 第一章原理与总体方案 (4) 1.1单片机简介 (4) 1.2 LPC2106简介 (5) 1.3单片机的选择 (7) 1.4 LPC2106芯片的选择及设计原理 (8) 第二章硬件设计 (9) 2.1 LED显示电路 (9) 2.2电路图整体设计 (9) 第三章调试 (12) 3.1调试及处理 (12) 第四章测试与分析 (14)

4.1Proteus软件介绍 (14) 4.2仿真结果 (15) 第五章结束语 (16) 5.1结束语 (16) 第1章原理与总体方案 本章阐述了本课题研究的背景,表述了单片机的发展、功能以及LPC2114的简单介绍。阐述了单片机的选择原理以及LPC2106的设计原理。 1.1数字单片机简介 单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D 转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。 近年来,单片机以其体积小、价格廉、面向控制等独特优点,在各种工业控制、仪器仪表、设备、产品的自动化、智能化方面获得了广泛的应用。与此同时,单片机应用系统的可靠性成为人们越来越关注的重要课题。影响可靠性的因素是多方面的,如构成系统的元器件本身的可靠性、系统本身各部分之间的相互耦合因素等。其中系统的抗干扰性能是系统可靠性的重要指标。 单片机的另外一个名称就是嵌入式微控制器,原因在于它可以嵌入到任何微型或小型仪器或设备中。目前,把单片机嵌入式系统和Internet连接已是一种趋势。但是,Internet一向是一种采用肥服务器,瘦用户机的技术。这种技术在互联上存储及访问大量数据是合适的,但对于控制嵌入式器件就成了"杀鸡用牛刀"了。要实现嵌入式设备和Int ernet连接,就需要把传统的Internet理论和嵌入式设备的实践都颠倒过来。为了使复杂的或简单的嵌入式设备,例如单片机控制的机床、单片机控制的门锁,能切实可行地和Internet连接,就要求专门为嵌入式微控制器设备设计网络服务器,使嵌入式设备可以和Internet相连,并通过标准网络浏览器进行过程控制。

嵌入式课程设计

嵌入式课程设计 学院:计算机与通信工程学院专业:物联网工程班级:物联1501 姓名:王强学号:41501602 实验日期:2017年12月25日 实验名称: 嵌入式课程设计 实验目的: 以STC89开发板为硬件平台,开发温度采集、动态数码管显示、按键响应、与PC串口通讯的综合程序,实现以下功能: 1)PC上的串口调试助手通过串口给STC89开发板发送“GetTemp”命令。 2)STC89开发板从串口接收到“GetTemp”命令后启动温度传感器DS18B20的测温程序获取当前温度,测试完成时将所测得温度数据显示在动态数码管上。(动态数码管在温度获取之前应该显示“FFFFFFFF”,只有在获取温度后才显示温度值) 3)动态数码管显示出温度数据后,请通过按键触发STC89开发板通过串口回送步骤2所测的温度数据给PC上串口调试助手,同时恢复动态数码管显示为“FFFFFFFF”。为保证每个同学的实验都独立完成,要求回送的数据包含自己的学号,即如果你的学号是20150809,当前温度值是19.6摄氏度,那么在PC上的串口调试助手应该显示:20150809 : 19.6°C。硬件电路说明: 1)STC89处理器管脚和晶振电路

2)独立按键 独立按键一共5个,分别连接在单片机的P3.0到P3.4口。去抖动的方式,我们采用软件延时的方法。过程如下: 先设置IO口为高电平(一般上电默认就为高),读取IO口电平确认是否有按键按下,如有IO电平为低电平后,延时几个ms,再读取该IO电平,如果任然为低电平,说明对应按键按下,执行相应按键的程序。 3)DS18B20温度传感器部分 DS18B20内部的低温度系数振荡器是一个振荡频率随温度变化很小的振荡器,为计数器1提供一频率稳定的计数脉冲。 高温度系数振荡器是一个振荡频率对温度很敏感的振荡器,为计数器2提供一个频率随温度变化的计数脉冲。 初始时,温度寄存器被预置成-55℃,每当计数器1从预置数开始减计数到0时,温度寄存器中寄存的温度值就增加1℃,这个过程重复进行,直到计数器2计数到0时便停止。 初始时,计数器1预置的是与-55℃相对应的一个预置值。以后计数器1每一个循环的预置数都由斜率累加器提供。为了补偿振荡器温度特性的非线性性,斜率累加器提供的预置数也随温度相应变化。计数器1的预置数也就是在给定温度处使温度寄存器寄存值增加1℃计数器所需要的计数个数。 DS18B20内部的比较器以四舍五入的量化方式确定温度寄存器的最低有效位。在计数器2停止计数后,比较器将计数器1中的计数剩余值转换为温度值后与0.25℃进行比较,若低于0.25℃,温度寄存器的最低位就置0;若高于0.25℃,最低位就置1;若高于0.75℃时,温度寄存器的最低位就进位然后置0。这样,经过比较后所得的温度寄存器的值就是最终读

嵌入式课程设计报告

嵌入式课程设计报告设计题目:电子密码锁

、 摘要 随着科技和人们的生活水平的提高,实现防盗的问题也变得尤为突出,传统机械锁构造简单,电子锁的保密性高,使用灵活性好。根据需要设计运用W90P170开发板,制作一款电子密码锁,密码锁通过键盘输入密码,通过在LCD的文字和图片显示当前密码锁的状态。实现设置密码,密码验证,错误密码自锁、图片显示的功能。 目录

一、选题意义及系统功能 (3) 二、硬件设计及描述 (4) 三、软件设计及描述 (5) 四、程序代码 (6) 五、课程设计体会 (11) 六、运行结果 (12) 七、心得体会 (12) 八、参考文献 (13) 九、附录 (13) 一、选题意义及功能描述 1、选题意义 电子密码锁是通过密码输入来控制电路或是芯片工作,从而控制机械的开关闭合、开锁的电子产品。随着科技提高和人们生活水平的提高,对电子密码锁的需求增加。电子密码做较传统的机械锁安全性能更高。 特点如下: (1)保密性好,编程量大,随机开锁的成功率几乎为零。

(2)密码可变,用户可以随时改变密码,防止密码被盗,同时也可以避免人员的更替而使锁的密级下降。 (3)误码输入保护,输入密码多次错误是,系统进行自锁。 (4)无活动零件,不会磨损,寿命长。 (5)使用灵活性好,无需佩戴钥匙,操作简单。 2、功能描述 基本功能: (1)从键盘输入任意6位数字作为密码,将这六位数字经过USI总线存储到Flash芯片中,设置密码完成。 (2)从键盘输入密码,比较键盘输入的密码与Flash中存储的密码是否相同。 (3)如果密码正确,则LED灯点亮;如果密码不正确,则LED灯闪烁,而且如果连续三次输入密码错误则系统锁定,不允许再次输入密码。 扩展功能: (1)首先显示“请输入密码:”,显示密码锁背景图片1。 (2)如果密码正确则显示“密码正确”,显示成功进入系统的背景图片2。 (3)如果密码不正确则显示“密码不正确,请重新输入:” (4)如果连续三次输入密码错误则显示“对不起,您已经连续三次输入密码错误,系统锁定”,显示图片1。

嵌入式系统设计课设报告分析解析

福州大学 《嵌入式系统设计课设》 报告书 题目:基于28027的虚拟系统 姓名: 学号: 学院:电气工程与自动化学院 专业:电气工程与自动化 年级: 起讫日期: 指导教师:

目录 1、课程设计目的 (1) 2、课程设计题目和实现目标 (1) 3、设计方案 (1) 4、程序流程图 (1) 5、程序代码 (1) 6、调试总结 (1) 7、设计心得体会 (1) 8、参考文献 (1)

1、课程设计目的 《嵌入式系统设计课设》是与《嵌入式系统设计》课程相配套的实践教学环节。《嵌入式系统设计》是一门实践性很强的专业基础课,通过课程设计,达到进一步理解嵌入式芯片的硬件、软件和综合应用方面的知识,培养实践能力和综合应用能力,开拓学习积极性、主动性,学会灵活运用已经学过的知识,并能不断接受新的知识。培养大胆发明创造的设计理念,为今后就业打下良好的基础。 通过课程设计,掌握以下知识和技能: 1.嵌入式应用系统的总体方案的设计; 2.嵌入式应用系统的硬件设计; 3.嵌入式应用系统的软件程序设计; 4.嵌入式开发系统的应用和调试能力 2、课程设计题目和实现目标 课程设计题目:基于28027的虚拟系统 任务要求: A、利用28027的片上温度传感器,检测当前温度; B、通过PWM过零中断作为温度检测A/D的触发,在PWM中断时 完成温度采样和下一周期PWM占空比的修正;PWM频率为1K; C、利用按键作为温度给定;温度给定变化从10度到40度。 D、当检测温度超过给定时,PWM占空比增减小(减小幅度自己设 定);当检测温度小于给定时,PWM占空比增大(增大幅度自己 设定); E、把PWM输出接到捕获口,利用捕获口测量当前PWM的占空比; F、把E测量的PWM占空比通过串口通信发送给上位机; 3、设计方案-----介绍系统实现方案和系统原理图 ①系统实现方案: 任务A:利用ADC模块通道A5获取当前环境温度。 任务B:PWM过零触发ADC模块,在PWM中断服务函数中,将当前环境温度和按键设定温度进行比较,并按照任务D的要求修订PWM占空比。

ARM课程设计报告GPIO—流水灯

目录 一、设计目的 (3) 二、设计原理 1、GPIO—流水灯 (3) 2、SPI (7) 3、定时器 (10) 4、实时时钟 (12) 三、所用仪器 (18) 四、EasyARM2131开发套件功能介绍 (18) 五、设计内容:万年历-定时器-流水灯-SPI 1、功能描述 (21) 2、流程图 (22) 3、程序设计 (22) 六、心得体会 (28) 七、参考文献 (29)

一、设计目的 1、根据要求,复习巩固ARM的基础知识。 2、掌握ARM系统的设计方法,特别是熟悉模块化的设计思想。 3、熟练掌握ARM软件和2131开发板的使用。 4、提高综合运用所学的理论知识独立分析和解决问题的能力; 二、设计原理 1、GPIO—流水灯 (1)LPC2131具有多达47个通用I/O 口(GPIO,General Purpose I/O ports),分别为P0[31:0]、 P1[31:16],其中,P0.24未用,P0.31仅为输出口。由于口线与其它功能复用,因而需要进行相关的管脚连接模块(PINSEL0、PINSEL1、PINSEL2)选择连接GPIO,然后通过IODIR进行输入/输出属性设置后才能操作。 当管脚选择GPIO 功能时,有IOSET、IOCLR和IOPIN 3 个寄存器用于控制GPIO 的使用。IOSET 用于口线置位,而IOCLR 则用于口线清零,IOPIN 则反映当前IO口的状态,读回IOSET 则反映当前IO口设定状态。 (2)GPIO的特性和应用 特性: 单个位的方向控制; 单独控制输出的置位和清零; 所有I/O口在复位后默认为输入。 应用: 通用I/O口 驱动LED或其它指示器 控制片外器件 检测数字输入 (3)GPIO引脚描述 GPIO管脚描述见表4.1。 表4.1 GPIO 管脚描述

嵌入式程序设计课程设计

课程设计 课程名嵌入式软件开发技术 题目基于嵌入式Linux的温度监测系统的 设计与实现 专业计算机科学与技术(嵌入式系统方向)班级 13计算机嵌入式系统班 学号 学生姓名 2016年6月

摘要 温度是个很普遍而又非常重要的参数,在日常生活、工农业生产以及科研领域都有着广泛的应用。因此,研制能够准确地测量和记录这个参数值的系统具有十分重要的意义。 基于ARM的嵌入式温度监测系统是采用嵌入式Linux作为操作系统,针对以S5PV210为处理器的开发板设计的一个嵌入式温度监测系统。论文在分析了Linux设备驱动程序的基本工作原理基础上,讨论了开发中经常会碰到的中断处理、拥塞处理、I/O端口,并在此基础上实现了基于S5PV210嵌入式处理器的开、读、写、关外部RAM的字符设备驱动和网络驱动。结合高精度温度传感器DS18B20,实现温度的正确采集,并通过以太网络将数据上传给上位机客户端。 论文首先介绍了通信网络中各种设备特性、总线结构及传输技术,然后根据单片机与PC机之间的串行通信原理,用ubantu完成温度监测系统的软件设计与实现,为用户提供一个友好的人机界面,对监测系统进行控制并显示采集后的数据。本系统还通过多线程实现了多个客户端与服务器的通信。 关键词:S5PV210;嵌入式Linux操作系统;DS18B20;网络编程

Abstract Temperature is a very common and very important parameter, in daily life, industrial and agricultural production and scientific research fields have a wide range of applications. Therefore, it is very important to develop a system that can accurately measure and record the value of this parameter. The temperature monitoring system of base on the ARM is use of embedded Linux as the operating system for the processor to S5PV210 development board designed for an embedded temperature monitoring system. Based on the analysis of the basic working principle based on the Linux device drivers discussed development often encounter interrupt handling, congestion handling, I / O ports, and on this basis to achieve the embedded processor based on open S5PV210 reading, writing, characters off the external RAM device driver and network drives. Combined with precision temperature sensor DS18B20, to achieve the correct temperature acquisition, and upload the data via Ethernet to a PC client. At first,the paper introduces the characteristics of various devices in a communication network, the bus structure and transmission technology, and according to the principle of serial communication between SCM and PC, with ubantu complete temperature monitoring system software design and implementation, to provide users with a friendly man-machine interface, the monitoring system to control and display the data after collection. The system also enables communication via a plurality of multi-threaded client and the server. Key words:S5PV210; embedded Linux operating system; DS18B20; Network programming

嵌入式系统课程设计

嵌入式系统课程设计 学号:1070410014030 班级:通信10 姓名:刘豆

嵌入式系统在智能交通中的应用摘要:介绍了嵌入式系统及其操作系统,并将其系统和通用计算机系统作了比较,总结了嵌入式系统产品在ITS(Intelligent Traffic system ),智能交通系统应用中的工作稳定性高,环境适应能力强和设备独立性三个特点,且结合嵌入式产品在ITS中应用的这几个特点,探讨了嵌入式系统在智能交通系统中应用研究。最后,展望嵌入式系统在ITS(智能交通系统)中的广泛应用。 关键词:嵌入式系统;嵌入式操作系;ITS;数字信号 中图分类号: Application of Embedded System in ITS Abstract: This article mainly introduce embedded system and its operation system , the embedded system are compared with general computer system. And this article summarizes three characteristics about embedded systems’ production applied to ITS: the high working stabilities, the strong ability for environment and the independency of equipments .Combining with the application research of embedded systems in ITS。At last, the author prospects that embedded systems are used widely in ITS in the whole nation. Keywords; embedded system; embedded operational systems ; ITS ; digital signal 嵌入式系统如今在实际生活中有巨大应用,观察身边不难发现电子产品、智能家居等大多用嵌入式系统来实现。这篇论文举一个应用实例,即智能交通系统。一个智能交通系统(ITS)主要由交通信息采集、交通状况监视、交通控制、信息发布和通信5大子系统组成。各种信息都是ITS的运行基础,而以嵌入式为主的交通管理系统就像人体内的神经系统一样在ITS 中起至关重要的作用。嵌入式系统应用在测速雷达、(返回数字式速度值)运输车队遥控指挥系统、车辆导航系统等方面,在这些应用系统中能对交通数据进行获取、存储、管理、传输、分析和显示,以提供交通管理者或决策者对交通状况现状进行决策和研究。 1.嵌入式系统与嵌入式操作系统 1.1嵌入式系统 通俗来讲,嵌入式系统是带有操作系统的单片机系统;主要由嵌入式处理器、相关支撑硬件和嵌入式软件系统组。他的框架可分为5个部分:处理器、内存、输入/输出、操作系统与应用软件(如图1所示)。嵌入式软件包括与硬件相关的底层软件、操作系统、图形界面、通讯协议、数据库系统、标准化浏览器和应用软件等。总体看来,嵌入式系统具有便利灵活、性能价格比高、嵌入性强等特点,可以嵌入到现有任何信息家电和工业控制系统中。软件角度来看,嵌入式系统具有不可修改性,系统所需配置要求较低&系统专业性和实时性较强等特点。 1.2 嵌入式操作系统 对于目前发展迅速的信息产品来说,其最关键的核心技术就是嵌入式操作系统。嵌入式操作系统EOS(Embedded Operating System)是一种支持嵌入式系统应用的操作系统软件。嵌入式操作系统具有通用操作系统的基本特点,如能够有效管理越来越复杂的系统资源;能够把硬件虚拟化,使得开发人员从繁忙的驱动程序移植和维护中解脱出来;能够提供库函数、驱动程序、工具集以及应用程序;另外,嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固态化以及应用的专用性等方面具有较为突出的特点。

嵌入式系统原理及应用课程设计

. 嵌入式系统原理及应用课程设计报告 题目:电子时钟的设计与实现 班级:文专电0931 姓名:杨阳 学号:200990607145 试验台号:10 指导老师:邱秀芹 程序成绩: 报告成绩: 总成绩:优良中及格不及格 2012年2月25日

一.课程设计目的 通过该课程设计将嵌入式系统原理及应用课程中所学的处理器和接口等技术应用于实际设计中。通过中断、PWM定时器、串口、SIO、GPIO等技术在实验平台上进行综合设计,在理论和实验的基础上进一步提高综合设计能力。 二. 课程设计内容及功能要求 1. 通过一个PWM定时计数器,采用定时中断的功能,设计能够在LED上进行时分秒显示的时钟; 2. 通过键盘实现对钟的功能; 3. 实现闹钟的功能,闹钟的时间由键盘输入进行设定; 4. 将时钟在超级终端上显示;时间的设定可以通过超级终端实现; 三.功能实现 1.总体功能框图

2.详细设计:(将所设计的各部分的功能程序框图及相关程序代码进行详细的描述) ①. #include"uhal.h" #include"myuart.h" #include"KeyBoard.h" #include"Timer.h" #include"Isr.h" #include"44b.h" #include "Zlg7289.h" #include "def.h" #include "lcd320.h" int Timer3INTCount=0; int hour = 0 ; int minute = 0 ; #pragma import(__use_no_semihosting_swi) // ensure no functions that use semihosting int main(void) { int clock_h = 23 ; int clock_m = 59 ; int clock_s = 0 ; int key ; int val=0; ARMTargetInit(); //开发版初始化 Zlg7289_Reset(); Init_Timer3(100,16,40000,20000); INTS_OFF();//Disable interrupt in PSR SetISR_Interrupt(INT_TIMER3_OFFSET, Timer3_ISR,0); Open_INT_GLOBAL(); Open_INT(BIT_TIMER3); INTS_ON();//Enable interrupt in PSR Start_Timer3();

嵌入式系统课程设计报告

湖北民族学院 信息工程学院 课程设计报告书 题目 :基于A RM的数字式万年历 课程:嵌入式系统课程设计 专业:电子信息科学与技术 班级: 03114411 学号: 031441119 学生姓名:田紫龙 指导教师:易金桥 2017年6 月20 日

信息工程学院课程设计任务书 学号031441119学生姓名田紫龙专业(班级)0314411 设计题目基于 ARM 的数字式万年历 1.能测量温度并且实时显示; 2.具有时间显示功能,能够显示年月日,时分秒,并且可以手动调节时间。 设 3. 具有 12 小时制和 24 小时制切换功能。 计 技 术 参 数 对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能。温度采集 选用 DS18B20芯片,万年历采用直观的数字显示,数据显示采用1602 液晶显 示模块,可以在LCD1602 上同时显示年、月、日、周日、时、分、秒,还具有 设 时间校准整点灯光提醒等功能。制作仿真和实物。 计 要 求 [1]苏平 . 单片机的原理与接口技术 [M]. 北京 : 电子工业出版社, 2006,1-113. [2]王忠民 . 微型计算机原理 [M]. 西安 : 西安科技大学出版社, 2003,15-55. [3]左金生 . 电子与模拟电子技术 [M]. 北京 : 电子工业出版社, 2004,105-131. [4]新编单片机原理与应用(第二版). 西安电子科技大学出版社, 2007.2 [5]张萌 . 单片机应用系统开发综合实例 [M]. 北京:清华大学出版社, 2007.7 [6] 朱思荣. 51 单片机实现公历与农历、星期的转换[Z].当当电子网 [7]李广弟 . 单片机原理及应用 [M] 北京航空航天大学出版社 ,2004 年 参[8] 王越明 . 电子万年历的设计 [J]. 黑龙江科技信息, 2004 年 考 资 料 2017年 6 月 20 日

嵌入式系统课程设计

《嵌入式系统设计与应用》课程设计 题目嵌入式系统的实践教学探讨 1.嵌入式系统设计与应用课程的内容概述 1.1 内容概述 本课程适用于计算机类专业,是一门重要的专业课程。它的任务是掌握嵌入式系统的基本概念;掌握嵌入式处理器 ARM 体系结构,包括ARM总体结构、存储器组织、系统控制模块和I/O外围控制模块;掌握ARM指令集和Thumb指令集;掌握ARM汇编语言和C语言编程方法;了解基于ARM 的开发调试方法。它的目的是了解和掌握嵌入式处理器的原理及其应用方法。 1)介绍嵌入式系统开发的基础知识,从嵌入式计算机的历史由来、嵌入式系统的定义、嵌入式系统的基本特点、嵌入式系统的分类及应 用、嵌入式系统软硬件各部分组成、嵌入式系统的开发流程、嵌入 式技术的发展趋势等方面进行了介绍,涉及到嵌入式系统开发的基 本内容,使学生系统地建立起的嵌入式系统整体概念。 2)对ARM技术进行全面论述,使学生对ARM技术有个全面的了解和掌握,建立起以ARM技术为基础的嵌入式系统应用和以ARM核为基础 的嵌入式芯片设计的技术基础。 3)ARM指令系统特点,ARM 指令系统,Thumb 指令系统,ARM 宏汇编,ARM 汇编语言程序设计,嵌入式 C 语言程序设计。 1.2实践教学探讨 在IEEE 计算机协会2004年6月发布的Computing Curricula Computer Engineering Report, Ironman Draf t 报告中把嵌入式系统课程列为计算机工程学科的领域之一,把软硬件协同设计列为高层次的选修课程。美国科罗拉多州立大学“嵌入式系统认证”课程目录包括实时嵌入式系统导论、嵌入式系统设计和嵌入式系统工程训练课程。美国华盛顿大学嵌入式系统课程名称是嵌入式系统

arm课程设计报告

课程设计报告 (嵌入式接口技术) 学院:电气工程与自动化学院 题目:基于ARM的多路数据采集系统设计 专业班级:自动化113班 学号:35号 学生姓名:翁志荣 指导老师:温如春 2013 年12月19日

摘要 数据采集系统用于将模拟信号转换为计算机可以识别的数字信号.该系统目的是便于对某些物理量进行监视.数据采集系统的好坏取决于他的精度和速度.设计时,应在保证精度的情况下尽可能的提高速度以满足实时采样、实时处理、实时控制的要求.在科学研究中应用该系统可以获得大量动态;是研究瞬间物理过程的重要手段;亦是获取科学奥秘的重要手段之一. 本次设计是基于ARM的多路数据采集系统,主控器能够对模拟信号产生的各路数据,通过数据采集系统进行采集并在主控器的程控下显示。 关键字:数据采集;模数转换;ARM;实时采样。 Abstract Data acquisition system for digital signal to analog signal conversion can be identified by computer. The system is aimed at facilitating monitoring of some physical quantity. Data acquisition system is good or bad depends on the precision and speed. When the design, should be in the case of ensuring accuracy as much as possible to meet the high speed real-time sampling, real-time processing, the requirement of real time control. The application of this system in scientific research can obtain a large number of dynamic; is an important means to study the instantaneous physical process; and it is also one of the important means of access to the mysteries of Science. Keyword s: data acquisition; ARM; real-time sampling analog-to-digital conversion.

嵌入式课程设计

嵌入式课程设计报告 学院信息电子技术 专业电子信息工程 班级13级 学籍号 姓名 指导教师 2016年0月00日

基于ARM9的无线智能家居控制系统 1.引言 当网络席卷整个社会,带来经济飞速发展的同时,也给人们的生活带来无限的惊奇。不断更新的生活方式,使得越来越多的人追求对生活的舒适度和享受度。智能家居作为新生力量呼之欲出,自然地走进了我们的生活,随之,引领新一代的数字家庭生活。 所谓“智能家居”(Smart Home),又称智能住宅。它利用先进的计算机嵌入式系统、通信技术、现代传感技术和网络技术,将家庭中的各种设备(如照明系统、安防系统、信息家电)通过家庭内部无线网络连接到一起。一方面,智能家居将使得使用它的用户能够更加方便、快捷和轻松的管理自己的家电设备,例如,用户可以通过平板电脑、智能手机和其他控制终端设备对家用设备进行远程操控和状态的实时监控,进行室内场景配置以及形成多个家电设备的联动功能等等;另一方面,智能家居内的各种设备不需要通过用户的操控就可以实现相互间的通讯,从而根据相关家电设备的不同的状态互动运行,为用户提供高效、便利、舒适与安全的智能家居生活。 2.系统设计 (1)硬件电路设计 文中提出的基于ARM9的无线智能家居控制系统主要包括ARM9核心控制模块,无线通信模块、LCD触摸屏模块和家居电器,另外还有传感检测,语音报警和电源等模块。系统总体结构模型图如图1所示。 图1系统总体结构模型图 其中ARM是整个系统的控制核心,通过GPRS和ZigBee无线通信网络收

发控制指令实现对家居电器进行综合监控,同时提供防火墙的功能,阻止外界对家庭内部设备的非法访问和攻击。 无线通信模块分为本地和远程两部分,本地通信主要通过新型的ZigBee无线通信技术实现系统与家居电器的通信,达到对其控制;远程通信是利用手机通过GPRS通信网络或利用计算机通过互联网实现人与控制系统的通信,进而达到对家居电器的远程监控。采用无线通信技术省去了布线使家居布局更加灵活,远程控制使家居电器工作更加贴近人们的工作和生活要求。 智能家居控制系统的具体功能包括:家居电器的综合监控、室内环境信息采集、自动报警、本地控制、远程控制、安全防盗等。 基本电路组成 1)主控芯片S3C2440A 本系统采用的是Samsung公司推出的16/32位RISC微处理器S3C2440A,它具有0.13μm的CMOS标准宏单元和存储器单元,它的杰出的之处是其处理器核心,该核心是由Advanced RISC Machines有限公司设计的ARM920T内核,ARM920T内核实现了MMU,AMBA BUS和Harvard高速缓冲体系结构,这一体系结构具有独立的16KB指令Cache和16KB数据Cache。 2)电源电路 电源是整个智能家居控制系统的能量之源,电源的稳定供电为系统得以安全、正确的运行提供了保障,本系统共需要两种电压5V和3.3V。为了提高终端设备内部的安全性并进一步减低系统的设计成本,本系统选用的市面上的12V、2A的开关稳压电源作为系统的基本供电输入,首先经过LM2576转换成5V,并经过滤波和稳压电路输出稳定的5V电压,为系统上需要5V电源的电路供电。其次,5V输出再经过LM1117D转换成3.3V,经过一定的滤波处理后为系统需要3.3V供电的电路供电,如图2所示。 图2 3.3V电压转换输出电路 3)复位电路的设计

广东海洋大学嵌入式系统课程设计

《嵌入式系统》设计报告学生姓名 Adao (学号) 所在学院数学与计算机学院 所在班级计科1141 指导教师 成绩

目录 1.课程设计目的 (2) 2.系统分析与设计 (2) 3.系统结构图 (2) 4.实现过程 (3) 5.实验效果 (5) 6.代码分析 (6) 7.系统测试出现的问题和解决的方案 (7) 8.系统优缺点 (7) 9.心得体会 (8) 参考文献 (8)

双按键控制流水灯系统开发 1.课程设计目的: 本次课程设计目的主要是对之前所学习的STM32的某个实验进行更深入的学习与了解,弄懂引脚,端口等相关的配置,对实验原理和具体实现有一定的理解,能做到自己通过原理图和使用库函数等把功能实现出来。我选择的是EXTI-外部中断实验并加以整合,具有一定实用功能的系统,可以对外提供服务。 2.系统分析与设计: 本课程设计所定义的系统主要功能为,通过两个按键KEY1(PA0)、KEY2(PC13)可以实现对流水灯进行同步控制,即一个开关控制产生的灯的状态可以被另一个开关去改变,按键控制需要对两个按键的端口,引脚等进行相关配置,并在两个引脚的中断服务程序中完成对流水灯状态同步控制的操作。本还想通过使用SysTick(系统滴答定时器)功能对流水灯进行精确定时,但由于时间比较匆促,最终没有实现。 3.系统结构图: 图3-1

4.实现过程: 1、GPIO的输入模式有上拉输入模式、下拉输入模式、浮空输入模式和模拟输入模式。GPIO 中的每个引脚可以通过配置端口配置寄存器来配置它的模式。每个引脚的模式由寄存器的4个位控制。 上拉/下拉输入模式:1000 浮空输入模式:0100 模拟输入模式:0000 2、STM32的所有GPIO都可以用作外部中断源的输入端。STM32的中断由中断控制器NVIC 处理。STM32的中断向量具有两个属性,一个为抢占属性,另一个为响应属性,其属性编号越小,表面它的优先级别越高。抢占属性会出现嵌套中断。 3、编写NVIC_Configuration()函数配置NVIC控制器的函数。 static void NVIC_Configuration(uint8_t IRQ) { NVIC_InitTypeDef NVIC_InitStructure; //将NVIC中断优先级分组设置为第1组 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); /* 配置中断源 */ NVIC_InitStructure.NVIC_IRQChannel = IRQ;//设置中断线 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;//设置抢占优先级 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;//设置响应优先级 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); //对NVIC中断控制器进行初始化 } 4、调用GPIO_EXTILineConfig()函数把GPIOA、Pin0和GDIOC、PIN13设置为EXTI输入线。 GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0); GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource13); 5、填写EXTI的初始化结构体,然后调用EXTI_Init()把EXTI初始化结构体的参数写入寄存器。编写EXTI_PA0_Config()函数完成各种需要的初始化。 void EXTI_Pxy_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; EXTI_InitTypeDef EXTI_InitStructure; /* config the extiline clock and AFIO clock */

嵌入式系统设计课程设计

电气与电子信息工程学院 嵌入式系统设计课程设计 设计题目:基于AT89S52单片机的游戏机嵌入式系统设计与制作专业班级:电子信息工程2008级(2)班 学号:200840210212 姓名:童俊 指导教师:邓彬伟李玉平 设计时间:2011/11/14~2011/12/2 设计地点:K2自动化综合实验室

嵌入式系统设计课程设计成绩评定表 姓名童俊学号200840210212 专业班级电子信息工程2008级(2)班 课程设计题目:基于AT89S52单片机的游戏机嵌入式系统设计与制作 课程设计答辩或质疑记录: 1、什么叫嵌入式系统? 答:以应用为中心,以计算机技术为基础,软硬件可剪裁适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 2.所做的电路中有哪几个任务? 答:总共六个,分别是:功能选择,贪吃蛇游戏,时间温度显示,PS2键盘控制,温度采集,时间采集。 3.贪吃蛇这个游戏是怎么实现的? 答:在这个游戏中主要用到两个长度为二的数组控制蛇的头部坐标和尾部坐标,蛇的初始化长度为3,通过定时器没隔一定的时间给蛇一个步进信号,在蛇移动的过程中和转弯的过程中需判断前面是否有食物,是否碰到自己身体。食物的坐标也是通过定时器的高八位和第八位的数字余上30所的。 成绩评定依据: 实物制作(40%): 课程设计考勤情况(20%): 课程设计答辩情况(20%): 完成设计任务及报告规范性(20%): 最终评定成绩(以优、良、中、及格、不及格评定) 指导教师签字: 2010年12 月20 日

课程设计任务书 2011 ~2012 学年第 1 学期 学生姓名:林忠航专业班级: 08电信本1、2 指导教师:邓彬伟、李玉平工作部门:电信教研室 一、课程设计题目 嵌入式系统设计课程设计 二、课程设计目的 为了提高嵌入式系统设计与实际的应用能力,开始为期三周的嵌入式系统设计课程设计。通过实训使学生在巩固所学单片机知识的基础之进一步把其与μC/OS-II操作系统的移植结合起来,增强学生对所学知识的实际应用能力和以及与当前专业的前沿知识结合,达到对μC/OS-II操作系统的学习和理解,为以后从事嵌入式工作的研究和开发打好基础。 三、课程设计内容 设计基于51单片机的嵌入式系统,把μC/OS-II操作系统移植到51单片机上,能完成基本的输入和输出,输入采用4*4的键盘,输出采用1602液晶。再此基础之上,每个同学根据自己的特长扩展应用系统,具体可参考以下五种扩展方案的实现。 1、设计的游戏机,在游戏机工作时有背景音乐放出。 2、设计的是电子琴以及1602液晶显示。 3、设计的流水灯、蜂鸣器、闪烁灯任务。, 4、设计的流水灯和电子书功能。 5、(1)所有灯灭,(2)1602显示 93)LED灯闪烁,显示字符。 四、进度安排 序号设计内容所用时间 1 布置任务,学习μC/OS-II操作系统5天 2 开发μC/OS-II操作系统的移植代码3天 3 制作基于51单片机的硬件系统2天 4 软硬件集成和调试2天 5 答辩、撰写设计报告书3天 合计15天 五、基本要求 1、设计基于51单片机的输入和输出电路。 2、用4×4的键盘作为输入设备。 3、用LED或LCD进行显示。

相关文档
相关文档 最新文档