单片机编程范例6篇

前言:中文期刊网精心挑选了单片机编程范文供你参考和学习,希望我们的参考范文能激发你的文章创作灵感,欢迎阅读。

单片机编程范文1

关键词 单片机;计算机语言;C语言

中图分类号:TP315 文献标识码:A 文章编号:1671-7597(2013)22-0055-01

单片机是一个小型的电脑系统,它具备完成一项某项任务的功能,有的甚至可以完成多项功能,这在工业控制以及智能开发上有巨大用途。单片机系统的实现是建立在大规模集成电路技术发展成熟的基础之上,它将中央处理器CPU,数据存储ROM,负责信息传输的线路和I/O接口整合到一起,放在集成电路板上,完成电脑系统的制作。至于C语言,就是一种特定的机器语言,能帮助我们编译计算机能够识别的指令,而且整个编译过程不需要依靠计算机硬件的应用程序,非常的简单可行。

1 单片机C语言的编程优点

1)单片机因为是集成电路系统,能在一个很小的原件上完成较为复杂的操作反应,运行简单,价格便宜,还能支持C语言的编译。今天我们所提到的单片机C语言是C语言的一种,它能为单片机提供更多的数据类型,帮助用户分析遇到的问题,并且针对问题做出专业性处理。整体流程如下:命令以单片机C语言的形式下达,然后通过传输接口传到单片机的存储器上,CPU在从存储器上提取信息,进行计算并发出指令,发出的指令在通过接口传到给执行机器,如此完成整个动作。整个过程没有异步过程,而且提供标准函数库,程序员不需要熟记单片机的指令库就可以完成整个编译过程。

2)C语言作为一种高级语言,能直接用于操控机器,而不需要软硬件的驱动程序,为软件的开发提供了可靠的保障,C语言的应用极大的增加的程序编译员的工作效率,给开发者更多的时间跟精力去专心研究编译程序的功能,不用在分精力在硬件与软件的契合方面。但是单片机C语言占用系统量较大,对一般的单片机来说,CPU直接读取的存储是有限的,用C语言进行编译,很容易将原本简单的编译信息写成多条信息,这就增加了直接存储的负荷,导致单片机直接存储不够用或者栈溢出等问题。

2 单片机C语言的编程问题分析

1)研究表明,单片机C语言编辑器也不是万能的,不可能支持所有的数据类型。不过现今比较流行的几种数据类型还是能够支持的。像是拥有16位数据的char型存储数据类型,它主要是运用ASCII字符集。像存储位数为四字节的Int数据存储类型,它是一个整型数据。整型数据中又有长整型数据,也就是long数据。另外一种数据是浮点型数据,我们在C语言编辑中经常用到,逻辑开头为float。单片机除了上述的语言类型外,还支持Sfr这种特殊功能寄存器,不仅仅能够存储数据,还能任意访问数据存储所在的位置。作为一种跟程序存储器资源相结合的编译语言,单片机C语言也具有一定的缺陷性,我们拿最常见的51系列单片机为例子。作为单片机中最常见的,我们知道51系列的单片机CPU是八位的,要计算二的八次方个数据,我们如果想提高代码的准确率,一般都是采用减少单片机的位数的长度,也就减少了CPU的数据计算数量。我们在使用中,为了避免占用内存过大,通常会减少程序执行过程中的运算次数,减少输入字符串的总体长度,能够用小字符串进行定义的绝不使用大的,能够用整型变量进行定义的就尽量不用长整型变量,这也是我们进行C语言设计时需要遵循的一个原则。在C语言的处理过程中,必须从数据库里提取公式,但是浮点型的数据就有一定的内部函数来支持,整个浮点型函数经过如此变化,会生成较长代码,所以我们在运用数据时,要尽量选取合适数据类型,本着减少代码长度的觉悟,尽量做到合理。

