APP下载

矩阵LED的显示与滚动拓展

2014-07-28严海洲杜博闻

电脑知识与技术 2014年18期
关键词:嵌入式系统

严海洲++杜博闻

摘要:矩阵LED实验是《嵌入式系统导论》课程的重要实验项目。通过层次化设置该精品实验项目的内容和师生的有效互动,可以培养大多数本科生的创新思维和实践技能。通过课程内容设计、实验过程互动和自主设计实验的创新引导,课程延伸了学生的认识和思维过程、引导和开发了学生的创新能力,从而让他们在基础实验结果上进一步完成自主设计的实验内容。四年来的教学实践表明,本实验课程在本科生实践创新能力培养方面取得了满意的效果。

关键词:矩阵LED实验;实践创新能力引导;嵌入式系统

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2014)18-4324-06

The Expansion of The Displaying and Scrolling on Matrix LED

YAN Hai-zhou, DU Bo-wen

(School of Software Engineering, Tongji University, Shanghai 201804, China)

Abstract: The matrix LED experiment is an important project for Introduction to Embedded System. By set up course contents at several levels and effective interaction between student and teacher in this elaborate experimental project, most undergraduates would develop innovative thinking and practical skills. By well-designed course contents, interaction and innovative guidance of self-designed experiments, this course helps the students extend their cognition and thinking, to guide and develop their innovation ability, and therefore, students could accomplish their self-designed experiments based on fundamental experiment. According to the feedback of four years teaching practice, this experimental item has received satisfying results in undergraduate practical and creative ability training.

Key words: matrix LED experiment; practical and innovative ability guidance; embedded system

本矩阵LED实验项目基于EmbestEduKit-IV(选用S3C2410处理器子板)教学实验平台,所有的实例代码均在该教学实验平台上运行通过。

矩阵LED实验是与《嵌入式系统导论》课程配套的一个综合性实验项目,是整个嵌入式系统导论实验课程中的一个焦点和亮点。实验着重于培养学生的动手能力和嵌入式开发平台的基本应用技能,使学生理解嵌入式系统和嵌入式软件的特点,掌握嵌入式软件开发的基本特点、基本流程和基本方法。

实验的设计目标是培养学生综合运用知识能力、实践能力和创新意识。整体上,考虑到嵌入式系统实验要求知识的多面性与综合性,根据因材施教的教学原则,采用由基础实验设计到高级实验拓展的分级设计思想。

1 矩阵LED显示基础设计

1.1 硬件原理

本实验平台设计了一个16×16的矩阵屏,屏上有16×16个LED发光二极管,每个发光二极管可理解为一个像素点(故又称点阵LED,Dot LED),它们按行与列的形式整齐地排列,通过控制每个LED(像素点)的亮灭,矩阵屏可以显示英文文本、汉字,甚至图形。本实验平台的矩阵屏电路如图1所示。

矩阵屏上每一行16个LED,它们采用共阳极的接法;每一列16个LED,它们采用共阴极的接法。如图1所示:QL1~QL16是矩阵屏的行驱动信号,每一个信号控制一行;LR1~LR16是矩阵屏的列驱动信号,每一个信号控制一列。故通过利用相应行线输出高电平,相应列线输出低电平,就可以点亮矩阵屏上相应的LED。再结合一定的控制或扫描方法,就可以实现字幕、文字和图形的显示。

1.2 软件设计

要在矩阵屏上显示字母,就需要对字母编码(即字库码),再根据编码点亮矩阵屏上相应的LED。字库码表明了显示某个字母时矩阵屏上LED的亮灭布局,具体可见表1中示例的大写字母R对应的LED的亮灭布局。每一个LED灯的状态用一位二进制表示,1表示该LED亮,0表示该LED灭,一组16×8点阵的字库码,可以指定矩阵屏上16行8列LED的亮灭布局,每行8位正好为一个字节,16行即为16个字节。为了准确定位LED的亮灭布局,我们对不同的位设置不同的数值,表1显示了大写字母R的16进制编码经2进制到10进制演化而来的过程。

要在点阵屏上显示字符或图形,只需要按照字符或图形的编码,点亮矩阵屏上相应的LED即可。在显示时,根据字库码,对矩阵屏逐行动态扫描。函数的具体调用过程如下。

1)main()主函数首先依次调用系统初始化行数和矩阵屏初始化函数,然后调用char_out()字符输出函数,并向char_out()函数传递待输出的字符。endprint

