基于项目任务驱动的”理虚实一体化”教学设计与研究: 以“单片机技术应用”课程教学为例

刘立兵[1] 周未[1] 陈沁汝[1] 官守东[1] 李亚林[1]

(1.荆门职业学院 电子信息系,湖北 荆门 448000 )

摘要: 本文旨在总结《单片机技术应用》这门课程的教学过程,分享“项目任务驱动”单片机课程“理虚实一体化”教学设计的实例,在实例中将具体的教学设计思路、教学过程、教学总结等与其他高职院校相应专业课程的教师交流,以期望进一步提升自己的教学水平,促进高职院校专业核...
  • DOI:

    10.13738/j.cnki.acc.qklw60536

  • 专辑:

    科学Ⅰ辑;信息科技

  • 专题:

    信息、科学;综合科技

  • 分类号:

    G90;N92

摘要:本文旨在总结《单片机技术应用》这门课程的教学过程,分享“项目任务驱动”单片机课程“理虚实一体化”教学设计的实例,在实例中将具体的教学设计思路、教学过程、教学总结等与其他高职院校相应专业课程的教师交流,以期望进一步提升自己的教学水平,促进高职院校专业核心课程“理虚实一体化”教学模式在高职教学中的发展,有效提升高职院校专业核心课程的教学质量。

关键字:项目任务驱动、理虚实一体化、单片机技术应用

引言:《单片机技术应用》这门课程是高职院校机电相关专业的专业核心课程。单片机的课程教学难度很大,究其原因是要求学生有电子线路设计、C语言程序设计、EDA软件及单片机程序编译平台软件等知识基础。面对高职院校的学生知识基础普遍薄弱的学情,必须调整传统的教学思路:首先在教学设计环节要思考如何引导学生的学习兴趣,其次在教学过程中让学生感受到参与课堂、融入课堂,通过学生自己完成项目任务来体会学生学习单片机的意义。然后再穿插补充讲解一下基础知识,让学生觉得掌握起来知识面很广但都很简单,最后指导学生独立完成一个个的子项目,让学生建立学会单片机的信心。

正文:教学案例1“数码管的静态动态显示”

课程目标:

(1)知识目标

1、了解单片机开发项目的基本流程;

2、理解数码管的结构原理和控制方式;

3、掌握“Protues”软件编辑仿真原理图的流程;

4、掌握“Keil C51”软件编辑单片机驱动程序的流程;

5、理解项目任务实现的实践过程。

(2)能力目标

1、提升学生对基础电路的理解;

2、提高学生对基础软件的运用能力;

3、增强学生对单片机课程的兴趣,强化学会本课程的信心。

教学过程:

(一)课程导入

上一节课我们学习了利用单片机的I/O口控制LED灯的项目,理解了我们可以利用C语言编译的程序烧入单片机,单片机的I/O口能够按照C语言设计的程序输出高电平和低电平,从而控制LED灯的点亮和熄灭。

今天我们来学习利用单片机的I/O口控制数码管的项目,从本质上来讲这种控制方式和控制LED灯是相同的,只不过I/O口控制的LED灯是单个独立显示,而数码管则是一组8个灯一起控制而已。数码管就是8个LED灯按照如下固定的组合排在一起构成的。

                            基于项目任务驱动的”理虚实一体化”教学设计与研究: 以“单片机技术应用”课程教学为例(图1) 

图1 数码管的结构图

 

  如上图所示,假设我们想让数码管显示数字“1”,只需要点亮“b”和“c”两个LED灯,这样看上去就比较像数字“1”。7个细长型的LED灯构成数字“8”的形状,小圆形的“dp”LED灯用来表示小数点(多个数码管一起使用的时候用到)。这里需要说明一下,用数码管显示数字和字母的时候,只能近似的表示,按照国际上公认的定义来处理,比如显示数字“4”,就只能点亮“b”、“c”、“f”、“g”4个LED灯去类似的显示,与实际书写的标准数字有一定的区别。

(二)电路原理分析、实现过程剖析

在实际的电路中,我们采用单片机的P0口控制数码管的8个LED灯,为了维持稳定的电平,通常在单片机的P0口和数码管之间加一个锁存器(锁存芯片74HC573)或者是总线控制器(74HC245)。另外数码管的接地端用P2 端口来控制。这样就看成构成了两路控制,P0端口控制数码管显示什么数据;接地端用P2口控制哪个数码管点亮(显示)。如果是8个数码管构成一组一起显示或者选择性显示,我们通常在P2端口和数码管的接地端之间加入三八译码器(只需要P2口的3个端口就可以8个数码管的接地端是否导通)。具体的电路图如图2所示,电路图从Protues软件上获取的仿真器件模型,采用的电子元器件都是仿真模型,与实际的元件相比有部分添加和省略,比如单片机的电源电路部分被省略。

