单片机c语言范例6篇

单片机c语言

单片机c语言范文1

Abstract: Combining 8051, the paper introduces the advantages of C-language and the programming design of C-language's relization of MCU digital blink. Though 8051 could embed assembly code at C-language programming, the complicity is obviously improved. The practice proves that if we use C-language resonablely, the equal precision with assembler language could be got at practice.

关键词:单片机;C语言;应用

Key words: MCU; C-language; application

中图分类号:TP31 文献标识码:A文章编号:1006-4311(2010)36-0146-01

1问题的提出

将C向MCU(俗称单片机)8051上的移植始于20世纪80年代的中后期。客观上讲,C向8051 MCU移植的难点不少。经过Keil/Franklin、Archmeades、IAR、BSO/Tasking等公司艰若不懈的努力,终于于20世纪90年代开始而趋成熟,成为专业化的MCU高级语言了。过去长期困扰人们的所谓“高级语言产生代码太长,运行速度太慢,因此不适合单片机使用”的致使缺点已被大幅度地克服。

2单片机C语言的优越性

2.1 不懂得单片机的指令集,也能够编写完美的单片机程序;

2.2 无须懂得单片机的具体硬件,也能够编出符合硬件实际的专业水平的程序;

2.3 不同函数的数据实行覆盖,有效利用片上有限的RAM空间;

2.4 程序具有坚固性:数据被破坏是导致程序运行异常的重要因素。C语言对数据进行了许多专业性的处理,避免了运行中间非异步的破坏;

2.5 C语言提供复杂的数据类型(数组、结构、联合、枚举、指针等),极大地增强了程序处理能力和灵活性;

2.6 提供auto、static、const等存储类型和专门针对8051单片机的data、idata、pdata、xdata、code等存储类型,自动为变量合理地分配地址;

2.7 提供small、compact、large等编译模式,以适应片上存储器的大小;

2.8 中断服务程序的现场保护和恢复,中断向量表的填写,是直接与单片机相关的,都由C编译器代办;

2.9 提供常用的标准函数库,以供用户直接使用;

2.10 头文件中定义宏、说明复杂数据类型和函数原型,有利于程序的移植和支持单片机的系列化产品的开发;

2.11 有严格的句法检查,错误很少,可容易地在高级语言的水平上迅速地被排掉;

2.12 可方便地接受多种实用程序的服务:如片上资源的初始化有专门的实用程序自动生成。

3应用案例:C语言实现单片机数码管闪烁

本应用案例中(/*此函数主要是C语言实现单片机数码管闪烁功能。效果:1――数码管显示0123;2――停顿;3――数码管显示4567;4――无穷循环1,2,3步。*/),程序为:

#include

#include

unsigned char code dis_code[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0xff}; //定义数组

int delay(int x)//声明延迟函数

