中职学校单片机教学中选择 C 语言的优点及应用

单片机c语言范文第1篇在制作好的单片机最小系统模块上选取发光二极管、数码管、独立键盘和矩阵键盘等元器件设计教学案例,通过案例贯穿覆盖单片机和C语言的知识点。单片机c语言范文第2篇1.Arduino单片机C语言认知。(四)单片机控制LED流水灯,学习for循环语句单片机c语言范文第3篇

中职学校单片机教学中选择 C 语言的优点及应用

单片机C语言论文1

关键词:单片机、C语言、中职教育

很多中职学校在电子专业开设了单片机课程,教学过程中采用汇编语言,但对于部分中职学生来说,单片机课程的掌握存在一定难度。课堂枯燥,汇编语言难懂,动手能力的缺乏,对于学习基础本来就比较薄弱的中职学生来说更是雪上加霜。那么如何让单片机课更加灵活呢?结合多年的单片机教学经验,我认为中职学校单片机教学可以选择C语言作为单片机教学的编程语言。

1.单片机课程采用C语言教学的优势

C语言是一种非常方便的语言,得到了广泛的支持。很多硬件开发都是用C语言编写的,如各种单片机、DSP、ASM等。C语言程序本身不依赖于机器硬件系统,基本上可以从不同的系统移植程序,不用修改或只需简单修改即可直接使用。与用汇编ASM-51编程相比,单片机C51编程有以下优点:

1.不需要对单片机的指令系统有任何了解,可以直接用C语言对单片机进行编程操作。

2. 寄存器分配、不同存储器的寻址以及数据类型等细节完全由编译器自动管理。

3.程序结构规范,可以划分不同的功能,使得程序结构化。

4、库包含大量标准子程序,数据处理能力强,使用方便。

5、具有便捷的模块化编程技术,使编写的程序易于移植。

C语言中常用的语法并不多,尤其在单片机上,C语言的这些优点大大降低了基础薄弱的中职学生学习单片机的难度。

2.单片机最小系统模块的制作

受到2013年7月海南省电子类骨干教师省级培训的启发,在实践教学中我要求学生自行购买单片机最小系统模块开发板进行焊接、组装。在制作过程中,学生可以根据电子知识测量元器件、看电路原理图,有助于巩固以前学过的电子制作课程知识。在中职单片机教学中让学生动起来是做好教学的重要一步,通过让学生动手焊接、制作单片机最小系统模块开发板,可以活跃学生的思维,激发学生学习单片机的兴趣。学生对不熟悉的数码管、发光二极管、液晶显示器等元器件的功能和作用跃跃欲试。每位学生都非常认真地完成单片机最小系统模块的制作。

单片机是一种硬件,在以往的教学中,一直是在现有的实验平台上利用仿真软件进行教学,学生缺乏动手能力,这与中职学校的教学理念相悖,只有将单片机硬件摆在学生面前,让学生亲自操作,才能深入了解、掌握。

3.单片机课堂中如何开展C语言教学

1.合理减少C语言课程内容

在汇编语言教学中,课程一开始就讲解了比较复杂的内存、地址、存储等内容,这对于基础本来就比较薄弱的中职学生来说,更是增加了学习的难度和迷茫。在单片机中引入C语言教学,可以删去比较复杂的内存、地址、存储等内容,只给学生讲解单片机各个引脚的功能,简单了解寄存器,让学生有更多的时间去实践,这是关键,实践过程中如果有不懂的地方,可以查阅教材,这样可以记住得比较深。

2.C语言案例教学

(一)病例选择

在编写的单片机最小系统模块基础上,选取发光二极管、数码管、独立键盘、矩阵键盘等元器件设计教学案例,通过案例讲解单片机和C语言的知识点。教师备课前试编程,在硬件实验板上下载调试,确保每一个案例教学任务的完成。同时案例要具有启发性,通过案例引导学生举一反三,拓展思维。

(二)案例教学的实施

首先讲解案例实施的过程和效果,如如何先从左到右点亮LED,再从右到左点亮LED。同时注意观察学生心理的变化,是否对案例的效果感兴趣。再结合节日彩灯等现实生活中的案例进行分析,活跃课堂气氛,保持学生学习的信心。

其次,通过案例的实现效果讲解,结合最小单片机系统硬件,讲解本案例所涉及的单片机硬件的基本结构及工作原理。

再次,针对本案例实施的效果,可以进行小组讨论,学生可以在电脑上尝试使用Keil2软件进行C语言编程,老师引导讨论,给出一些程序提示,并针对问题提供可行的解决方案。

