【摘要】通过总结单片机理论、实验和课程设计的教学实践经验及教学研究心得,以某高校电子电气信息类本科专业为例,分析了如何完善单片机课程体系建设,如何在课程教学过程中通过理论与实践相结合加强大学生对理论的深入理解,构建系统化的教学工作。

【关键词】单片机 理论与实验 课程设计 协同教学

【中图分类号】G64 【文献标识码】A 【文章编号】2095-3089(2016)31-0243-01

引言

单片机理论、实验和课程设计相关课程体系是各高等院校电子电气信息类工科专业基础专业课程设置的重要组成部分,为大学生深入学习掌握单片机的基本原理,设计方法,实践应用等打下基础。大多数理工科高校开设这些课程,对学生进行综合培养。对于单片机的理论与实践教学,既可以选择汇编语言,也可以选择C语言进行。在高校的实际教学工作中,大多数老师是选择汇编语言进行教学的,因为从汇编语言入手能更好的掌握单片机的硬件资源使用原理等,也有部分老师是直接使用C语言进行教学,认为汇编语言编程过于繁琐,而C语言编程能够在将来的实践工作中得到更好的应用。本文通过总结作者多年来在单片机相关课程教学积累的经验和教学研究心得,以51单片机理论、实验和课程设计教学为例,对如何在使用不同编程语言进行繁琐和复杂的教学中使学生更好地掌握单片机知识体系进行了探讨。

1.单片机理论教学

1.1 汇编语言理论教学

单片机是一个把中央处理器CPU、数据存储器RAM、程序存储器ROM、并行IO接口、串行IO接口、定时器计数器、时钟振荡电路等集成在一起的控制芯片,硬件资源简单且丰富,也易于扩展外围电路,所以单片机的学习侧重点首先在于掌握硬件资源使用方法。因为汇编语言实际上是CPU能够识别的机器码的助记符,从汇编语言入手开始教学,能够使学生更好地掌握单片机的硬件资源使用原理。使用汇编语言编程可以很方便地对单片机存储器地址直接进行存取操作,也能很方便地对存储器地址进行整体安排分配,前提是对单片机硬件资源非常熟悉,能够灵活调用。比如指令MOV、MOVC和MOVX可以分别访问单片机内部的数据存储器、程序存储器和外部扩展的数据存储器。汇编编程的缺点在于进行算术运算和逻辑判断跳转等比较繁琐。

1.2 C语言理论教学

国内的单片机C语言程序设计教程多数的编排都会在前面开始的章节介绍单片机硬件资源以及汇编语言指令系统,然后以更大篇幅讲述C语言程序设计语法和针对硬件资源的编程。针对单片机的C语言程序设计语法与计算机C语言高级程序设计编程语法基本一致,而针对硬件资源的指令又类似于汇编语言指令系统,所以应该可以说单片机C语言程序设计是计算机C语言高级程序设计和汇编语言指令结合体。要掌握好C语言编程依然要对于单片机的硬件资源理解透彻并能灵活调用。但是C语言针对硬件资源的指令与汇编语言指令比较起来却不如汇编那么直观,也不如汇编指令那样更加有助于单片机硬件体系结构的理解。

为了使初学者能够更好地理解单片机硬件体系结构,掌握硬件资源的调用,选择汇编语言进行教学显然是更加合适的。

2.单片机实验教学

单片机作为电子电气信息类专业的一门专业基础核心课程,比某些专业基础课程如电路原理、数字电子技术、模拟电子技术等更加注重编程实践的练习。单片机实验课程一般都是配套安排在单片机理论课程的下半学期,这样能够更加有助于理论的理解和掌握。作为理论课程的配套课程,单片机实验课程在教学上必须与理论课程保持一致性,选择汇编语言进行实验教学就是必然和最好的选择。

在实验设备的选择上,学院实验室早期购置过星研单片机Star ES51实验箱,后来又购置了大批光佑STC开发板,可以两者选其一。