{

int j=0;

for(j;j

}

main() //主函数

{

int i,j;//定义i,j

unsigned char seg;//定义seg,用于数码管的初始化

seg= 0xfe ;//定义seg为0xfe,即11111110;使数码管为第一个显示

while (1)//无穷循环

{

{ for(j=0;j

{

for(i=0;i

{

P2=seg;//初始化P2

P0=dis_code[i]; //显示数字

delay(200);//延迟约1ms

seg=_crol_(seg,1);//数码管右移一位

if (seg==0xef) seg=0xfe; //输出四个数字之后停止

}

}

P2=0xff;//数码管全不接通,把0,1,2,3消去

delay(2000000); //延迟

for(j=0;j

{

for(i=4;i

{

P2=seg; //初始化P2

P0=dis_code[i]; //显示数字

delay(200);//延迟约1ms

seg=_crol_(seg,1);//数码管右移一位

if (seg==0xef) seg=0xfe;//输出四个数字之后停止

}

}

}

}

}//函数结束

单片机c语言范文2

【关键词】单片机;教学改革;项目

单片机技术是自动化领域一门应用非常广泛的技术,它综合了软件编程和硬件电路设计等技术,技术含量比较高,是自动化专业学生必修的一门课程,是技术应用型人才培养的需要。现在单片机技术发展很快,然而如今很多高等院校的单片机课程教学没有作出相应调整,导致学生的学习效果达不到要求。现在各大院校都提倡基于工作过程的新型教学方式,实践已经证明这种方法是可行和先进的。现在各种大学生电子设计大赛每年有许多,这些比赛项目都是基于单片机来完成的,每个大赛都吸引非常多的学过单片机技术的大学生参与,这就给了学生一个主动学习和应用单片的机会。为了取得更好的学习和教学效果,满足单片机企业用人要求和社会应用要求,应该对单片机课程教学进行实践和授课方法改革。

1.单片机目前教学情况

“课堂授课讲原理,中间穿插几个硬件实验”是现在大多数学校的教学方式。现在这种教学模式存在许多不足,学生学习没兴趣,不主动,仍是填鸭式教学,没有给学生自己动脑,主动开发的训练过程,不能培养学生整体设计和动手能力。

1.1 教学实验设备单一

目前高校配备的实验设备一般是综合了十几项实验内容的实验箱,学生可以通过实验加深对理论知识的理解。但这类实验箱最大的问题是无法提供高质量的动手环境,这些试验箱都是根据实验项目已经将硬件连接好了,学生只需要根据要求简单连线就可以使用,因此学生动脑和动手的机会非常少。由于线路已固定在实验板上,学生不能自己的设计并改变线路,具有一定的局限性。

1.2 教学与实际应用不符

目前的教学方法基本都是以讲授理论为主,使用的编程语言主要以汇编语言为主,但使用汇编语言有一些局限性,主要表现在[1]:编程效率低,学生学习难度大;语句抽象,可读性差,学生难理解;代码结构复杂,难以维护、更新;对硬件结构依赖较大,难以实现在不同种类和系列单片机之间移植。这些问题造成了教学效果不太理想,导致学习单片机的学生不少,但真正能动手实际操作的人却非常少。

1.3 教学效果不理想

作为高校,尤其是地方本科院校,主要任务是为地方培养应用型人才,要求学生具有较强的实践能力、一定的理论基础和团队协作精神。然而,传统教学模式下,学生上课的大部分时间都在接受较为枯燥的理论知识,然而只靠死记硬背是很难掌握单片机技术的。因此,传统授课方式下学生学习效率特别低,甚至有的学生在学完单片机课程后,也不知道单片机到底有什么用处,怎么用。这是单片机课程当今所存在的另一大弊端。

2.单片机课程教学改革

2.1 以C语言作为主要编程语言

C语言作为一种结构化的程序设计语言,它是程序开发工具中使用最广泛的一门编程语言,C语言具有很强的功能性、结构性、可移植性。与汇编语言相比,C语言具有以下特点:用C语言编写程序比汇编语言更符合人们的思考习惯,有功能丰富的库函数、运算速度快、编译效率高,可读性好,可移植性好。[2]

学习单片机技术这门课的自动化学生都在之前已经学习了C语言,因此,选用C语言作为单片机编程技术对于学生来说编程就变得轻松许多。更重要的是,单片机技术发展到现在,单片机相关行业的公司大部分采用C语言开发环境,因此,使用C语言作为单片机的编程语言也是为学生以后更好地就业打好基础。

2.2 基于电子设计的C语言为主要编程语言的单片机技术教学改革方法

自动化专业单片机现在的授课方法大多是每章节都安排大量理论授课,在最后几周安排大约4-6个相关实验,在最后一周做一个课程设计。这种教学方法忽略了平时授课过程中训练动手能力的环节。都是在讲完了理论后再去动手做实验。实践证明这样教学效果比较差,因为学生平时就没有真正掌握单片机技术,最后做实验也只是模仿,而不是根据自己的理解主动开发,甚至有的学生根本就不知道要做什么东西,怎么做。这样的结果不可能培养出学生较强的动手能力。

在单片机课程中也可以采用以电子设计项目为实现目标的教学方法。这种教学方法围绕电子设计项目展开,以电子设计项目的开发步骤作为教学顺序,将单片机的知识点穿插到实现项目的过程中,引导学生边做边学。项目由易到难编排,每堂课的教学任务就是完成一个项目产品或项目的一部分功能,其中涵盖单片机相应的理论知识。当把所有的项目完成之后,既积累了动手实践经验,又掌握了单片机的理论知识点。这种在“用中学,学中用”的方法才是能真正掌握单片机技术好方法,这在参加历届各个电子设计大赛的学生身上已经得到了验证。

另外,选用C语言作为单片机编程语言。但是,PC上编程的C语言和单片机上使用的C语言在写程序时还是有一定区别的,因此,在讲解应用C语言进行单片机编程时,重点在三个方面:一是尽可能地做到概念明确、清晰、准确;二是紧密结合单片机实际,多举例子;三是讲一些应用中的经验和体会。

为实现良好教学效果的目标,授课可以分以下几步进行:

(1)项目描述。选取贴近生活的电子产品,或往年电子设计大赛学生作品,针对作品讲解。

(2)项目分解。将项目内容分成硬件设计、程序编写、调试程序等环节,各个环节再细分成不同的功能模块,这样学生可以了解整个项目是如何完成的,有一个整体概念。

(3)理论知识重点讲解。让学生了解并掌握要做项目的原理。

(4)分组实验。按照电子设计比赛要求自由组合成若干项目组,根据所学知识实现项目。若碰到难解决的问题,鼓励项目组成员通过讨论,查阅资料自己解决,实在解决不了再询问老师,这样既锻炼了学生的动脑、动手、自主思考的能力,也培养了学生的团队协作精神。

(5)评价总结。结合项目实现目标要求评价硬件、软件完成质量;小组演示汇报任务开发过程及结果;按评分标准对各组进行评价,形成最终评价结果,作为平时成绩备案,给学生一个积极动力。

2.3 基于电子设计项目为教学方法要注意的地方

采用项目教学法授课,每个项目会直接影响教学效果,因此,对于设计哪些项目、各个项目之间的链接有十分重要的关系。[3]

第一,项目要以学生的实际水平设计难度。设计的要实现项目,应充分考虑学生的知识水平、认知能力,保证能够完成每个子项目,从而尽量能完成整个项目。

第二,每个项目要有明确的目标。将每个项目细分成一个个小的项目,通过完成小项目来逐步实现总的学习目标,对于大的项目采取分组学习讨论。

第三,在项目教学法中,应以学生为中心。教师要进行角色转变,整个教学过程中,要突出学生的主体地位。

3.结束语

采用C语言进行单片机教学,大大提高了课堂学习效率与学生对单片机的学习兴趣;采用基于电子设计项目的教学方式,将单片机各部分内容融入各个讲解的项目中,让学生在做项目的过程中不断寻找问题,找到问题再通过学习理论知识解决问题,最终实现每个要求的项目,一个个的新项目完成,到最后整个单片机知识也就掌握了。

我校自动化专业单片机技术的教学,使用基于电子设计的C语言单片机教学收到了良好的效果。实践证明,理论够用,重在实用。这是进一步培养应用型人才教学改革的一个方向。

参考文献

[1]蔺玉珂.基于工作过程教学的单片机课程改革研究[J].单片机与嵌入式系统应用,2010(4):5.

[2]董蕴宝,潘旭君.浅谈C语言在单片机中的程序设计[J].科技信息,2009(13):59.

单片机c语言范文3

关键词:MCS-51单片机;汇编语言;C语言;教学探讨

中图分类号:G642.4 文献标志码:A 文章编号:1674-9324(2013)36-0259-02

一、引言

MCS-51单片机课属于嵌入式系统的基础专业课程,实践性很强[1]。其教学目前存在两种倾向:一种是采用传统的采用汇编语言教学;另一种是采用C语言教学。前者认为汇编语言贴近机器语言,有助于学生很好的理解单片机硬件资源;后者认为用C语言教学,能让学生掌握C语言在单片机中的应用。由于目前在嵌入式系统的工程项目开发中基本上都采用C语言,因此采用C语言教学,有助于学生尽快利用单片机进行相关工程项目的开发,使学生在日后的相关工作中尽早适应公司的需要,得到公司的认可。那么,在教学中到底如何处理语言的选择问题,本文就是基于这个问题进行探讨分析。

二、分析汇编语言的特性及应用

汇编语言主要特性表现如下:首先是汇编语言的可移植性和通用性差。汇编语言与机器的相关性很强,其指令是机器指令的一种符号表示。由于不同类型的CPU有不同的机器指令系统,从而其对应的汇编语言也是不同的,因此,汇编语言程序与机器有着密切的关系。对于同系列、不同型号CPU之间的汇编语言程序,它们有一定程度的可移植性,但对于其他不同类型CPU之间的汇编语言程序是无法移植的,所以说汇编语言程序可移植性比较差,即其通用性相对于其他语言(如C语言)来说比较差。其次是汇编语言执行的高效率。正是由于汇编语言与机器有很强的相关性,程序员用汇编语言编写程序时,可对机器内部的各种硬件资源进行合理的安排,使它们始终处于最佳状态。因此汇编语言程序代码能很好地对应机器内部资源,并可以对内部资源直接操作,相对于其他语言(如C语言)编写的程序,其程序执行代码短,执行速度快,执行效率高。再次是汇编语言编写程序的复杂性。由于汇编语言与机器的相关性强,因此是一种面向机器的语言。因为汇编语言的汇编指令与机器指令基本上一一对应,所以,汇编指令具有功能单一、具体的特点。要用这些简单指令完成某件具体任务,就要求对任务的每一个细节都进行具体细致的安排,那么编写出汇编语言程序一定比较繁琐、复杂,当然这也是相对于其他高级语言(如C语言)而言的。最后是汇编语言程序调试的复杂性。汇编语言程序调试的复杂性表现如下:

其一,由于汇编语言指令涉及到机器内部资源的具体细节,因此,要求程序员在编写具体任务程序前,首先必须清楚机器内部硬件资源,在程序的调试过程中必须清楚这些资源的状态变化;其二,为了很好地表示要完成的任务,程序员在编写程序时必须要用大量的各类转移指令,这些转移跳转指令将极大地增加了调试程序的难度。

综上,由于汇编语言的与机器相关性,使得它具有代码执行的高效性优势,但同时也引发其代码编写的复杂性,可移植性差和调试难等劣势。因此,在实际应用中汇编语言有其不可替代优势,有其在应用方面的复杂性。

三、分析C语言的特点及应用

标准C语言是一种不依赖于具体机器的智能化高级语言,易于学生接受学习。目前,C语言是世界上应用最广泛的几种计算机语言之一,国内工科院校普遍将其作为一种基础计算机语言进行教学。作为计算机基础语言,它有以下特点:

1.C语言简洁、紧凑,使用灵活、方便。C语言共有9种控制语句。由于引入结构化的控制语句(如for语句、while语句等),引入函数作为程序的基本模块,从而使C语言具有了结构化和模块化,使程序组织结构清晰,紧凑。C语言共有32个关键字,语法限制不太严格,区分大小写,主要用小写字母表示,程序设计自由度大,程序书写形式自由,使用方便、灵活。相对于其他高级语言,C语言简洁,源程序短,程序输入工作量少,使用灵活、方便。

2.C语言运算符和数据类型丰富。C语言运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理,使其运算符类型极其丰富。C语言丰富的运算符类型使其具备处理复杂运算的能力。C语言的数据类型有整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等,能用来实现各种复杂的数据结构的运算。

3.C语言可直接对硬件进行操作。由于C语言允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作,因此它既有高级语言的功能,又有低级语言的许多功能,能够像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。

4.C语言生成目标代码质量高,程序执行效率高,可移植性好。相对于其他高级语言,C语言生成目标代码质量高,程序执行效率高。但相对于汇编语言,其生成的目标代码效率还是要低10%~20%。与汇编语言相比,C语言编写的程序基本上不做修改就能用于各种型号的计算机,因此C语言编写的程序便于移植。

综上,C语言是结构式模块化的高级语言,该语言简洁紧凑、灵活方便、运算符和数据结构丰富。其最大特点是适用范围大,数据处理能力强,可移植性好,正是基于这点使其在嵌入式系统开发中得到广泛应用。

四、单片机原理及应用课的教学分析

MCS-51单片机课是一门偏硬件的课程,包含两部分内容:单片机原理和单片机应用。因此,在教学中有必要对两者区别处理。单片机原理主要讲述MCS-51单片机的结构、组成原理;MCS-51单片机芯片的引脚结构、功能;MCS-51单片机的内部结构组成,包括其内部包含的寄存器、RAM、ROM等资源;MCS-51单片机P3口的第二功能:中断功能、定时/计数器功能以及串口通信功能。上述MCS-51单片机内容都是单片机的硬件组成结构,对这部分的讲解必须借助一种语言工具,而且要求这种语言工具能充分的表达单片机的硬件结构。

基于前面对汇编语言的分析,可以发现其与机器相关性的特点使得该语言工具能有效地表达单片机的硬件结构,满足教学MCS-51单片机原理的需要。比如,对MCS-51单片机的不同存储空间进行操作时,汇编语言可以通过采用不同的汇编指令加以区别:对内部RAM空间操作可采用MOV指令,对内部ROM空间操作可采用MOVC指令,而对外部扩展RAM空间操作时可采用MOVX指令。当然对MCS-51单片机的寄存器进行操作就是对内部RAM进行操作,也用MOV指令。还有,在对MCS-51单片机串口进行数据传送时,在硬件上只要对SBUF进行操作就行,即利用MOV SBUF,A发送数据,利用MOV A,SBUF指令接收数据[2],这样看起来就非常的清楚、简洁、易于理解。显然,汇编语言是理解整个单片机系统内部硬件结构的最佳起点和最有效途径[3]。汇编语言采用助记符直接描述机器指令,比机器指令容易记忆和理解。学习和使用汇编语言,能够感知、理解机器的硬件逻辑功能。因此,在单片机原理的教学中采用汇编语言效果会更好。目前,大多数MCS-51单片机的教材中对于单片机应用的讲解中,普遍将键盘,LED数码管,LCD以及电机等作为教学重点。有的教材还将I2C总线,SPI总线等的应用作为单片机的应用内容进行讲解,这主要是因为51单片机没有这些总线接口,一般采用MCS-51单片机模拟这些总线接口。单片机应用中的内容都利用了MCS-51单片机的IO端口来进行应用操作。如果学生通过汇编语言掌握了MCS-51单片机的硬件原理,那么应用内容可采用C语言进行讲解,使学生能理解C51语言在单片机上的应用。通过实验训练能够让学生掌握C51语言在单片机开发中的应用。

基于前面分析,C语言简洁紧凑、灵活方便、运算符和数据结构丰富。其最大特点是适用范围大,数据处理能力强,可移植性好[4]。那么,在单片机应用的教学中采用C51语言,不但有助于学生更好的掌握C51语言在单片机开发中的应用,也有助于学生为后续的嵌入式系统开发中利用C语言打下坚实的基础。

目前,在MCS-51单片机课的教学中,安排有理论课,实验课和课程设计。在理论课和实验课中,主要采用汇编语言,从而让学生熟悉汇编指令,并通过汇编语言理解、掌握单片机原理及部分应用内容;在课程设计中,让学生自己设计题目,利用C51语言完成题目所设定的任务。鉴于C语言在嵌入式工程应用中的重要性,在课程开始就强调让学生自学C51语言;讲解MCS-51单片机应用内容时采用C51语言;实验中,验证性实验要求用汇编语言,综合实验要求用汇编语言和C51语言两种语言完成;最后的课程设计中可以明确要求用C51语言完成题目要求。

五、结论

MCS-51单片机课是一门实践性很强的嵌入式基础性课程,因此,一方面在教学中对单片机原理采用汇编语言教学,以便学生理解MCS-51单片机的硬件结构[5];另一方面加强学生对C51语言在单片机应用中的熟练掌握,这可在单片机实验及课程设计中得到加强。实践证明,这种教学安排是可行的、有效的。

参考资料:

[1]赖晓晨,周宽久,夏锋,等.嵌入式系统工程实例解析[M].北京:清华大学出版社,2012.

[2]王新颖.单片机原理及应用[M].北京大学出版社,2008.

[3]张毅刚,彭喜元.单片机原理及接口技术[M].北京:人民邮电出版社,2008.

单片机c语言范文4

【关键词】电子类专业 “C语言”课程 实践教学 现状 对策

【中图分类号】G 【文献标识码】A

【文章编号】0450-9889(2016)08C-0151-02

在电子类专业中,“C语言”是一门重要的专业基础课,它的功能强大、使用灵活方便尤其是应用面较为广泛,但与此相应的是,其理论性和实践性要求也较高。理论上较为抽象、概念上较为复杂,这使得学生在学习过程中尽管花费了大量时间,却难以收到较好的学习效果。所以探索如何有效提升“C语言”的教学效果意义重大。为改善“C语言”教学效果,本文针对电子类专业“C语言”课程的实践教学情况,从现状问题入手,展开探讨,在教学内容、方法等方面提出教学对策,以提高教学质量。

一、电子类专业“C语言”教学现状分析

(一)课程之间衔接少时间跨度大。对于刚入学的学生来说,“C语言”与其他课程相比算是较为新奇的一门课程,而大部分学生认为学过“C语言”后就可以编程,但现实往往差强人意,大部分人只是为了能够通过考试、会做题。而真正的应用能力、编程能力没有得到很好的培养。

从学习的角度来讲,“C语言”编程是一个需长期且持续不断的过程。因此,用任务来驱动教学或学习是一种较为理想的方法,它能够把“C语言”及时地应用起来,现场去体验其奥妙之处。然而,教学实践中这样的场景较少,究其原因就是与之衔接的课程较少,学生对于编程的需求没有持续下去。其次在课程的安排上也很少考虑衔接性。比如“C语言”与单片机两门课程的教学时间相隔较长,往往导致学生在学习单片机的“C语言”编程时,基本忘记了“C语言”的基本编程方法。

(二)课程教学方法不符合工科的教学规律。C语言是一门工程应用工具课程,最佳的学习方式是一边做一边学,把学习的内容放入小的项目中去学习。而大部分的院校教学过程中主要以课本为主,对“C语言”的数据类型、所用的控制语句、指针、数组、结构体、函数等做重点讲解。在教学过程别重视语法、数学算法、程序的构造等内容的讲解。此类教学模式对于学生解题有很大的能力提升。但是学生解决实际问题、分析问题的能力没有被培养出来。学习过程枯燥无味,不能够激发自身的学习兴趣,“C语言”的学习效果自然大打折扣。

(三)学生自觉性不够高。对于机械式的学习,即使成绩较好的学生也是为了能够通过等级考试。对于学习“C语言”有什么优势他们也不太清楚。而较强的编程能力正是需要不断去锻炼和尝试。但每个人不可能去一直做一些题目,或对着Turbo C去练习一些代码。因此对“C语言”的学习也会变成考过试就忘记的一门课。学生不会主动去尝试应用所学知识解决实际问题。

二、教学对策分析

(一)优化实践教学内容。作为电子类本科专业的学生对于“C语言”的学习主要目的是为后续的一些课程如单片机、EDA、ARM等嵌入式系统编程作基础。因此不管是对于教还是学主要以目标为导向,分析“C语言”的应用特点和场合很有必要。

为了强化任务驱动教学,本教改项目中将单片机控制的机器人引入“C语言”的学习中,让学生在驱动机器人完成某个小任务中通过编程来学习C语言的实际应用方法。在整个过程中分两个阶段进行。

第一阶段,在原有“C语言”实验环节的基础上,作一个微调整,将原有课程中4学时用来引入单片机和机器人的初步认识和使用。在这个过程中主要是对单片机的简单功能、引脚结构还有对应的编译软件Keil、C51的库函数等的使用;对机器人的构成,常用的电路进行认识和使用。在介绍机器人之前对于较基础的“C语言”内容要有所掌握,比如输入输出、数据类型等。例如,引入一个小的任务:通过认识电路结构后,让学生通过编程去控制LDE的发光间隔。

#include

#include

int main(void)

{

while(1)

{

P1_0=1; // P1_0 输出高电平

delay_nms(500); //延时500ms

P1_0=0; // P1_0 输出低电平

delay_nms(500); //延时500ms

}

}

通过这个简单的实例让学生深刻体会到while循环过程在程序中的巧妙应用。在逐步介绍机器人的过程中,慢慢会让学生体会用自己所编写的程序来驱动机器人作不同的动作,从而激发他们的学习兴趣。当然用单片机作为“C语言”教学过程中的工具应该考虑且要有意识地避开单片机一些特殊的功能如定时、中断等需要用到大量特殊寄存器的复杂用法。在内容设计方面尽可能做到与“C语言”所学内容的有效高度融合。

第二阶段,在课程设计上下工夫,趁热打铁将“C语言”中所学的内容综合有效的用运起来。在任务设计上分成几组不同难度的题目让学生通过编程去完成。因为有了实验的基础和对“C语言”的整体认识,此时学生已具备使用“C语言”的能力,但需要一个平台来给他们展示和体验。课程设计中,将机器人的大量功能调动起来,加以(下转第171页)(上接第151页)不同的辅助传感器来完成不同的任务。例如,通过机器人的红外引导在程序中能够判断识别线路进行路线规划完成任务;通过超声波传感器进行障碍避让,完成迷宫穿梭。类似任务可以给学生布置很多,在这样的一个过程中,学生会觉得有挑战性。这样他们对于“C语言”编程的奇妙之处才得以体会,更加能够激发他们的学习兴趣,同时对于后续的学习会有很大的帮助。这样的改革与传统的教学方法相比虽然在教学过程中教师比较辛苦但是能够真正调动学生的学习兴趣,使学生能够从读懂程序变成会编程序,从而产生学习兴趣,能够坚持学下去。

(二)积极进行课外引导完善第二课堂。电子类专业注重对学生动手能力的培养。能够利用所学知识进行课外制作和参加一些相关的比赛是对学生理论与实践应用能力更为有效的检验。一是以系部或班级为单位组织一些较为有趣的课外制作比赛。以单片机为核心用“C语言”进行编程。对机器人的功能可以进行高一级的开发,适当介绍单片机的一些高级功能和寄存器的用法,加以教师辅导。可以在原有基础上完成更为高级的任务。二是与后续课程有效衔接,在课外参加一些大学生创新项目的制作,或是参加电子制作比赛等。实践证明凡是编程能力较高的学生不是考试最为优秀的,而是经过多次不断尝试编程,而逐渐具备能够熟练应用“C语言”编程能力的同学。通过不断探索,力求能够达到“做中学,学中赛,赛中会”同时更要激发学生对“C语言”有不断学习的兴趣,提升电子类专业学生的编程技能。

总之,“C语言”实践教学应积极探索和尝试不同的教学方法,以推动实践教学质量的提高。

【参考文献】

[1]陈景波,等.“C语言”课程中融入“单片机”内容的教学研究[J].中国电力教育,2013(26)

[2]熊中刚,等.基于单片机的“C语言”教学方法探讨[J].教育教学论坛,2014(10)

[3]谭浩强.C语言程序设计教程(第三版)[M].北京:清华大学出版社,2013

单片机c语言范文5

关键词:机器人;项目驱动;创新实践

中图分类号:G642 文献标识码:A

一、引言

二、现状和存在的问题

(一)课程的教学课时偏少

(二)学生的学习积极性不足

有些学生认为学习《C语言程序设计》和《单片机原理与应用》既抽象又枯燥,不如学习其它一些课程生动直观;有的学生是因为学习这些课程需要较强的抽象思维和逻辑思维能力,还需具备一定的数理、英语基础,因而在学习的过程中显得力不从心,不能掌握正确的学习方法和思维方式,从而对学习这两门课程产生了一种畏惧心理。

(三)实践教学环节不能满足教学的要求

城市轨道交通专业群本身就是技术应用专业,而且高职院校是以提高工程实践能力为主的职业教育。然而,现今高职院校所用的相关课程的教材,存在的普遍问题就是实践性教学内容严重不足,课程中的实践性教学多是验证性的实验,而具有实用性、创新性和职业性的基于工作过程的实训项目较少。

(四)教学方法落后、考核方式单一

高职课程一般采用的教学方法是教师课上讲授加学生实验的形式,教师在理论课上常常采用“填鸭式”教学,学生很少有机会发挥自身的主观能动性;实验时学生也仅仅是对书本上现有的一些实例进行验证调试,一旦调试成功就完成任务。这种教学方法根本不能让学生掌握如何从一个实际问题入手分析问题、解决问题。另外,单一的笔试考核方式也使教师和学生忽视了实践课的教学环节,从而导致现今的课程教学不能满足高职教育发展的需求。

三、课程教学创新实践的目的、意义和措施

第一,改革原有的理论和验证性试验相结合的教学体系,构建创新式、相互有机联系、基于实际工程项目开发的教学体系。

第二,激发学生学习《C语言程序设计》和《单片机原理与应用》的兴趣和积极性,充分调动起学生的主观能动性。

第三,提高城市轨道交通专业群及相关专业学生分析问题、解决问题的能力,并且加强了他们在工程实践中的应用能力。

第四,形成一套完整的,便于学生理解和掌握,基于机器人项目驱动的《C语言程序设计》和《单片机原理与应用》讲义,并运用于实际的教学。

通过将单片机的知识和C语言程序设计的知识融入到机器人项目中,让学生通过亲自设计、焊接、调试和组装项目系统中的典型模块,最后完成系统控制,全面掌握工程系统的建模、分析、设计和调试等方法,使学生体会到该课程在工程系统中的作用和地位,激发他们的学习兴趣,提高他们学习的主观能动性。另外,针对《C语言程序设计》和《单片机原理与应用》讲义中涉及到的每个机器人项目设计制作相应的微课视频,加强学生的直观认识,促进知识内容的理解。从而解决了《C语言程序设计》和《单片机原理与应用》这两门专业核心基础课程抽象、难学的老大难问题。

四、课程教学创新实践的内容

第一部分:基于机器人项目驱动的《C语言程序设计》教学实践

项目1:利用机器人实现直线运动

该项目包含的C语言程序设计内容有:简单的C语言程序;程序、算法;数据类型;常量与变量、控制字符;输出语句;顺序程序结构。

项目2:实现智能机器人的曲线运动

该项目包含的C语言程序设计内容有:循环控制语句;while 循环;do……while 循环;break语句与continue语句。

项目3:机器人的变速运动

该项目包含的C语言程序设计内容有:for语句循环;goto语句;嵌套循环;算术运算符与算术表达式;强制类型运算符;自增自减运算符;赋值运算符与赋值表达式;复合的赋值运算符。

项目4:机器人触觉导航

该项目包含的C语言程序设计内容有:选择语句if;关系运算符与关系表达式;逻辑运算符与逻辑表达式。

项目5:机器人循迹导航(跟踪条纹带)

该项目包含的C语言程序设计内容有:if…else分支语句;if语句嵌套;条件运算符;switch多分支选择语句。

项目6:基于I/O接口控制的机器人红外线导航

该项目包含的C语言程序设计内容有:while语句与if……else……语句综合应用。

项目7:C语言函数与机器人尾随小车 该项目包含的C语言程序设计内容有:数组;数组的定义、初始化、引用;二维数组的定义、引用、初始化;字符数组。

项目8:C语言函数与机器人运动状态

该项目包含的C语言程序设计内容有:函数定义;有参函数;函数的调用;参数的传递;形参与实参;函数的嵌套调用;递归;变量的存储方式;全局变量与局部变量;带参数的宏定义。

项目9:机器人与上位机的无线通讯

该项目包含的C语言程序设计内容有:地址和指针;指针变量及运算;数组指针;指针与函数;字符指针;指针与字符串。[1]

第二部分:基于机器人项目驱动的《单片机原理与应用》教学实践

项目1:认识机器人与单片机

该项目包含的C51单片机内容有:单片机定义以及内部结构;单片机电路符号以及封装图;单片机的框架组成及各部分功能;单片机简单控制原理;单片机的使用;单片机的类型及特点;单片机的应用领域。

项目2:机器人开发编程环境的建立

项目3:机器人的安装

该项目包含的C51单片机内容有:机器人的初步安装;51单片机芯片的安装;触觉传感器的安装;红外传感器的安装;利用面包板搭建电路。

项目4:机器人基本的巡航控制

该项目包含的C51单片机内容有:C51单片机的I/O接口介绍;单片机系统的设计;单片机控制发光二极管;单片机的软件初始化以及控制命令;单片机控制伺服电机;延时程序控制电机时序;单片机输出接口控制伺服电机。

项目5:单片机的输入接口与机器人的触觉导航

该项目包含的C51单片机内容有:单片机的输入接口;单片机控制触觉传感器原理及实物连接;单片机端口值的获取。

项目6:单片机I/O接口与机器人红外避障

该项目包含的C51单片机内容有:单片机输入输出接口控制红外线的发射与接收;单片机发送脉冲;高性能的IR检测

项目7:基于IR LED探测电路的智能机器人测距

该项目包含的C51单片机内容有:测距传感器的分类;频率扫描与区域探测;定时/计数器的应用及编程实现;TCON和TMOD特殊功能寄存器;定时器工作模式;C51单片机中断服务函数的概念和使用;中断使能寄存器;定时器时间调整。

项目8:机器人的串口通信(UART的应用)

该项目包含的C51单片机内容有:单片机串口通信;串口结构

串口控制寄存器SCON;串口的工作模式;波特率;RS232电平与TTL电平转换;存储器结构。

项目9:LCD应用编程及机器人的集成技术

五、课程教学创新实践的成果

(一)提高了学生的工程实践和编程能力

大大提高了学生的工程实践和编程能力,明确了课程知识间的有机联系性。通过教学创新,使学生把《C语言程序设计》和《单片机原理与应用》课程学习与实际工程项目的开发相结合,更好的体现了理论联系实际,激发了学生学习专业的兴趣和积极性。

(二)更新了教师的教学理念

通过基于机器人项目驱动的城市轨道交通专业群课程教学创新实践,使教师深深体会到课程知识间的有机联系性和老师技术的全面性是提高教学质量的关键一环。

(三)教材建设的成果

提交了一套《基于机器人项目驱动的C语言程序设计》讲义和《基于机器人项目驱动的单片机原理与应用》讲义,该教材在城市轨道交通专业群的课程教学过程中起到了很好的效果。完成了和讲义相配套的微课视频的制作。

单片机c语言范文6

一、C语言教学的现状及改革的必要性

1、教学方法(1)古老的C语言教学方法最初教授C语言程序设计,一般采用两节课讲理论,两节课上机,理论与实践1:1,上机课基本上是学生将课本上的例题调试通过就算成功,自己尝试编程很少,这样的结果是,一学期下来,学生根本就不会编程,效果很不理想。(2)当前的C语言教学方法目前多数C语言教学采用一体化教学,即所有课程全部在机房上机,机房配有投影仪,边讲边练,这样的教学方式比传统的理论与实践分开教学要好很多,学生学习的知识能得到及时的巩固,但是,其教学内容还是没有跳出传统的C语言教学体系,传统的C语言教学内容有个致命的弱点,就是抽象,不直观,学生看不到C语言编程的强大功能,给人感觉学生不知道C语言到底能干什么,这样很难激起学生学习的兴趣,教学效果也很差,等到高年级发现可以利用C语言控制单片机和嵌入式系统,做出各种的项目,明白C语言的强大功能时,学生就开始后悔当初没好好学习C语言,可惜已经有些迟了。

2、学生现状与教学改革的必要性C语言编程学习需要有较强的抽象和逻辑思维能力,也许那些高考分数较高的一本院校学生,会对C语言感兴趣,高职高专的学生逻辑思维能力较差,自学能力,学习自觉性都较差,,加之现在90后功利心普遍比较强,对于那些短时间看不到实际效果的东西失去兴趣,因此,必须进行教学改革,将抽象的C语言赋予一些直观的元素,体现C语言强大的硬件控制能力,将C语言控制单片机和嵌入式系统进行融合,将C语言的知识点贯穿于嵌入式系统开发的多个案例之中,这样就使学生的学习热情大大提高,教学效果自然就好。

二、我们改革的具体做法

1、将51单片机中的7个经典案例融入C语言教学之中,这7个案例分别是流水灯控制、数码管显示控制、键盘扫描控制,音乐演奏器与电子琴设计,液晶显示控制,电子日历时钟闹钟设计,简易电子计算器设计,将C语言的理论知识贯穿于这7个案例之中,每个案例下分若干个子案例,如流水灯中,最开始是点亮一个发光LED,再到点亮多个,然后到开始流水,流水又分多种方式,这中间就涉及到C语言的语法、语句、顺序结构程序设计、循环结构程序设计、函数的编写和使用、位运算等知识,数码管的显示控制就涉及到循环结构、数组、函数的知识,键盘扫描涉及到分支结构、位运算、函数的知识,音乐演奏器与电子琴的设计涉及到数组、指针、宏定义等知识,液晶LCD显示控制涉及指针、结构体等知识,电子日历时钟闹钟设计和简易电子计算器的设计较为综合,几乎涵盖了C语言所有章节的知识,这样就将C语言传统的章节打乱了,分别融入到这7个项目当中。

2、实际授课中,7个案例分解成若干个小案例,遵行的原则是从易到难,逐步过渡,用实际效果来吸引学生,激发学生的学习兴趣,引导学生掌握相关的知识点和相关技能,我们的教学步骤大概如下:第一步,给学生演示设计效果,告诉学生我们要完成的任务;第二步,讲解完成本任务需要的知识点;第三步,引导学生完成此任务的设计思路;第四步,学生分组开始着手设计和完成任务;第五步,教师观察学生完成任务情况并现场指导,根据学生完成情况作适当提示,鼓励先完成任务的学生帮助后进的学生;第六步,检查学生完成情况,让学生汇报成果和交流方法和心得;第七步,教师总结并指出学生完成任务的优点和不足,指出改进方法;第八步,教师扩充相关知识点;第九步,布置课外任务及说明下次课要完成的任务,要求学生预习相关知识点。

3、教学环境,整个课程在一体化教室完成,要求每生一台电脑,至少安装Keil4或者更高版本Keil软件,Protues仿真软件,VC6.0或者TurboC,要求配有投影仪。