2)单片机C语言的算法的详解。C语言是算法组成的,它能够完成单一命令或多种命令。单片机C语言也是由一个个算法组成的,但是普通C语言跟单片机C语言的最大不同就在于存储量的大小,通常普通C语言的编译是不需要考虑编译程序代码的长度问题,我们只需要考虑编译的结果符合我们的要求即可。但是在单片机C语言编译中,因为单片机本身的存储性能有限,我们就必须对长度过长的代码进行重新设计排版,让程序算法最少。当然算法少的程序并不一定是代码少的程序,有些本身代码不长的程序,因为要在运行中走函数或者子程序,造成原本认为少的程序在运行中涉及的算法更多。为了降低程序消耗的内存,不仅仅要考虑编辑好的程序算法,还要考虑算法运行的本身。通常我们都知道算法是包括控制结构以及原始操作结构的,原始操作结构也就是我们常说的输入机构,控制结构与原始操作机构的运行得出结果的时间就是算法执行的时间,但是普通的一个算法,会因为编译算法的语言不通,编译程序的软件不通,编译完成后在运行计算机的不同产生不同的结果。所以我们在进行单片机上的算法设计时,要考虑解决一个问题时,哪种策略更简单,哪种策略使用规模最小,哪种策略书写的程序语言最少,就选用哪一种算法。在C语言中,算法直接影响对语言的实现级别。

3)单片机C语言存储器的分配结果。单片机的存储设备一般都是随即存储,存储数据非常少,一般也就64kb,也就是我们常说的单片机的内存,除了随即内存外,单片机有时还具备内部存储设备。在实际运行中,数据从内部存储转到随即存储,空余的存储地址在由新的存储数据填充。 这就涉及到全局变量以及静态存储变量,静态变量因为是函数调用的,所以所处的存储器地址基本是不变的,在全局变化中,能被释放的只有局部变量,我们为了保证单片机的内存,要尽量提高存储器的利用率,合理分配存储器地址。

4)存储器有三种不同的存储模式,分别为小模式,压缩模式以及大模式,判定的值是变量所处的地址范围。我们选取不同的模式,将直接影响到代码的长度以及程序的执行速度,在研究中发现,我们要把程序代码放在存储空间里,然后将一部分访问变量设计成xdata的类型,放在实时存储里面,就能减少不必要的时间。

单片机C语言这种通用的计算机语言有着很多优点,功能强大,便于结构化,可读性强,可移植性强,维护和运用方便,反应速度快,并且具有通用性。单片机的性能在飞速提高,这就需要编程者随时掌握学习知识,提升技术,在单片机目前有限的系统资源下研究开发出更加优秀的单片机系统。

参考文献

单片机编程范文2

关键词:单片机 发光二极管 闪烁

0 引言

单片机由于体积小、价格低廉、功能强、可靠性高、面向控制和价格低廉等优点,不仅成为工业测控领域使用的智能化控制工具,而且已渗入到人们工作和生活的各个角落。在工科学校中基本都开设有《单片机原理及应用》这门课,而对所有学习单片机的人来说最入门的就是对发光二级管LED的控制。

1 发光二级管的工作原理

发光二极管Light-Emitting Diode简称为LED,由镓(Ga)与砷(As)、磷(P)的化合物制成的二极管。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。当给发光二极管加上正向电压后,从P区注入到N区的空穴和由N区注入到P区的电子,在PN结附近数微米内分别与N区的电子和P区的空穴复合,产生自发辐射的荧光,因而可以用来制成发光二极管。在电路及仪器中作为指示灯,或者组成文字或数字显示。磷砷化镓二极管发红光,磷化镓二极管发绿光,碳化硅二极管发黄光。

LED只能往一个方向导通,发光二极管的反向击穿电压约5伏。它的正向伏安特性曲线很陡,使用时必须串联限流电阻以控制通过管子的电流来控制LED的亮度。限流电阻R可用下式计算:

R=(E-UF)/IF

式中E为电源电压,UF为LED的正向压降,IF为LED的一般工作电流。

2 LED的编程方法

假设LED的连接电路图如图1所示,八个红色发光二极管通过限流电阻分别接到单片机P1端口的8个引脚上,单片机选用AT89C51。

2.1 单个发光二极管的控制