早期的单片机实验都是集中在实验室进行,两人共用一台实验箱,通过连线和读写配套程序仿真运行来进行实验。这样的实验有一些明显的不足,比如配套程序调用了很多键盘显示的子程序,而这些子程序没有直接给出来,实验箱的很多硬件电路连接也没有给出详细原理图,所以造成了实验结束后多数学生也是对实验原理和编程似懂非懂的结果。

有了STC开发板后,每个学生可以分配一块开发板,各自进行单片机的编程仿真实验,还可以将开发板带回宿舍课后继续练习,实验可以更方便地进行。实验开发板的原理图清晰,例子程序丰富,通过读写配套例程可以较好的掌握单片机的基本原理。

显然使用汇编语言选择STC开发板进行单片机实验是实验教学的最好安排。实验课程的要求注重于单片机基础知识的掌握和硬件资源的调用。

3.单片机课程设计教学

单片机课程设计的安排是为了进一步提高学生的实践能力,所以课程设计的教学就不再局限于基本原理的掌握,而是必须达到更高程度的实践效果。汇编语言编程有利于对基础知识的理解和单片机硬件资源的掌握,却不利于复杂逻辑的处理。所以在学生已经基本掌握了基础理论的情况下,课程设计选择C语言编程,可以让学生更加方便的进行复杂程序的编写。

单片机课程设计实践项目内容的安排上,必须注重单片机内部和外部硬件资源的综合调用,以便完成具有实际意义的综合程序的编写。课程设计实践项目安排了可以综合调用单片机I/O口资源进行键盘扫描数码管显示以及中断处理的实现计算器功能的程序编写,和能够使用I2C总线进行通讯的AD/DA处理的程序编写。这两种程序的综合度和复杂度都远远大于单片机实验题目的要求。从实践结果来看,通过这种综合性复杂程序的编写练习,能够大大提高学生的开发设计实际项目的动手实践能力。

结束语

在我国大力实行人才战略强调人才培养的大环境下,本文作者所在高校也响应国家号召加强本科生培养,实施卓越工程教育,取得了积极可喜的成绩。本文积极探索和提高单片机理论实验课程设计协同教学的方法,取得了长足的进步和发展,也得到了学生的高度认同。以此方法培养出来的本科生在参加全国大学生电子设计竞赛的过程中也取得了骄人的成绩。本文作者经验和方法也可以为兄弟院校相关专业的教学提供参考和借鉴。

参考文献:

[1]李朝青.单片机原理及接口技术(第4版),北京航空航天大学出版社,2013.7

[2]郭天祥.新概念51单片机C语言教程――入门、提高、开发、拓展, 电子工业出版社,2009.1

[3]彭伟.单片机C语言程序设计实训100例――基于8051+Proteus仿真(第2版), 电子工业出版社,2012.10

[4]张毅刚.单片机原理及接口技术(C51编程),人民邮电出版社,2016.4

[5]王东锋.单片机C语言应用100例(第2版), 电子工业出版社, 2013.5

