公务员期刊网 精选范文 单片机c语言范文

单片机c语言精选(九篇)

单片机c语言

第1篇:单片机c语言范文

【关键词】单片机;C语言;指针

C是一种编译型语言.有高级语言的特点,并具备汇编语言的功能,移植性能好,便于自顶向下结构化程序设计,C语言在单片机中的应用,给开发者带来了很大的方便.软件开发者不需要对单片机硬件的结构有很深人的了解,编译器可以自动完成变量存储单元的分配.使得单片机的程序设计更加简单可靠。指针、地址、数组及其相互关系是C语言中最有特色的部分。在编写单片机的应用程序时,常常需要对端口及存储单元进行寻址.因此,掌握指针在这些寻址过程的工作原理是很有必要的,这有利于编写灵活高效的程序。

一、指针结构声明

C语言中,对于指针的声明采用如下形式:类型标识符*指针变量名;由于单片机存储区的关系,所以单片机C语言的指针声明格式有别于普通C语言指针的声明格式,其格式为:

类型标识符[存储区类型]

指针变量名[指针变量存储区类型]

单片机C语言的指针的定义比普通C语言指针的定义多两个部分:存储区类型是指指针变量所指向的数据的存储区,可以是所有的数据存储类型;指针变量存储区类型是指指针变量的存放区域的数据,可以是data、ldata、xdata或pdata如下声明:

unsigned char xdata *data yc;

上声明语句是指在RAM(data)内声明一指针变量yc,该指针变量指向一无符号字符型数据,该无符号型字符存在xdata区内。 该指针变量的应用格式如下:

unsigned char xdata indata[6];

unsigned char xdata *data yc;

yc=indata;

其编译后的的汇编为:MOV 08H,#00H;0x08和0x09是在片内RAM存储区分配的yc指针变量的地址空间。

二、指针寻址的实现

单片机C语言的数组的寻址和普通C语言的寻址基本上是一样的,只是当数组存储在片内时,由于片内RAM资源十分有限,所以很难有比较复杂的数据结构,而且在编程过程中也尽量避免在片内RAM中使用较大的数组。

1.指向data区的指针寻址的实现

这是最基本的寻址方法,比如一个检测系统中,通过A/D转换把外部数据输入单片机中,单片机对这6次采样数据求和,具体程序如下:

unsigned char data inputdata[6];

unsigned int data sum,i;

unsigned char data * data yc;

void main()

