基于全人发展教育理念的课程改革探索
——以《单片机原理及应用》为例

2019-11-06 07:19程阔华
汽车实用技术 2019年20期
关键词:单片机程序软件

程阔华

(杭州万向职业技术学院,浙江 杭州 310023)

前言

全人发展指全面、和谐发展。我们学院以全课程育人、全方位育人为特色,倡导“学为中心”的课堂革新,培养能自律自主,有国际视野、创新创业、中英双语和终生学习能力的学生。目前,人工智能、机器人在各行业的发展如火如荼日新月异。综合国力竞争说到底是人才竞争,汽车专业的学生学习《单片机原理及应用》这门课是非常有必要的,这门课的教学同样也承担着培养学生的重任。

1 教学理念

《单片机原理及应用》是高等职业院校新能源汽车技术专业等以设计、制作为关键技能的相关专业的一门专业基础课。课程理念和设计思路要体现“三化三元素”的要求,建立在对职业活动的调研和分析基础上,体现工学结合职业能力培养特点和全人发展培养理念,构建行动导向的教学模式,摒弃基于学科体系的传统教学模式,摆脱以知识内容灌输为主的教学方法,教学内容设计以实际工作过程和工作任务为载体,采用模块教学,设计学习情境并以任务形式加以实施。

通过本课程的学习,学生能初步掌握单片机的原理及其在日常生活中的应用,学会单片机基本设计、制作、编程等,养成良好的职业道德与规范等综合素养,培养学生动手动脑能力、创新能力和分析问题解决问题的能力, 为将来从事新能源汽车电子电器新产品设计开发等工作打下基础。

2 教学条件

单片机理实一体化教室每台电脑上安装有Keil 软件、Proteus 仿真软件、stc-isp 烧结软件,C51 实验板。用Keil 软件完成C51 程序的编制(c 语言)与功能调试。还可以在Proteus 界面上用仿真电路测试,但更多地是直接用C51 实验板验证结果。

3 教学实施

3.1 模仿编程

在理实一体化教室上课,按照老师的指导学生边学边做,动手又动脑。这个阶段可以培养学生的模仿能力,这也是很重要的,它能让学生积聚能量,培养自信心,掌握基本的知识。Keil 软件的界面是英文的,我们不要汉化它,这样可以把菜单上一些英文单词熟悉,经常点击你就会记住了。

完成教学任务:点亮一个LED,自己好像有成就感了。如果让你去做个流水彩灯,开发一个简单的产品,只要加上驱动电路,就可以做出漂亮的流动彩灯了!

只要你想得到,led 灯想怎么流就怎么流!在这时可以“大展宏图”,放飞自己的思想。

3.2 修改、调试

(1)计算机编程工作是费时费力的,特别是脑力。如果你没有耐心恒心是难于完成工作的。当你的知识积累到一定的程度,你就能看得懂程序了。自己会写程序,也为看懂打下了基础。

(2)如果出现了错误,一般软件会给出提示,根据它去修改。所以要有一定的英语水平。当然你在写的时候要小心点,尽量不要出现低级错误,比如单词的拼写错误。

在Proteus 界面上仿真能成功,但是在实验板上“没有反映”。是什么原因呢?此处培养了学生分析问题解决问题的能力,要勇于探索找到问题的症结,不怕困难。

在老师的指导下,原来是接口不同。实验板的led 发光二极管接在P1 口上,数码管接在P0 口上,并且由P2^6、P2^7控制。把程序稍作修改就成功了,这样学生就尝到了成功的喜悦,得到了学习的乐趣。举一反三,依此类推,触类旁通。“心有灵犀一点通”,学生打好了基础,掌握了一些基本的技能,加上老师的 “点拔”,自然就会开窍了。

科学是严谨的,来不得半点的马虎,更不能敷衍搪塞,有一个地方出了问题哪怕是标点符号出错程序也不能通过。经常会出现中文的分号“;”不行,要用英文的分号“;”。但是我们可以摸着石头过河,有错改错,改了就行。要大胆地试,反复地试。相信总会成功。

3.3 创新、提升

要善于提出问题,灵活运用知识。我们已经学习了led灯点亮、数码管的显示、LCD 液晶显示。数码管能显示led灯的盏数,那么能否用1602 液晶显示led 灯盏数呢?

借鉴别人的程序,也算参考吧,但不能照抄照搬,要吸收别人的经验取长补短。注意要有所创新,“一个国家,一个民族如果没有创新,也就输掉了未来”。高新技术、核心技术是买不来的,要不来的。所以在本课程的学习中要贯穿创新的理念,教书育人。