在图1中,如图所示,如果要使发光二极管D1点亮,由于D1的正极通过电阻R1接到电源VCC上,那么D1要正向导通必须使D1的阴极为低电平,也就是P1.0引脚为低电平,这个可以通过软件可以控制,完整的C51程序如下:

同样的,如果要使发光二极管D1一亮一灭不停地闪烁,则工作原理是让D1点亮并延时一段时间,接着使D1熄灭并延时一段时间并不断的循环,这样就可以观察到D1一亮一灭不停地闪烁。延时可以采用软件延时或者定时计数器定时延时两种方式,本文采用软件延时,其工作原理是利用每条指令运行都需要一定的时钟周期,运行一定数量的时钟周期可以实现延时的功能,本图中晶振为12MHz,那么12个振荡周期为1us,延时1ms的延时程序如下:

2.2 多个发光二极管的控制 多个多个发光二极管的控制原理与单个发光二级管的控制原理一样,在图1中,如果要控制8个发光二极管同时一亮一灭的闪烁,那么只需要同时使8个发光二级管点亮延时一段时间,再同时使8个发光二级管熄灭并延时一段时间,周而复始不断循环就可以实现8个LED不停地闪烁,完整的C51程序如

下:

2.3 花样流水灯的控制 对于花样流水灯,工作原理和前面多个发光二极管的控制原理一样,只需要把不同状态下灯所对应端口的值送到相应的控制端口并延时一定的时间就可以实现,编程时可以把所以对应状态的端口值放在一个数组里存放,不停循环地取数组的值,每取一个值延时一段时间,即可以实现,程序略。

3 总结

单片机在各行各业中使用越来越多,文中对单片机中发光二极管的使用和编程方法进行总结,并给出各种方法的工作原理和完整的程序。

参考文献:

[1]戴仙金.51单片机及其C语言程序开发实例.北京:清华大学出版社,2007.

[2]李朝青.单片机原理与接口技术.北京:北京航空航天大学出版社,2005.

[3]李广军等.实用接口技术.成都:电子科技大学出版社,1997.

单片机编程范文3

关键词:单片机;可编程控制器;教学设计

中图分类号:TP273 文献标识码:A 文章编号:1674-7712 (2014) 04-0000-01

可编程控制器早已在各类工科院校的相关实验、实训教学中得到了广泛的应用,成为了高校自动化、机电一体化等专业实验、实训教学的“得力助手”。然而,由于目前市场上可供应的工业用可编程控制器存在价格偏高,使用的编程语言特别,编程模式相对固定,灵活性较差等原因,虽然其在性能方面更专业功能更强些,但在高校教学中推广应用还是有一定的困难。本文中所介绍的基于单片机的可编程控制器,是针对各类工科院校的实验、实训教学而设计,在实验过程中学生可根据自己的需要,通过对该可编程控制器的操作,达到预期的实验、实训目的,这样不仅能促使学生充分理解单片机和可编程控制器的基本原理和应用,还为学生提供一个灵活方便的智能设计平台。

一、系统功能架构

本文所介绍的可编程控制器使用89C51系列单片机做为核心控制芯片。下面就该系统的主要模块设计作如下介绍。

(一)单片机基本系统

该模块为系统的核心部分,它能完成下位机与相应上位机的通信以及对整个系统输出端口的控制与调节功能。

(二)系统电源部分

本系统属于教学用的单片机应用系统,其电源的获取主要是从实验室中获得。实验室中提供的电源一般是220V的单相交流电,而系统所需的标准电压一般为+5V的直流电压以及相关的直流电平,因此,要求系统电源相应的功能模块应当能够将220V交流电转化为5V直流电的AC/DC转化功能以及5V转其他实验用的直流电平DC/DC转化功能。

(三)串口通信部分

1.基于RS-232的通信。首先,对于串口通信的接口,51系列单片机拥有可编程全双工串行口通信接口,能够用于异步接收或者发送UART。其相应桢格式主要包括8、10、11等几位,我们能够利用其进行可变还有不可变波特率的具体设定工作。而IBM上位机则相应的配置有RS232-C通信接口。由于数据实际传输量较小,因此,该控制器一般通过异步方式实现通信。

