当前位置:文档之家› 嵌入式系统概论综合设计报告书

嵌入式系统概论综合设计报告书

嵌入式系统概论综合设计报告书
嵌入式系统概论综合设计报告书

《嵌入式系统概论》综合设计报告书设计题目:基于嵌入式Linux点阵和键盘的贪吃蛇游戏

学院:信息工程学院

班级:

学号:

姓名:

指导老师:

中央民族大学

二零一三年十二月二十七日

一、设计目的

1、学习了解Linux系统各组成部分的作用以及Linux系统LED点阵驱动和

键盘驱动程序的编写;

2、熟悉基本的嵌入式开发过程,进一步掌握Linux下的C语言以及深入理解

嵌入式Linux系统编程的步骤;

3、以PXA270EP实验板为基础,用C语言编写贪吃蛇游戏的应用程序实现

通过控制8*8LED点阵中各灯亮暗来进行游戏操作。

二、设计内容

1、设计原理:

(1)8X8 点阵数码管发光原理:

从图中可以看出,8X8 点阵共需要64 个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上。当对应的某一列置1 电平,某一行置0 电平,则相应的二极管就亮;因此要实现一根柱形的亮法,如下图所示,对应的一列为一根竖柱,或者对应的一行为一根横柱,因此实现柱的亮的方法如下所述:

(图1)

(图2)

系统电路如上图2所示。显示部分用的是一个8×8 发光二极管点阵,我们常见的用于发布消息、显示汉字的点阵式LED显示屏通常由若干块LED点阵显示模块组成,8×8显示点阵模块,每块有64 个独立的发光二极管,为了减少引脚且便于封装,各种LED显示点阵模块都采用阵列形式排布,即在行列线的交点处接有显示LED。

在本开发板上,整个LED显示模块是作为一个I/O 进行控制的。如电路原理图所示,DATA[0..7],DATA[8..15]分别对应系统数据线的低16 位,LED_LOCK 信号是由系统总线的写信号和地址信号经简单的逻辑组合而得,在板载的CPLD 内完成,控制该显示模块的I/O 地址为0x08000000。

(2)目标板的键盘驱动原理:

键盘的结构通常有两种形式:线性键盘和矩阵键盘。在不同的场合下,这两种键盘均得到了广泛的应用。线性键盘由若干个独立的按键组成,每个按键的一

端与微机的一个I/O 口相连。有多少个键就要有多少根连线与微机的I/O 口相连,

因此,只适用于按键少的场合。矩阵键盘的按键按N 行M 列排列,每个按键占据行列的一个交点,需要的I/O 口数目是N+M,容许的最大按键数是N×M。显然,矩阵键盘可以减少与微机接口的连线数、简化结构,是一般微机常用的键盘结构。根据矩阵键盘的识键和译键方法的不同,矩阵键盘又可以分为非编码键盘和编码键盘两种。

非编码键盘:非编码键盘主要用软件的方法识键和译键。根据扫描方法的不同,可以分为行扫描法、列扫描法和反转法三种。编码键盘:编码键盘主要用硬件来实现键的扫描和识别,通常使用8279 专用接口芯片,在硬件上要求较高。

PXA270EP采用的是4×6 的矩阵键盘。其原理图如图3:

(图3)

键盘扫描程序的流程图如图4:

(图4)

(图5)

(图6)

如图5为键盘的真实布线图,如图6只是将线拉直,以便您更好的理解程序扫描所代表的含义,我们说,若要让程序确定您所按下的键是哪个,分别是要在扫描四列四行后,然后再通过扫描所得数据来判断具体是哪个键。

程序是先扫描第0 列,依次第1 列,第2 列,第3 列。在扫描第0 列的过程中,再先后扫描第0 行,第1 行,第2 行,第3 行,第4 行,第5 行。若在扫描完第0 列后,没有扫描到任何键按下。则再扫描第1 列,在这过程中,再先后扫描第0 行,第1 行,第2 行,第3 行,第4 行,第5 行。若在扫描完第1 列后,

没有扫描到任何键按下。则再扫描第2 列,在这过程中,再先后扫描第0 行,第1 行,第2 行,第3 行,第4 行,第5 行。若在扫描完第2 列后,没有扫描到任何键按下。则再扫描第3 列,在这过程中,再先后扫描第0 行,第1 行,第2 行,第3 行,第4 行,第5 行。

在扫描过程中,只要在符合某种条件下,则会停止后续列的扫描操作,而退出程序。

通过上面二维表19~1 判断,将定您现在按下数字9 键,则此时对应In1 位为0,且Out2位为0。若您按下数字2 键,则此时对应的In2 位为0,且Out4 位为0。其它按键的判断结果是以相同的方法判断。In3,In2,In1,In0 的值是通过outbyte = 值,outb(outbyte,ioremap_addr)来指定值。Out5,Out4,Out3,Out2,Out1,Out0 的值是通过函数inbyte=inb(ioremap_addr)来获取。

例如:outbyte = 0xfe;outb(outbyte,ioremap_addr);则:。。。。In3 In2 In1 In0

1 1 1 1 1 1 1 0

此时:通过inbyte=inb(ioremap_addr)获取值,若读出的值为inbyte = 0xef,则:。。Out5 Out4 Out3 Out2 Out1 Out0

1 1 1 0 1 1 1 1

很显然,这时有In0 = 0,Out4 = 0,所以查表,此时,系统判断应该是Enter 键被按下。

2、设计过程:

根据对贪吃蛇游戏结构和步骤的分析设计出相应的贪吃蛇流程,设计在目标

板上的8*8LED点阵上显示贪吃蛇游戏的主要过程包括:(1)游戏开始(有3、2、1倒计时的显示);

(2)随机出现食物,定点出现初始贪吃蛇;

(3)贪吃蛇移动;

(4)贪吃蛇吃食物;

(5)暂停游戏;

(6)恢复游戏;

(7)贪吃蛇碰边界游戏结束重新开始;

(8)数码管显示分数。

三、设计方案

1、贪吃蛇游戏源程序如下:

#include

#include

#include

//#include ///开线程

#include // open() close()

#include // read() write()

#define DEVICE_NAME "/dev/led_ary_ctl"

#include

#define DEVICE_NAME1 "/dev/keypad"