{ sum=0;

collectdata( );/*采集数据函数,输入到数组inputdata中*/

yc=inputdata;

for(i=0;i

sum+=*yc;

}

2.指向程序存储区的指针寻址实现

指针指向数据存储区其其实质就是C语言中指向函数的指针这一概念,可以利用这种指针来实现函数指针调用函数。指向函数的指针变量定义格式为:类型标识符(*指针变量名)([参数1],[参数2]……);定义好后用(*指针变量名)([参数],[参数]……)即可调用这个函数。例如,主程序中要引用一个键盘扫描函数scan,程序如下所示:

Void scan()

Void main()

{ void (*yc)();

Yc=scan;

For(;;)

{(*yc)( );}

}

三、C51热启动代码的编制

对于工业控制计算机,往往设有看门狗电路,当看门狗动作使计算机复位,这就是热启动。热启动时,一般不允许从头开始,这将导致现有的已测量到或计算到的值复位,导致系统工作异常。因而在程序中必须判断是热启动还是冷启动,常用的方法是:确定某内存单位为标志位(如0x7f位和0x7e位),启动时首先读该内存单元的内容,如果它等于一个特定的值(例如两个内存单元的都是0xaa),就认为是热启动,否则就是冷启动,程序执行初始化部份,并将0xaa赋与这两个内存单元。

根据以上的设计思路,编程时,设置一个指针,让其指向特定的内存单元如0x7f,然后在程序中判断,程序如下:

void?main()

{?char?data?*HotPoint=(char?*)0x7f;

if((*HotPoint==0xaa)&&(*(--HotPoi-nt)==0xaa))

{?/*热启动的处理?*/??}

else

{?HotPoint=0x7e;/*冷启动的处理*/

*HotPoint=0xaa;

*(++HotPoint)=0xaa;

}

/*正常工作代码*/

}

然而实际调试中发现,无论是热启动还是冷启动,开机后所有内存单元的值都被复位为0,当然也实现不了热启动的要求。这是为什么呢?原来,用C语言编程时,开机时执行的代码并非是从main()函数的第一句语句开始的,在main()函数的第一句语句执行前要先执行一段“起始代码”。正是这段代码执行了清零的工作。C编译程序提供了这段起始代码的源程序,名为“startup.a51”,打开这个文件,可以看到如下代码:

IDATALEN?EQU?80H;the?length?of?IDATA?memory?in?bytes.

STARTUP1:

IF?IDATALEN??0

MOV?R0,#IDATALEN-1

CLR?A

IDATALOOP:MOV?@R0,A

DJNZ?R0,IDATALOOP

ENDIF

可见,在执行到判断是否热启动的代码之前,起始代码已将所有内存单元清零。如何解决这个问题呢?好在启动代码是可以更改的,方法是:修改startup.a51源文件,然后用编译程序所附带的a51.exe程序对startup.a51编译,得到startup.obj文件,然后用这段代码代替原来的起始代码。具体步骤是(设C源程序名为HOTSTART.C):

修改startup.a51源文件(这个文件在C51\LIB目录下)。

执行如下命令:

A51?startup.a51得到startup.obj文件。将此文件拷入HOTSTART.C所在目录。

将编好的C源程序用C51.EXE编译好,得到目标文件HOTSTART.OBJ。

用L51?HOTSTART,STARTUP.OBJ命令连接,得到绝对目标文件HOTSTART。

用OHS51?HOTSTART得到HOTSTART.HEX文件,即可。

对于startup.a51的修改,根据自已的需要进行,如将IDATALEN?EQU?80H中的80H改为70H,就可以使6F到7F的16字节内存不被清零。

四、结束语

单片机C语言的应用是十分灵活的,要充分发挥C语言的优势,对内外部数据和程序进行方便自如的操作,必须要掌握好指针的应用。

参考文献

[1]马忠棒.单片机的C语言应用程序设计[M].北京航空航天大学出版社,2001.

第2篇:单片机c语言范文

【关键词】单片机实验;教学改革;PROTEUS软件

单片机课程是各高校电子信息类专业的一门非常重要的专业基础课程,其实践性、操作性,工程性都很强,学好单片机的应用开发对后续专业课程的学习起着重要的作用。单片机教学分理论教学和实验教学两部分,实验教学是对理论知识的检验实践,对培养学生的电路设计能力和编程能力都起着非常重要作用。单片机应用开发能力的培养需要的实验环节较多,涉及知识面较广,对初学者来学习单片机时会存在一定困难,为了得到更好的教学效果,调动学生的积极性,本文对单片机实验教学环节进行改革探索。

1.传统实验教学的不足

传统的单片机实验教学是在实验室中进行,每个实验桌配置PC机和一个体积较大的单片机实验箱,学生在做实验时需要了解实验电路图,实验接口按钮以及实验连线等,操作比较复杂,如果初学者对这些不熟悉的话做实验就比较困难,影响学生学习的兴趣,老师也只能忙于指导学生对硬件进行操作,浪费实验时间。另外如果实验箱出现故障不能及时修复的话会严重影响实验的进度和效果。

因为学校的实验室资源有限,而学生人数较多,因此学生能利用实验室进行更多的实验操作的机会有限,制约了学生对单片机开发应用水平的提高。构建传统的单片机实验室除了需要购置单片机实验箱外,还需要购置直流稳压电源,示波器,信号源,仿真器的仪器等配套设备,需要投入的资金较大,且日常维护成本较高。单片机实验箱的硬件资源有限,且已经固定不能改变,在实验时教师和学生都感觉到使用实验箱进行单片机实验不够灵活,学生的电路设计能力得不到很好的锻炼,也不能更深入地理解电路的性能或作用,因此,传统的单片机实验教学有诸多弊端。

2.基于PROTUES的实验模式的优势

Proteus是Labcenter公司出品的电路分析、实物仿真系统。它可仿真各种电路和集成IC,它还支持许多型号的单片机的仿真,还提供电路原理图绘制与PCB设计功能。它的元件库齐全,使用方便,是非常好的电子电路设计辅助软件。Proteus软件不仅能对单片机进行仿真调试,对单片机的其他电路同样可以仿真,不管是否是与单片机相关的电路。因此在进行仿真调试时,既可以看到单片机程序语句的执行情况,又可以看到其他电路运行的结果,这与实际工程开发非常接近,有利于培养学生工程应用开发能力。

构建基于Proteus软件的单片机实验室只需要一台PC机即可,这样就使得实验室的通用性很强,硬件成本投入大大减少。用Proteus软件进行单片机实验开发,仪器设备资源损耗小,没有元器件损坏的问题,学生不需要操作真实的仪器设备,使得实验过程安全系数增高。实验内容可灵活设置,学生可以自行设计实验电路,可以尝试相同功能的接口电路用不同的器件构成,有利于扩展设计思路,培养和提高设计能力。用Protues仿真软件进行单片机课程实验教学,可以克服用传统实验箱带来的硬件电路固定,实验内容固定等方面的局限性,学生只要有电脑即可安装软件自行学习,减少学习资金的投入,从而提高学生的学习效果和学习兴趣。

在学生学习过程中,会接触到多种单片机,学校也会开设各种单片机的选修课,如AVR单片机,PIC单片机等,为了教学需要就要购买相应的实验设备,建设和维护成本较高。而Proteus软件可以支持多种单片机的仿真实验,并且提供了大量的元件库,有数千种元件供使用,包括模拟电路,数字电路相关元件,以及交流和直流相关元件;另外Proteus软件提供了丰富的仪器仪表资源,包括常用的示波器、信号发生器、直流电压表、逻辑分析仪、计数器等,这是实验室必备的设备,为建立仿真实验室提供了可靠的资源保障,这体现了软件仿真的经济优势。Proteus软件还具有图像显示模块,以及提供多种激励测试信号,这些资源在调试电路时发挥很大的作用,为调试电路提供方便。

在单片机实验完成后会安排单片机课程设计环节,这时要求学生做出具体的硬件电路来,把在Proteus软件上验证好的工程项目移植到具体电路中,让学生体会仿真运行结果和具体硬件电路运行结果的差别,提高学生的工程设计和调试能力,为将来工作时做更复杂的电路设计做好准备。虽然Proteus的仿真运行与实际硬件运行结果存在一些差别等缺点,但只要稍微调整程序参数就实现在硬件上的良好运行,相比它带来的学习开发优点来说,这些缺点是可以接受的。Proteus软件提供了很多例子,学生可以参考和借鉴好的设计方案,也可以在原来电路基础上加以修改处理,满足自己的设计需求,这都是很好的学习资源。

3.用C语言进行单片机编程的优势

单片机程序设计是学习的重点,在传统单片机理论教学中,都是以学习汇编语言为主,而C语言只进行简单介绍,在单片机实验中也是主要用汇编语言进行程序设计,其优点是占用资源少,执行效率高。但是汇编语言是面向机器的程序设计语言,是最接近机器码的一种语言,其指令较多,学生难以掌握,编写的代码难读懂,不好调试,开发效率低,需要对单片机内部资源非常熟悉,而且不同的CPU的汇编语言有差异,不好移植。因为学生是初次接触到这种编程语言,也没有单片机编程基础,对单片机内部资源不够熟悉,所以学习效果不理想,在进行单片机实验时暴露出了很多问题。

本次单片机实验教学改革中教师要求学生采用C语言进行程序设计,并与理论教师沟通在上理论课时多讲用C语言编程的知识。学生在大一时就进行了C语言的学习,有一定的基础,因此用C语言进行单片机程序开发对学生来讲会容易理解些,复杂的程序一般都用C语言进行开发,这也符合现在企业用人的要求。使用C语言进行单片机程序开发有诸多优点:

(1)语言简洁,使用方便灵活,可大幅度提高开发速度,系统越复杂,开发效率越高。

(2)无须深入了解单片机内部结构,和复杂的单片机汇编语言指令集。

(3)可进行模块化开发,软件逻辑结构清晰,有条理,易于分工合作。

(4)可移植性好,写好的一个c语言算法,可方便地移植到其他单片机上,而汇编语言相对要复杂的多。

(5)可直接操作硬件,易于编写、调试和维护。

随着单片机的内部资源越来越多,存储空间越来越大,资源已经不是考虑的首要问题,因此用C语言进行单片机程序设计是单片机开发应用的必然趋势。C语言是初学者的首选语言,当掌握好用C语言进行单片机编程后,再学习汇编语言就会轻松很多。

4.单片机实验教学组织

单片机实验所涉及到的内容较多,而单片机实验课程一般只安排8次实验共16学时,实验时间有限。有关单片机的相关理论知识在理论课中已经学习过了,如单片机内部资源,常用接口电路,编程设计,系统开发设计等知识在理论课中都会涉及到,单片机实验课程的目的主要是让学生提高动手能力,验证理论知识的正确性,加深单片机应用的理解,直观感受单片机在电路运行过程中发挥的作用,提高编程设计能力。

在首次实验中让学生掌握Proteus仿真软件和keil编程软件的使用方法,掌握单片机应用开发步骤。keil是目前世界上使用最广泛的单片机编程开发工具,很多型号的单片机都用它进行程序开发,它支持汇编、C语言以及混合编程,同时具备强大的仿真功能。在实验指导书中要编写软件的详细操作步骤,让学生会能快速掌握两款软件的使用方法。

接下来的实验根据理论教学内容的进度由易到难地安排相关的实验内容,包括单片机IO口的应用设计,单片机外部中断开发设计,定时器计数器开发设计,串行通信开发设计,数码管显示器件应用开发,器件的控制开发(模数转换器件、数模转换器件),综合系统设计等,循序渐进地让学生学习单片机相关知识,从而提高学生的兴趣和实验信心。

5.一个具体的实验教学例子

以单片机IO口应用设计为例子,实验电路图如图1所示,实验要求是让接在P0口的8个LED从左到右循环依次点亮,产生流水灯效果,这是单片机典型的入门开发例子,涉及的知识内容包括单片机最小系统电路,单片机IO口的输出编程,延时程序设计等,内容丰富。

实验电路比较简单,在实验之前让学生跟据实验指导书要求用Proteus仿真软件设计好电路图,到实验室做实验时主要进行程序的设计开发调试,因为程序设计和调试是实验学习的重点。对于学生来说,程序设计是一个难点,实验课时教师可以结合实验电路讲解程序设计的思路,让学生从实现一个最简单的功能开始,如只让一个LED亮,然后逐步添加程序实现流水灯功能。在实验指导书中可以给出程序设计流程图和程序设计框架,让学生根据框架添加设计程序。程序框架如下:

#include

void DelayMS(unsigned x)

{ unsigned i;

while(x--)

{

for(i=0;i

}

}

void main()

{ P0=0xfe;

while(1)

{//在下面添加自己的程序

}

} }

6.结束语

通过本次单片机实验教学探索证明,在Proteus仿真软件建立的虚拟平台上进行实验的教学效果良好,Proteus仿真软件不但在课堂教学中发挥重要作用,对学生在课外的学习也提供了极大地便利,学生不会因为手上没有开发板而失去学习的兴趣,充分调动了学生学习的积极性和主动性,提高学生单片机应用编程能力。使用C语言进行单片机编程设计,加快了学生学习的步伐,也符合企业用人单位的需要,为将来工作做好准备。

参考文献

[1]栾淑丽.如何用Proteus软件建立单片机仿真虚拟实验室[J].价值工程,2011(1).

[2]谭炳菊,富钰.单片机C语言编程方法探讨[J].辽宁高职学报,2010(4).

第3篇:单片机c语言范文

关键词: C语言 单片机 编程

1.中职C语言教学现状

C语言是一门广泛使用的计算机高级语言,中职电子类专业都开设了“C语言程序设计”课程,并为后续课程(如“单片机原理与应用”、“单片机C语言”、“嵌入式系统”)做基础性准备。因此,对于电子类专业的学生来说,C语言是一门必须掌握的专业基础课。但从多年的教学实践来看,中职学生数学、英语底子弱,又是第一次接触这种抽象类的编程课程,学习主动性不强,学习目的不明确。学生反映这门课枯燥难学,大部分学生半个学期下来还没入门,虽然有些同学能听懂老师讲的,但实际操作起来无从下手。为了激发学生学习C语言的兴趣,提高编程能力,笔者结合“单片机”课程,进行了一次教学改革尝试。

2.C语言教学内容改革

2.1原则:够用就行,不必深究算法。

首先,职业学校的学生大部分是普通教育分流出来的,他们的智力并不差,在动手能力等方面甚至有优势,但文化基础知识相对薄弱,要求他们中的多数人掌握超出对应的培养目标所要求的文化知识是不现实的,所以只能遵循够用原则。

其次,电子专业学生不同于计算机专业学生,注重实用,不探究为什么,笔者在教学中重视怎么用,用最简单的算法,让学生便于理解,做到会用,能显示程序的基本功能效果,让学生快速体验成功的乐趣。

2.2根据专业需要选择教学内容。

C语言作为电子专业的专业基础课,照搬计算机专业的教学内容是不切实际的,笔者根据多年的C语言和单片机教学,了解哪些知识点特别重要必须掌握,哪些可以完全不涉及,对教学内容进行了大胆的调整,与单片机中c语言的实际编程相联系。这样可以抽出时间抓住重点,提高教师教、学生学的效率。

为单片机服务的只需要学变量、表达式、if条件选择、witch-case、for、while循环、函数数组那些结构体、指针、各种排序算法等,就可以暂时舍弃,等到学生入门了,自己回去专研,在优化液晶点阵字时候再学,这时学习起来就不难了,可以达到事半功倍的效果。

2.3c语言和单片机结合教学。

一个知识点的C语言代码在C语言编译环境中运行非常枯燥,学生往往不知所言,实训环节将C语言和单片机结合后,有利于提高学生的兴趣,把兴趣放在首要环节,让学生亲自动手,体验编程的乐趣。我校单机实训室有30套亚龙YL-236单片机实验台,可以满足一个班级上级练习的需要。由于学生没接触过单片机,初期的连线需要花点时间让学生熟悉,教室的投影直接显示接线方法,在老师一一检查接线后,在保证连线后,就可以实施实训环节的教学。

实训教学内容与单片机项目,笔者简单列出下面表格,教学内容对应在单片机中的项目,在项目中学生掌握C语言的各个知识点。

由于最简单的单片机程序都会出现循环、函数等知识,对于这些知识,采用黑箱原理,即让学生不用理会程序的意思,直接复制教师的代码,集中精力研究教师要求的实训内容。比如以下程序:

#include //包含单片机寄存器的头文件

voidmain(void)

{

P1=36/5; //求整数

while(1){//无限循环防止程序“跑飞”

}

}

通过这个程序,点亮led灯,本程序用于变量和表达式的学习,关于头文件,while(1)循环这两个知识点学生不必深究。表达式获得的值通过WedWin软件编译环境显示变量的值和点亮的8个led灯亮灭组合成二进制数。表达式的数值让学生自由变换,列出自己表达式情况,完成实验报告,如下表格。

通过这个过程,电子电工专业学生一开始就把C语言、单片机、二进制数有机集合在了一起,比单纯的C语言的教学更加生动,趣味性更强,实训结果直观。同时在程序中简单修改,可以让8个led流水的动起来,流动的模式变幻无穷。

3.结语

将“C语言”与“单片机”相结合的教学方法是一个大胆的尝试,目的是提高学生的学习兴趣,培养学生C语言的逻辑思维能力和单片机的动手能力。通过简单的单片机应用使学生产生成就,学生在两方面的能力都得到了锻炼。将两门课程结合起来,不仅克服了厌学、机械学习的弊端,而且通过实际的操作,提高了学生们的动手能力,为学生们进一步深造或者进入社会打下了坚实的基础。

参考文献:

[1]苏波,陶宁.“C语言”与“单片机”相结合的教学研究.光学技术,2010(12):109-110.

[2]汪宋良.高职电子类“C语言程序设计”课程改革研究.职教通讯,2013(15):12-16.

第4篇:单片机c语言范文

关键词:C语言程序设计;多媒体;研究

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

1多媒体技术在C语言课堂教学中的应用

在C语言课堂教学过程中,应用多媒体组合教学方式,能将传统的教学媒体与现代教学媒体有机地联系起来,相辅相成,互为补充,充分发挥各自的教学功能,优化课堂结构,提高课堂教学质量。

利用现代教学技术及计算机的多媒体技术,将现代教学媒体与教学目标紧密联系在一起,优化课堂教学结构,使课堂教学效果最优化。

1.1多媒体应用可提高编写C语言程序的逻辑思维能力

C语言教学的主要目标之一就是培养学生的逻辑思维能力。多媒体能用具体形象的媒体展示,使学生能从中体验形象与抽象的关系,总结规律。在课件的制作中,可适当地运用动画、影片和声音来对学习氛围进行调节。在上课前,不再让学生起立,而是通过媒体播放一首乐曲,让学生在专心致志的欣赏中达到情感智商的提高,有利于学生逻辑思维的发展。如在讲函数概念时,可设计插入一个五子棋的游戏,使同学在跃跃欲试的同时,结合教师课题讲解,对函数功能的认识从抽象具体抽象的过程中达到对函数的深刻理解。在制作各张幻灯片画面时,注意用意明确,使常规C语言教学中要求的基本技能、重要的思想方法、运算能力和分析问题解决问题的方法得到连续,贯通。适当地对个别事例做好演示的连接,避免操作过程中的混乱。

在对学生发散性思维能力的培养方面,我们可以用数的交换贯穿函数整章,在制作上采用了多种不同的方式来表达多个数在交换时的不同方式。启发学生的思维,使学生能在实践生活中体验函数的存在,对开阔学生视野,体现发散思维的流畅性、变通性有较大的帮助。

1.2多媒体应用可提高学生学习C语言的兴趣

C语言课程的特点之一是内容抽象。因此,考虑如何在传授知识的过程中做到生动形象,是C语言教师在教学实践中时常思索的问题。而多媒体在C语言教学中应用可以较好地解决这个难题。例如在指针的使用中,学生对指针很难建立起直观印象,对指针的应用更是把握不定。在设计这一部分课件时,可采用动画显示指针的存储方式和执行动作,例如,先用两个抽屉存放钥匙开锁问题引起学生的思考,然后引入指针在传送数据时的动作特点。可以使指针自左飞入,然后按动画叠放次序播放,表达指针将要传送数据的位置,加深了学生对指针的特征的掌握。

多媒体也可应用于C语言教学中实验模拟和难点突破。学生在高职阶段对C语言掌握有两大难点:逻辑思维的转变与实际问题解决。以往教师对这两个难点很难解决,面对枯燥的C语言操作界面很难解释清楚C语言对高职学生学习的重要性,无法激发学生学习的兴趣。现在可以在选择相关软件的基础上,设计有关课件用于计算机模拟实验,并可多次重现,帮助学生复习掌握。例如,广告灯设计,可以借助单片机进行实物展示,突出C语言实际应用的特点,促进学生对C语言的理解。

2多媒体技术在C语言教材设计中的应用

在高职C语言教学中,应用多媒体教学,能增加教学容量,设计实际问题情景,重新组织教材结构网络,提高学生的C语言素养和应用能力。

多媒体应用能丰富课堂教学容量。课堂教学是师生的共同活动,而活动的主体应该是学生,采用多媒体教学,教学容量比以往的常规教学容量多,教师应注重掌握教学节奏。节奏的快慢强弱、轻重缓急,要根据学生的具体情况而定。在设计课件时应从以下方面考虑节奏情况:

2.1增加问题情景设计,激起课堂高潮

以往的C语言教学课件因程序化太浓,难以达到学习的高潮。而用 PowerPoint2003自编课件,灵活结合教材与教学实际是可以做到的。如对“结构体概念”设计可采用问题情景:放一个关机订票的电影片段,然后向学生提出在整个影片播放过程中,如何实现对登机人员身份资料的查找?如何才能实现资料的快速查找,有多少种方式?让学生集中精神观看后,情绪高涨,思路开阔,对结构体的认识和使用也有了清晰的认识。在对一堂课的归纳、小结时,采用网络技巧及特写处理,把本节课的主要内容思想和解题技巧以特写方式归于一张幻灯片中,并配上轻松的背景音乐,使同学能掌握学习C语言的重要方法。

2.2考虑学生的学习规律,培养师生感情

课堂45分钟,学生眼睛盯着荧光屏容易产生疲劳感,在每一课件的适当位置给予学生思考与活动、讨论的时间,既让学生积极参与,又能注意学生的学习反应,克服因人机对话造成的情感淡薄的问题,培养学生的情商。在课件的设计中,可以根据不同教学内容加入情景问题。如在“分支结构”的课堂设计中,可以在适当的时候加入一些小的心里测试问题,以这样的情景,使学生区分什么是单分支结构、二分支结构和多分支结构。在师生讨论和操作、分析过程中,学生既能体会到C语言中分支结构的作用,又可体会到学习过程中的乐趣。

3多媒体C语言教学软件设计思路与技术

计算机辅助教学软件与多媒体教学软件的设计,是多媒体在课堂教学应用的关键。本文根据近年来计算机网络的发展现状,提出在C语言课堂教学中多媒体应用的设计思路和具体步骤。

教育手段现代化的有效性,是教师探索课堂教育方法、手段的方向。要在45分钟的课堂教学中提高教学的效益,进行高密度、高容量的教学,多媒体的应用势在必行。在高等职业技术学院C语言课堂教学中探索用计算机辅助教学,让多媒体在C语言教学中体现多媒体的最佳效果和C语言教育的特色,使学生的思维能力能不断向高层次发展。

在多媒体应用中,根据目前市场上发行的多种工具软件,结合学校的现有硬件设备,可以选定Office 2003中的PowerPoint 2003软件,利用PowerPoint 2003的演讲演示和新增加的扩展功能配合课堂教学,达到培养学生C语言思维、开拓视野、陶冶情操的目的。在多媒体的应用中,除了软件的选择外,还有课件的制作,选择 PowerPoint 2003作为制作课件软件,主要是 PowerPoint 2003有强大的通用性、易操作性和课件制作的简单性。PowerPoint 2003 面向Web,包括用于即时制作网页的Html选项,能提供50多个模板,它能和Internet Explorer极好地结合在一起,利用了ActiveX技术,可方便地从硬盘或网络上调用其他课件。

在PowerPoint 2003中制作一张幻灯片只要十来分钟,而且其精美程度是普通的胶片难以达到的。在C语言教学中一般一堂课制作5至8张幻灯片,用程序连接可达十多张幻灯片,还可用网络连接其他课件,使课堂上的知识容量大大加强。

计算机辅助教学软件与多媒体教学软件的设计是多媒体在课堂教学应用的关键。在课堂多媒体辅助教学中,教师往往在教学的媒体上选择实物、模型、挂图、录像、录音、幻灯、投影等媒体,但多种媒体临时性拼接往往使教师应接不暇。而采用PowerPoint 2003可以把实物、模型、挂图、录像、录音等媒体利用超级链接组合在一起,通过幻灯投影方式在课堂中应用,收到较好效果。同一张幻灯片中的信息,可通过动画设计使图像、声音、文字、图表等按照一定顺序出现。

3.1多媒体C语言软件制作方法

制作新的幻灯片时,可以从50种自动版式中选择任意一种,每种自动版式的版面设置各不相同,可以按自己的需要选用。例如,有一种版式提供标题、文本及图表的占位符,另一种则提供标题和剪贴画的占位符。如果要创建新的幻灯片,单击“常规任务”工具栏上的“新幻灯片”。要在标题或文本占位符中输入文本,在该处单击可直接输入。教师可以让每个C语言题目或C语言提示单独出现,或者让其逐个出现。也可设置每个C语言题目或C语言提示出现在幻灯片上的方式(例如从左侧飞入)。

PowerPoint 2003中还有一项新功能,可以让图表元素呈动画效果。先在幻灯片视图中,单击“幻灯片放映”菜单中的“自定义动画”,再单击“播放设置”选项。设置幻灯片放映时播放声音或影片时,可先在幻灯片视图中,选择要设置选项的影片或声音图标,后在“幻灯片放映”菜单中的“自定义动画”,再单击“播放设置”。动画幻灯片上的文本、形状、声音、图像和其他对象,这样就可以突出重点、控制信息的流程,并提高课件的趣味性。

课件中可设置超级链接,以便在幻灯片中移动,或跳转到其他幻灯片和程序中,如连接到Web或其他资源。

3.2多媒体C语言课件的设计思路与步骤

制作课件时一般采用以下具体步骤:

(1) 设计课堂教学的思路,建立相关要素分析表。

课题:教学内容、学习水平、教学目标、教学媒体

要点:构成(知识)、事实、概念、原理、观察、推理、其他(能力)、识记、理解、应用、综合

幻灯片:图片、音乐、影片

(2) 建立文档,设置模板。

(3) 按照教学目标制作幻灯片。

(4) 设计多媒体动画与程序连接。

(5) 课件调试与格式转换。

(6) 及时对课件评价与修改。

4小结

在多媒体应用于C语言课堂教学中,有以下几个技术问题有待解决:

(1) 各种软件的配套与硬件的兼容。国外有一定数量的C语言教学软件,但因软件的配套与硬件的兼容问题而无法使用。

(2) 学生信息的反馈。在多媒体应用时,PowerPoint 2000虽能做到丰富C语言课件的内容,但人机对话功能发挥不够,若学校设备联入校园网或每个学生都能自己熟练操作计算机,学生的信息反馈能很好地解决。

(3)C语言推理、论证的培养。在目前计算机技术中,计算机优势在文字、图形等信息的传输与处理,对C语言符号的处理以及C语言中常见的推理、论证有相当的难度,C语言教学智能软件笔者还未了解到。由于技术原因,教师在中学C语言教学中的作用是不能用多媒体代替的。

如何在高职C语言课堂应用多媒体进行教学,如何设计出高水平的C语言课堂教学课件,采用何种适应C语言教学的设计软件,是C语言教育工作者、CAI专家、计算机程序设计师共同研讨的课题。

参考文献:

[1] 谭浩强.C程序设计[M].北京:清华大学出版社,1990.

[2] 谢乐军. 程序设计及应用[M]. 北京:冶金工业出版社,2004.

[3] 彭雪峰,冯小平,姜鑫焱. 浅谈多媒体教学在C语言教学中的应用[J]. 科技信息:学术研究版,2007(1).

[4] 赵拥华. 关于计算机多媒体在教学中的应用的研究[J].电脑知识与技术,2009(9).

[5] 吴敏. 充分利用多媒体技术推进C语言教学发展[J]. 中国电力教育,2007(9).

[6] 柯晓华.浅谈高校C语言程序设计课程教学[J]. 安阳工学院学报,2006(5)

[7] 赵子江. 多媒体技术应用教程[M]. 4版. 北京:机械工业出版社,2004.

[8] 方加娟,李红霞.多媒体辅助教学在C语言教学中的应用[J]. 计量与测试技术,2006.

[9] 潘爱武. 多媒体教学法在C语言教学中的合理运用[J].科教文汇,2007(9).

The Application of Multimedia Technology in the C Language Teaching

ZHAO Hong-kai

(Vocational and Technical College Office of Academic Affairs, Guangdong Zhaoqing Institute of Science and Technology, Zhaoqing 526020, China)

第5篇:单片机c语言范文

关键词:中职;电子装备;调试;课改

中图分类号:G718文献标识码:B文章编号:1672-1578(2015)03-0314-01

传统单片机教学是以单片机的知识结构为主线,逐步讲解单片机空对空的硬件知识和抽象难懂的寻址方式,软件编程以硬件和指令作为基础和支撑,前面知识一知半解,使编程的学习和掌握变得难上加难。试想一个毫无计算机基础的初中生,要学习如此复杂的单片机软、硬件知识,传统的以教师讲授为主的教学模式必然不能适应学生学习的需要,改革教学模式势在必行,我们单片机教学中在实施了任务驱动模式为主的项目教学法。

"如何教会学生尽快掌握单片机技术并应用到实际工作中?"就成为我们必须要解决的难题。经过长达十年的实践探索,于2012年起进行了单片机课程理实一体化教学模式的全面改革。

1.引入PROTUES仿真教学,解决硬件难题

在教学实践中,学生人手一台计算机,教师通过多媒体教学,教学生利用PROTUES平台搭建硬件电路,使用KEIL uVision2软件练习编写程序,最后在PROTUES平台仿真运行。重点放在程序的编写、调试,把硬件电路的制作过程弱化,减小硬件对学生的影响。

PROTUES结合KEIL uVision2软件的仿真,既能观察单片机的工作情况,又能仿真单片机接口电路的工作情况,因此在实际电路的仿真中,可以直接看到程序运行和电路工作的过程和结果,有效弥补了实验和课堂教学之间脱节的矛盾和现象。PROTUES在单片机课程中的应用在很大程度上解决了单片机课程教学枯燥无味的弊病,在提高学生学习积极性的基础上也锻炼了学生实践动手的能力,既降低了教学成本,又提高了教学效果,是当前中职学校单片机教学改革的一大方向。

在一年半以来的教学实践中,学生普遍反映:通过PROTUES软件的仿真使整个单片机的教学实践更为直观、形象、易学,大大提高了单片机的教学效果。

2.改革教学模式,实施项目教学法

我们在教学实践中,首先分析本课程的知识目标和能力目标,将整个课程划分为若干个具有递进性和连贯性的"项目"。每个项目都是一个具体的工程任务,均包含一些编程和加工的新知识和新技能,以项目带动教学,由浅入深地把知识和技能渗透到项目的实施过程中。随着每个控制模块功能的实现,知识点的学习也在循序渐进中完成。

通过上机调试运行、验证,直观的观测结果和感性认识帮助学生掌握知识点。随着教学项目的逐个展开,学生所掌握的知识逐步增多,知识结构逐步完善,实践能力随之提高,由此展开单片机程序设计,学生在单片机方面的实际应用能力得到质的提高。

3.以C语言为主,与市场接轨,编写校本教材

虽然C语言的执行效率不如汇编语言,但是C语言的好处显而易见作为一种结构化的程序设计语言,C语言的特点就是可以使你尽量少地对硬件进行操作,具有很强的功能性、结构性和可移植性,作为单片机系统的编程语言具有较大优势。

引入了C语言进行教学,学生掌握起来相对较快,不用太多考虑硬件,编写程序容易。经过教师的指导,学生可以完成较难的程序设计。在整个贵州的中职单片机教学中,我校率先采用C语言作为编程语言,为C语言走入贵州省中职电子专业单片机教学做出了贡献。

我们于2014年开始使用《C语言与单片机应用》校本教材,以C语言为编程软件,基于PROTUES仿真实施项目教学法。经过一年多的辛苦工作,最终于2014年初完稿交付出版社,计划于2014年秋季使用。

4.教学效果显现

理实一体化的教学改革对《单片机原理及应用》课程而言,是充分贯彻了教育部"做中学、做中教"的教学原则,并取得了较大的成效,在西部欠发达地区具有推广的价值。采取PROTUES仿真软件结合C语言,以项目教学法开展教学,在很大程度上解决了单片机课程教学枯燥无味的弊病,在提高学生学习积极性同时也锻炼了学生实践动手的能力,降低了教学成本,提高了教学效果。以前一上单片机课,学生就打瞌睡,抱怨听不懂,现在80%以上的学生能完成工作任务,30%左右学生可以完成拓展提高任务,教学效果不可同日而语。

经过一年多来在《单片机原理及应用》课程教学中的实践,C语言易学好用,项目教学法教学目的明确,教学方式新颖,PROTUES仿真软件解决硬件问题,充分调动起了学生学习的兴趣。

5.体会和思考

在理实一体化教学实践中,我们感觉有以下缺憾:(1)缺乏设备器材的实物感受。例如常用的单片机电路焊接设备、调试设备、仪器仪表等,在虚拟仿真实践教学中,学生看得到、摸不着,缺乏真实感。(2)很难完成单片机工程项目安装调试的整个过程。如电路的焊接、收音机的调试过程、电路的故障检修等,学生难以积累这方面的知识与经验。

参考文献:

[1]谭浩强.C程序设计.2版.北京:清华大学出版社,1999.

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

[3]彭伟.单片机C语言程序设计实训100例:基于8051+Proteus仿真.1版北京:电子工业出版社,2009.

[4]求是科技.8051系列单片机C程序设计完全手册.1版.北京:人民邮电出版社,2006.

[5]张景璐 马泽民.51单片机项目教程.1版.北京:人民邮电出版社,2010.

[6]周润景 蔡雨恬.Proteus入门实用教程.2版.北京:机械工业出版社,2011.

第6篇:单片机c语言范文

摘要:目前单片机渗透到我们生活的各个领域,本文介绍了单片机的应用并且根据自己的一些经验谈了单片机应用过程中应该掌握的几个技巧。

目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,广泛使用的各种智能IC卡等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。

一、单片机的特点应用

单片机的特点主要有:高集成度,体积小,高可靠性;控制功能强;低电压,低功耗,便于生产便携式产品;易扩展;优异的性能价格比。目前,单片机的应用领域主要包括:办公自动化设备;单片机在机电一体化中的应用;在实时过程控制中的应用;单片机在日常生活及家用电器领域的应用;在各类仪器仪表中引入单片机,使仪器仪表智能化,提高测试的自动化程度和精度,简化仪器仪表的硬件结构,提高其性能价格比;在计算机网络和通信领域中的应用;商业营销设备;单片机在医用设备领域中的应用;汽车电子产品;航空航天系统和国防军事、尖端武器等领域,单片机的应用更是不言而喻。

二、单片机开发中的几个基本技巧

在单片机应用开发中,代码的使用效率问题、单片机抗干扰性和可靠性等问题仍困扰着。现归纳出单片机开发中应掌握的几个基本技巧。

1、如何减少程序中的bug。对于如何减少程序的bug,应该先考虑系统运行中应考虑的超范围管理参数如下。物理参数:这些参数主要是系统的输入参数,它包括激励参数、采集处理中的运行参数和处理结束的结果参数。资源参数:这些参数主要是系统中的电路、器件、功能单元的资源,如记忆体容量、存储单元长度、堆叠深度。应用参数:这些应用参数常表现为一些单片机、功能单元的应用条件。过程参数:指系统运行中的有序变化的参数。

2、如何提高C语言编程代码的效率。用C语言进行单片机程序设计是单片机开发与应用的必然趋势。如果使用C编程时,要达到最高的效率,最好熟悉所使用的C编译器。先试验一下每条C语言编译以后对应的汇编语言的语句行数,这样就可以很明确的知道效率。在今后编程的时候,使用编译效率最高的语句。各家的C编译器都会有一定的差异,故编译效率也会有所不同,优秀的嵌入式系统C编译器代码长度和执行时间仅比以汇编语言编写的同样功能程度长5-20%。对于复杂而开发时间紧的项目时,可以采用C语言,但前提是要求你对该MCU系统的C语言和C编译器非常熟悉,特别要注意该C编译系统所能支持的数据类型和算法。虽然C语言是最普遍的一种高级语言,但由于不同的MCU厂家其C语言编译系统是有所差别的,特别是在一些特殊功能模块的操作上。所以如果对这些特性不了解,那么调试起来问题就会很多,反而导致执行效率低于汇编语言。

3、如何解决单片机的抗干扰性问题。防止干扰最有效的方法是去除干扰源、隔断干扰路径,但往往很难做到,所以只能看单片机抗干扰能力够不够强了。在提高硬件系统抗干扰能力的同时,软件抗干扰以其设计灵活、节省硬件资源、可靠性好越来越受到重视。单片机干扰最常见的现象就是复位;至于程序跑飞,其实也可以用软件陷阱和看门狗将程序拉回到复位状态;所以单片机软件抗干扰最重要的是处理好复位状态。一般单片机都会有一些标志寄存器,可以用来判断复位原因;另外你也可以自己在RAM中埋一些标志。在每次程序复位时,通过判断这些标志,可以判断出不同的复位原因;还可以根据不同的标志直接跳到相应的程序。这样可以使程序运行有连续性,用户在使用时也不会察觉到程序被重新复位过。

4、如何测试单片机系统的可靠性。当一个单片机系统设计完成,对于不同的单片机系统产品会有不同的测试项目和方法,但是有一些是必须测试的:测试单片机软件功能的完善性;上电、掉电测试;老化测试;ESD和EFT等测试。有时候,我们还可以模拟人为使用中,可能发生的破坏情况。例如用人体或者衣服织物故意摩擦单片机系统的接触端口,由此测试抗静电的能力。用大功率电钻靠近单片机系统工作,由此测试抗电磁干扰能力等。

综上所述,单片机已成为计算机发展和应用的一个重要方面,单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。此外在开发和应用过程中我们更要掌握技巧,提高效率,以便于发挥它更加广阔的用途。

参考文献:

何立民.MCS-51系列单片机应用系统设计系统配置与接口技术.北京:北京航空航天大学出版社,1990

第7篇:单片机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,要求配有投影仪。

第8篇:单片机c语言范文

关键词 franklin c51编译器 汇编语言 结构化设计 模块 中断

在研制单片机应用系统时,汇编语言是一种常用的软件工具。它能直接操作硬件,指令的执行速度快。但其指令系统的固有格式受硬件结构的限制很大,且难于编写与调试,可移植性也差。随着单片机硬件性能的提高,其工作速度越来越快,因此在编写单片机应用系统程序时,更着重于程序本身的编写效率。而franklin c51交叉编译器是专为80c51系列单片机设计的一种高效的c语言编译器,使用它可以缩短开发周期,降低开发成本,而且开发出的系统易于维护,可靠性高,可移植性好,即使在代码的使用效率上,也完全可以和汇编语言相比,因此目前它已成为开发80c51系列单片机的流行工具。

1 c51语言程序设计的基本技巧

c语言是一种高级程序设计语言,它提供了十分完备的规范化流程控制结构。因此采用c51语言设计单片机应用系统程序时,首先要尽可能地采用结构化的程序设计方法,这样可使整个应用系统程序结构清晰,易于调试和维护。对于一个较大的程序,可将整个程序按功能分成若干个模块,不同的模块完成不同的功能。对于不同的功能模块,分别指定相应的入口参数和出口参数,而经常使用的一些程序最好编成函数,这样既不会引起整个程序管理的混乱,还可增强可读性,移植性也好。

在程序设计过程中,要充分利用c51语言的预处理命令。对于一些常用的常数,如true,false,pi以及各种特殊功能寄存器,或程序中一些重要的依据外界条件可变的常量,可采用宏定义"#define"或集中起来放在一个头文件中进行定义,再采用文件包含命令"#include"将其加入到程序中去。这样当需要修改某个参量时,只须修改相应的包含文件或宏定义,而不必对使用它们的每个程序文件都作修改,从而有利于文件的维护和更新。现举例说明如下:

例1 对于不同的单片机晶振,程序取不同的延时时间,而且可根据外界条件的变化修改延时时间的长短。对于这样的程序,可利用宏定义和条件编译来实现。程序如下:

#define flag 1 #ifdef flag==1 #define fosc 6m delay=10; #elif flag = = 0 #define fosc 8m delay=12; #else #define fosc 12m delay=20; #endif main() { for(i=0;i<delay;i++); } 这样源程序不作任何修改就可适用于不同时钟频率的单片机系统,并可根据情况的不同取不同的delay值,完成不同的目的。

2 c51语言与汇编语言程序的混合编程

c51编译器能对c语言源程序进行高效率的编译,生成高效简洁的代码,在绝大多数场合采用c语言编程即可完成预期的目的。但有时为了编程直观或某些特殊地址的处理,还须采用一定的汇编语言编程。而在另一些场合,出于某种目的,汇编语言也可调用c语言。在这种混合编程中,关键是参数的传递和函数的返回值。它们必须有完整的约定,否则数据的交换就可能出错。下面就以力源公司的10位串行a/d转换器tlc1549 为例说明c语言程序与汇编语言程序的调用。 图1 tlc1549管脚图

1549的管脚图和时序图分别如图1和图2所示,假定data out接p1.0, 接p1.1,clock接p1.2。

1549的具体特性请查阅有关资料。

图2 tlc1549时序图

例2 c语言程序与汇编语言程序的调用,其子程序如下:

public ad ;入口地址 seg_ad segment code ;程序段  rseg seg_ad using 0 ad: mov r6,#00 mov r7,#00 setb p1.1 acall delay clr p1.1 acall delay mov r0,#10 rr0: setb p1.2 nop clr p1.2 djnz r0,rr0 acall delay mov 30h,r6 ;a/d转换的高 ;两位保存在r6中 acall cir mov r6,30h setb p1.2 nop clr p1.2 mov 30h,r6 acall cir mov r6,30h mov r0,#8 ;a/d转换的低 ;8位保存在r7中 rr2: setb p1.2 nop clr p1.2 mov 30h,r7 acall cir mov r7,30h djnz r0,rr2 ret cir: clr c mov c,p1.0 mov a,30h rlc a mov 30h,a ret end 在以上程序中,函数的返回值为一无符号整型数,根据调用规则,返回值的高位必须在r6中,低位在r7中,这样才可保证数据的传递不出错。另外,在调用过程中,必须注意寄存器的入栈。这样在以后用到a/d转换时,在c语言中调用汇编语言子程序ad()即可。

3 c51中断处理过程

c51编译器支持在c源程序中直接开发中断过程,因此减轻了使用汇编语言的繁琐工作,提高了开发效率。中断服务函数的完整语法如下:

void 函数名(void)[模式]

[再入]interrupt n [using r]

其中n(0~31)代表中断号。c51编译器允许32个中断,具体使用哪个中断由80c51系列的芯片决定。r(0~3)代表第r组寄存器。在调用中断函数时,要求中断过程调用的函数所使用的寄存器组必须与其相同。"再入"用于说明中断处理函数有无"再入"能力。c51编译器及其对c语言的扩充允许编程者对中断所有方面的控制和寄存器组的使用。这种支持能使编程者创建高效的中断服务程序,用户只须在c语言下关心中断和必要的寄存器组切换操作。

例3 设单片机的fosc=12mhz,要求用t0的方式1编程,在p1.0脚输出周期为2ms的方波。

用c语言编写的中断服务程序如下:

#include <reg51.h> sbit p1_0=p1^0; void timer0(void)interrupt 1 using 1 { /*t0中断服务程序入口*/ p1_0=!p1_0; th0=-(1000/256); /*计数初值重装*/ tl0=-(1000%256); } void main(void) { tmod=0x01; /*t0工作在定时器方式1*/ p1_0=0; th0=-(1000/256); /*预置计数初值*/ tl0=-(1000%256); ea=1; /*cpu开中断*/ et0=1; /*t0开中断*/ tr0=1; /*启动t0*/ do{}while(1); } 在编写中断服务程序时必须注意不能进行参数传递,不能有返回值。

第9篇:单片机c语言范文

关键词:单片机教学改革;机器人;项目式教学

中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2014)29-0051-02