对于串口通信转换电路,MAX232芯片使用IC芯片的RS-232电平转换芯片,该芯片具有两路接收和驱动器,可以满足各式232通信接口需要。在MAX232芯片里包包含一电压转化器,从而将输入进来的+5V电压转化为+10V与-10VRS-232输出电平要求的电压。因此,串行通信系统如果使用该芯片接口,则只要求具有+5V电源就可以了。

2.基于RS-485的通信。由于前的RS-232协议传输距离较短,传输速度又较慢,加之无法实现多机通信,而且其传输信号不稳定,容易受到干扰等不利条件,因此该协议已无法满足当前的设计的需求。

本文所介绍的系统是使用性能较好的RS-485接口芯片,从而能保证多个下位机与上位机终端通讯的顺利实现。MAX485芯片的结构以及相应的引脚都极为简易,而且其内部一般包含有相应的接收器以及驱动器,主要功能是负责把TTL电平转化成RS-485的工作电平。其相应的端口芯片主要是利用+5V电源保证系统的正常运行,相应电流的额定值一般在300μA上下,往往采取半双工(HalfDuplex)数据传输方法来实现正常通讯。

在实际运行环境中,上位机与RS-485下位机的正常通信需要有相应的接口卡。本控制器的接口采用的是RS-232/RS-485转换器。

3.通信方式的选择电路。在该控制器通信系统的设计中,RS-485将与RS-232并存。由于单片机只包含有一个串行口,所以不符合设计的需求,因此我们将配置了选择电路,通过该选择电路选择开关实现在MAX485与MAX232之间的选择,从而完成多机之间的通信,以满足各种不同实验、实训的需求。实际通信选择电路示意如图1。

二、系统功能概述

该可编程控制器的具体功能如下:

(1)8路开关量信号经光电耦合器,将数据送入信号输入缓冲器,再进入单片机P1端口。利用可编程控制器程序的相应运算,得出最终结果,然后再经P1端口输出,利用光电耦合器以及相应的数据锁存器输出信号电平。此外,该系统还可以做相应的扩展。

(2)利用RS-232串口满足上位机和下位机正常通信功能,从而为组态编程设置接口;利用RS-485可满足PC机和多单片机的联通以及正常通信。

(3)搭配的液晶显示模块LCD1602可以实时地显示输入信号以及相应的输出信号,并可以显示编程状态以及相关的时钟。

(4)时钟芯片主要是给系统大时间继电器装置提供所需的时间参照信号,从而实现8位输入/输出的统一协调,进而使控制器成功而精确地对外部设备进行控制,从而保证了PLC相应功能的实现。

三、结束语

目前,大多数工科类院校都拥有了许多能供相关专业实验、实训教学使用的智能型电子设备,然而,利用89C51系列单片机开发的可编程控制器,由于其价格低廉、运行可靠、操作简单等特点,使其能够更好地适合学校的教学需要,它不但能大大减少教学成本、提高教学效果,还能促使学生对单片机及可编程控制器的原理和应用有更深的了解。我院电气工程系利用自行设计开发的基于89C51系列单片机可编程控制器,在电子、自动化及机电一体化等专业的多个实验、实训项目(如自动洗衣机控制、自动送料装车系统控制、自动售货机控制、五层电梯的自动控制、装配流水线控制等)中使用,收到了满意的教学效果。

参考文献:

单片机编程范文4

关键词:MCS-51 单片机 汇编 IDE 编译器

中图分类号:TP313 文献标识码:A 文章编号:1007-9416(2013)05-0029-01

1 单片机简介

1.1 单片机介绍

单片机是一种集成电路芯片,它将CPU、RAM、ROM、I/O接口、中断系统等等功能集成到一块硅片上,构成一个微型计算机系统,所以单片机也叫做微控制器。在工业控制领域中,单片机具有非常重要的地位。MCS-51单片机是一种8位单片机,虽然目前已经有32位单片机的出现,但8位单片机在很多行业中仍在被广泛使用,其性能较之以前也有巨大的提升。

1.2 单片机发展方向