星研电子c语言程序清单,单片机理论实验课程设计协同教学方法探讨相关推荐

  1. 秒表系统的设计c语言程序,51单片机秒表计时器课程设计报告(含C语言程序).doc...

    51单片机秒表计时器课程设计报告(含C语言程序) XXXXXX学院 51单片机系统设计 课程设计报告 题 目: 秒表系统设计 专业.班级: 学生姓名: 学 号: 指导教师: 分 数 : [摘要]本设计 ...

  2. 五十九秒的秒表C语言程序,51单片机秒表计时器课程设计报告(含C语言程序)解读.doc...

    XXXXXX学院 51单片机系统设计 课程设计报告 题 目: 秒表系统设计 专业.班级: 学生姓名: 学 号: 指导教师: 分 数 : [摘要]本设计是一个秒表计时器,采用51单片机实现.电路包括以下 ...

  3. 秒表系统的设计c语言程序,51单片机秒表计时器课程设计报告(含C语言程序)详细分解.doc...

    XXXXXX学院 51单片机系统设计 课程设计报告 题 目: 秒表系统设计 专业.班级: 学生姓名: 学 号: 指导教师: 分 数 : [摘要]本设计是一个秒表计时器,采用51单片机实现.电路包括以下 ...

  4. 简易电子琴c语言程序,基于单片机的简易电子琴设计(C语言编程).docx

    单片机课程设计报告 基于单片机的简易电子琴设计 摘 要 电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器.它在现代音乐 扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经 ...

  5. 52单片机继电器c语言程序,STC89C52单片机继电器实验

    原标题:STC89C52单片机继电器实验 / 实现功能:打开实验板上的蜂鸣,响0.3秒,然后关闭0.3秒,然后依次这样循环, 同时在实验板上继电器旁边的发光二极管也会跟随继电器不停地闪烁 实验板型号: ...

  6. hx711c语言程序,51单片机HX711传感器电子秤设计(原理图、程序源码、BOM等)

    #include                  //调用单片机头文件 #define uchar unsigned char  //无符号字符型 宏定义        变量范围0~255 #def ...

  7. 自动存包柜c语言程序,基于单片机的自动存包柜设计.doc

    摘要:近些年来,随着智能化时代的到来,人们对于生活水平质量的要求越来越高,为了更好的服务于顾客群体,更加妥善保管顾客的物品,智能化的自动存包柜就显得尤为值得人们关注. 本设计从自动存包柜的背景出发,分 ...

  8. 摇摇棒C语言程序,AT89S52单片机16LED摇摇棒设计(含pcb文件,源程序等)

    #include #define uchar unsigned char #define uint unsigned int    //宏定义 sbit KEY=P1^0; uchar KY;    ...

  9. 教学打铃单片机实现(课程设计)

    单片机课程设计 一.课程设计题:单片机教学打铃控制器程序设计 二.设计要求: 1. 用LED数码管显示时.分.秒时间,尽量减少时间积累误差,具有秒闪功能. 2. 最多能设置40个打铃时间点,打铃时间点 ...

最新文章

  1. 如何寻找蛋白和蛋白,基因和基因之间的相互作用---string
  2. HTML5语义化的理解
  3. 你家猫砸东西是不是也专挑贵的砸?
  4. Python爬虫入门三urllib库基本使用
  5. Mysql常用分组聚合函数(统计行的数量、最大值、最小值、平均值、求和)
  6. SVN代码回滚命令之---merge的使用
  7. Java环境安装手册
  8. 485通信原理_关于串口通信(232、485、422)和常见问题,一篇文章就给你说清楚~...
  9. 油气井钻井风险预测与控制系统——需求分析
  10. python查询12306余票_【python】用GUI编写一个12306余票查询的系统,附源码
  11. mac关闭当前窗口快捷键,mac关闭当前应用快捷键
  12. 评测三款最流行的txt阅读器(windows适用)
  13. EXSI6怎么设置虚拟机从光驱启动
  14. heapdump file must have .hprof extention
  15. UML—用例图的扩展关系和包含关系的区别
  16. 不写一段代码来获取扇贝单词的接口数据
  17. 大数据服务平台---接口自动化
  18. Unity 中 print 和 Debug.Log 的区别
  19. Java语言高级-02继承与多态-第7节内部类
  20. PCBA老化测试是什么,老化测试标准是什么?

热门文章

  1. Android开发之友录项目层次结构
  2. LabVIEW2014安装教程
  3. 掉光的头发竟然又长出来了!这瓶泰国变态生姜水,连秃头都能救一下!
  4. 安卓移动软件开发:手机防火墙的实现
  5. 消息的同步发送,异步发送以及消息发送的可靠性
  6. 磁盘上没有足够的空间完成此操作
  7. 计算机设置链接在哪里,本地连接在哪里找【四种方法】
  8. 通过Nginx代理下载超过1GB的文件失败
  9. 什么是OpenGL/DirectX 什么是HLSL﹑GLSL﹑Cg 什么是Draw Call
  10. html-1--前端开发规范手册