王爱华
(上海师范大学信息与机电工程学院,上海 201418)
单片机课程是电子类专业的必修课程,实验教学中有内容简单和实验箱陈旧等问题。学生按部就班地上课和做实验,学生学习积极性不高。
学生通过实验验证才能更好地掌握理论知识,通过实验教学改革,使得学生高效率学习单片机,能够有效激发学生的学习兴趣,提高学生的调试和设计能力,培养学生的实践能力。
以前理论课时多,实验课时少,学生觉得这门课枯燥泛味。存在实验内容简单、教学仪器有限、实验方法单一、理论实践脱节等问题,学生做实验的时候按实验指导书接几根线,很快完成实验,实验报告敷衍了事。考核方式不全面,实验考试占比例小,期末笔试占比例大。
实验用IAP15W4K58S4芯片,是宏晶科技提供的。采用C语言编写程序,在以前开设的验证性实验的基础上增加难度高的实验,实验有:I/O口、外部中断、定时器/计数器、串口通信、A/D转换、步进电机以及LCD(1602)显示实验等。
选择Proteus 和keil uvision5软件组成虚拟实验系统,学生在课外用这两个软件对自己编写的程序进行仿真调试,通过微信、QQ和教师互动。在实验课上改用开发板调试。实验内容有基础题和提高题。教师适当地运用讲授法、讨论法、练习法等教学方法,启发学生勤思考和勤动手。学生调试出程序的时候,自豪感油然而生。教师不仅要讲解实验内容和回答学生提问,而且每堂课都要仔细检查学生实验结果并打分。学生还可以在课外时间进入开放实验室,编写和调试程序。教师每周有固定的课外坐班答疑时间,教师要鼓励学生多参与各类电子竞赛,以学促赛,以赛促学。
学生在课外用Proteus软件画原理图,在keil uvision5中建立新的设计工程,添加新的.C文件到当前工程,把经过编译后生成.hex文件加载到51单片机中,然后进行系统仿真。因为Proteus软件无法仿真IAP15W4K58S4单片机,所以进入实验室后需要稍微改变程序,然后在开发板上调试出实验结果。
教师在每次实验中逐个查看学生实验现象并打分,很多学生为了得到高分,专心细致地调试程序。课程总评成绩根据出勤、实验、作业、上机考及笔试等计算,实验考试占比例增大,期末笔试占比例减少。
用宏晶科技的开发板做实验,使用STC官方软件下载程序。以下是IAP15W4K58S4通道P1.1输入的模拟量,A/D转换后的结果(模拟电压形式)显示在数码管上的实例,P0口输出段码,P2口输出位码。部分程序如下:
void main(void)
{u32 Vin=0; u16 ADval=0;
Pin_Mode();ADC_Initial();
while(1)
{ADval = ADC_Convert();
Vin = VCC * ADval/1023;
Da_Buf[0]= Vin % 10;
。。。。。。//省略
SEG7_Display();}}
u16 ADC_Convert(void)
{u16 ADC_Da = 0;
while((ADC_CONTR & 0x10)!= 0x10);ADC_CONTR = 0x81;
ADC_Da=(ADC_RES << 2)|(ADC_RESL & 0x03);
ADC_CONTR = 0x89;return ADC_Da;}
图1 A/D转换后的结果显示在数码管上
通过更新上课教材、实验教材以及实验开发板,更新实验内容,增加实验课时,运用新的教学方法,改革实验考核方式,培养学生的学习兴趣,提高学生的设计能力和创新能力,取得了较好的教学效果。