摘 要 文章针对“单片机C语言程序设计”教学中存在的编程困扰,提出在教学实践中重视引导学生进行模块化、规范性程序设计,强调规范化编程对学生理解程序的结构与功能的重要作用,并贯穿于课程教学的始终,使学生的单片机应用能力得到了极大的提高。

关键词 单片机 C语言 规范性

中图分类号:G424 文献标识码:A DOI:10.16400/ki.kjdkz.2015.08.062

On the C Language Programming Normative in MCU Course

HUANG Xiaofeng

(Advanced Vocational Technical College, Shanghai University of Engineering Science, Shanghai 200437)

Abstract: For "SCM C language programming" teaching in programming problems, he attached importance to guide students in teaching practice modular, standardized program design emphasizes standardized programming for students to understand the structure and function of the program's important role and throughout the Teaching has always been, so that students micro controller applications has been greatly improved.

Keywords: SCM; C language; normative

0 引言

单片机技术课程一直以来作为高职计算机应用、电气自动化、应用电子技术等专业的主干课程。通过对单片机技术职业岗位需求分析可知,高职毕业生从事与单片机相关的职业技术岗位,主要有硬件测试工程师、软件测试工程师、硬件设计助理工程师、软件设计助理工程师等工作岗位。目前高职单片机课程多以MCS51系列为主,学生踏入工作岗位后,会涉及到其他各种类别的单片机,如AVR、MSP430、PIC等。由于软件编程灵活性强,对逻辑思维能力要求高,在单片机教学中学生普遍反映编程时无从下手,程序调试错误百出,面对调试中出现的问题不知如何修改验证,上机编程的教学实践过程更多则沦为代码录入。本文针对“单片机C语言程序设计”教学中存在的编程困扰,提出在教学实践中重视引导学生进行模块化、规范性程序设计,培养学生良好的编程习惯,提高程序的易读性、可移植性,为将来步入职业技术岗位打下坚实基础。

1 单片机C语言编程的规范性

以Kei C51软件编程为例并结合多年的教学经验,将单片机C语言编程的规范性主要归纳为:(1)文档的规范性;(2)变量、函数的规范性;(3)程序书写的规范性;(4)模块化编程等四个方面。

1.1 文档的规范性

任何一个单片机C程序都应该在工程下进行编译和管理,一个工程可以包含多个C文件,不同的C文件分别实现一个相对独立的功能。在单片机课程教学中部分学生一开始就忽略了工程的概念,或者通过一个C文件试图实现所有功能,这在功能较为单一的系统中是可行的,但稍微复杂一点的系统要想通过一个程序来完成其所有功能,程序的可读性和可移植性就会变差。因此,在编程之初就要强调工程对C程序源文件的管理作用,以及工程所包含的各个C文件之间的相互关系,并通过对C文件规范化的命名体现其功能,如键盘模块命名为key.c,显示模块命名为display.c,数据处理模块命名为datapro.c。

1.2 变量、函数的规范性

变量、函数的规范主要体现在命名的规范,一般要符合匈牙利命名规范。如表1所示,主要注意字母的大小写是有区分的,取名要与变量或函数的含义或完成功能相一致,并且要在教学中一直贯彻使用,望文生义以增强易读性。

此外,由于单片机头文件对一些常用的符号变量和特殊功能寄存器进行了定义声明,因此编程时对相关符号变量和特殊功能寄存器的操作一定要与头文件中的定义声明保持一致。如51单片机reg51.h头文件对端口(P0~P3口)、特殊寄存器、特殊的位、中断函数等做了定义声明,用户在对相关端口或SFR进行操作时只能严格的按照头文件中的声明使用,不能按照自己的想法随便更换名字,否则会造成编译出错,如果要想按照自己的习惯书写,要重新声明定义。如P1.0口在定义为P1^0,若想用P1_0表示则必须用“sbit P1_0=P1^0;”作声明。常用的51系列单片机在KeilC51软件中的一些定义格式如表2所示。

表2 或头文件中常用的一些定义

3 模块化编程

模块化、规范化的程序设计,是提高程序的易读性、可移植性和复用性最为重要的手段。模块化程序设计的集中体现为六个字即“高内聚低耦合”。按照自顶向下的原则进行程序设计时,首先是引导学生进行系统功能分析,按照“低耦合”的原则进行软件模块的划分,勾勒出由主程序及各模块子程序搭建的大骨架、粗线条轮廓,继而深入到各个软件模块内部,依据“高内聚”的原则确定模块内程序结构。

以单片机无线多路温度采集系统为例,简单介绍软件编程的具体思路。如图1所示,无线多路温度采集系统主要包括单片机、温度数据采集、无线信号传输、键盘与显示器等模块,完成四路温度数据采集,并在液晶屏上显示实时温度信息。

图1 温度采集系统硬件框图

图2 温度采集系统软件模块组成

在课程教学中,依据无线多路温度采集系统功能,软件编程划分为温度采集、按键控制、显示、无线通信等子模块。其中温度采集程序完成温度数据采集与处理,键盘控制程序键扫描及处理,LCD显示程序完成屏幕刷新,无线通信程序实现单片机与PC机间的数据交换。各模块功能单一,且模块之间无直接联系,通过主程序对各模块进行调用与协调完成系统功能,每个模块作为一个函数、或单独作为一个C文件,并通过主程序完成各模块文件的调用与协调,其关系图如图2所示。可以看到,模块与模块之间耦合度较低,有利于程序的维护与移植。

1.4 程序书写的规范性

程序书写的规范性能够极大增加了程序的易读性。主要体现在:采用空行或注释符号分隔程序段落;if、for、while、do等语句自占一行,执行语句不得紧跟其后;程序的分界符‘{’和‘}’应独占一行并且位于同一列,同时与引用它们的语句左对齐;如果出现嵌套的{},则使用缩进对齐;一般重要的代码行或段落采用“//” 注释提示等。