一、引言

《单片机技术》是高等学校电子通信专业的一门重要的专业课。单片机具有结构简单、抗干扰能力强、功耗低等特点,被广泛应用于数字控制、智能传感器、遥感技术等领域,是现代科技不可缺少的关键技术。在家电、通信行业中,尤其需要单片机方面的人才,调查表明,掌握单片机技术的高等学校学生在毕业后,不管是在就业率方面还是满意度方面都是相当高的。

然而,要学习好单片机这一技术需要较好的模电与数电的基础,还需要一定的编程能力,传统的教学模式在组织内容上让学生感觉到非常难学,学生通常是一开始抱着极高的兴趣,但觉得无从入手,到后来渐渐地失去兴趣这样的恶性循环。因此,单片机课程的改革成为各个高校重点改革的课程之一。

二、单片机技术教学存在的问题

目前几乎每个工科院校都设有《单片机技术》课程,按照用传统的教学模式是:先基础后应用。从单片机硬件结构开始到汇编指令系统,接着是系统扩展与接口技术,还有的高校会增加课程设计。学生一开始接触单片机就从最抽象、最枯燥的硬件结构与汇编语言,如果学生的基础与理解能力不够的话,学习起来就会非常吃力,这也是很多学生对《单片机技术》这门课程不感兴趣的原因之一。

