分类筛选
分类筛选:

教学案例方面本科论文范文 和基于硬件原型的C语言课程教学案例设计相关本科论文范文

版权:原创标记原创 主题:教学案例范文 类别:职称论文 2024-03-03

《基于硬件原型的C语言课程教学案例设计》

该文是教学案例方面本科论文范文和教学案例和硬件原型和课程有关论文范例。

张婧婧

(新疆农业大学 计算机与信息工程学院,新疆 乌鲁木齐 830052)

摘 要:以程控电路的原型设计为背景,展开C语言课程教学模式的研究和探讨,旨在通过硬件的仿真平台,演绎和推理C语言的编程实例和教学设计;以单片机的仿真模型为例,解析C语言仿真教学的具体内容和运行过程,指出应用硬件平台进行语言类课程教学的优势和困难.

关键词:C语言;Proteus仿真;硬件原型;案例设计

0 引 言

C 语言是一门通用、面向过程的计算机程序设计语言.Proteus软件是一款蕴含巨大的教学资源,用于模拟各类电路、微控系统、单片机及嵌入式系统设计的EDA仿真平台.在Proteus软件中演绎C语言教学专题无疑是程序设计类课程的一种全新尝试.架构于硬件仿真平台之上的语言类课程教学,旨在为学习者还原课程的真实应用情景,为教学者瞄准学以致用的教学目标[1].

1 Proteus软件适于C语言案例教学

首先,作为教学助手,Proteus软件的教学应用前景广阔,支持C语言和汇编语言的编程[2].就微程序控制技术而言,基于C语言的程序设计更受青睐,因此用于情景式教学的原型案例资源丰富,易于为C语言教学设计者提供各类专题及教学素材.

其次,应用Proteus仿真平台开展C语言程序设计致力于丰富初学者的编程体验.例如,电路的仿真过程通常融入功能模块设计,严密的逻辑推理能够强化初学者对C语言各类程序结构(分支、循环、递归等)的理解和运用;定义仿真电路的输入、输出部分,如按键、指示灯的设置,数码管、传感器的应用等能够大幅提升初学者对各类变量、数组、指针、作用域规则等概念的认识和把握;仿真电路追求硬件功能的完整性,往往包含输入、存储、控制、显示等模块,在此基础上的编程能够加深初学者对C程序完整性设计的理解;在仿真电路的运行过程中,丰富的虚拟资源和形象的仿真效果能够让编程、调试过程更加直观、生动,且Proteus仿真软件简单易学、容易上手,适于初学者的实践和体验.

最后,仿真模型能够为教学设计者提供生动的教学场景,优化教学资源.以简易交通灯的C语言设计为例,在授课过程中,教学者可以借助仿真电路展现动态的程序设计过程(即红、黄、绿灯的闪烁),如图1所示.其中,凭借程序的隐蔽性和仿真的灵活性,教学互动过程将更具吸引力和趣味性,另外仿真平台还支持C程序运行过程的反复推理和演绎,使学习者自觉融入其情景设计中.

此外,鉴于微控制器的程序存储及运算能力有限,系统的硬件仿真将有助于促进设计者对C程序算法[3]在时间和空间上优劣与否进行思考,进而对程序算法提出更精细的要求,这对提高C语言程序设计质量具有重要意义.

更值得一提的是,C语言作为微控系统、单片机及嵌入式系统设计的首选编程语言,在相应课程开课过程中没有分配独立课时,通常以自学为主.对电子类及相关专业的初学者而言,在C语言课程入门阶段就接触硬件仿真,对其将来的专业学习意义非凡.

2 仿真设计的实例解析

基于Proteus的仿真平台进行C语言课程的教学尝试,其教学重点和难点在于如何忽略硬件对程序设计的“干扰”,为硬件“零”基础的学习者提供“无障碍”的虚拟平台,进而在系统仿真中体会C语言编程的内涵和魅力.以单片机的仿真模型为例,笔者将C语言案例教学设计的具体内容解析如下,供相关教学设计者参考.

2.1 精选教学案例