单片机发展有两个方向:

(1)改进集成电路工艺,提高芯片速度。

(2)根据不同领域需要,在保留基本外设装置和公共指令的基础上,将不同的外设装置集成到芯片中。

(3)MCS-51单片机指令。MCS-51单片机的指令系统功能强、指令短、执行的速度也快,一共有111条指令以及8条伪指令,可以从功能上将其划分为数据传送、逻辑操作、算术操作、程序移位操作等四大类;空间属性上来分,分为单字节指令、双字节指令和三字节指令;时间属性上来分,分为单机器周期指令、双机器周期指令和四机器周期指令。MCS-51单片机的指令由操作码和操作数组成,操作数又有无操作数、单操作数、双操作数三种情况。格式如下:

【标号:】操作码助记符【目的操作数】【,源操作数】【.注释】。

伪指令不用计算机做任何操作,只是帮助汇编,不影响程序执行。

2 IDE简介

2.1 IDE介绍

IDE(Integrated Development Environment,集成开发环境),包括代码编辑器、编译器、调试器、用户界面等,是用于编程语言开发的应用程序。目前的单片机IDE,主要是由国外几大面向嵌入式系统的软件公司来开发,如:德国的Keil,美国的Franklin等,国内几乎没有自主研发的优秀的单片机IDE。

2.2 IDE主要功能

(1)代码编辑。程序员在使用IDE进行程序开发时,大部分的时间都是在进行代码的编辑,一个好的IDE应该在代码编辑中为用户提供帮助,提高他们的开发效率,例如:通过改善显示效果来提高程序可读性;让部门代码自动生成从而简化用户输入的动作;方便用户进行程序阅读等等。(2)项目管理与编译控制。(3)平台信息管理。主要是针对嵌入式开发环境,针对不同的CPU体系、开发板名称,将所有的平台信息在信息管理模块中分类记录,用户选取相应的配置文件来使用新的开发平台,这样就能最快的进入最终应用开发阶段。(4)调试功能。IDE的调试功能是十分重要的,它能检查出软件执行过程中出现的错误,当然,在嵌入式系统开发中,还要支持远程调试。

2.3 在IDE中单片机汇编程序的开发

基于MCS-51单片机汇编语言程序的应用系统开发,有以下几个步骤:(1)源代码编辑。(2)生成目标程序。(3)下载或编程。(4)调试。

3 设计思路与详细步骤

3.1 界面设计

设计IDE时,选择微软的VC++工具,它是面向对象的程序设计工具,可视化功能强,界面友好,易于解决大型问题,软件维护方便。选好设计工具,就开始进入界面的设计,要让单片机汇编语言的初学者较好掌握这门语言,IDE就应该简单直观,易于操作。编辑框当中包含以下几个部分:(1)文件(file):新建、打开、保存、关闭、打印、退出;(2)编辑(edit):剪切、复制、粘贴、查找、撤销;(3)编译(compile):编译连接、装载程序;(4)实验演示和参数设置;(5)系统登录。

3.2 编译器设计

3.2.1 分解

一个编译器的整个工作流程是分阶段进行的,这几个阶段是:词法分析、语法分析、语义分析、目标代码生成。如果编译过程中发现源程序有错误,编译程序要报告出错误的性质和发生的地方,将错误的影响尽量限定在很小范围内,使得程序的其他代码能继续被编译。

3.2.2 设计步骤

(1)总体设计。设计时使用两遍扫描,第一遍是建立符号表和确定源程序每一行的偏移地址,同时检查汇编程序是否有错误;第二遍是利用第一遍扫描所生成的符号表,产生可供微处理器执行的机器代码文件,并产生一个列表文件。

(2)指令系统设计。MCS-51单片机共有111条可执行的指令和8条伪指令,建立一个对象,用来存储用户使用的指令系统的信息,如序号、操作数对应的Token码等,为了在编译时能够判断输入的语句正确与否,先要建立一个指令表和操作码表,然后将语句与111条指令进行匹配。

(3)词法分析设计。MCS-51单片机汇编语言程序,是将若干条MCS-51指令行组合而成,指令行格式:

