“汽车单片机及局域网”课程链教学实践研究*

2020-04-02 07:47龚福明
武汉交通职业学院学报 2020年1期
关键词:局域网C语言程序设计

马 铮 龚福明

(武汉交通职业学院,湖北 武汉 430065)

随着汽车智能化、网联化、电动化的发展,“汽车单片机及局域网”已经成为汽车智能技术专业核心课[1]。该课程包含汽车单片机以及汽车局域网两大部分[2]。前者要求学生掌握单片机的工作原理及系统设计,融合了模拟电路、数字电路等硬件知识以及C语言、汇编语言等软件知识,内容琐碎且较为复杂;后者主要要求学生掌握汽车总线工作原理,内容相对抽象。

现有专业课程体系结构中,通常采用先专业基础课(“汽车电工电子基础”“数字电子技术基础”“C语言程序设计”),后专业核心课(“汽车单片机及局域网”),课程教学内容间既密切相关,又有鲜明的层次化特点,具有递进式的“链式”关系[3]。但在实际教学过程中发现,该课程链之间存在衔接不紧密,教学内容相对独立,实践内容综合性不强等问题,导致学生缺乏系统性的学科理念。针对此类具体的问题,目前国内还没有系统性的深入研究,只是针对“汽车单片机及局域网”这门课程,从课程设计[4]、教学模式[5]、实验安排[6]等方面进行简单的教学优化。

为此,本文分析了以“汽车单片机及局域网”为中心的课程链教学现状,课程间相互关系、关联知识点[7],并依据关联知识点探索设计综合性实训项目,对课程链的教学内容进行整合优化,使不同课程间知识点、技能点融会贯通,形成系统性学科知识体系,并以其中一项目展开实践教学探索。

一、课程链教学现状分析

“汽车单片机及局域网”是汽车智能技术专业核心课程,与其相关的课程分别是“汽车电工电子基础”“数字电子技术基础”以及“C语言程序设计”,这四门课形成汽车智能技术中的“控制大课”,课程间关系如图1所示。

由于“汽车电工电子基础”是汽车专业群平台课,主要讲述电工电子基础知识以及汽车电路基础知识,偏向于理论基础,为此本文未对其展开深入分析。

“数字电子技术基础”及“C语言程序设计”均设置在大一下学期,前者主要培养分析、设计数字电路及专用集成电路芯片能力;后者旨在培养学生程序设计、开发与测试能力。“汽车单片机及局域网”设置在大二上学期,是以51单片机为研究对象,通过程序编写、外围电路搭建从而控制相关电气设备,旨在培养学生具备汽车单片机系统应用、程序设计以及车载网络技术应用的能力,是软、硬件综合能力的体现。

图1 课程关系图

在实际教学中发现以“汽车单片机及局域网”为中心的课程链存在以下问题。

1.在课程设置中,“C语言程序设计”与“数字电子技术基础”是“汽车单片机及局域网”的基础,存在时间跨度,这将导致课程衔接不足,并使部分技能点、知识点被分散,再加上新知的遗忘速率导致部分学生在学习新课时感到吃力。

2.在授课模式中,“C语言程序设计”主要以理论讲解为主,虽然有开设编程实训,但缺乏控制、应用对象,学生只会编写程序但不明白如何利用程序控制电气设备的工作。“汽车单片机及局域网”是对“C 语言程序设计”这门课的巩固与提升。

3.在知识结构中,“数字电子技术基础”研究的是硬件部分,主要是芯片及电路的设计,没有涉及程序控制。而“汽车单片机及局域网”是软、硬件的综合体现。教学中发现,这两门课存在相对独立的现象,知识体系相对单一未能形成综合立体结构。

二、课程链实践项目分析与设计

(一)关联知识点分析

“汽车单片机及局域网”与“数字电子技术基础”“C语言程序设计”这两门课存在较强的“链式”关系,为了将这些课程内容层层递进,并进行有效的交叉融合,本节以“汽车单片机及局域网”为中心对其他两门课的知识点进行了分析,梳理了内在关联,如图2所示。

图2 课程链关联知识点

图2仅列举了部分关联知识点。由分析可知,“C语言程序设计”中所有知识点均在“汽车单片机及局域网”中进行了实际应用,体现在软件应用方面,编程基础的强弱决定了“汽车单片机及局域网”掌握速度的快慢。“数字电子技术基础”的很多知识点在“汽车单片机及局域网”中重复出现,但侧重点不同,前者侧重于电子元器件的原理及集成电路的设计,属于电路硬件部分;后者侧重于电气设备的控制,是对前者的拓展应用。

(二)课程链实践项目设计

为提高课程链衔接的紧密性,使学科知识有机融合,本节依据课程链关联知识点分析,以实践项目为载体,通过实践任务将课程之间的关联知识点串联起来,设计综合性实验项目,拓展知识的广度及深度,其中课程链综合实践项目设计如表1所示。

表1中A、B、C分别代表的是“数字电子技术基础”“汽车单片机及局域网”及“C语言程序设计”。表中每一个实践项目都融合了这三门课程的知识点。

表1 课程链综合实践项目设计