3.4 克服存在的困难

课堂上的时间不够用,课外要花一点时间,刚开始的一个星期可能要花的时间多些,头痛的时间也会多些,这是“黎明前的黑暗”,要冲过去。

3.5 课程内容结合汽车专业的实例

学以致用,我们的学习是要有成果应用的,往大的方面说,回报社会造福人类。结合汽车专业知识老师布置一个大作业:设计出汽车转向灯的控制程序。实验板显示如图1 所示。

允许同学们在课后,以小组的形式共同完成,这样培养了学生的协作精神,使得同学之间的感情融洽。

图1 模拟汽车转向灯闪亮

程序完整代码如下:

#include <reg52.h>

#define uchar unsigned char

#define uint unsigned int

uint m1,m2,b;

sbit ldeng=P1^0; //led 灯定义

sbit rdeng=P1^7;

sbit S2=P3^4; //独立按键位定义

sbit S3=P3^5;

sbit S4=P3^6;

sbit S5=P3^7;

uchar a,flag1,flag2,flag3;

void display1(uint a1);

void display2(uint a1);

void delay(uint x1) //延时函数

{for(m1=x1;m1>0;m1--)

{for(m2=120;m2>0;m2--);

}

}

void init()

{TMOD=0x01; //设置定时器0 为工作方式1

TH0=(65536-50000)/256;//给定时器0 装初值,12M 晶振定时时间为50ms

TL0=(65536-50000)%256;

EA=1; //开总中断

ET0=1; //开定时器0 分开关

TR0=1; //启动定时器0

}

void timer0() interrupt 1//中断服务程序,其中"1"是定时器0 的入口序号

{TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

a++;

if(a==20) a=0;

}

void main()//主函数

{ init();

flag1=0;

flag2=0;

flag3=0;

while(1)

{P1=0xff;

if (flag2==0) {

if(S4==0) //右转向

{delay(50); //延时

if(S4==0) //即消除前沿抖动

{TR0=1;

while(!S4)

{display1(a);

delay(20) ;

flag1=1;

flag2=0;

flag3=0;

}

}

}

}

if (flag1==0) {

if(S2==0) //左转向

{delay(50);

if(S2==0)

{

TR0=1;

while(!S2)

{display2(a);

delay(20) ;

flag2=1;

flag1=0;

flag3=0;

}

}

}

}

if(S5==0) //双闪

{delay(50);

if(S5==0)

{ b++;

TR0=1;

display1(a);

delay(50) ;

display2(a);

delay(50) ;

flag1=1;

flag2=1;

flag3=1;

if (b%2==0) {

b=0;

flag1=0;

flag2=0;

}

}

}

if (flag1==1 ){ display1(a); delay(20) ;}

if (flag2==1 ){ display2(a); delay(20) ;}

if (flag3==0) {

if(S3==0) //停止

{delay(50);

if(S3==0){

TR0=0;

while(!S3)

{flag1=0;

flag2=0;

}

}

}

}

}

}

void display1(uint a1)

{ P1=0xff;

if (a1%2==1) ldeng=0;

else ldeng=1;

}

void display2(uint a1)

{P1=0xff;

if (a1%2==1) rdeng=0;

else rdeng=1;

}

3.6 检验结果

学生展示自己的成果。通过这个大作业把所学到的有关知识(循环语句、判断语句、函数、中断、延时等)融会贯通,按钮控制led 灯分别点亮并且闪烁,并且学会调试。如果发现与实际不相符合及时进行修改,比如编写的程序使得:按了左转向按钮再按右转向按钮时会同时亮灯,这是不行的。

4 结论

全人发展,有利于提高教学质量,提升教学的时效性。在《单片机原理及应用》的教学中,充分调动学生的学习兴趣,结合汽车专业课的知识应用单片机编程设计,同时培养了学生全方位的能力。如果学生想进一步发展还可深造,创新开发新的产品这都是有可能的,正所谓 “师傅引进门,修行靠个人”。

猜你喜欢
单片机程序软件
禅宗软件
工业软件 自主创新
给Windows添加程序快速切换栏
基于单片机的层次渐变暖灯的研究
基于单片机的多功能智能插排
基于单片机的便捷式LCF测量仪
试论我国未决羁押程序的立法完善
“程序猿”的生活什么样
英国与欧盟正式启动“离婚”程序程序
即时通讯软件WhatsApp