#define DEVICE_NAME_SERIAL_LED "/dev/serial_led" unsigned short po[8]={1,2,4,8,16,32,64,128};

//pthread_t tid;

int fd_led,fd_key;

int score;

unsigned short out[64];//表示8*8点阵

short getx(short z)

{

return z%8;

}

short getz(short x,short y)

{

return x+(y<<3);//x+y*8

}

unsigned short ck;//ck置为3时,暂停游戏;如果蛇正常的移动了一步,它的值置为0;若蛇死了,它的值置为1;若蛇吃了某个食物,它的值置为2

unsigned short fx;//行进方向0 1 2 3 上下左右

unsigned short fod;//food

short scd;//蛇长度

typedef struct sn

{

short wzz;//位置z坐标

struct sn *nxt;//下一个位置

}Snk;

Snk *stz;//蛇头坐标

int getrandom(int max)//取得在[0,max]的随机整数

{

int num=-1;

int ran;

while(num<0)

num=rand();

ran=num%(max+1);//取余得随机数法

return ran;

}// 0 1

void ledouta(short x,short y)//x表示行号y表示该行亮的灯的编码,例子:x=0 y=3 则第一行第0,1个亮,x-[0,7],y[0-255]

{

//int fd;

//int ret;

unsigned char buf[2];

buf[0]=(y);

buf[1]=~(1<

return;

}

void ledout()

{

short i,j;short lia;

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

{

lia=0;

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

{

if(out[getz(j,i)]==1)

{

lia+=po[j];

}

}

ledouta(i,lia);

}

}

void serialled(int count)

{

int fd;

int ret;

//0 1 2 3 4 5 6 7 8 9

int buf[10] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; int data[2];

fd = open(DEVICE_NAME_SERIAL_LED, O_RDWR);

if (fd == -1)

{

printf("open device %s error\n",DEVICE_NAME_SERIAL_LED); }

else

{

if(count>=10)

{

data[0]=0x00;

ret=write(fd,data,1);

ret=write(fd,data,1);

data[0] = buf[count/10];

ret=write(fd,data,1);

data[0] = buf[count%10];

ret=write(fd,data,1);

}

else

{ if(count < 0){

data[0]=0x00;

ret=write(fd,data,1);

ret=write(fd,data,1);

printf("==================================");

data[0] = 0x40;

ret=write(fd,data,1);

data[0] = buf[0-count];

ret=write(fd,data,1);}

else{

data[0]=0x00;

ret=write(fd,data,1);

ret=write(fd,data,1);

ret=write(fd,data,1);

data[0] = buf[count];

ret=write(fd,data,1);} }

}

ret = close(fd);

}

void in_it()//初始化全局变量

{

short i;

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

{

out[i]=0;

}

//ck=1;

ck=0;

stz=(Snk *)malloc(sizeof(Snk));

stz->nxt=NULL;

stz->wzz=0;

}

void loadsnk()//per显示蛇

{

Snk *tmp;

tmp=stz;

while(tmp->nxt!=NULL)

{

out[tmp->wzz]=1;

tmp=tmp->nxt;

}

}

void newfood()//per显示食物,也可以理解为产生食物{

short ran;

ran=46;/////////////////////////////////

while(1)

{

if(out[ran]!=1)

{

out[ran]=1;

fod=ran;

return;

}

else

{

ran=getrandom(63);

}

}

}

void dspl()//display

{

loadsnk();

}

void initGame()//初始化游戏

{

in_it();

score=0;

fx=3;

scd=3;

stz->wzz=getz(2,5);//初始化蛇头位置;

stz->nxt=(Snk *)malloc(sizeof(Snk));

stz->nxt->wzz=getz(1,5);

stz->nxt->nxt=(Snk *)malloc(sizeof(Snk));

stz->nxt->nxt->wzz=getz(0,5);

stz->nxt->nxt->nxt=NULL;

loadsnk();

newfood();

serialled(score);

}

void erro()

{

printf("---ERROR---\n");

ck=0;

}

void eat()

{

printf("---EATFOOD---\n");

scd++;

newfood();

score++;

serialled(score);

}

void die()

{

printf("---GAMEOVER---\n");

ck=0;

Snk *tmp;

tmp=stz;

stz=stz->nxt;

while(stz->nxt!=NULL)

{

free(tmp);

tmp=stz;

stz=stz->nxt;

}

free(tmp);

free(stz);

}

short move() //正常返回0,死了返回1,吃了返回2

{

Snk *nst,*tmp;

nst=(Snk *)malloc(sizeof(Snk));

nst->nxt=stz;

switch(fx)//方向

{

case 0:{

nst->wzz=stz->wzz-8;

if(nst->wzz<0)

{die();return 1;}

break;}

case 1:{nst->wzz=stz->wzz+8;if(nst->wzz>63){die();return 1;}break;}

case 2:{nst->wzz=stz->wzz-1;if((nst->wzz)%8==7||nst->wzz<0){die();return 1;}break;}

case 3:{nst->wzz=stz->wzz+1;if((nst->wzz)%8==0){die();return 1;}break;}

default:erro();

}

stz=nst;

if(stz->wzz==fod)//吃了

{

eat();

return 2;

}

else

{

if(out[stz->wzz]==1)//吃了自己

{

die();

return 1;

}

}

nst=stz->nxt;

tmp=stz;

while(nst->nxt!=NULL)

{

tmp=nst;

nst=nst->nxt;

}

out[tmp->nxt->wzz]=0;

free(tmp->nxt);

tmp->nxt=NULL;

return 0;

}

void to_up()

{

fx=0;

}

void to_down()

fx=1;

}

void to_lift()

{

fx=2;

}

void to_right()

{

fx=3;

}

void reset()

{

initGame();

}

void ds3()//显示3