【标号:】MCS一51操作码【操作数1】,【操作数2】,【操作数3】【;注释】

伪指令语句格式:

【标号:或字符串】MCS-51伪代码表达式列表【;注释】

定义一个类来进行词法分析,设置两个变量a,b,分别代表读入单词的头指针和尾指针,先将b的值赋值给a,然后通过循环逐个判断,得出a的真正位置,从而实现对词语的判断。

(4)符号表管理设计。符号表一个链表中的每个元素都是一个结构体,每个结构体包含多个域,如果遇到一个词语并判断出它是变量,就将它的名字、类型、值描述出来,存入符号表。

(5)出错处理设计。发现的错误必须由用户对源程序进行改正后再重新编译,错误信息和警告信息包括:出错的汇编源文件的文件名,出错行的行号,具体的出错信息等。

参考文献

单片机编程范文5

关键词:高等院校;微机原理;单片机;教学改革

中图分类号:G642.423 文献标识码:A 文章编号:2095-1302(2012)07-0074-03

0 引 言

微机原理及应用和单片机原理及应用是现今大多数院校自动化、电气自动化等信息工程类专业的重要课程。微机原理偏向于原理性的介绍,涉及的实验比较简单;而单片机则更偏向于应用性,涉及的实验较多。这两门课程的实验过程及使用的芯片及编程的的方式非常类似。大多数院校选择先开设微机原理的课程,在随后的一个学期开设单片机的课程。这样的选择在逻辑上没有错误,可毕竟这两门课程有很大的相似之处,但又有各自的特点。微机原理和单片机的内容既相关又有明显的区别,前后开课会使得学生可能产生忘了前面、记不住后面的感觉,同时两门课的相似点又使得学生区分不清,对内容产生混淆。而实验的环节,用的实验箱不同,虽然芯片不同,学生也仅仅为做而做。在实际教学中,会经常碰到学生提出“微机原理的汇编语言编程要分段(segment),而单片机的汇编语言编程为何不分段”、“微机原理课里的标志寄存器有16位,为什么单片机里才有8位”等问题。此外,这两门课一般都由同一位教师讲授,教师备课时不由得对比着备课,在教学中自然把两门课相关知识点进行描述或比较,使得单一门课程的教学时间无形中被占用。对此,以笔者实际的教学经验,现对这两门课程的教学改革进行一些探讨。

1 课程改革思路

微机原理及应用课程主要是帮助学生理解计算机的原理和结构,通过学习,使学生熟悉一款比较经典的CPU和以该CPU为中心的总线、存储器存储过程等数据处理以及用汇编语言编写程序的方法;同时,还涉及了诸如8255、8259A等一些芯片的运用及接口编程知识,微机原理及应用偏向于原理性的阐述。而单片机原理及应用课程主要是针对某类型已经非常成熟的单片机型号,帮助学生学会如何使用单片微型机以及针对实现不同的功能进行编程的知识,该课程更偏向于应用。

这两门课程的内容既有很大交叉,又有各自的特点:微机原理及应用理论更系统,单片机应用性更强。独立开设两门课程,不可避免地会出现知识点的重复和各自重点的缺失。由此,针对这两门课程授课过程中的不足,笔者有了对这两门课程进行改革的想法。即:同步开课,结合实际教授理论内容,合理分配实验学时等。

2 教学方面

2.1 教学内容

在理论教学方面,笔者对微机原理和单片机的教学内容进行了整合。微机原理基于冯·诺依曼结构,这种理论更易于学生了解计算机体系和计算机系统的工作方式;单片机本质上也是计算机系统,只是性能弱,功能单一。因此,在理论讲课过程中,应该以微机原理为主,同时针对微机原理和单片机的明显不同,比如同是45H,在微机原理中是立即数,在单片机中是存储的地址等,在这方面加以重点讲解。微机原理的内容较多,涉及面广,如果对知识点面面俱到,不仅时间不够,而且学生的学习积极性肯定不高。单片机原理课程主要基于80C51单片机进行讲解,并介绍单片机的特点、在片资源、汇编语言编程、片内接口及中断、通信及A/D、D/A转换等。在这当中,肯定会遇到一些和微机原理相冲突的地方,不论讲解与否,势必会影响到后续课程讲授的连贯和流畅,因此,必须要对相关内容进行取舍。