另外,在传统的教学中,理论教学部分远远多于实践教学,而实践部分往往也是教材规定的几个实验项目,学生照着接线输入程序就完成了,学生完成的更多是一种验证性的工作,导致学生缺少主观能动性,在学习的积极性与自主创新上大打折扣。

以上单片机课程在教学过程中存在的问题必须得以改革才能更好地让我们的学生学习和掌握单片机技术。

三、基于机器人工程对象的单片机教学改革

1.利用轮式机器人平台项目式教学。机器人的控制核心是单片机,控制对象直观,也极具趣味性,因此很适合作为单片机的学习载体。在各种机器人中,轮式机器人结构简单清晰,控制难度不高,可搭载多种传感器实现多种智能控制,扩展性很强,充满了趣味性,非常适合单片机初学者学习使用。

轮式机器人可根据控制轮子的数量分为四轮、六轮等轮式机器人,轮子数量直接关系到机器人的复杂程度,比如六轮的玉兔月球探测车相当复杂。作为学生学习的轮式机器人,力求结构简单、容易理解,因此底盘可采用三轮结构,其中两轮作为驱动轮和一个随动轮作为支撑。驱动电机采用舵机控制,控制方式是脉冲宽度控制正转、反转与静止,主控制板采用PCBA形式组装好单片机、通信模块烧录接口等,扩展使用排针与面包板外接传感器或扩展模块。