{

out[0]=0; out[1]=1; out[2]=1; out[3]=1; out[4]=1; out[5]=1; out[6]=1; out[7]=0;

out[8]=0;

out[9]=0;out[10]=0;out[11]=0;out[12]=0;out[13]=0;out[14]=1;out[15]=0;

out[16]=0;out[17]=0;out[18]=0;out[19]=0;out[20]=0;out[21]=0;out[22]=1;out[23 ]=0;

out[24]=0;out[25]=1;out[26]=1;out[27]=1;out[28]=1;out[29]=1;out[30]=1;out[31 ]=0;

out[32]=0;out[33]=0;out[34]=0;out[35]=0;out[36]=0;out[37]=0;out[38]=1;out[39 ]=0;

out[40]=0;out[41]=0;out[42]=0;out[43]=0;out[44]=0;out[45]=0;out[46]=1;out[47 ]=0;

out[48]=0;out[49]=0;out[50]=0;out[51]=0;out[52]=0;out[53]=0;out[54]=1;out[55

out[56]=0;out[57]=1;out[58]=1;out[59]=1;out[60]=1;out[61]=1;out[62]=1;out[63 ]=0;

}

void ds2()

{

out[0]=0; out[1]=1; out[2]=1; out[3]=1; out[4]=1; out[5]=1; out[6]=1; out[7]=0;

out[8]=0;

out[9]=0;out[10]=0;out[11]=0;out[12]=0;out[13]=0;out[14]=1;out[15]=0;

out[16]=0;out[17]=0;out[18]=0;out[19]=0;out[20]=0;out[21]=0;out[22]=1;out[23 ]=0;

out[24]=0;out[25]=1;out[26]=1;out[27]=1;out[28]=1;out[29]=1;out[30]=1;out[31 ]=0;

out[32]=0;out[33]=1;out[34]=0;out[35]=0;out[36]=0;out[37]=0;out[38]=0;out[39 ]=0;

out[40]=0;out[41]=1;out[42]=0;out[43]=0;out[44]=0;out[45]=0;out[46]=0;out[47 ]=0;

out[48]=0;out[49]=1;out[50]=0;out[51]=0;out[52]=0;out[53]=0;out[54]=0;out[55 ]=0;

out[56]=0;out[57]=1;out[58]=1;out[59]=1;out[60]=1;out[61]=1;out[62]=1;out[63 ]=0;

}

void ds1()

{

out[0]=0; out[1]=0; out[2]=0; out[3]=0; out[4]=1; out[5]=0; out[6]=0; out[7]=0;

out[8]=0;

out[9]=0;out[10]=0;out[11]=1;out[12]=1;out[13]=0;out[14]=0;out[15]=0;

out[16]=0;out[17]=0;out[18]=0;out[19]=0;out[20]=1;out[21]=0;out[22]=0;out[23 ]=0;

out[24]=0;out[25]=0;out[26]=0;out[27]=0;out[28]=1;out[29]=0;out[30]=0;out[31

out[32]=0;out[33]=0;out[34]=0;out[35]=0;out[36]=1;out[37]=0;out[38]=0;out[39 ]=0;

out[40]=0;out[41]=0;out[42]=0;out[43]=0;out[44]=1;out[45]=0;out[46]=0;out[47 ]=0;

out[48]=0;out[49]=0;out[50]=0;out[51]=0;out[52]=1;out[53]=0;out[54]=0;out[55 ]=0;

out[56]=0;out[57]=0;out[58]=0;out[59]=1;out[60]=1;out[61]=1;out[62]=0;out[63 ]=0;

}

void repat_dis(int times)

{

int i;

for (i=0;i

ledout();

}

void display_321()

{

ds3();

repat_dis(10);

ds2();

repat_dis(10);

ds1();

repat_dis(10);

}

void pause1()

{

ck=3;

}

void resume1()

ck=0;

}

int main(void)

{

int i=4;

int ret_led,ret_key;

unsigned char buf[2] ;

double x;

char pre_scancode = 0xff;

//fd = open(DEVICE_NAME1, O_RDWR);

fd_led=open(DEVICE_NAME, O_RDWR);

fd_key=open(DEVICE_NAME1, O_RDWR);

if (fd_key == -1)

{

printf("open device %s error\n",DEVICE_NAME1);

}

else if(fd_led==-1)

{

printf("open device %s error\n",DEVICE_NAME);

}

else

{

buf[0]=0x22;

reset();

dspl();

ledout();

while (1)

{

if(ck==0||ck==2)

if(i==4)

{

i=0;

ck=move();

}

i++;

//usleep(100000);

read (fd_key,buf,1);

if(buf[0]!= pre_scancode)

{

if(buf[0]!=0xff)

{

switch(buf[0])

{

case 0x08:to_up();break;

case 0x04:to_lift();break;

case 0x05:to_down();break;

case 0x06:to_right();break;

case 0x11:reset();break;

case 0x12:pause1();break;

case 0x13:resume1();break;

default:;

}

}

}

pre_scancode = buf[0];

dspl();

ledout();

//usleep(500000);//////////////////////////////////////////////

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

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

目录 摘要 (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

嵌入式系统设计大作业

嵌入式系统设计大作业 学号:14020520009 姓名:罗翔 1、叙述JTAG接口在嵌入式开发中的作用。 答: (1)用于烧写FLASH 烧写FLASH的软件有很多种包括jatg.exe fluted flashpgm等等,但是所有这些软件都是通过jtag接口来烧写flash的,由于pc机上是没有jtag接口的,所以利用并口来传递信息给目标板的jtag接口。所以就需要并口转jtag接口的电路。 (2)用于调试程序 同时应该注意到jtag接口还可以用来调试程序。而调试程序(如ARM开发组件中的AXD)为了通过jtag接口去调试目标板上的程序,同样是使用pc的并口转jtag接口来实现与目标板的通信。这样,并口转jtag接口的电路就有了两种作用。 (3)仿真器 根据(1)和(2)的总结,并口转jtag接口的电路是两种应用的关键,而这种电路在嵌入式开发中就叫仿真器。并口转jtag接口的电路有很多种,有简单有复杂的,常见的仿真器有Wigger,EasyJTAG,Multi-ICE等。这些所谓的仿真器的内部电路都是并口转jtag接口,区别只是电路不同或使用的技术不同而已。 2、叙述嵌入式平台的搭建过程,以linux为例。 答: 1) 一:建立宿主机开发环境 建立交叉编译的环境即在宿主机上安装与开发板相应的编译器及库函数,以便能够在宿主机上应用开发工具编译在目标板上运行的Linux引导程序,内核,文件系统和应用程序 交叉编译:在特殊的环境下,把嵌入式程序代码编译成不同的CPU所对应的机器代码。

开发时使用宿主机上的交叉编译,汇编及链接工具形成可执行的二进制代码(该代码只能在开发板上执行),然后下载到开发板上运行 2) 下载和安装arm-Linux-gcc编译工具链下载最新的arm-Linux-gcc并解压至当前目录下 在系统配置文件profile中设置环境变量方法:直接在profile文件中加入搜索路径立即使新的环境变量生效:运行source命令,检查是否将路径加入到path,测试是否安装成功, 编译程序,测试交叉工具链 3) 配置超级终端minicom minicom是宿主机与目标板进行通信的终端:在宿主机Linux终端中输入:minicom-s或输入minicom然后按ctrl+A+O对超级终端minicom进行配置,再选择串口并配置串口,最后保存即可 4) 建立数据共享服务:NFS服务是Linux系统中经常使用的数据文件共享服务 5) 编译嵌入式系统内核:内核配置,建立依存关系,建立内核 6) 制作文件系统 3、给出现今有哪些用于嵌入式开发的芯片名称,他们分别是哪些公司的产品? 体系结构是什么? S3C2410X基于ARM的Sumsang; XscalePXA255/PXA270基于ARM的Intel; 摩托罗拉MC基于68k; Power 601基于Power PC; MIPS32Kc基于MIPS 4、现今较流行的嵌入式操作系统有哪些? 答: (1) VxWorks (2)wince (3)linux (4)android

