您的当前位置:首页计算机嵌入式实训考试常考试题

计算机嵌入式实训考试常考试题

2022-04-03 来源:爱问旅游网
12级嵌入式1、2班实训期末考试题目: 1、 Led灯实验。

要求:Led灯从左往右依次快速亮起,第4、5个灯亮时间隔2秒钟,第5、6、7、8亮起是时间间隔依次缩短。再从左边亮起如此反复。

#include \"s5pc210.h\" #include \"uart.h\"

#define U8 unsigned char

/*****************************************************************************

// Function name : delay // Description // Return type

: 延时子程序 : void

// Argument : count,延时的数值

*****************************************************************************/

void delay( int count ) { }

int main() {

*((U8*)0x8800B000) = a<<7; delay (150);

*((U8*)0x8800B000) = a; delay (200);

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

{

for( ; ; ) { int a=0xff; int i;

printf(\"CVT S5PV210 Jtag Led Test...\\n\"); uart_init();

for( count = count; count>0; count--)

for( cnt = 0; cnt < 1000; cnt++); int cnt;

}

*((U8*)0x8800B000) = a<<6; delay (100);

*((U8*)0x8800B000) = a<<5; delay (100);

*((U8*)0x8800B000) = a<<4; delay (2000);

*((U8*)0x8800B000) = a<<3; delay (400);

*((U8*)0x8800B000) = a<<2; delay (300);

*((U8*)0x8800B000) = a<<1; delay (200);

} }

return 0;

2、 Led矩阵实现。

要求,在矩阵上亮起一个最大正方形和一个心的图案。二者交替出现。

#include \"s5pc210.h\" #include \"uart.h\"

#define U8 unsigned char

/*****************************************************************************

// Function name : delay // Description // Return type

: 延时子程序 : void

// Argument : count,延时的数值

*****************************************************************************/

void delay( int count ) { }

for( count = count; count>0; count--)

for( cnt = 0; cnt < 1000; cnt++); int cnt;

int main() { {

*((U8*)0x88005000)=0xff; *((U8*)0x88003000)=0x00;

delay(500); }

*((U8*) 0x88005000) = 0x0; *((U8*)0x88003000) = 0xff; for( ; ; ) {

for(i=0;i<50;i++) {

for(i=0;i<=300;i++){

*((U8*) 0x88005000) = 0x44; *((U8*)0x88003000) = 0xfe; delay(1);

*((U8*) 0x88005000) = 0xee; *((U8*)0x88003000) = 0xfd; delay(1);

*((U8*) 0x88005000) = 0xff; *((U8*)0x88003000) = 0xfb; delay(1);

*((U8*) 0x88005000) = 0xff; *((U8*)0x88003000) = 0xf7; delay(1);

*((U8*) 0x88005000) = 0x7e; *((U8*)0x88003000) = 0xef; delay(1);

*((U8*) 0x88005000) = 0x3c; *((U8*)0x88003000) = 0xdf; delay(1);

*((U8*) 0x88005000) = 0x18; *((U8*)0x88003000) = 0xbf; delay(1);

int i;

printf(\"CVT S5PV210 Jtag Led Test...\\n\"); uart_init();

delay(100); }

}

} return 0;

}

3、 数码管实验。

要求:6个数码管从左自右,依次亮出1、2、3、4、5、6,每个数码管亮起时另外5个数码管熄灭。当第6个数码管熄灭1秒钟后6个数码管全部一起显示”H”

#include \"s5pc210.h\" #include \"uart.h\"

#define U8 unsigned char

/*****************************************************************************

// Function name : delay // Description // Return type

: 延时子程序 : void

// Argument : count,延时的数值

*****************************************************************************/

void delay( int count ) { }

int main() {

for(i=0;i<6;i++) {

*((U8*)0x88007000)=a[i];

unsigned int a[6]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf}; unsigned int b[6]={0xf9,0xa4,0xb0,0x99,0x92,0x82}; for( ; ; ) {

for( count = count; count>0; count--)

for( cnt = 0; cnt < 1000; cnt++); int cnt;

int i;

*((U8*)0x88009000)=b[i]; delay(500);

}

*((U8*)0x88009000)=0xff; delay(500); delay(500);

*((U8*)0x88007000)=0x0;

*((U8*)0x88009000)=0x89; delay(500); }

return 0; }

4、 步进电机实验。

要求:电机先整步顺时针转一周后再半步逆时针转一周,如此反复下去。尽量加快步进电机的转速以便于看清楚。 #include \"s5pc210.h\"

#include \"uart.h\"

#define U8 unsigned char

/*****************************************************************************

// Function name : delay // Description // Return type

: 延时子程序 : void

// Argument : count,延时的数值

*****************************************************************************/

void delay( int count ) { }

int main() { int i; {

*((U8*) 0x88001000) = 0x05; delay(100); for(i=0;i<=5;i++)

for( count = count; count>0; count--)

for( cnt = 0; cnt < 1000; cnt++); int cnt;

}

*((U8*)0x88001000) = 0x09; delay(50);

*((U8*)0x88001000) = 0x0a; delay(20);

*((U8*)0x88001000) = 0x06; delay(10); }

//反转脉冲

for(i=0;i<=5;i++) {

*((U8*) 0x88001000) = 0x06; delay(10);

*((U8*)0x88001000) = 0x0a; delay(10);

*((U8*)0x88001000) = 0x09; delay(10);

*((U8*)0x88001000) = 0x05; delay(10); }

return 0;

5、 GPioled接口控制实验。

要求:先四个灯全亮,一秒钟后全部熄灭,一秒钟后左边两个灯亮起,再一秒钟后右边的两个灯亮起,同时左边的两个灯熄灭,一秒钟后自左往右依次亮起四盏灯。如此反复。

#include \"s5pc210.h\" #include \"uart.h\"

/*****************************************************************************

// Function name : delay

// Description : 延时子程序 // Return type : void

// Argument : count,延时的数值

*****************************************************************************/

void delay( int count ) {

int cnt;

for( count = count; count>0; count--) for( cnt = 0; cnt < 1000; cnt++); }

int main() {

uart_init();

printf(\"CVT S5PV210 Jtag GpioLed Test...\\n\");

volatile int i,j=0;

GPH3.GPH3CON = 0x11110000;

while(1){ GPH3.GPH3DAT = 0x00; delay(2000); GPH3.GPH3DAT = 0xFF; delay(2000); GPH3.GPH3DAT = 0x3F; delay(2000); GPH3.GPH3DAT = 0xCF; delay(2000); for(j = 0;j<4;j++){ GPH3.GPH3DAT = ~(0x1<<(j+4)); for(i = 0; i <= 1000000; i++); } }

return 0;

}

6、 串口通信按键实验

要求:当按下实验箱白色按键,能够在DNW界面上显示按键提示消息。例如:sleep键在DWN上显示“你按下的是Sleep键” , Down键在DWN上显示“你按下的是Down键”, up键在DWN上显示“你按下的是up键”等。(DNW是串口通讯软件) #include \"s5pc210.h\"

#include \"uart.h\"

/*****************************************************************************

// Function name : delay

// Description // Return type : 延时子程序 : void

// Argument : count,延时的数值

*****************************************************************************/

void delay( int count ) { }

void Gpio_init(){ }

int main() {

if(temp != 0x3){

switch (i) {

case 0:

if(temp == 0x1){

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

GPH2.GPH2DAT = 0xff; GPH2.GPH2DAT &= ~(0x1<temp = GPH3.GPH3DAT & 0x3; delay(10);

while(1){ Gpio_init();

printf(\"CVT S5PV210 Jtag KeyPad Test...\\n\"); int temp,i = 0; uart_init();

GPH3.GPH3CON = ~0xff;

GPH3.GPH3DAT = GPH3.GPH3DAT | 0x3; GPH2.GPH2CON = 0x11111111; GPH2.GPH2DAT = 0xff;

for( count = count; count>0; count--)

for( cnt = 0; cnt < 1000; cnt++); int cnt;

}

printf(\"VOL+ Press\\n\");

break;

if(temp == 0x1){ }

else if(temp == 0x2){ } break; break;

if(temp == 0x1){ } break;

if(temp == 0x2){ } break;

if(temp == 0x1){ }

else if(temp == 0x2){ } break;

if(temp == 0x1){ }

else if(temp == 0x2){ } break;

if(temp == 0x2){ } break;

printf(\"LEFT Press\\n\"); printf(\"ENTER Press\\n\"); printf(\"BACK Press\\n\"); printf(\"RIGHT Press\\n\"); printf(\"MENU Press\\n\"); printf(\"SLEEP Press\\n\"); printf(\"UP Press\\n\"); printf(\"DOWN Press\\n\"); printf(\"VOL- Press\\n\");

case 1:

case 2: case 3:

case 4:

case 5:

case 6:

case 7:

}

}

}

}

}

default:

break;

while(1);

)

因篇幅问题不能全部显示,请点此查看更多更全内容