轮式机器人的硬件上,除了底盘舵机的接线已经固定外,各种类型的传感器需要学生使用面包板,自己进行设计安装,也可以通过扩展模块进行传感器的拓展。扩展内容包括有简单的开关信号、光电管的使用到复杂的颜色传感器等,改变了传统教学的纯理论学习+实验的模式,学生在动手调试程序与硬件的过程中,即做即得,这样不仅加强了学生的动手能力,也大大提高了学生的学习积极性。

2.C语言代替汇编语言。传统的单片机教学通常以汇编语言进行讲解,使用汇编语言的优点是结合硬件,使得学习者能彻底地掌握单片机的运行原理,打好良好的基础。正因为汇编语言有这样的显著优点,现在仍有不少高校以汇编语言进行单片机教学,但是汇编语言抽象难懂,要求学习者有较强的硬件基础与逻辑思维,不少初学者在接触单片机就遇到如此难懂的汇编语言使得他们的学习积极性大打折扣,从而影响后续的学习。

C语言是高级编程语言,是最普遍的编程语言之一,它具有良好的移植性,可以在不同平台上实现移植,例如51单片机可以使用Keil C进行单片机的程序编写,C语言的程序易读易懂,极具结构化,在程序的编写上比汇编语言要简易很多。目前,绝大部分的电子工程师在使用单片机时都采用C语言编程,而且单片机厂家也提倡工程师使用C语言编程,也提供了大量的源代码,使得开发速度大大地提高。正因为如此,不少高校开始采用C语言进行单片机教学。