单片机编程范文6

一、c语言与单片机课程在中职学校电子及相关专业中的重要地位

c语言是一种被广泛使用的计算机程序设计语言,在中职学校引入c语言课程,不但能使学生掌握一种基础的编程语言,还为学生发展能力和进一步学习打下基础。

传统的电子装置,只能使用复杂的模拟电路或分立的集成电路来实现,这样的产品不仅体积大,且成本高,控制的精度也不高,适应性更差。有了单片机后,可实现很多复杂的功能。而学好单片机可让学生在电子行业内找到一个比较好的工作。所以,单片机课程,也常被称为“饭碗”课程。

二、中职学校“c语言”与“单片机”课程教学方式现状分析

目前,中职学校中“c语言”与“单片机”课程的教学是采用完全割离的方式进行的,一般在第二学期开设“c语言”,在第四学期开设“单片机”。

在讲授“c语言”时,通常以turboc 2.0为蓝本,除了介绍“c语言”的数据类型、控制语句、数组、指针外,还对函数、结构体甚至文件进行详细地介绍。整个教学过程中,过分注重语句、语法的细节和程序设计技巧的讲授,对如何分析和解决实际问题讲得不够。从而没有明确的学习目的,更缺少学习的兴趣。wwW.133229.Com

而单片机的教材中,往往以汇编语言做为编程工具,为了能正确地运用汇编语言编写单片机的程序,就要对单片机内部结构、存储器结构等知识做详细介绍。从多年的教学实践来看,单片机课程讲到寻址方式时,就基本上讲不下去了,后面的课程,学生只能像听天书一样被动地接受。

所以,多年来,学生怕学c语言,更怕学单片机。学过c语言课程的学生,不知道c语言的具体用途,学完后很快就忘记了。学过单片机的学生,感觉单片机内部结构难懂,汇编语言更加难掌握,学到最后,连数码管、键盘这样的最基本的程序,也无法顺利完成。因此,这两门课程的教学改革,势在必行。

三、“c语言”与“单片机”课程整合的可行性分析

通过上述对“c语言”与“单片机”本文由收集整理教学现状的分析,我们发现,之所以这两门课难教难学,其根本原因在于两门课教学过程的割裂。

c语言是一门较特别的高级语言,它把高级语言的基本结构和语句与低级语言的实用性结合起来,允许直接访问物理地址,可直接对硬件进行操作,因此既具有高级语言的功能,又有低级语言的许多功能,能够像汇编语言一样对位、字节和地址进行操作。而单片机的指令系统和硬件结构,正是学生最头疼的内容。而有了c语言这个编程工具后,单片机的学习效率会大大提高。

同时,单片机用c语言编程,绕过了单片机中难学的内容,用c语言编程,驱动单片机装置,解决了c语言应用抽象的难题,所以,这两个课程,整合在一起教学,真可谓是“天生一对”!

四、“c语言”与“单片机”课程整合的方法

对c语言与单片机课程的教学过程进行整合,可提高两门课的学习效果,但整合过程中,要想达到最佳的效果,也要采用正确的方法。

首先,这种整合不是简单的“一加一”式的整合,不是将两门课在相对集中的时间内相继开设,就叫“整合”,而是要以单片机课程做为“主线”,在讲授单片机课程的同时,根据编程的需要,不断地“渗透”c语言的知识。再通过观察程序驱动硬件的现象,深入体会单片机的原理。

其次,这种整合,也不必追求课时的压缩,认为既然是“整合”了,效率提高了,就应该体现在课时的减少上,这种想法是错误的。所以,建议两门课程,仍然保持两个学期的课时量:第一个学期,主要介绍基本知识;第二个学期,可以项目实训的方式,让学生完成一些综合性的实验,以提高对两门课程知识的实际运用能力。

五、“c语言”与“单片机”课程整合的实践与效果