软件综合课程设计报告模板

(课程设计封皮一页上用已经设置好的宋体四号来填写各个项目。) 计算机软件综合 课程设计报告 学院、系:吉林大学珠海学院计算机科学与技术系 专业名称:2015级软件工程专业课程设计科目:计算机软件综合课程设计 题目:******* 系统 学生姓名:(小组所有成员的学号、姓名) 指导教师: 完成时间:2017年9月—2018年1月

目录 1引言 (4) 1.1编写目的 (4) 1.2背景说明 (4) 2 需求分析 (4) 2.1系统总体目标 (4) 2.2 系统功能 (4) 2.3数据需求 (4) 2.3数据流图 (5) 3 数据库概念结构设计 (5) 3.1系统E-R模型 (5) 3.2模块E-R模型 (5) 4 数据库逻辑结构设计 (5) 4.1 逻辑结构设计 (5) 4.2物理结构设计 (6) 5 安全性设计 (6) 5.1 身份验证模式 (6) 5.2 登陆管理 (6) 5.3 权限管理 (6) 6 源代码及其实现 (7)

5.1 系统开发技术 (7) 5.2 模块1设计及其实现 (7) 5.3 模块2设计及其实现 (7) 7 总结 (7) 6.1 课程设计心得体会 (7) 6.2 建议 (7) 8 参考文献 (7)

题目(三号,黑体,居中) 说明:一组只写一份报告,即下面内容,自己也可以根据实际情况进行调整和补充。 每个人写一份《课程设计成绩评定表》附在后面。 1引言 1.1编写目的 1.2背景说明 1.系统名称:公交查询系统 2.该项目的提出者:************ 3.开发者:********** ********* 4.运行该软件的单位:公交公司及广大乘客 2需求分析 2.1系统总体目标 2.2 系统功能 详细阐述系统的用户类型及其所属主要功能 2.3数据需求 根据系统功能整理出出系统中和数据相关的信息,要列出数据的详细信息。

嵌入式系统设计基础总结报告

嵌入式系统设计基础 结题报告 学生1: 学生2: 学生3: 组长: 组长电话: 指导老师: 完成时间:

目录 目录 (2) 摘要 (3) 一、课题概述 (4) 二、课题实施方案 (4) 2.1 方案说明 (4) 2.1.1 LCD图像显示模块设计方案 (4) 2.1.2 触摸屏模块设计方案 (5) 2.1.3 音乐播放模块设计方案 (5) 2.1.4 键盘模块设计方案 (6) 2.2 工程规范 (6) 三、课题实施过程详述 (6) 四、系统测试方法 (8) 五、结果分析 (8) 六、总结 (9) 参考文献 (9) 附录 (9)

摘要 随着智能手机和平板电脑等便携式设备的兴起,ARM已经成为全球领先的半导体知识产权提供商,全世界超过95%的智能手机和平板电脑都采用ARM架构。ARM技术具有性能高、成本低和能耗省的特点。本文旨在初步接触嵌入式ARM技术。我们使用了天嵌TQ2440开发板以及ADS1.2来进行相关实验,主要制作了一个带背景音乐、可以使用触摸屏和键盘进行前后照片切换的数码相框。通过这次实验,我们对ARM技术有了一个初步的认识和了解,同时也掌握了一些编程和调试技术。 关键词:嵌入式,LCD图像显示,触摸屏 Abstract With the development of the smartphone and tablet computer, ARM has already become a leading semiconductor intellectual property provider in global market. More than 95% of the smartphone and tablet computer use the ARM framework. ARM has the advantages in performance, cost and efficiency. This paper aim at having a rough contact with embedded ARM and we use TQ2440 and ADS1.2 to conduct relevant experiments. Generally, we have made a digital album which can be controlled by touch panel. Through this experiment, we have grown a general acknowledge of ARM technology and master some coding and debugging technology. Keywords:embedded system, LCD display, touchpanel

大作业设计报告书(嵌入式系统原理与开发)

大作业设计报告书 题目:嵌入式系统原理与开发 院(系):物联网工程学院 专业: 班级: 姓名: 指导老师: 设计时间: 10-11 学年 2 学期 20XX年5月

目录 1.目的和要求 (3) 2.题目内容 (3) 3.设计原理 (4) 4.设计步骤 (5) 4.1 交通指示灯设计 (5) 4.2 S3C44B0X I/O 控制寄存器 (6) 4.3 红绿灯过渡代码: (8) 4.4 电源电路设计 (10) 4.5 系统复位电路设计 (11) 4.6 系统时钟电路设计 (11) 4.7 JTAG 接口电路设计 (12) 4.8串口电路设计 (12) 5.引脚分类图 (13) 6.参考文献 (13)