2)char_out()字符输出函数调用refresh_assic_buffer()显示缓冲区刷新函数,同时传递待输出字符的字库码地址。

void char_out(u8 font, u8 *str)

{

u8 *str_ptr;

u8 glyph;

glyph = ( u8 )*str;

while(glyph != '\0' )

{

str_ptr = fonts[font].ascii_code + ( glyph - fonts[font].ascii_beg) * fonts[font].ascii_height;

refresh_assic_buffer(str_ptr); //显示缓冲区刷新函数

str++;

glyph = ( u8 )*str;

}}

3)refresh_assic_buffer()显示缓冲区刷新函数调用l_display_scroll()显示滚动驱动函数,同时传递显示缓冲区的地址。

在这里为了实现字符和图片的动态流动显示,程序设立了一个大小可容纳3个字符字库码(3×16字节)的缓冲区,该缓冲区中每次保存3个字符的字库码。

static void refresh_assic_buffer(u8 *str)

{

copy_data(&assic_buffer[0], &assic_buffer[16],16);

copy_data(&assic_buffer[16], &assic_buffer[32],16);

copy_data(&assic_buffer[32], str,16);

l_display_scroll(assic_buffer); //显示滚动驱动函数

}

4)l_display_scroll( )显示滚动驱动函数先后调用refresh_l_display_array()显示区字码库递进函数和led_update()矩阵屏亮灭更新函数。

static void l_display_scroll ( u8 *str )

{

int i;

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

{

refresh_l_display_array(i, str); //显示区字码库递进函数

led_update(); //矩阵屏亮灭更新函数

} }

5)refresh_l_display_array()显示区字码库递进函数刷新每个显示周期里矩阵屏上需要点亮的各像素点的对应数据,并写入l_display_array[]数组。

在本实验平台上,矩阵屏为16×16点阵,每屏可显示两个字母。因此在显示区字码库递进函数中,开辟有一个容量为2个字母字库码的显示区。该显示区用来接受经显示缓冲区刷新函数处理后传递过来的字库码。为后续程序根据显示缓冲区的内容控制点阵屏上LED灯的亮灭提供了前提。

同样,为了在后续的显示过程中达到流动的效果,在本程序里每次将该显示区中的前两个字符字库码的各字节左移bits位与其后第16字节右移8-bits位相或的结果复制到显示区中,直到第一个字符完全移出、第三个字符完全移入时,更新缓冲区。然后采用动态扫描的方法来实现字符、图形的显示。每次扫描一行,这样依次循环扫描16行,如此循环即可实现字符的流动显示。

static void refresh_l_display_array(u8 bits, u8 *str)

{

u32 i;

u32 remaining_bits = 8-bits;

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

{

l_display_array[2*i] = (*str<>remaining_bits);

l_display_array[2*(i+1)-1] = (*(str+16)<>remaining_bits);

str++; //当第一个字符完全移出、第三个字符完全移入时,更新缓冲区

}}

6)led_update()矩阵屏亮灭更新函数首先是控制矩阵屏的刷新周期,或者说延时的时间,然后是调用led_char_disp()矩阵屏显示函数。

static void led_update(void)

{

int j = 20;

while(j—) //控制矩阵屏的刷新周期

{

led_char_disp();

}}

7)led_char_disp()矩阵屏显示函数根据l_display_array[]数组中的值点亮矩阵屏中对应的像素点,最终完成一个显示周期里的矩阵屏显示。为了能够稳定地控制点阵屏的显示,实验平台采用CD4094作为行线和列线扫描信号的控制芯片。扫描时,行线的数据与列线的数据都通过CD4094锁存起来,然后经过片选使能再同时输出。经过前述的延时处理,就可以实现字符、图片的动态显示。当矩阵屏显示一个字符或图案时,该字符或图案对应段的LED发光二极管是轮流点亮的,即控制信号按一定周期有效。在轮流点亮的过程中,点亮时间极为短暂(约1ms),由于人的视觉暂留现象及发光二极管的余辉效应,矩阵屏的显示依然是非常清晰、稳定的。

void led_char_disp(void)

{

UINT8T i=0;

UINT8T j=2,k=0;

UINT16T x;

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

dispram[i] = ~l_display_array[i];

i=0;

while(i < 16)

{

Rstr_L; // Enable RSTR

Lstr_L; // Enable LSTR

DisEn_Dataout; // lock the data

do { // Write the row data

j—;

write_R4094(dispram[i * 2 + j]);

}while(j);

x=~(0x8000 >> i); // Write one list data

write_L4094(x);

En_Dataout; // Output the data

for(k = 0;k < 250; k++);

i++;

j = 2;

}}