基于硬件设计平台,C语言教学应甄选硬件简洁、情景直观的系统作为原型案例.多模式的花样流水灯的电路设计简单,无需对硬件进行深度学习,如图2所示.多路按键、多路LED灯、一位数码管电路将分别指向分支语句、循环语句及数组的运用,同时LED灯、数码管的显示过程还伴随着延时子程序的反复调用,属于复合结构程序设计的原型案例,符合C语言教学用例的综合评判.

2.2 推演程序结构

C语言遵循结构化程序设计的规则[4],利用仿真平台进行的C程序结构分析无疑彰显了仿真教学模式的天然优势.对初学者而言,较之其他开发工具,基于仿真模型的设计更容易分化程序结构和构思编程策略,如图3所示.

图3中,(a)和(b)两幅仿真图分别模拟按键发音和一位计数器的设计.在按键发音电路中,判断按键是否按下,否则将执行相应的代码是C语言中典型的多分支语句,可采用if…else结构或switch…case结构完成;在一位计数器的电路中,数码管将会在0~9 之间循环显示,且译码过程通常采用数组查询方式,因此编程时需要定义数组且构造循环结构,亦属于C程序设计的典型应用.

2.3 梳理指令系统

基于仿真平台中的C程序设计与标准C语言设计运行着不同的指令集[5],如果仿真案例仅以专题形式讲授,教学设计者就必须为初学者厘清二者的区别和一致性.以单片机仿真设计为例,其C51的编程与标准C的编程在语法规定、程序结构、编程技巧方面高度一致,但在数据类型、变量存储模式、输入输出处理、函数等方面有一定的区别.例如,标准C中的头文件是stdio.h,在单片机C51中的头文件为reg51.h或reg52.h;再如常用函数printf在标准C中用于输出字符至屏幕,而单片机中则输出到串口等.

对各专业的初学者而言,不同指令集下编程必定会增加学习的难度.为了避免学习者的抵触情绪,教学中应该为其配套相应的指令使用指南,梳理并解析两类指令系统的区别与一致性.

2.4 储备程序模板

就C语言的教学目标而言,学习者针对程序中结构和算法的设计远远重要于对某类定义、数据处理模式的掌握.本着这一原则,教学实践环节中,设计者还需要储备仿真案例的程序模板,旨在跳过部分硬件驱动和数据处理模式的编程,同时弱化不同指令之间的区别,为初学者呈现与标准C语言近乎“无差别”的仿真设计平台.

以水量检测系统[6]为例,其程序模板如下:

#include<reg51.h> //单片机的头文件

#include<intrins.h>

#define uchar unsigned char

#define uint unsigned int

bit 等于0; //定义阈值标示位

bit ; //定义按键开关标志

bit 等于0; //定义减标志位

sbit 等于P2^0; //定义电机开关

sbit 等于P2^1; //定义阈值设置键

sbit 等于P2^2; //定义电机速度加

sbit 等于P2^3; //定义电机速度减

sbit 等于P2^4; //定义确认键

sbit 等于P2^7; //定义传感器信号

sbit 等于P0^0; //定义工作结束指示灯

sbit 等于P0^1; //定义工作正常指示灯

float ; //定义水的使用量

float ; //定义水的未使用量

float ; //定义水的设置量

/*****************************************************

函数功能:延时显示程序

***************************************************/

void Display(uint xms)

{

…… //请添加相应的程序

}

/*****************************************************

函数功能:按键控制子程序

******************************************************/

void Key()

{

…… //请添加相应的程序

}

/*****************************************************

函数功能:报警子程序

*****************************************************/

void Alarm()

{

…… //请添加相应的程序

}

/*****************************************************

函数功能:数据计量子程序

*****************************************************/

void Data_calc()

{

…… //请添加相应的程序

}

/*****************************************************

函数功能:主函数

*****************************************************/

void Main(void)

{

…… //请添加相应的程序

}

2.5 整合实践教材