1.目的和要求 ARM技术是目前嵌入式应用产业中应用十分广泛的先进技术,课程开设的目的在于使学生在了解嵌入式系统基础理论的前提下能够掌握ARM处理器的汇编语言和c语言的程序设计方法,掌握S3C44B0X芯片的基本硬件结构特点和接口设计方法,同时熟悉ARM开发环境,学习ARM的硬件设计和软件编程的基本方法,为今后从事相关的应用与研究打下基础。通过大作业要达到如下目的: 一、掌握ARM的开发工具使用和软件设计方法。 二、掌握ARM处理器S3C44B0X的原理和GPIO接口设计原理。 三、掌握C语言与的ARM汇编语言的混合编程方法; 四、培养学生选用参考,查阅手册及文献资料的能力。培养独立思考,深入研 究,分析问题、解决问题的能力。 五、通过课程设计,培养学生严肃认真的工作作风。 2.题目内容 题目:交通指示灯系统设计 功能描述: 1.用S3C44B0X的GPIO设计相关电路; 2.设计相关的软件并注释; 3.实现十字路口2组红、黄、绿交通灯交替显示。 编程提示: 1.交通灯可用发光二极管代替; 2.电路可部分参照实验电路; 3.时间控制可以使用软件循环编程解决。

嵌入式课程设计报告

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

、 摘要 随着科技和人们的生活水平的提高,实现防盗的问题也变得尤为突出,传统机械锁构造简单,电子锁的保密性高,使用灵活性好。根据需要设计运用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。

综合课程设计报告

综合课程设计报告

摘要 本报告介绍了一个运用c++设计一个个人的记账软件具体过程。实现了添加、查询、删除、修改等功能。能够大致的记录个人的收入支出情况。 开发背景 个人理财在中国得到大众的认可和金融机构的重视是近几年的事情。人们对个人理财的重视程度,与我过市场经济制度不断完善、资本市场的长足发展、金融产品的日趋丰富以及居民总体收入水平的上升等等是分不开的。可是比起发达国家我们的理财观念还远远不足。 可是理财并不困难,并非非要靠个人理财专业人士的建议才能身体力行。只要了解收支状况、设定财务目标、拟定策略、编列预算、执行预算到分析成果这六大步骤,便能够轻松的达成个人的财务管理。至于要如何预估收入掌握支出进而检讨进则有赖于平日的财务记录,也就是需要一款便于记账的软件。 最近越来越多的人具有记账的习惯。家庭、个人的收入支出结构在日益变化,单纯的靠本子记录收入支出无法满足对于收入支出结构的统计分析,因此以个人用户为目标的记账软件应运而生。相应的各种面向家庭以及个人的理财软件也越来越多。可是众多个人理财软件操作专业,对于个人用户而言功能过于强大,分析

数据用语也不易理解。因此开发一个操作简便、统计结果直观并对个人用户理财有参考价值的记账软件无疑能为广大个人用户提供方便。 总而言之,在不久的将来家庭使用理财软件也将成为国内家庭的必须品。能提供简单明了的功能以及操作的记账软件更是被广泛需要。这种软件也会为提升人们的胜过品质发挥它最大的作用。 技术背景 C语言是国内广泛使用的一种计算机语言,学会使用c语言进行程序设计是计算机工作者的一项基本功。对于我们大学生来说,学习这样一门c程序课程更是有必要。此次课程设计我所采用的环境是vc++,使用基本控制结构,如循环和选择,着重实现管理系统的增删改以及查询等典型的功能。程序设计是一门实践性很强的课程,既要掌握概念又要动手编译,更多的是要上机去调试,虽然初学时很麻烦,可是养成习惯后我相信受益匪浅。 开发环境 Vc++,win7. 设计目标 为了满足用户的需要,本系统将实现以下功能: 记录日常收支情况,查找某天的收支情况,插入忘记的收支功

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

《嵌入式系统》设计报告学生姓名 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 */

软件测试课程设计报告(模板)

课程设计 课程名称软件测试技术题目名称图书系统软件测试专业班级软件工程 学生姓名 学号 指导教师褚伟 二○一六年五月二十四日

目录 1.测试需求分析 (3) 1.1系统概述 (4) 1.2测试需求 (4) 2. 测试概要 (5) 3.测试计划 (5) 3.1测试方案的选择 (5) 3.2测试方案: (7) 3.3测试项目 (7) 3.4测试准备 (7) 3.5 测试覆盖率要求 (7) 4.测试项目说明 (8) 4.1测试项目名称及测试内容 (8) 4.2测试用例 (9) 5.对软件功能的结论 (24) 5.1功能1(系统登录) (24) 5.2功能2(图书管理测试) (24) 5.3功能3(图书查询测试) (24) 5.4功能4(系统管理测试) (24) 5.5功能5(借书测试) (24) 5.6功能6(还书测试) (25) 6.测试评价与结论 (25) 6.1能力 (25) 6.2缺陷和限制 (25) 6.3建议 (25) 7.总结 (26) 8.参考资料 (27)

摘要(中英文)

1.测试需求分析 1.1系统概述 本图书管理系统是一款功能非常强大的图书管理软件,本系统在继承了以往系统版本优点的基础上做了进一步优化;在功能上,本系统不仅包含图书管理的常用功能(如书籍管理、期刊管理、物品管理、读者管理、借、还、预借、续借和统计分析等等功能),而且还增加了条码的生成和打印功能(不仅为使用者省去了购买价格昂贵的条码专用打印机的费用,而且条码产生更方便,与系统结合更紧密)。 考虑到很多单位和学校有现成的身份IC卡(校园卡、会员卡等),为了有效的利用这些已有资源,让使用者使用更方便,我们特在系统中加入了会员卡管理功能,这样,图书管理员不仅可以通过读者编号进行借阅操作,也可以通过已有的身份卡(配合刷卡机或者条码扫描抢使用)来完成操作;在系统的办卡管理中有新办卡、换卡和注销卡等功能,彻底解决丢卡后的安全隐患问题(向制卡公司定制卡时,一般会要求每张卡的ID号都不同,所以一旦换卡了,原来的会员卡就作废了,即使丢失卡被别人捡到也不能进行正常的借阅操作)。 本系统具有操作简单,易学易用的特点。在开发过程中,我们总结了多年使用电脑管理图书馆业务的经验,注意到工作人员在使用电脑时容易发生的人为错误,因而使系统具有较强的容错和排错功能,而且本系统自带了一些常用的资料库(如中图分类库,出版社库等,系统会自动根据图书的标准ISBN码检索出当前图书的出版社名称和出版地点等,从而实现图书的自动录入的功能),使得用户在录入图书资料时更轻松;系统也自带了通用数据导入功能,可以非常简单地把用户以前的已有资料或者通过采集器采集到的数据资料导入到本系统中,避免了大量的重复劳动。经过长时间的不断测试和完善,系统的安全性和稳定性得到保证。 本系统完全可以配合条码扫描枪使用,操作会更流畅,更简单。 技术简介:本系统采用Adaptive Server Anywhere数据库、C/S结构,完全支持多用户操作;可运行于 Windows9x/WindowsNT/2000/Xp/2003平台,有良好的兼容性、先进性与扩充性;可在线升级。 系统特点:操作简单、界面清晰、功能强大、运行稳定快速、系统资源占用少。 1.2测试需求 本次测试针对开发的图书馆管理系统进行,包括功能测试,界面测试,图书

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