2 矩阵LED显示内容的拓展

用矩阵屏的一半16×8点阵显示一个字母之类简单字符是没有问题,但要显示汉字、尤其是复杂的汉字时就有些困难了。这就需要使用整个矩阵屏的16×16点阵来显示。表2显示了汉字“严”的16进制编码经2进制到10进制演化而来的过程。

可见,显示汉字的时候,在矩阵屏上实际采用的是一种左右拼接的方法。在程序里的实现方法是:首先在按照ASCII码值的顺序编制的常用字符的字码库里挑选2个在你的应用中没有用到的2个字符,如$和%,把$在字码库中的16进制编码替换为“严”的左半边的16进制编码,同样把%在字码库中的16进制编码替换为“严”的右半边的16进制编码。但在main()函数中,调用char_out()函数时要写作char_out(0,"$%"),而不能写作char_out(0,"严"),原因是只有这样char_out()函数中的“str_ptr = fonts[font].ascii_code + ( glyph - fonts[font].ascii_beg) * fonts[font].ascii_height;”语句才能顺利根据$和%的ASCII码值找到“严”的左右部分在字码库中的编码。图1便是根据此办法编码并成功显示的汉字“嘉”,其中第三笔“一”上有两个断点,就是因为编码时有意把这2个应该设置为1的像素设置为0了。

同样道理,如果你要做一个爱心的图案“?”,你也可以对这颗爱心的左右部分分别编码。任何其他较大的图案你都可以分为左右两部分分别编码。

3 矩阵LED显示方法的拓展

在矩阵LED实验中可以较自由地创造一些独特、新颖的设计:如字符的阴阳文反转、字符和背景的反转、字符显示的正向和反向循环,等等。现择要说明若干。

3.1 字符显示由正向循环改为反向循环

1) 修改refresh_l_display_array()显示区字码库递进函数,改变其显示字符的顺序和显示的滚动方向。

{

l_display_array[2*(i+1)-1] = (*(str+32)>>bits) |(*(str+16)<

l_display_array[2*i] = (*(str+16)>>bits) |(*(str)<

str++;

}

2) 修改refresh_assic_buffer()显示缓冲区刷新函数,改变其读取字库码的方向。

static void refresh_assic_buffer(u8 *str)

{

copy_data(&assic_buffer[32], &assic_buffer[16],16);

copy_data(&assic_buffer[16], &assic_buffer[0],16);

copy_data(&assic_buffer[0], str,16);

l_display_scroll(assic_buffer);

}

3) 修改后的程序运行结果见图2,原本正向左循环的“I?U”变为反向右循环了。

图2 反向右循环的“I?U”的局部显示

3.2 字符的阳刻和阴刻效果

所谓字符阳刻的效果是指实心字,字符阴刻的效果是指空心字。

1) 方法一:修改字符的字库码。

将原本阳刻的字符的字库码,按位取反,使得在矩阵屏上原本亮的LED二极管不亮,原本不亮的设置为亮。图3就是同时显示的阴刻和阳刻的、笔画较少的汉字亓(音 qí )。

2) 方法二:修改led_char_disp()矩阵屏显示函数。对显示数组l_display_array[]中的值不再按位取反。

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

dispram[i] = l_display_array[i];

图3 阴刻和阳刻的汉字“亓”

4 结束语

在实验课中,先是简短的演示,让学生们看到实验的结果,并提示他们观察的要点,然后的教学过程按照“讲、做、思、创”的四阶段模式开展。

讲,即实验项目相关知识的讲解。重点讲解在实验过程中涉及到的理论知识,可能会遇到的问题以及一些具体的建议。对于样例代码进行简单的分析,解释其运行机理,提示学生在样例代码的基础之上可实施的创新方向。

做,即带领同学们实施实验项目。让每个学生自己动手实际参与到实验中去,老师与助教在课堂内巡回协助解决他们在实验中遇到的各种问题。让学生了解嵌入式系统设备配置的基本过程,应对不同外设条件的设置与调用方法,熟悉和理解整个项目实现的软硬件基础、程序的调用机制和硬件的工作过程。

思,提出若干问题供学生思考实践。帮助他们在现有实验平台上了解到更多的知识,思考更多可以调用的功能和应用。针对样例代码本身提出一些思考方向;或者对原有代码的执行效率提出改进,分析思路与方法。