由于C语言移植性非常强,即平台的依赖性不高,使得程序员不需要十分熟悉单片机的硬件结构就能进行程序的编写,但作为学生的单片机学习,对硬件结构的掌握是十分必要的,因此,通过轮式机器人平台的使用,加强了对单片机结构的认识,可以弥补学生在硬件结构学习上的不足。

在轮式机器人的使用过程中,除了与汇编语言相近的I/O使用、延时、条件判断、循环、中断等内容,还有C语言的函数、数组、指针等内容,通过机器人的控制结合单片机CPU的结构特点进行学习与设计。例如:使用数组对轮式机器人的行走进行控制,在数组数据类型的选择、数组成员的多少等,都与单片机的RAM结构有直接的关系,学生通过修改这些参数查看程序状态来认识单片机的内部结构。

相比汇编语言,C语言在编程效率上有明显的优势,可以快速的完成程序的编写,在教学实践中,不少学生积极发挥主观能动性,自己编写函数、修改例程、完成不同的任务,而在以往的汇编语言的教学中,只有少部分学生能完成类似的任务,由此可见单片机C语言是现代单片机教学改革的一个重要部分。

3.过程考核。在传统的单片机教学上基本都采用试卷考核的方式,或者采用课程设计的方式,在考核方式上比较单一、片面,也很难对学生阶段性的学习进行总结评价,考核方式务必进行改革。