基于项目任务驱动的”理虚实一体化”教学设计与研究: 以“单片机技术应用”课程教学为例(图2) 

图2 AT89C52单片机控制数码管静态显示原理图

  按照我们上面的分析思路,在KeilC51软件编译平台编辑程序,在main()主函数内,将P0端口赋值0x06;将P2^2、P2^3、P2^4三个端口都赋值0(单片机I/O口复位),然后通过While(1)循环来让单片机一直执行,那么第一个数码管上将静态显示数字“1”。

  请大家跟上我的思路,我们按照这个设计思路来一步一步地实现它。打开KeilC51软件,选择新建工程,选择“单片机项目开发”文件夹,改工程名为“数码管显示”后,点保存后弹出选择芯片的对话框,找到列表的第八项“Atmel”后点左边的加号,打开所有的该公司的芯片,下拉找到“AT89C52”后选中,然后确认即可。选择“File”文件夹,点新建文件后,另存为“数码管静态显示.c”,选中“source growp 1”后点右键,选择“Add exsiting files to source growp 1”,找到“数码管静态显示.c”并加入。点开“source growp 1”左边的加号,选中“数码管静态显示.c”在右边的文件编辑框编辑程序:如下图3所示。

基于项目任务驱动的”理虚实一体化”教学设计与研究: 以“单片机技术应用”课程教学为例(图3) 

图3 在“KeilC51”中编译数码管控制程序示意图

  将按照设计思路编辑好的程序写到“数码管静态显示.c”文件中,编译没有错误没有警告后,转换为可执行文件“数码管1.Hex”(注意:这和VC++6.0软件平台编译后后缀为“.exe”不同,KeilC51软件平台编译后后缀为“.hex”)。

接上图2,在“Protues”软件中选择“”单片机并按右键,选择“编译属性”弹出下图的对话框,在“Program File”对应的右框中加入“数码管1.Hex”。如下图4所示。

基于项目任务驱动的”理虚实一体化”教学设计与研究: 以“单片机技术应用”课程教学为例(图4) 

图4 在“Protues”中向单片机加载程序示意图

  启动运行“Protues”软件的仿真,如图5所示,第一个数码管上显示数字“1”,与我们实际设计思路完全一致。

(三)项目任务分配布置设计(学生分组完成任务,老师引导指导或者帮助解惑)

  通过(二)的步骤,我们清楚地了解了单片机控制数码管的项目设计思路,下面来给同学们布置任务。

1、手绘图1的数码管的结构图,并按照图所提示的内容,编译其他9个数字的十六进制代码。可以分组讨论,可以上网查找相关资料,可以参照教材的说明,也可以向老师提问。(完成后交给老师登记课堂成绩,时间20分钟)

2、打开“Protues”软件,熟悉软件的基本用法。按照老师给的电路设计图,仿着画出来,不强调位置只需要关注原理图中元器件选用是否正确,分小组完成。(如果实在在课堂完成不了的小组,可以先用老师画的原理图,复制过去打开即可。完成后知会老师登记成绩,复制的和自己绘制的分开说明,时间25分钟)

3、打开“KeilC51”软件,熟悉软件的基本用法。按照老师示范的程序语句,仿着写出来。参照任务1将第一个数码管上显示的数字由“1”改成“6”。程序完成后编译成“数码管2.Hex”文件保存到桌面上。(完成后交给老师登记课堂成绩,时间25分钟)

4、打开“Protues”软件,按照图4所示的步骤,将桌面上的“数码管2.Hex”加载到“AT89C52”单片机中,并按照图5的步骤运行,验证自己设计的电路图和编辑的C语言程序是否正确,第一个数码管上显示数字“6”为正确。(完成后交给老师登记课堂成绩,时间10分钟)

5、课后任务。查阅74HC573和74HCT138芯片资料,掌握这两款芯片的典型用法;熟悉“Protues”、“KeilC51”软件,课后多练,尤其是没有在课堂完成电路图绘制任务和单片机驱动程序任务的,各组的组长负责指导检查。课后没有练习条件的同学,可以在周三的下午到实训室练习。

6、下节课的任务预习。思考如何让8个数码管静态显示、数码管动态显示?

(四)实践验证

按照“Protues”软件设计的原理图构建实际电路,通过实践验证设计思路是否正确。我们实训室已经购买了配套的单片机开发试验仪,在这个试验仪上找到对应的数码管控制模块,截取试验仪上的数码管电路模块与我们的设计进行印证。

   我们将导入“Protues”软件中电路的“数码管1.Hex”的可执行文件通过USB烧录器(CH340需要安装驱动)烧入单片机试验仪的单片机“AT89C52”中,查看单片机试验仪上数码管模块的工作状态。记录这个工作状态与“Protues”软件中电路仿真的结果对比。如下图7所示。(在单片机试验仪上的单片机为“STC89C52”)