创,指导学生在完成思考题以后按照自己设想的思路去创造新的实验结果。以实验内容为依托,引导学生加入自己的思考,去构思和实现新的功能,达到能够灵活运用现有专业知识的目的。在原有样例代码的基础之上,实现新的功能扩展与应用。

培养学生的实践能力和创新精神是当前实验教学的一个重要问题。要在实验过程中,抓住学生的注意力、调动他们的积极性和主动性,就必须注意实验内容的趣味性、实验内容的可塑性和实验难度的层次性,让每个学生都有自己思考和动手的空间。学生思考、尝试和提问的实验过程,就是他们不断分析问题和解决问题的过程,这是学生实践技能和创新能力培养的有效方法。

参考文献:

[1] Embest教学业务线.基于S3C2410嵌入式MDK开发实验与实践[M].深圳市英蓓特信息技术有限公司, 2008:156-161.

[2] 徐宁.“精品实验项目”建设重在诠释经典和方法创新[J].实验室研究与探索,2013,32(2):112-115.

[3] 魏恒义.计算机网络专题实验中的创新能力培养[J].实验室研究与探索,2013,32(8):97-101.

void led_char_disp(void)

{

UINT8T i=0;

UINT8T j=2,k=0;

UINT16T x;

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

dispram[i] = ~l_display_array[i];

i=0;

while(i < 16)

{

Rstr_L; // Enable RSTR

Lstr_L; // Enable LSTR

DisEn_Dataout; // lock the data

do { // Write the row data

j—;

write_R4094(dispram[i * 2 + j]);

}while(j);

x=~(0x8000 >> i); // Write one list data

write_L4094(x);

En_Dataout; // Output the data

for(k = 0;k < 250; k++);

i++;

j = 2;

}}

2 矩阵LED显示内容的拓展

用矩阵屏的一半16×8点阵显示一个字母之类简单字符是没有问题,但要显示汉字、尤其是复杂的汉字时就有些困难了。这就需要使用整个矩阵屏的16×16点阵来显示。表2显示了汉字“严”的16进制编码经2进制到10进制演化而来的过程。

可见,显示汉字的时候,在矩阵屏上实际采用的是一种左右拼接的方法。在程序里的实现方法是:首先在按照ASCII码值的顺序编制的常用字符的字码库里挑选2个在你的应用中没有用到的2个字符,如$和%,把$在字码库中的16进制编码替换为“严”的左半边的16进制编码,同样把%在字码库中的16进制编码替换为“严”的右半边的16进制编码。但在main()函数中,调用char_out()函数时要写作char_out(0,"$%"),而不能写作char_out(0,"严"),原因是只有这样char_out()函数中的“str_ptr = fonts[font].ascii_code + ( glyph - fonts[font].ascii_beg) * fonts[font].ascii_height;”语句才能顺利根据$和%的ASCII码值找到“严”的左右部分在字码库中的编码。图1便是根据此办法编码并成功显示的汉字“嘉”,其中第三笔“一”上有两个断点,就是因为编码时有意把这2个应该设置为1的像素设置为0了。

同样道理,如果你要做一个爱心的图案“?”,你也可以对这颗爱心的左右部分分别编码。任何其他较大的图案你都可以分为左右两部分分别编码。

3 矩阵LED显示方法的拓展

在矩阵LED实验中可以较自由地创造一些独特、新颖的设计:如字符的阴阳文反转、字符和背景的反转、字符显示的正向和反向循环,等等。现择要说明若干。

3.1 字符显示由正向循环改为反向循环

1) 修改refresh_l_display_array()显示区字码库递进函数,改变其显示字符的顺序和显示的滚动方向。

{

l_display_array[2*(i+1)-1] = (*(str+32)>>bits) |(*(str+16)<

l_display_array[2*i] = (*(str+16)>>bits) |(*(str)<

str++;

}

2) 修改refresh_assic_buffer()显示缓冲区刷新函数,改变其读取字库码的方向。

static void refresh_assic_buffer(u8 *str)

{

copy_data(&assic_buffer[32], &assic_buffer[16],16);

copy_data(&assic_buffer[16], &assic_buffer[0],16);

copy_data(&assic_buffer[0], str,16);

l_display_scroll(assic_buffer);

}

3) 修改后的程序运行结果见图2,原本正向左循环的“I?U”变为反向右循环了。

图2 反向右循环的“I?U”的局部显示

3.2 字符的阳刻和阴刻效果

所谓字符阳刻的效果是指实心字,字符阴刻的效果是指空心字。

1) 方法一:修改字符的字库码。