最后老师选取各组学生编写的程序,经过编译、下载、调试,统一为案例所需的正确的C语言程序,并对案例进行适当的扩展。

4. 实践教学经验

1、学生刚接触C语言时,需要提升学生学习单片机的兴趣,多举一些生活中熟悉的例子帮助学生入门。

2、记住一些英文单词,思考它们的中文意思,然后将其与C语言中的功能联系起来。

3、在Keil软件中可以运用计算机知识学习C语言编程。

教学实践表明,在中职电子专业单片机课程中引入C语言教学,可以激发学生对单片机学习的兴趣,活跃课堂气氛,提高学生单片机硬件制作和C语言软件编程的能力,从而提升中职电子专业单片机课程的教学效果。

参考:

[1]郭天祥.新概念51单片机C语言教程:入门、提高、发展、扩充[M].北京:电子工业出版社,2009.1.

单片机C语言论文2

【关键词】C语言 项目教学 单片机项目

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

【货号】0450-9889(2017)05C-0158-03

传统的C语言程序设计教学一直以语法、语句、结构为中心,以数据类型、变量、运算符、数组、指针、函数为基本知识点。这种教学模式虽然能够很好地按照教材逐一讲解知识内容,但也容易使学生陷入知识细节,而忽略了C语言程序的具体应用。虽然学生可以通过不断学习基础知识、练习经典算法,读懂、修改、编写简单的C语言程序,但学生的抽象思维、自主创新意识和解决实际问题的能力难以得到充分培养。另外,由于高职学生的计算机基础、逻辑思维、英语基础、数学运算等综合能力相对较弱,这些因素也影响了学生学习C语言程序设计的兴趣。

因此,为提高学生阅读、编写和调试程序的能力,激发学生自主学习C语言编程的兴趣,结合电气专业人才培养目标,提出基于单片机项目的C语言编程教学模式,通过实验现象启发学生思考如何实现目标,在实验过程中引入关键理论知识,让学生带着兴趣、有目标地学习C语言单片机项目。

1.引入单片机项目带动C语言编程教学

首先让学生体验用C语言编程控制单片机的乐趣。然后通过不同的项目介绍C语言程序的结构、语法、语句等相关知识。例如通过典型的跑马灯项目介绍for循环语句,通过数码管倒计时显示介绍一维数组,通过八路蜂鸣器介绍if和switch选择语句。利用单片机项目直观、可控的特点,以实用、实用为导向,构建适合高职学生特点的C语言单片机项目框架。具体教学项目框架如图1所示。

1. 介绍简单易学的 Arduino 微控制器培训平台

由于51系列单片机价格低廉,配套教学资源丰富,传统的单片机教学一般采用51系列单片机。但51单片机最大的问题是需要用户掌握其内部结构、寄存器、I/O设备等诸多底层硬件结构,才能进行C语言编程教学。过多的底层硬件结构会增加学生学习单片机编程的难度。Arduino平台绕过了单片机的底层硬件结构,只需要很少的指令就可以开始编程,其内置的库函数也包含了很多常用的I/O设备驱动,在此基础上进行二次开发可以轻松完成功能多样的作品。

Arduino平台的软件和硬件完全开源,很多常用的子功能都已经封装成库函数,基于此进行编程可以大大缩短软件开发周期,提高编程效率。

例如编写一个毫秒级的延时函数,使用51单片机实现需要多行代码,具体延时函数如下:

void delay_ms(uchar t)