基于项目任务驱动的”理虚实一体化”教学设计与研究: 以“单片机技术应用”课程教学为例(图5) 

图7 单片机试验仪实践验证的示意图

(五)课程总结

  通过上述的教学过程,我们可以理解为什么说单片机的课程对于职业院系的学生来说难度非常大。在单片机的课程中,我们不仅需要掌握一些电路基础知识,看懂常用的电子元器件的说明书并掌握其典型用法,还需要掌握两款专业软件“Protues”、“KeilC51”的基本操作流程,再加上C语言基础上的单片机C语言的编程。这些内容如果仅仅只是通过理论课程的学习,教学的目的显然难以达到,甚至很多学生可能都不知道教师到底要教什么。而单片机应用技术这门课程在实际工作岗位上学生将来面临就是这样的一个个实际任务,如果学生能够完整地学习单片机项目开发全流程,并且自己动手去实践完成,显然将来步入职场有显而易见的优势。

  课程设计总结:(1)数码管的结构简单易懂,还可以对二进制编码加深理解;(2)电子器件仅仅关注典型应用,内容单一易于接受;(3)电路设计类似与搭积木,方便快捷容易上手;(4)程序编译设计简单易懂,只是关注项目实现的效果不拘泥于语法格式,可以先仿后理解;(5)仿真结构和效果与实践完全一致,项目开发流程清晰明确,从设计到实现无缝对接,对学生学习的主观能动性触动效果明显。

“理虚实一体化”教学模式的研究、探讨和反思

1、结合单片机的实践开发项目,如何将理论知识部分有计划地分解---项目实现过程中够用又不过多地展开讲,让学生通过项目理解,提升学生地学习兴趣后主动课后去探寻去拓展。

2、理论基础知识的面太宽,如何将这些知识中本课程中必须要用到的挑出来讲,而又不影响学生理解这些基础知识。比如二进制编码,如何确定高位和低位?单片机的I/O端口作为数据端输出,它的位顺序是固定的,而且大多数芯片的位顺序也是固定的,一定要注意位对应连接,否则肯定会出错。

3、对电路元件的理解也是单片机项目开发的一个难点,尤其是让学生去阅读芯片说明书难度巨大。还好现在多数常用芯片都能查到中文说明书,我们研究如何让学生快速地阅读说明书,掌握其用法也是本课程的重点。

4、对于我们的控制芯片---单片机,无论是我们国产的“STC89C52”还是在ATMEL公司生产的“AT89C52”,其结构都很复杂,尤其是寄存器部分,往往难以理解。如何在项目开发任务中穿插讲解一下单片机结构的基础知识,特别是后续的中断系统及总线系统,都是本课程的重点。

5、对于“Protues”软件的应用,本课程仅仅涉及了简单仿真电路的搭建和仿真。事实上“Protues”还有许多强大的功能,需要学生课后进一步的学习与探索。如何快速地掌握“Protues”的基础应用,尤其是“Protues”软件是英语版,对于英语基础薄弱的学生难度比较大(电子元器件的名称都是英文的表达,这一块不像软件菜单可以汉化,另外元件种类很多需要精确查找到这个元件的仿真模型)。这些都是学习这门课程我们需要研究的重点。

6、对于“KeilC51”软件编译平台的使用,本课程也仅仅涉及了使用C语言编译单片机的驱动程序。事实上这是一款功能强大的软件,不仅可以使用C语言编译程序,也可以使用汇编语言编译程序,还可以对编写的程序进行仿真运行。基于让学生快速掌握软件的基本用法,建立学习使用这个软件的信心,在本文了略过这些内容,后续的项目开发任务中应考虑如何适时的穿插讲解,也是本课程的教学设计的研究内容。

参考文献

[1] 宏晶科技. STC Microcontroller Handbook. 2019.

[2] 陈雪小. 单片机原理与应用. 上海:上海交通大学出版社,2020.

[3] 郭天祥 新概念51单片机C语言教程 北京:电子工业出版社,2018.1.

作者简介:

    刘立兵(1974.10—),男,汉族,籍贯:湖北荆门人,荆门职业学院电子信息系专业教师、系主任。沈阳航空航天大学电子工程专业,工学学士;上海交通大学机械自动化工程专业,工程硕士.研究方向:智能电子产品、磁传感器



更多
引文网络
  • 参考文献
  • 引证文献
  • 共引文献
  • 同被引文献
  • 二级参考文献
  • 二级引证文献