将原本阳刻的字符的字库码,按位取反,使得在矩阵屏上原本亮的LED二极管不亮,原本不亮的设置为亮。图3就是同时显示的阴刻和阳刻的、笔画较少的汉字亓(音 qí )。

2) 方法二:修改led_char_disp()矩阵屏显示函数。对显示数组l_display_array[]中的值不再按位取反。

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

dispram[i] = l_display_array[i];

图3 阴刻和阳刻的汉字“亓”

4 结束语

在实验课中,先是简短的演示,让学生们看到实验的结果,并提示他们观察的要点,然后的教学过程按照“讲、做、思、创”的四阶段模式开展。

讲,即实验项目相关知识的讲解。重点讲解在实验过程中涉及到的理论知识,可能会遇到的问题以及一些具体的建议。对于样例代码进行简单的分析,解释其运行机理,提示学生在样例代码的基础之上可实施的创新方向。

做,即带领同学们实施实验项目。让每个学生自己动手实际参与到实验中去,老师与助教在课堂内巡回协助解决他们在实验中遇到的各种问题。让学生了解嵌入式系统设备配置的基本过程,应对不同外设条件的设置与调用方法,熟悉和理解整个项目实现的软硬件基础、程序的调用机制和硬件的工作过程。

思,提出若干问题供学生思考实践。帮助他们在现有实验平台上了解到更多的知识,思考更多可以调用的功能和应用。针对样例代码本身提出一些思考方向;或者对原有代码的执行效率提出改进,分析思路与方法。

创,指导学生在完成思考题以后按照自己设想的思路去创造新的实验结果。以实验内容为依托,引导学生加入自己的思考,去构思和实现新的功能,达到能够灵活运用现有专业知识的目的。在原有样例代码的基础之上,实现新的功能扩展与应用。

培养学生的实践能力和创新精神是当前实验教学的一个重要问题。要在实验过程中,抓住学生的注意力、调动他们的积极性和主动性,就必须注意实验内容的趣味性、实验内容的可塑性和实验难度的层次性,让每个学生都有自己思考和动手的空间。学生思考、尝试和提问的实验过程,就是他们不断分析问题和解决问题的过程,这是学生实践技能和创新能力培养的有效方法。

参考文献:

[1] Embest教学业务线.基于S3C2410嵌入式MDK开发实验与实践[M].深圳市英蓓特信息技术有限公司, 2008:156-161.

[2] 徐宁.“精品实验项目”建设重在诠释经典和方法创新[J].实验室研究与探索,2013,32(2):112-115.

[3] 魏恒义.计算机网络专题实验中的创新能力培养[J].实验室研究与探索,2013,32(8):97-101.

void led_char_disp(void)

{

UINT8T i=0;

UINT8T j=2,k=0;

UINT16T x;

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

dispram[i] = ~l_display_array[i];

i=0;

while(i < 16)

{

Rstr_L; // Enable RSTR

Lstr_L; // Enable LSTR

DisEn_Dataout; // lock the data

do { // Write the row data

j—;

write_R4094(dispram[i * 2 + j]);

}while(j);

x=~(0x8000 >> i); // Write one list data

write_L4094(x);

En_Dataout; // Output the data

for(k = 0;k < 250; k++);

i++;

j = 2;

}}

2 矩阵LED显示内容的拓展

用矩阵屏的一半16×8点阵显示一个字母之类简单字符是没有问题,但要显示汉字、尤其是复杂的汉字时就有些困难了。这就需要使用整个矩阵屏的16×16点阵来显示。表2显示了汉字“严”的16进制编码经2进制到10进制演化而来的过程。

可见,显示汉字的时候,在矩阵屏上实际采用的是一种左右拼接的方法。在程序里的实现方法是:首先在按照ASCII码值的顺序编制的常用字符的字码库里挑选2个在你的应用中没有用到的2个字符,如$和%,把$在字码库中的16进制编码替换为“严”的左半边的16进制编码,同样把%在字码库中的16进制编码替换为“严”的右半边的16进制编码。但在main()函数中,调用char_out()函数时要写作char_out(0,"$%"),而不能写作char_out(0,"严"),原因是只有这样char_out()函数中的“str_ptr = fonts[font].ascii_code + ( glyph - fonts[font].ascii_beg) * fonts[font].ascii_height;”语句才能顺利根据$和%的ASCII码值找到“严”的左右部分在字码库中的编码。图1便是根据此办法编码并成功显示的汉字“嘉”,其中第三笔“一”上有两个断点,就是因为编码时有意把这2个应该设置为1的像素设置为0了。

