徐靖 梧州市第二职业中等专业学校
浅谈单片机技术课程实训项目的实践教学
徐靖 梧州市第二职业中等专业学校
单片机技术已经成为每个电气类技术工人必须掌握的技能在中职类学校的课程体系中,单片机是电子类专业的专业核心课程之一,如何更好地使中专生更好地学习这门专业课呢?笔者认为培养学生分析问题的能力,特别是单片机编程的多样性需要学生明白到单片机技术的灵活,实现同一结果可以有多种途径。
单片机 实训项目 技术
单片机从她诞生之日起,永葆青春,单片机被广泛应用于仪器仪表、工业自动控制、家用电器、医用设备、办公自动化设备、安全监控等领域,涵盖了人类生活的方方面面。单片机的应用,使电路设计重心由硬件设计(传统电路设计)向软件设计(微控制技术)转移。所以单片机技术已经成为每个电气类技术工人必须掌握的技能。
在中职类学校的课程体系中,单片机是电子类专业的专业核心课程之一,如何更好地使中专生更好地学习这门专业课呢?笔者认为培养学生分析问题的能力,特别是单片机编程的多样性需要学生明白到单片机技术的灵活,实现同一结果可以有多种途径。以下笔者举一个例子说明。(注:本文实例采用proteus软件进行仿真,编程软件采用keil u软件)题目如下:
如图1,at89c51芯片的P2端口八个位P2.0-P2.7依次连接八个发光二极管D8-D1,要求实现自上而下流动的流水灯(D8,D7,D6…D2,D1循环点亮)。
(1)掌握使用PROTEUS软件进行画电路图仿真。
(2)会使用keil c语言进行编程。
(3)会使用多种编程方法实现流水灯。
3.1 画仿真原理电路图
图1
图2
安装并打开proteus软件的“isis 7 professional”,在原理图绘制界面点击左上方的“P”按钮(如图2所示)。
在弹出的对话框“keyword”里输入单片机芯片型号“at89c51”,画好芯片后,再在“keyword”中输入“led-red”画出八盏红色发光二极管“D1—D8”。再在终端模块选项中画出地“ground”。最后将单片机芯片的P2口的八位(P2.0—P2.7)与八盏发光二极管相连画出如图1所示的仿真原理图。
如图1所示八盏发光二极管的负极都已经接地,数字电路里地用“0”表示且无法改变,所以我们只能通过改变单片机“I/O”输出电平的高低来改变发光二极管的亮灭。
3.2 编程
编程分为三种方法,每种方法侧重教学内容各不相同。
方法一:位定义编程,本方法是通过位定义语句“sbit”直接控制每一盏灯的亮灭,并通过自减语句“--”来实现延时功能。具体程序如下:
这种编程方法适合初学者教学,可以让初学者直接明了看到端口的每一位的亮灭,理解流水灯的工作流程,很好的帮助初学者理解单片机的“I/O”口结构。但是缺点就是编程语句过多重复,使程序看起来比较繁冗不够简洁。
方法二:端口赋值法,本方法是将流水灯的八种不同的状态(D1亮其余灭,D2亮其余灭……D8亮其余灭)分别写出数值。比如:D1亮其余灭,P2口八个位由高到低数值分别是:10000000,这是一个二进制数。我们将它转化为十进制数是:128,然后直接将128这个十进制数赋值给P2端口。具体编程如下:
这种方法就比位定义赋值简洁许多,还加深了同学们对二进制转十进制的理解,也懂得了整个端口赋值的方法。
方法三:数据循环移动法,本方法是将P2端口看成一个整体数据,流水灯相当于数据循环移动,具体编程如下:
本程序使用了数据循环移动函数,本程序设计简洁明了。
通过对这三种方法的比较,不能说谁优谁劣,侧重点各有不同,方法一适合刚接触单片机的人理解芯片I/O口的使用,方法二是在方法一的基础上整个端口赋值,方法三必须是对单片机构造有一定了解的基础上才能很好地理解。
这只是单片机技术课程实训项目的一个简单的例子,每个实训项目,都应该是有多种实现方法的,这就要求授课教师能够全面的引导学生,让学生自行思考,自己找到自己解决方法的途径,教师对学生自己想到的方法进行分析指导。
实训项目的开设,更多的是训练学生解决问题的能力,包括分析问题,提出解决思路,拟定实施方案,设计实现等。这样的技能训练才会收到实效。让课堂“活起来”,让学生“动起来”。
[1]刘守义等.单片机技术基础[M].西安电子科技大学出版社,2007
[2]王东峰等.单片机C语言应用100例[M].电子工业出版社,2009
[3]陈海宴.51单片机原理及应用[M].北京航空航天大学出版社,2010
徐靖(1982—),男,汉族,广西梧州人,本科,广西梧州市第二职业中等专业学校,助理讲师。