2 结束语

单片机C语言编程由于逻辑性强,高职学生普遍存在编程困难,在课程教学中通过引入规范性编程,从文档的规范性、变量及函数的规范性、程序书写的规范性,以及模块化编程等四个方面,强调规范性程序设计对于学生认识、理解程序的结构与功能至关重要,在此基础上进行程序设计,使学生单片机应用能力得到了极大的提升,所带学生在全国职业院校“机器人应用技术”取得了优异成绩,毕业后也得到用人单位的肯定与好评。

单片机c语言程序设计中可以不分大小写,论单片机课程教学中C语言编程的规范性...相关推荐

  1. 数据结构c语言版袁和金答案,_数据结构_课程教学中的案例设计及应用_袁和金.pdf...

    _数据结构_课程教学中的案例设计及应用_袁和金 第 16 期 90 2013 年 8 月 25 日 Computer Education G642 袁和金 (华北电力大学 计算机系,河北 保定 071 ...

  2. 单片机c语言程序设计中可以不分大小写,单片机考试复习题及答案

    选择题 1.主频为12MHz的单片机他的机器周期为(c). A.1/12微秒 B.0.5微秒 C.1微秒 D.2微秒 2.MCS-51系列单片机是属于(C)体系结构. A.冯诺依曼 B.普林斯顿 C. ...

  3. 7-3 欢迎参加贵工程2021年C语言程序设计大赛! (5 分)

    7-3 欢迎参加贵工程2021年C语言程序设计大赛! (5 分) 贵州工程应用技术学院创建于1938年,历经贵州省立毕节师范学校.毕节半耕半读师范学校.毕节师范专科学校等时期.1993年,教育部定名为 ...

  4. 讲解c程序设计语言的比喻,《C语言程序设计》论文关于比喻在《C语言程序设计》课程教学中的应用论文范文参考资料...

    <C语言程序设计>课程教学中有关比喻的<C语言程序设计>论文范文参考资料 比喻的用法是将本质上相似的两个事物联系起来,通过熟悉的事物接近事物,实现让学习者更好地熟悉新事物的目的 ...

  5. c语言在中职的作用,微课在中职《C语言程序设计》课程教学中的应用探讨

    李晶 [摘 要]现代社会经济的高速发展对我国教育事业提出了更高的要求.在中职学校开展C语言程序设计教学活动时,有效应用微课能够进一步提升课堂教学效果,使学生更深入地理解相关知识.要通过建设课程体系.优 ...

  6. C语言程序设计入门学习六步曲,六步带你入门C语言

    C语言是面向过程的,而C++是面向对象的 C和C++的区别:         C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理 ...

  7. C语言程序设计A重点,【艾学笔记】复习重点之C语言程序设计

    原标题:[艾学笔记]复习重点之C语言程序设计 hello,大家好,欢迎来到小艾学习小组,想想暑假快到了,马上就要迎接期末考试了,大家对本学期新学的c语言程序设计有没有把握呢?面对充满逻辑数字的c语言, ...

  8. c语言课程教学意见,C语言课程教学中的PBL教学法应用

    C语言课程教学中的PBL教学法应用 来源:用户上传 作者: 王晓玲 [摘 要]随着计算机技术的发展和进步,各种各样的计算机软件程序得到了开发和应用,而作为当前最常用的程序设计语言,C语言的功能是十分强 ...

  9. 计算机应用技术专业课程视频,微视频技术在计算机专业课程教学中的应用研究...

    摘 要 在当今时代,微视频已经成为我国教育信息化资源建设的关键技术.通过微视频技术在计算机专业课程教学中的应用,真正制作出具备非常高的质量的微视频,能够科学有效地辅助计算机专业课程的教学.本文对于微视 ...

最新文章

  1. 能跳过节假日的闹钟_非人哉:叫九月起床有多难?闹钟坏了许多个,哮天去叫被打了一顿...
  2. SHELL网络爬虫实例剖析--转载
  3. java打星星_java实现星星图形的输出
  4. 缓冲文件系统(fopen/fread/fwrite)和非缓冲文件系统(open/read/write)
  5. Spark2.2出现异常:ERROR SparkUI: Failed to bind SparkUI
  6. 没想到,我能这么细心地看算法
  7. 表上作业法求解运输问题----python生成初始解
  8. Latex添加矢量图/将visio画图转换成矢量图
  9. VMware虚拟机安装与使用
  10. 龙贝格积分——matlab实现
  11. js实现数字的千分化
  12. 【工具】VScode|Linux 中怎么调试 Python 项目比较方便?又名 VScode 怎么调试 Python 项目(兼容环境Ubuntu18.04)
  13. input 禁止弹出默认的键盘处理方法
  14. 港科招生 | 香港科大DBA(工商管理博士)项目介绍和科研成果分享
  15. MySQL LIMIT 理解
  16. vanish(squid) + HAProxy + nginx + memcached(redis)
  17. JDK17的安装教程
  18. 对抗神经网络(二)——DCGAN
  19. 供应链管理问题会否导致小米在印度市场受挫?
  20. [S3-E429]CSS布局说——可能是最全的

热门文章

  1. 详解 pyinstaller 打包多个py文件
  2. 分类问题常用算法——逻辑回归原理
  3. 自制用于放置钙铀云母的铅盒
  4. 浏览器打印 之 window.print() 设置打印样式和内容
  5. 这个女子不一般--《富家女》
  6. 小计64位win7上R读取excel过程
  7. typescript:Mapped Types
  8. 主成分分析原理的数学证明
  9. FPS最精确计算方式
  10. 计算机技术英语网站,中国致力于成为计算机技术强国