实践任务中,项目3-7可采用两种方法进行设计,方法1是采用已有电子元器件搭建硬件电路,是“数字电子技术基础”课程常用方法,学生利用Multisim仿真软件以实现电路的设计与仿真。方法2是以单片机AT89C51为中心搭建外围电路,利用程序控制实现系统的设计,是软硬件的综合应用,其中软件程序编写采用仿真软件Keil Uvision4。为了展开详细研究,文章以项目7“流水彩灯的设计”[8]为例展开实践探索研究。

三、综合项目探索实施

项目实践要求采用不同方法实现“8位流水彩灯的控制”。方法1为硬件电路设计法,利用Multisim仿真软件,通过对软件中555定时器、译码器、发光二极管等元器件,设计硬件电路图,从而实现流水彩灯的控制。方法2为软硬综合设计法,利用Keil Uvision4编写程序并进行调试,调试成功后生成.HEX文件并下载到单片机开发板,并搭建外围电路,从而实现流水彩灯的控制。两种方法是对课程链知识点的综合应用。

(一)硬件电路设计法

电路主要由555定时器、同步4位二进制计数器74HC163、74LS138译码器[9]等芯片组成,外加电阻、电容等元器件,电路设计与仿真图如图3所示。

图3 8位流水彩灯电路图

图中555定时器组成多谐振荡器,以输出一定频率的矩形脉冲。74HC163是同步4位二进制计数器。由于项目要求为“8位流水彩灯”,为此,仅采用74HC163的A、B、C三位,最高位D空出,其输出值在000-111之间循环变化。74HC163的输出作为74LS138译码器输入(A、B、C),输出为8位数据(Y0-Y7),由于74LS138译码器输入为高电平输出为低电平,因此,需将LED阴极与其相连,当Y0-Y7中有一个输出为低时,LED点亮,该电路的8个发光二极管即可形成流水彩灯。

(二)软、硬综合设计法

设计分析:利用51单片机的P1端口控制外围电路数码管点亮与熄灭;首先点亮连接在单片机P1.7口的发光二极管,延迟一定时间后熄灭;再点亮连接在P1.6口的发光二极管,延迟一定时间后熄灭,以此类推直到点亮连接在P1.0口的发光二极管,延迟一定时间熄灭后再从P1.7口开始,如此反复循环即可形成流水彩灯的效果。其中系统设计图如图4所示,对应的部分程序代码如图5所示。

硬件电路中,单片机80C51的P1.0-P1.7端口与发光二极管LED相连,采用共阳极连接,P1.0-P1.7端口输出低电平有效,LED点亮,与方法1中LED1-LED7工作原理相同。在单片机8051外围,开关S与8051的9号端口“RES”相连组成复位电路;电容C1、C2以及晶振U3形成一定频率的矩形脉冲与8051的18、19号端口相连,该部分与方法1中555定时器构成的多谐振荡器原理相似。

软件程序中,P1端口输出为0X7F,即01111111(B),即P1.7口为低电平0,与其相连的发光二极管LED点亮(共阳极);当执行语句“P1=_cror_(P1,1)”时,端口右移一位即10111111(B),P1.6口为低电平0,发光二极管LED点亮,在延时一段时间“delay(5000)”后熄灭。利用Keil Uvision4编写好程序调试成功后,生成.HEX文件,并烧写入单片机AT89C51,最后将P1端口连接到外围数码管显示电路。最终实验表明该方法满足设计要求。

(三)教学实践效果

在实施教学方法改革前,由于该课程的强综合性和实践性,加上学生专业基础参差不齐,导致学生理解力差,积极性不高[10]。通过梳理课程链相关知识点,教师设计综合实训项目,引导学生完成实践任务,将学科知识和专业技能培养有机融入课程链中。在项目中回顾旧知、探索新知,使得学科知识和技能呈螺旋式上升,并形成系统性专业知识体系。

在硬件应用方面,学生能深入理解各种芯片的工作原理及应用场景;学生还能熟练运用Multisim电路仿真软件,能自主设计电路图并进行功能验证。在软件应用方面,通过课程链综合项目实践,学生能通过实验现象去思考指令和程序,将C语言知识进行深入理解和创新应用,使蜂鸣器、电动机等静态的电气设备进行个性化控制,提高了学习兴趣以及创新能力,教学效果较为突出。

图4 流水彩灯控制系统电路图

图5 部分程序代码

四、结语

“汽车单片机及局域网”是一门综合性、实践性较强的课程,对学生的知识广度、知识深度要求较高。整合课程链关联知识点,设计综合实践项目,将会实现专业课程间的有机融合,培养学生构建系统性学科理念,提高学生综合应用能力及创新能力。该方法还可为其他链式课程的教学实施提供理论参考。

猜你喜欢
局域网C语言程序设计
医学专业“Python程序设计”课程教学改革总结与思考
基于Visual Studio Code的C语言程序设计实践教学探索
基于VPN的机房局域网远程控制系统
51单片机C语言入门方法
从细节入手,谈PLC程序设计技巧
基于C语言的计算机软件编程
基于802.1Q协议的虚拟局域网技术研究与实现
计算机局域网组建及管理探讨
局域网性能的优化
高职高专院校C语言程序设计教学改革探索