成绩学生课程实践能力考查 题目:温度按键设定、显示、报警系统设计 课程名称:嵌入式系统开发专业班级: 学生学号: 学生姓名: 考查地点: 考查时长: 4小时 所属院部: 指导教师: 2017 — 2018学年第 2 学期 金陵科技学院教务

2017-2018学年第2学期《嵌入式系统开发》实践能力考核 任课教师签名: 日期: 温度按键设定、显示、报警系统设计 要求: 1、读取DS18B20温度,在液晶上实时显示,并显示上、下限,初始值上限32,下限26。 2、通过按键可以设置环境温度的上限与下限, WK_UP键按下调节上限,再按下调节下限,再按下调节上限…… KEY1按下加1; KEY0按下减1, 根据上限与下限判断当前温度有没有超出范围。 3、当温度超过上限,LED1隔1秒亮一次。超过下限,LED2隔1秒亮一次。(也可自定义报警方式) 4、串口波特率一律用9600bps。 液晶显示的信息: STM32 test name: xxxxxxxxx Maximum is 32C,Minimum is 26 C The temperature is 29 C,now! (xxxxx就是自己的名字拼音) 目录: 第一章.系统要求 1、1设计要求

1、2设计方案 第二章.硬件设计 2、1开发板原理图 2、2 DS18B20模块 2、3按键模块 2、4 LCD显示模块 2、5 LED 模块 第三章.软件设计 3、1程序流程图 3、2程序部分代码 3、2、1主函数、main、c 3、2、2 LED 函数led、c 3、2、3温度代码 s18b20、c 3、2、4键盘代码key、c 第四章、实物效果图 第五章、课程总结 第一章.设计要求及方案 1、1设计要求 1、读取DS18B20温度,在液晶上实时显示,并显示上、下限,初始值上限32,下限26。 2、通过按键可以设置环境温度的上限与下限, WK_UP键按下调节上限,再按下调节下限,再按下调节上限…… KEY1按下加1; KEY0按下减1, 根据上限与下限判断当前温度有没有超出范围。

嵌入式系统课程设计报告

湖北民族学院 信息工程学院 课程设计报告书 题目 :基于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 日

嵌入式系统模拟试题及答案

学习中心/函授站_ 姓名学号 西安电子科技大学网络与继续教育学 院 2014学年下学期 《嵌入式系统》期末考试试题 (综合大作业) 题号一二三四五总分 题分2010302020 得分 考试说明: 1、大作业于2014年12月25日下发,2015年1月10日交回; 2、考试必须独立完成,如发现抄袭、雷同均按零分计; 3、答案须手写完成,要求字迹工整、卷面干净。 一、问题简述(每小题4分,共20分) 1、简述嵌入式系统的定义和组成结构。 答:嵌入式系统是以应用为中心,以计算机技术为基础,并软硬件可剪裁、功能、 ,可靠性、体积、重量、成本、功耗、成本、安装方式等方面符合要求的专用计算机系统。 嵌入式系统一般由嵌入式微处理器、存储与I/O部分、外设与执行部分、嵌入式软件等四个部分组成。 2、简单说明ARM微处理器的特点。 答:(1) 体积小、低功耗、低成本、高性能。 (2) 支持Thumb(16位)/ARM(32位)双指令集,能很好地兼 容8位/16位器件。

(3) 大量使用寄存器,指令执行速度更快。 (4) 大多数数据操作都在寄存器中完成,通过Load/Store结 构在内存和寄存器之间批量传递数据。 (5) 寻址方式灵活简单,执行效率高。 (6) 指令长度固定。 3、简述嵌入式系统产品的设计和开发过程。 答:①在嵌入式系统的开发过程中,一般采用的方法是首先在通用PC机上的集成开发环境中编程;②然后通过交叉编译和链接,将程序转换成目标平台(嵌入式系统)可以运行的二进制代码;③接着通过嵌入式调试系统调试正确;④最后将程序下载到目标平台上运行。 要强调,选择合适的开发工具和调试工具,对整个嵌入式系统的开发都非常重要。 4、简述嵌入式系统设计中要考虑的因素。 答:在嵌入式系统的开发过程中,要考虑到实时性、可靠性、稳 定性、可维护性、可升级、可配置、易于操作、接口规范、抗干 扰、物理尺寸、重量、功耗、成本、开发周期等多种因素。 5、什么是BootLoader,了解其在嵌入式系统中作用。 答:就是启动载入或引导加载又叫自举装载。由于系统加电后需 要首先运行BootLoader这段程序,因此它需要放在系统加电后 最先取指令的地址上。嵌入式处理器的生产厂商都为其处理器预 先安排了一个在系统加电或复位后最先取指令的地址。 二、名词解释(每小题2分,共10分) 1、DSP(Digital Signal Processor),数字信号处理器,一种特别用于快速处理数字信号的微处理器。DSP处理器对系统结构和指令进行了特殊设计,使其适合于执行DSP算法,编译效率较高,指令执行速度也较高。 2、RTOS Real Time Operating System. 译为实时操作系统。实时系统是指一个能够在指定的或者确定的时间内,实现系统功能和对外部或内部、同步或异步事件作出响应的系统。 3、BSP设计板级支持包(BSP)的目的主要是为驱动程序提供访问硬件设备寄存器的函数包,从而实现对操作系统的支持。类似于PC机上的BIOS,是一个承上启下的软件层次。由嵌入OS和用户开发相结合取得。BSP一般是在嵌入式系统上固化存放。 4、总线竞争就是在同一总线上,同一时刻,有两个以上器件要通

2016年下学期嵌入式系统设计大作业