在轮式机器人的单片机教学中采用过程考核与期末考核相结合的方式,过程考核中以具体项目的完成情况进行考核。考核过程包括:(1)学生自评,根据设计的项目,学生对自己的表现做一个总结;(2)小组互评,学生以评委的角度对其他学生评分,可以使得学生培养团队合作精神并且可以取长补短;(3)教师评价,教师进行总结评价,对个别表现突出,有创新性设计的同学进行点评,带动其他同学的积极性。

期末考核从课程中的项目选取具有代表性的任务作为考核内容,采用抽签的方式,学生抽到随机的任务后,选取相应的传感器在面包板搭建电路,编写程序,最终实现任务的要求,完成工程文件(画电路图、元件清单、程序流程图)。教师对学生考核的过程打分,实现考核。

在教学过程中采用过程考核与期末考核结合的方式,使得学生的积极性大大地提高了,无论从学生的理论和实践上都能取得良好的效果。

四、总结

传统的单片机教学模式存在不少缺点,本文使用轮式机器人与C语言作为单片机的学习平台,采用项目式教学,考核上采取过程考核与期末考核相结合的方式对单片机课程进行改革,在进行了一年的单片机教学改革后,明显发现了学生在学习积极性上得以明显的改善,学生的创新能力与实践动手能力都得以提高。实践证明,基于机器人工程对象的单片机教学模式是单片机教学改革的一种尝试,而且有一定的效果。

参考文献:

[1]宋锦.单片机教学中培养学生创新能力探讨[J].中国成人教育,2006,(05).

[2]叶爱芬,王旺迪.论工学结合模式下的单片机教学改革[J].科技信息,2011,(11).