同样道理,如果你要做一个爱心的图案“?”,你也可以对这颗爱心的左右部分分别编码。任何其他较大的图案你都可以分为左右两部分分别编码。

3 矩阵LED显示方法的拓展

在矩阵LED实验中可以较自由地创造一些独特、新颖的设计:如字符的阴阳文反转、字符和背景的反转、字符显示的正向和反向循环,等等。现择要说明若干。

3.1 字符显示由正向循环改为反向循环

1) 修改refresh_l_display_array()显示区字码库递进函数,改变其显示字符的顺序和显示的滚动方向。

{

l_display_array[2*(i+1)-1] = (*(str+32)>>bits) |(*(str+16)<

l_display_array[2*i] = (*(str+16)>>bits) |(*(str)<

str++;

}

2) 修改refresh_assic_buffer()显示缓冲区刷新函数,改变其读取字库码的方向。

static void refresh_assic_buffer(u8 *str)

{

copy_data(&assic_buffer[32], &assic_buffer[16],16);

copy_data(&assic_buffer[16], &assic_buffer[0],16);

copy_data(&assic_buffer[0], str,16);

l_display_scroll(assic_buffer);

}

3) 修改后的程序运行结果见图2,原本正向左循环的“I?U”变为反向右循环了。

图2 反向右循环的“I?U”的局部显示

3.2 字符的阳刻和阴刻效果

所谓字符阳刻的效果是指实心字,字符阴刻的效果是指空心字。

1) 方法一:修改字符的字库码。

将原本阳刻的字符的字库码,按位取反,使得在矩阵屏上原本亮的LED二极管不亮,原本不亮的设置为亮。图3就是同时显示的阴刻和阳刻的、笔画较少的汉字亓(音 qí )。

2) 方法二:修改led_char_disp()矩阵屏显示函数。对显示数组l_display_array[]中的值不再按位取反。

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

dispram[i] = l_display_array[i];

图3 阴刻和阳刻的汉字“亓”

4 结束语

在实验课中,先是简短的演示,让学生们看到实验的结果,并提示他们观察的要点,然后的教学过程按照“讲、做、思、创”的四阶段模式开展。

讲,即实验项目相关知识的讲解。重点讲解在实验过程中涉及到的理论知识,可能会遇到的问题以及一些具体的建议。对于样例代码进行简单的分析,解释其运行机理,提示学生在样例代码的基础之上可实施的创新方向。

做,即带领同学们实施实验项目。让每个学生自己动手实际参与到实验中去,老师与助教在课堂内巡回协助解决他们在实验中遇到的各种问题。让学生了解嵌入式系统设备配置的基本过程,应对不同外设条件的设置与调用方法,熟悉和理解整个项目实现的软硬件基础、程序的调用机制和硬件的工作过程。

思,提出若干问题供学生思考实践。帮助他们在现有实验平台上了解到更多的知识,思考更多可以调用的功能和应用。针对样例代码本身提出一些思考方向;或者对原有代码的执行效率提出改进,分析思路与方法。

创,指导学生在完成思考题以后按照自己设想的思路去创造新的实验结果。以实验内容为依托,引导学生加入自己的思考,去构思和实现新的功能,达到能够灵活运用现有专业知识的目的。在原有样例代码的基础之上,实现新的功能扩展与应用。

培养学生的实践能力和创新精神是当前实验教学的一个重要问题。要在实验过程中,抓住学生的注意力、调动他们的积极性和主动性,就必须注意实验内容的趣味性、实验内容的可塑性和实验难度的层次性,让每个学生都有自己思考和动手的空间。学生思考、尝试和提问的实验过程,就是他们不断分析问题和解决问题的过程,这是学生实践技能和创新能力培养的有效方法。

参考文献:

[1] Embest教学业务线.基于S3C2410嵌入式MDK开发实验与实践[M].深圳市英蓓特信息技术有限公司, 2008:156-161.

[2] 徐宁.“精品实验项目”建设重在诠释经典和方法创新[J].实验室研究与探索,2013,32(2):112-115.

[3] 魏恒义.计算机网络专题实验中的创新能力培养[J].实验室研究与探索,2013,32(8):97-101.

猜你喜欢

嵌入式系统
Teaching Research on IoT and—Embedded System of Software Engineering
面向应用的智能专业嵌入式系统教学
办公自动化系统的设计
嵌入式系统课程“中断、异常与事件”教学实践及启示
面向实践创新人才培养的嵌入式系统教学研究