嵌入式系统设计大作业 1、叙述嵌入式系统开发过程中所要解决的两个问题。 2、叙述嵌入式平台的搭建过程,以linux为例。 3、给出现今有哪些用于嵌入式开发的芯片名称,他们分别是哪些公司的产品? 体系结构是什么? 4、现今较流行的嵌入式操作系统有哪些? 5、PXA270嵌入式开发板的接口有哪些? 6、请写出Nor Flash和Nand Flash的区别。 7、冯。诺依曼架构与哈佛架构的区别。 8、单周期3级流水的情况下,第10个指令周期时,第几条指令执行结束? 9、下面是linux下的一个简单的设备驱动程序,写出linux设备驱动常用的数据结构,同时阅读下面代码,请给出测试程序中的每条语句加以注释。 设备驱动程序Keypad.c的源代码: #include #include #include #include #include #include #include #include #include #include #include #define LEDnKEY_MAJOR 251 #define KEYPAD_NAME "X-Hyper250 Keypad" #define KEYPAD_VERSION "Version 0.1" #define EXT_KEY_CS EXT_PORT2 #define EXT_LED_CS EXT_PORT3 #define LED_SHOW 10 /*EXT_KEY_CS 为向外部LED进行数值设定,它定义在其它头文件里*/ void led_off_on() /**/ { int i; EXT_LED_CS = 0xff; for(i =0 ; i<8;++i) { EXT_LED_CS = ~((1 << i) & 0xff); udelay(30000); } EXT_LED_CS = 0xff; }

软件工程课程设计报告_人事管理系统

软件工程课程设计 题目人事管理系统 1.课程题目 人事管理系统设计 2.概述 2.1本课题的来源 A公司是一家以寿险营销为目的的寿险公司,公司员工众多业务流量大,为了方便管理,我制作了一个人事管理系统。主要通过员工基本信息录入、修改、查询、删除以及员工考勤等方面来对员工综合考评。以便对员工发放工资进行合理分配。这样能提高领导的人事管理水平还能提高员工的积极性。通过现代计算机技术与企业管理相结合,实现人事管理系统的科学化、信息化、现代化,并且适合一般人群使用。 企业人事管理是相对企业部员工的管理。集人员、考勤、工资、员工培训、系统功能等于一体的大型管理系统,为公司在人事管理等方面提供极大的方便。本软件是以中小型企业为背景而设计开发的,界面美观、使用方便。本系统主要以人员管理、考勤管理、统计分析管理、工资核算等,是企业人事管理必不可缺的好帮手。

2.2本课题目的、实现功能与预期成果 2.2.1目的 目前市面上流行的人事管理系统不少。但是,对于A公司来说,不需要大型的数据库系统。只需要一个操作方便,功能实用,能满足本中心对数据的管理及需求的系统。我们的目标就是在于开发一个功能实用、操作方便,简单明了的人事管理系统。 2.2.2实现功能 能够录入人事的基本资料,在操作上能够完成诸如添加、修改、删除、按各种条件进行查询、新用户的设置及密码修改等方面的工作,基本满足人事日常业务的需要。 2.2.3预期成果 所做出的人事管理系统能让A公司管理层在操作简单的前提下并有效的提高对该公司的人事管理,并通过该系统提高员工的能力。尽量使本系统做到是一个科学化、信息化、简单使用的人事管理系统。 3.系统分析 3.1系统调研 正式开发管理信息系统之前进行调研是非常必要的,必要对现行系统进行详细的调查,明确用户需求,保证开发的新系统的功能与用户的要求相吻合,避免耗费大量的人力、物力、财力,

嵌入式系统原理与设计知识点整理

第一章嵌入式处理器 1嵌入式系统的概念组成: 定义:以应用为主,以计算机技术为基础,软硬件可裁剪,满足系统对功能、性能、可靠性、体积和功耗有严格要求的计算机系统。 组成:硬件:处理器、存储器、I / O设备、传感器 软件:①系统软件, ②应用软件。 2.嵌入式处理器分类特点: 分类:①MPU(Micro Processor Unit)微处理器。一块芯片,没有集成外设接口。部主要由运算器,控制器,寄存器组成。 ②MCU(Micro Controller Unit)微控制器(单片机)。一块芯片集成整个计算机系统。 ③EDSP(Embled Digital Signal Processor)数字信号处理器。运算速度快,擅长于大量重复数据处理 ④SOC(System On Chip)偏上系统。一块芯片,部集成了MPU和某一应用常用的功能模块 3.嵌入式处理器与通用计算机处理器的区别: ①嵌入式处理器种类繁多,功能多样 ②嵌入式处理器能力相对较弱,功耗低 ③嵌入式系统提供灵活的地址空间寻址能力 ④嵌入式系统集成了外设接口 4.①哈佛体系结构:指令和数据分开存储————————(嵌入式存储结构) 特征:在同一机器周期指令和数据同时传输 ②·诺依曼体系结构:指令和数据共用一个存储器——(通用式存数结构) 数据存储结构(多字节): 大端方式:低地址存高位;小端方式:高地址存高位 6.ARM指令集命名:V1~V8 (ARMV表示的是指令集)

7.ARM核命名:. 命名规则:ARM{x}{y}{z}{T}{D}{M}{I}{E}{J}{F}{S}{x}——系列(版本) {y}——当数值为“2”时,表示MMU(存管理单元) {z}——当数值为“0”时,表示缓存Cache {T}——支持16位Thumb指令集 {D}——支持片上Debug(调试) {M}——嵌硬件乘法器 {I}——嵌ICE(在线仿真器)——支持片上断点及调试点 {E}——支持DSP指令 {J}——支持Jazzle技术 {F}——支持硬件浮点 {S}——可综合版本 8. JTAG调试接口的概念及作用: ①概念:(Joint Test Action Group)联合测试行动小组→检测PCB和IC芯片标准。(P CB→印刷电路板IC→集成芯片) ②作用(1)硬件基本功能测试读写 (2)软件下载:将运行代码下载到目标机RAM中 (3)软件调试:设置断点和调试点 (4)FLASH烧写:将运行最终代码烧写到FLASH存储器中。 9.GPIO概念:(General Purpose I/O Ports)通用输入/输出接口,即处理器引脚。 10.S3C2410/S3C2440 GPIO引脚 S3C2410共有117个引脚,可分成A——H共8个组,(GPA,GPB,…GPH组) S3C2440共有130个引脚,可分成A——J共9个组,(GPA,GPB,…,GPH,GPJ 组) 11.GPxCON寄存器,GPxDAT寄存器,GpxUP寄存器的功能,各位含义和用法 ①GPxCON寄存器(控制寄存器)——设置引脚功能 →GPACON(A组有23根引脚,一位对应一个引脚,共32位,拿出0~22位,其余没用) (若某一位是)0:(代表该位的引脚是一个)输出引脚 1:地址引脚 →GPBCON——GPH/JCON(用法一致,两位设置一个引脚) 00:输入引脚 01:输出引脚 10:特殊引脚 11:保留不用 GPBCON ②GPxDAT寄存器(数据寄存器)——设置引脚状态及读取引脚状态 若某一位对应的是输出引脚,写此寄存器相应位可令引脚输出高/低电平。 若某一位对应的是输入引脚,读取此寄存器可知相应引脚电平状态。GPBDAT