基于硬件仿真平台的C语言课程教学目前正处于课改的规划和资源整合阶段,尚无成熟的教材和丰富的教学资料,因此为教学设计相应配套实验教材,是实施课程教学计划的重要环节[7].根据案例的选取和知识点的衔接,设计难度相当、知识点匹配的实验项目无疑是对教学设计者的客观要求.值得注意的是,在项目的设计阶段,还需同时储备程序模板和指令解析指南,供学习者在实践过程中参考.

2.6 编写仿真指南

与C语言编译器的功能不同,Proteus仿真软件支持Keil C编译器编译的.HEX文件[8],并用于程序的加载和运行,为此,针对Keil C编译器的使用及Proteus仿真软件的运行编写一部基本操作指南,即能帮助学习者在课程实践中解决各类仿真操作的问题.

3 应用仿真软件的棘手问题

(1)课程知识点的衔接处理.在标准C语言的教学中,初学者很容易适应该课程“从易到难”的教学进度和“由浅入深”的推演原则;而在Proteus的硬件仿真平台中,如何循序渐进地分解程序设计的知识点,并进行硬件设计“不留痕迹”的衔接处理,对教学设计者提出很大的挑战.

(2)软、硬件的配套设计.为防止基于硬件仿真的C语言教学过程本末倒置,电路仿真适于选取硬件结构简单、程序算法复杂的案例进行,这与程控系统设计的实际情况相互矛盾,因此在案例设计中,为了选取仿真电路和软件设计都难度适宜的项目,设计者还需在仿真资源、程序模板、操作指南、指令解析等教学资料的准备中权衡内容,匹配素材.

4 结 语

基于仿真软件的C语言课程教学属于“软”件“硬”学的课程改革和尝试,一经实施,定会与标准C语言的教学内容之间展开博弈,在教学目标、授课内容、实践方式上都表现出很大的差异.该模式能否对C语言教学产生深远影响还需要各种实施数据和分析,但能够预见此方式更贴合“应用型”人才培养目标,尤其作为通识教育的语言类课程,C语言的仿真教学将比传统教学形式更具吸引力.

基金项目:新疆维吾尔自治区普通高等学校教学改革研究项目“电子仿真与实战式培训提升学生实践能力的课程群建设”(2017JG040).

作者简介:张婧婧,女,高级实验师,研究方向为复杂系统、嵌入式理论与应用, z@xjau.edu.cn.

图1 交通灯系统的仿真电路

图2 多模式的花样流水灯的仿真电路

(a)按键发音

(b)一位计数器

图3 各类典型的程序结构案例

参考文献:

[1] 张婧婧, 李勇伟. 电子类仿真软件应用的教学之道[J]. 计算机教育, 2016(7): 126-129.

[2] 苏变玲, 朱志平, 袁卫. 基于Proteus的单片机仿真教学的研究[J]. 实验室研究与探索, 2009(4): 75-78.

[3] 鲁强, 李效恋, 王智广. 程序算法识别研究综述[J]. 计算机应用, 2012, 32(10): 2863-2868.

[4] 汪红兵, 姚琳, 武航星, 等. C语言程序设计课程中的计算思维探析[J]. 中国大学教学, 2014(9): 59-62.

[5] 王恒厂, 周燕飞.由C语言程序格式解析宏程序[J]. 现造工程, 2008(5): 126-128.

[6] 任洪娥, 孙丽萍, 韩丽萍, 等. 智能霍尔效应水流量测试仪[J]. 东北林业大学学报, 1996(3): 99-102.

[7] 陈婷. C语言程序设计实验教学改革探究[J]. 实验技术与管理, 2010, 27(10): 182-184.

[8] 邓力. 基于Keil时序逻辑和Proteus的电路仿真[J]. 实验室研究与探索, 2017, 36(1): 80-83.

(编辑:宋文婷)

教学案例论文参考资料:

科学教学论文

教育教学论坛杂志

管理会计案例分析论文

外语教学期刊

教学论文范文

教育教学论坛期刊

上文结论:此文为关于对写作教学案例和硬件原型和课程论文范文与课题研究的大学硕士、教学案例本科毕业论文教学案例论文开题报告范文和相关文献综述及职称论文参考文献资料有帮助。

和你相关的