{ uchar i, k;

当(t–)

{ 对于 (i=1; i

对于(k=1;k

然而使用Arduino单片机,只需要调用一个毫秒级的延时函数,也就是写入如下代码:

delay(n); //括号中的n表示延迟长度,单位为ms。

对于同样功能的延时函数,51单片机需要多行代码,而Arduino单片机只需要一次函数调用。这种将流程聚合并函数化的过程,省去了繁琐的细节,不仅简化了编程工作量,也让学生更容易理解和接受。

(二)单片机控制LED闪烁及学习while循环语句

单片机控制LED灯闪烁项目程序和硬件电路比较简单,非常适合作为C语言单片机教学的入门实验。LED灯闪烁流程图及主要对应代码如图2所示。通过观察LED灯闪烁实验现象,启发学生思考实现LED灯闪烁的分解步骤。结合C语言程序代码,学生可以直观地了解C语言程序控制指令对LED灯的对应关系。

通过本项目的带动,学生能够更加容易的理解while循环语句的使用方法,同时也可以启发学生思考项目中其他C语言程序的重点:

1、Arduino单片机C语言知识。单片机C语言程序结构由setup()初始化函数和Loop()主函数组成。初始化函数主要完成单片机I/O口的功能设置,例如pinMode(i,OUTPUT),表示第i个引脚为低阻抗输出模式;Loop()函数是程序中的主函数,程序员的所有想法都可以通过C语言控制单片机来实现。

2、变量与函数调用。通过观察LED闪烁的速度,我们可以学会使用延时函数delay(n),其中n是传递的参数,用于控制延时长度,单位为毫秒。通过调整变量n,可以改变LED的闪烁速度。

3、赋值及输出控制。digitalWrite(ledpin,HIGH)语句表示ledpin引脚输出高电平。单片机所有数字引脚都有HIGH、LOW两种状态,它们状态的改变由关键字digitalWrite控制。

4、顺序结构与循环结构。C语言程序一般默认按照顺序结构执行代码指令。但在执行重复、有规律的事件时,需要循环控制结构。LED灯的闪烁就是反复亮灭的过程。因此,while语句或for语句都可以实现循环控制功能。

(三)开关控制LED灯,了解选择语句

外部开关控制LED灯的亮灭,实验现象为:当开关SW闭合时,LED灯亮,当开关SW断开时,LED灯灭。通过本项目,学生可以掌握读取单片机I/O口状态的方法,重点掌握使用if语句判断逻辑状态的方法。程序关键代码如下:

k=digitalRead(SW); //读取数字引脚0的状态。需要digitalRead()语句来获取引脚的状态。

if (k==0) //判断开关的状态,按下时为0,释放时为1。

digitalWrite(ledpin, HIGH); //写入ledpin状态,HIGH驱动灯亮。

别的

digitalWrite(ledpin, LOW); //写入ledpin状态,LOW表示灯灭。

在此基础上,我们进一步拓展功能,将一些现实生活中的经验引入到程序设计中。例如,当开关关闭时,LED灯需要延时关闭。这样的逻辑思维可以很好地解决晚上关灯后不用天黑就寝的问题。通过类比,可以启发学生思考其他类型的开关输入的使用场所,以及银行ATM按钮、食堂刷卡机等现实生活中的例子。这可以很好地激发学生的独立探索精神和学习热情。

(四)单片机控制LED跑灯及学习for循环语句

在第一个LED闪烁项目的基础上,增加LED灯的数量,使LED灯呈现出流水效果。利用Arduino单片机的数字IO口D0~D7分别控制8个LED灯。LED流水灯的硬件电路如图3所示,关键语句如下:

对于(i=0;i

结合实验现象,引导学生思考for循环语句的用法,重点掌握循环变量初值的设定、循环次数、结束条件、循环内容的分解步骤等。借助LED灯依次亮起的过程,学生可以理解延时变量的长度对应着LED流动速度的控制,循环次数对应着参与循环的LED个数的控制。这种将程序语句与实验现象直接关联的教学方式,可以帮助学生更直观、有效地掌握for语句的使用。在八路LED流水灯的基础上,还可以引导学生继续增加LED灯的数量,制作心形LED流水灯,进一步激发学生的独立创新思维,编写出更加丰富多彩的LED流水效果。

(五)控制数码管显示,学习一维数组

通过控制一个数码管显示一位数字,介绍了七段数码管显示驱动方法,然后进一步研究了显示数字“0”至“9”的方法,并将驱动数码管显示的代码归纳为一组,这自然就引入了“一维阵列”的概念。驱动数码管显示的硬件电路如图4所示,其中单片机的数字引脚D0至D6分别与七段数码管的a至g引脚相连。

数字“0”至“9”的一维数组编码定义为:char table[] = {0x40, 0xf9, 0xa4, 0x30, 0x19, 0x92, 0x02, 0xf8, 0x00, 0x10}。数组中的代码通过八位并行输出驱动七段数码管显示“0”至“9”的数字,C语言输出表达式为:PORTD = table[i]。除了显示固定的单个数字外,还可以结合for循环语句和delay(n)延时函数,实现“0”至“9”数字的循环动态显示。

在完成数显基本功能后,继续利用硬件电路指导学生修改程序代码,设计一个“九秒倒计时定时器”,用定时器代替delay()延时函数。让学生在明确项目需求和实验结果的前提下,用C语言编写定时中断函数。

结合实际生活,在原有硬件电路基础上,增加一定数量的按键开关,将其变成多路蜂鸣器,启发学生思考如何检测键盘输入、数据处理、结果显示及锁定。在完成逻辑分析后,引入端口状态读取函数digitalRead()、是否有按键蜂鸣器判断语句if()、结果显示语句PORTD=table[i]、状态锁定循环语句while()等关键C语言知识。通过蜂鸣器项目的学习,学生可以直观地了解到C语言的更多用途,启发学生继续钻研C语言编程。

(六)控制LED点阵显示并学习维数阵列

类比日常生活,街头随处可见点阵显示广告屏。深入分析点阵屏显示原理,大屏幕可以分解成多个16×16或8×8的小模块。结合点阵显示现象,引入“二维阵列”,让学生根据现象串联C语言程序的应用场合。这种项目引入方式可以有效提高学习的针对性。通过进一步分析点阵显示过程,可以清楚地看到,点阵显示需要行列同步配合,适当的延时长度才能正常工作。本项目重点训练如何从二维阵列中获取行列信息,以及如何合理控制延时函数,并结合C语言程序综合运用逐行动态扫描技术。学生在学习点阵显示控制项目后,可以掌握显示静态字的C语言控制方法。 同时引导学生思考如何动态显示多个字,让学生独立思考C语言程序更丰富的应用范围。

7.设计一个简单的数字温度计,并学习数据处理和函数调用

温度是我们日常生活中经常接触的物理对象,冰箱、空调、电磁炉等家电都需要温度测量和控制,因此利用单片机设计简易数字温度计可以贴近实际生活,也更容易吸引学生参与项目设计和制作。

由于温度是一个连续变化的模拟量,需要先将其转换为数字量,然后才能将其发送给单片机进行数据处理。Arduino单片机集成了10位模数转换功能,也就是说温度模拟量对应一个0~1023之间的数字量。因此,简易数字温度计的设计思路是:先将温度模拟量转换为数字量,再进行AD转换结果转换,最后将处理后的实际温度值发送给LCD显示。

简易数字温度计的设计流程图及其主程序代码如图5所示。通过简易数字温度计项目的学习,学生可以掌握参数传递、返回值、函数调用、数据操作等C语言相关知识。

8.设计一款无弦电子钢琴并应用C语言编程

电子琴已经成为一种流行的乐器,通过单片机也可以设计出无弦的电子琴。一首乐曲是由许多不同的音阶组成的,每个音阶都对应着一个独特的频率点,因此,你只需要将不同的频率点有规律地组合起来,就可以创作出一首有趣的乐曲。利用单片机定时器产生不同频率的方波非常简单,前提是你需要弄清楚某首乐曲的音阶对应的频率点。电子琴的琴键将由光电传感器代替,即光电管传感器输出高低电平作为音符的键位,每个键位对应一个音阶,单片机只需要检测I/O口的高低电平就可以判断某个键是否被按下,然后输出特定频率的方波驱动扬声器发出相应的音阶。

以八度中音为例,音符与频率关系的相关计算值如表1所示,单片机定时器TIMER产生的每个中音的时长可根据表1中的数据设定,将所有中音建立成一个表格,单片机通过查表即可快速得到该音符频率对应的时长值。

电子键盘项目具有很强的互动性,通过体验无弦弹奏的乐趣,激发学生设计、制作单片电子键盘的热情,培养学生使用C语言程序控制硬件电路的能力。

2. Y 捆绑

针对应用电子技术课程教学中C语言程序设计存在的问题,本文提出以单片机为载体的项目式教学法,将C语言程序设计的关键知识融入到相关的子项目中,让学生带着兴趣、有目标地学习课程,通过项目设计与制作,提高学生编写、调试C程序的能力。经过两个学期的实践教学,学生的编程技能得到了有效提高,教学效果明显提升,基本达到了预期的教学目标。

【参考】

[1]孙晖.电子类专业C语言教学改革的实践探索[J].科技与市场,2014(12)

[2] 陆敏.基于PI能力培养的C语言教学改革研究与实践[J].软件导刊(教育技术),2014(11)

[3]黄建登.《C语言程序设计》教学改革探讨[J].电子世界,2012(12)

[4]莫建平,潘晓明.基于C语言的单片机课程教学改革探讨[J].柳州师范学院学报,2014(4)

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

单片机C语言论文3

关键字:汇编语言,C语言

单片机的开发离不开单片机的开发语言,对于一个开发人员来说,选择合适的语言是一个非常重要的开发环节。

目前单片机的编程语言主要有两种:汇编语言和高级语言。每种型号的单片机都有自己的汇编语言,软件可移植性不太好。高级语言有C语言、PLM语言、PASCAL语言、BASIC语言等。BASIC语言主要用在MCS51系列单片机上,但效果不太理想,现在基本不用了。PLM语言主要用在MCS51、MCS96系列单片机上,具有良好的硬件控制能力和代码效率。PLM51语言是介于C语言和汇编语言之间的一种高级语言,它是由曾经用于大中型计算机的高级语言PLM语言移植而来的。PLM的程序编写格式相当灵活,它的描述语句在输入行中的位置不受限制,程序元素之间可以随意插入空格。MOTOROLA单片机中使用PASCAL语言。 C语言是现代单片机开发中常用的一种高级语言,其程序阅读方便,可移植性强,对硬件的控制能力也很强,唯一的缺点就是代码效率低,程序量大的时候需要大容量的程序存储器。下面本文分别研究一下主流的汇编语言和C语言的语言结构和特点。

首先是汇编语言的结构和特点。

汇编语言是一种利用助记符来编写程序的语言。它由操作符和操作数两部分组成,其中操作数分为源操作数和目标操作数。汇编语言比用机器语言的二进制代码编程更加方便,在一定程度上简化了编程过程。论文集,汇编语言。。汇编语言的特点是用符号代替机器指令代码,助记符与指令代码一一对应,基本保留了机器语言的灵活性。使用汇编语言可以面向机器,更好地利用机器的特点,得到高质量的程序。

因为汇编语言中使用了助记符,所以用汇编语言编写的程序必须经过计算机中预先放置的“汇编程序”处理和翻译,才能成为计算机可以识别和处理的二进制代码程序。用汇编语言等非机器语言编写的符号程序称为源程序。运行时,汇编程序必须将源程序翻译成目标程序。目标程序是机器语言程序,一旦将其放入内存中预定的位置,就可以由计算机的CPU处理和执行。

汇编语言就像机器指令一样,是硬件操作的控制信息。因此,它仍然是一种面向机器的语言。使用起来仍然比较繁琐和耗时,通用性也较差。但是,汇编语言用于编写系统软件和过程控制软件。它的目标程序占用内存空间较少,运行速度较快,具有高级语言无法替代的用途。

第二是C语言的结构和特点。

C是一种通用的计算机编程,它是非常流行的,它可以用来编写计算机系统程序和一般的应用程序对于高效率的高级语言很难实现汇编语言的功能,直接操作计算机硬件(例如,内存地址操作和移动操作等)。C语言具有一般的高级语言的特征。

C语言可用于编写科学计算或其他应用程序,但它更适合编写计算机操作系统程序和其他需要机器硬件操作的场合。

总而言之,C语言具有以下特征:

1.语言简洁明了,易于使用和灵活:C语言只有32个关键字和9个控制语句,主要以小写字母表示,压缩所有不必要的组件; C语言程序以免费形式编写,并且可以以简单的方式构建复杂的数据类型和程序结构。

2.富操作员:C语言对待括号,作业,强迫类型的转换等。作为操作员,Crage的操作类型非常富含34种运算符。

3.丰富的数据结构类型:C具有丰富的数据结构类型。

4.结构化编程是可能的:C语言将函数用作编程的基本单元,并将功能用作程序模块来实现程序的模块化。

5.语法限制不是严格的,并且程序设计具有很大的自由度:C语言的语法规则不太严格,并且程序设计具有相对较大的自由度。

6. C语言允许直接访问物理地址:C语言允许直接访问物理地址,可以执行位操作,可以实现汇编语言的大多数功能,并且可以直接在硬件上操作,因此它可以在微控制器的内部寄存器和I/O端口上操作,并且可以直接访问chip或Off-Chip或Off-Chip或Off-Chip或Off-Chip Memore。

7.生成的目标代码的高质量:众所周知,汇编语言程序的目标代码是最有效的,但是统计数据表明,用C语言编写的程序生成的代码效率仅比汇编语言低10-20%。

8.良好的程序便携性:汇编语言完全取决于机器硬件,因此COMATION COMPLABLE可汇编。

尽管C语言具有许多优势,但与任何其他编程语言一样,它也有自己的缺点。

因此,我们在使用中的语言中,使用他们的汇编语言,并使用其共同的汇编方式,并使用两种方式,将其组合起来。直接嵌入C语言程序中的汇编语句;编写C语言程序和组装语言程序,然后独立地编译目标代码模块,然后链接到第一个编程方法。 MING和组装编程完全不同,例如进入中断的一般中断子例程。 这样,C语言程序和汇编语言程序都可以使用另一方定义的功能和变量,可以将两者合并以实现混合使用的目的。

单片机

树莓的功效与作用,你了解多少?

2024-6-11 4:02:49

单片机

单片机原理及编程:C51 编程与 Proteus 仿真习题答案全解析

2024-6-11 5:02:34

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索