09嵌入式网络协议及其应用开发课程设计报告1

课程设计说明书 学生信息 系别计算机工程学院专业计算机科学与技术 班级姓名学号 课程设计信息 课程名称嵌入式软件开发课程设计 课程设计题目基于QT的直流电机设计 课程设计时间学期第 1~16 周 小组情况指导教师 批改情况 成绩评阅教师批改时间2012年5月 6 日2011-2012学年第2 学期

目录 1.课程设计内容 (3) 2.课程设计目的 (3) 3.背景知识 (3) 4.工具/准备工作 (3) 5.设计步骤与方法 (3) 5.1.步骤 1:设计直流电机控制界面 (3) 5.1.1. 步骤1.1:添加控件事件代码 (4) 5.2. 步骤2:编译程序 (5) 5.2.1. 步骤2.1:redhat主机下编译程序 (5) 5.2.2. 步骤2.2:在ARM板下测试直流电机界面–嵌入式下运行 (6) 6.软件测试截图 (7) 7.设计结果及分析 (7) 8.设计结论 (7) 9.问题及心得体会 (7) 10.对本设计过程及方法、手段的改进建议 (8) 11.任务分配 (8) 12.参考文献【1】C++ GUI Qt4编程(第2版) 兰切特 (Jasmin Blanchette)、萨默菲尔德(Mark Summerfield)、闫锋欣、曾泉人子工业出版社2008 (8) 13.课程设计评价(教师) (8)

课程设计报告 1. 课程设计内容 本课程设计的内容是设计一个基于QT的直流电机设计,支持电机正反转以及设置参数以控制转速。 2. 课程设计目的 考察自己对课程的掌握程度,以及自己实际的动手能力,编程能力。 3. 背景知识 1.嵌入式linux下驱动程序的基本编译方法 2.掌握直流电机控制基本原理 3.QT软件的应用 4. 工具/准备工作 硬件: 安装有QT的PC机一台 软件: WindowsXP操作系统 VMware Workstation 7.0 Red Hat QT 4.6.3 5. 设计步骤与方法 5.1.步骤 1:设计直流电机控制界面 利用QT Creator,ui文件来编写一个良好的用户交互界面:

计算机技术综合课程设计报告

计算机技术综合课程设计 设计题目锅炉液位控制系统学生姓名史婷艳 专业班级自动化1302班学号20134460203 指导老师洪镇南 2017年1 月3日

目录 前言 (2) 1 锅炉汽包水位控制对象与控制指标 (4) 1.1锅炉汽包水位的特征 (4) 1.2汽包水位动态特性 (4) 1.2.1汽包水位在给水流量W作用下的动态特性 (4) 1.2.2汽包水位在蒸汽流量D扰动下的动态特性 (5) 1.2.3燃料量B扰动下汽包水位的动态特性 (6) 2. 汽包水位控制方案 (7) 2.1单冲量控制方式 (7) 2.2 双冲量控制方式 (8) 2.3 三冲量控制方式 (9) 3. 三冲量串级PID控制 (11) 3.1 串级PID控制 (11) 3.2 智能整定PID控制 (12) 4 汽包水位模糊控制器设计及仿真 (12) 4.1 输入输出变量 (12) 4.2 隶属度函数 (15) 4.3基于MATLAB/Simulink 环境建立的系统仿真分析 (16) 4.3.1 基于MATLAB/Simulink 的系统模型 (16)

4.3.2 仿真结果分析 (18) 总结与体会 (18) 参考文献 (20) 前言 锅炉是典型的复杂热工系统,目前,中国各种类型的锅炉有几十万台,由于设备分散、管理不善或技术原因,使大多数锅炉难以处于良好工况,增加了锅炉的燃料消耗,降低了效率。同时,锅炉工作过程中各项指标的调节难以建立数学模型,具有非线性、不稳定性、时滞等特点,所以如何改善对锅炉的控制,保证其正常工作,提高效率一直是人们关注的焦点。而汽包液位是锅炉安全、稳定运行的重要指标,保证液位在给定范围内,对于高蒸汽品质、减少设备损耗和运行损耗、确保整个网络安全运行具有要意义。 现代锅炉的特点之一就是蒸发量显著提高,汽包容积相对变小,水位变化速度很快,稍不注意就容易造成汽包满水或者烧成干锅,这都对汽包液位控制系统提出了更高的要求。汽包液位过高,会影响汽包内汽液分离效果,使汽包出口的饱和蒸汽带水增多,蒸汽带水会使汽轮机产生水冲击,引起轴封破损、叶片断裂等事故。同时会使饱和蒸汽中含盐量增高,降低过热蒸汽品质,增加在过热器管壁和汽轮机叶片上的结垢。水位过低,则可能破坏自然循环锅炉汽水循环系统中某些薄弱环节,以致局部水冷管壁被烧坏,严重时会造成爆炸事故。 目前,对汽包液位位控制大多采用常规PID控制方式,从控制方式来看,它们要么系统结构简单成本低,不能有效的控制锅炉汽包“虚假水位”现象,要么能够在一定程度上控制“虚假现象”,系统却过于复杂,成本投入过大。常用的蒸汽锅炉液位调节系统有三种基本结构:单冲量调节系统结构、双冲量调节系统结构、串级三冲量调节系统结

相关主题
文本预览
相关文档 最新文档