前言:一篇好文章的诞生,需要你不断地搜集资料、整理思路,本站小编为你收集了丰富的单片机c语言主题范文,仅供参考,欢迎阅读并收藏。
关键词:C语言程序设计;教学方法;单片机
中图分类号:G642.4 文献标志码:A 文章编号:1674-9324(2014)10-0066-02
一、引言
随着微电子技术的不断发展和广泛应用,计算机编程语言也越来越丰富,因而学生也被要求具有应对各种语言的学习应用能力,在掌握好C语言后,对于其它语言的学习则游刃有余。基于单片机进行应用系统开发,C语言作为一种高级的编程语言,无论是现在进行嵌入式系统开发的相关企业,还是当前的全国电子设计大赛等学生竞赛中,都越来越受到大家的关注,并将其作为一个主要语言开发工具。故本文提出的基于单片机的C语言教学方法,对结合单片机进行符合实际工程需求的硬件和软件开发的爱好者或学习者有很重要的意义。
二、教学对象
本学期本人所教授的主要课程之一是《C语言程序设计》,所面向的教学对象是大一新生,大多数同学由于在高中阶段很少接触电脑,对于语言的学习更是陌生,而且数学功底比较薄弱,同时,加上学习过程中大多数学生往往缺乏积极性和主动性,遇到困难不能刻苦钻研,往往选择放弃。因此,针对学生的基础情况,教学讲授的进度不能太快,教学的内容不能讲的太过深奥,而且教学方法要灵活多变,结合实际事物进行简单比喻来讲解,只有这样才能较为形象地教好C语言这门课。
三、C语言的应用地位
C语言是一门使用最广泛的程序开发工具编程语言,是极具发展前景的计算机高级语言。其作为一种结构化的程序设计语言,具有相当强的结构性、可移植性和功能性。通过采用C语言进行编程开发可以使众多开发者专心研究所设计程序要实现的功能及相关实现算法,从而有效减少开发和软件调试的时间。C程序设计具有良好的程序结构,对于模块化的程序设计非常适合,故通常会采用从上至下,追求逐步求精的结构化程序设计方法,来将所要实现的功能模块化,不同的功能通过不同的模块去完成。这样易于进行调试工作和方便快捷地管理好大型项目,从而最大限度地减少重复劳动。
四、单片机的应用教学现状
单片机的学习是我院电子类专业需要掌握的一门实践性非常强的专业课程,我院学生通过对其的实践性学习后,能够独立参加全国电子设计大赛,并能较好地完成比赛项目。为使我院的单片机教学效果更好,学生对该门课程掌握的更加牢靠,故需要对单片机的教学进行大胆改革,通过在C语言的课程教学上,结合单片机以及相关的硬件设计知识进行讲解。从我院电子专业开设C程序设计课程以来,通过学生所反映的情况是该门课程比较难学习,而且不知道他们在学完C语言后到底有什么用,能够应用到哪些地方,更不知道将自己的所学应用于单片机的开发中能不能实现目标。故根据以往教师的教学经验,并结合学生反映的情况考虑,本人觉得有必要作出这样的改进,在C语言的课程上,通过结合单片机及相关硬件设计知识来讲解C语言,并从以下几方面引起重视。
五、《C语言程序设计》的课堂教学
1.教学设计前的思考。《C语言程序设计》不仅是电子类专业理工科学生的一门计算机公共必修课程,而且C语言也是作为计算机等级考试(二级)的考试内容之一。C语言对于大部分刚进入大学的学生来说,也是一门比较难的计算机语言课程。要做好这门课程的教学设计,首先要对学生的具体情况有一定程度的了解。该课程通常的教学法是语法格式的讲解、语法要点的逐步讲解和通过例题对语法的应用讲解。这种机械的教学灌输思想枯燥无味,会使学生失去对该门课程的学习兴趣,所以,本人认为应该先要求学生课前对本堂课所要讲解的知识进行预习,并能识记有关知识点,将不理解之处画上记号,待课堂老师讲解时再认真听并理解所教授内容,这样通过教师为主导、学生为主体的方式学习,教师通过精讲相关的硬件设计实例,通过硬件设计所要实现的功能引出相关软件设计,进而将软件设计时所涉及到的相关C知识进行讲解,然后通过另一简单例子让学生自己去通过分析来巩固知识点。
2.结合多媒体的讲解,强化实验及实践能力。因为教师授课的主要对象是大学一年级新生,所以需要教师采用通俗易懂,并结合简单例子进行相关讲解,这样能够使学生容易理解和消化。教学过程中,采用多媒体,通过编程演示加深学生对运用的语法理解和深刻记忆。并把理论知识和硬软件的设计内容进行整合讲解,让每个学生独立完成实际应用实验题。
3.减少和消除学生对程序设计语言的排斥和畏惧感。本人在教学中会引导学生多读程序,在读的过程中领悟和提高。对于软件生存周期的设计、编码、调试、运行这几个阶段,本人可以通过C语言设计实例来体现,以培养学生编程中的工程思想。讲授课程时以提出问题、解决问题、深入拓展问题、再解决问题,对问题进行评价和优化设计的螺旋式滚动教学的方法,收到了不错的教学效果。
教学过程中,对于数组、指针等重要的知识点,则需要制作更生动的课件,提高学生的学习兴趣和主动性。例如,在讲解数组的冒泡法排序时,本人让7位同学分别拿着一个数据牌站到讲台,进行现场模拟气泡排序过程,通过第一次排序找到了该组中的最大值,经过第二次排序找到了次大值,通过现场的模拟以及班上同学的参与,使课堂更加丰富有趣,并且所有同学都能掌握气泡排序的过程。由于在教学中引入的现场模拟,使同学们更容易理解这些抽象的内容,更重要的是碰到类似的问题他们会触类旁通,从而慢慢培养出编程的兴趣。
六、实践培训操作
上机实验是学习程序设计语言的重要环节,自己编写的程序上机调试运行中,可能有很多想不到的错误,通过改正这些错误,可逐步提高自己对C语言语法的理解力。在课程的教学中,会进行阶段性的实训项目,将每一阶段的学习进行小结性的贯穿和提高。将相关的知识点融入到程序的编写中,从而巩固知识点并将琐碎的知识点做一个整合。暑假期间,对于电子爱好的学生进行集中培训,然后按照全国电子设计大赛的要求给大家几个题目做,这几个题目涵盖非常广的知识点,大家如果想编出程序就必须要找到课本的相应知识点进行复习,从而编出程序,学生普遍反映通过集中培训课的锻炼,他们的编程能力有了很大的提高,很多以前不懂的内容通过自己钻研也懂了,通过自己的努力以后也体会到了编出程序的喜悦感,可以说收到不错的成效。
七、结束语
C语言的教学重点是培养学生分析与解决问题的能力,这种能力的培养与学生的刻苦学习分不开,因此,在本人的课堂中会一再强调C语言不是看会的,也不是听会的,而是亲自动手实践练会的。基于单片机的C语言开发和设计,极大地促进了单片机在生产、生活各个领域的应用,提高了程序开发效率。因而,C语言学习效果的好坏,对今后单片机课程的学习具有深远的影响。
参考文献:
[1]向艳.C程序设计课程教学体系和模式探讨[J].计算机教育,2010,(3):112-114.
[2]谭浩强.C语言程序设计教程(第三版)[M].北京:清华大学出版社,2013.
[3]冯运仿.《C语言程序设计》课程教学模式的研究与实践.福建电脑,2012,(1).
关键词 单片机;教学改革;C语言
中图分类号:G642.0 文献标识码:B 文章编号:1671-489X(2012)24-0080-03
Teaching Reform and Probe of Microcontroller & Interface Techniques Course based on C Language//Ju Yang
Abstract The paper presents the reform of teaching contents of microcontroller courses based on present situation of teaching and practice application in our country. The teaching methods of microcontroller courses based on C language are discussed in detail. The research and practice of research-oriented teaching are enhanced. The study interests of undergraduates are increased and good teaching results are obtained in practice.
Key words microcontroller; teaching reform; C language
Author’s address School of Electric Power of Nanjing Institute of Technology, Nanjing, China 211167
单片机是典型的嵌入式微控制器,在工业控制、机电一体化、通信终端、智能仪表、家用电器等诸多领域应用广泛。国内高校的一些相关专业在20世纪80年代末就开设了单片机原理及应用课程,并成为电气信息类、机械类等专业的专业核心课程。因为单片机在实际生活中广泛应用,该课程在培养环节中都被定位在理论与实践并重,着重培养学生开发实际应用系统的能力。
该门课程是一门涉及硬件、软件技术的综合性课程。在学习本课程的时候,学生应该掌握逻辑电路设计、计算机原理硬件以及软件编程等知识。但在实际教学中发现,当需要学生综合运用这些知识分析解决单片机在实际生产过程中的具体问题时,往往不能融会贯通地加以理解和应用,容易造成学生对本课程的畏难情绪,学习积极性受到影响。原因有不少,采用汇编语言为主的传统授课方式就是其中之一,分析其原因包括:汇编语言语句抽象,可读性差,学生难理解;汇编语言编程效率低,学生学习难度大;汇编语言代码结构复杂,难以维护、更新;汇编语言对硬件结构依赖较大,难以实现在不同种类和系列单片机之间移植。
如今,企业的单片机项目开发,一般都采用C语言。为适应时展的要求,需要培养满足社会需求的基于C语言的单片机人才。在多年的课程教学及科研实践中,不断总结、摸索和改革,构建一套以C语言为主、汇编语言为辅、单片机应用系统为教学主线、能力培养为目标的课程教学体系。
1 C语言的特点
C语言源于编写UNIX系统,与汇编语言和其他高级语言相比,优点有很多:具有丰富的流程控制语句,适用于结构化和模块化设计,使得程序层次清晰,易于阅读、编写、调试和维护;使用范围广泛,可移植性强,目前主流的CPU和MCU都有支持C的编译器;数据结构和运算符丰富,有强大的库函数支持,使用灵活方便;允许直接访问物理地址,可以直接操作计算机硬件;编程和调试效率高,目标代码质量好。
用C语言编写单片机程序与用汇编语言编写单片机程序不太一样。用汇编语言编写单片机程序要按实际地址组织、分配存储器资源,处理端口数据;用C编写程序不必十分熟系处理器的运算过程和数据的具体组织,可以更专注于算法而不是具体实现细节,也更符合人们的思考习惯。由于C语言具有这样的优点,几乎各品种单片机的厂商都了相应的C语言开发,因此采用C语言开发单片机已成为必然趋势。
2 教学内容和教学方法
在传统的教学模式中,“单片机与接口技术”课程内容安排一般都是概述、硬件结构、指令系统、汇编语言设计、存储器扩展、中断与定时系统、I/O口扩展及应用、串行数据通讯。采用C语言教学,汇编语言应要求适当掌握。因为大量现有的宝贵资料是汇编语言编制的,需具备一定的阅读能力。掌握的程度以能阅读和理解常用的指令为度,不要求所有的指令都熟记。
【关键词】温湿度;监测系统;主控电路;PIC
目前,大部分常用的温湿度监测系统是以晶体管电路或51单片机为核心部件,再配以相应的传感器和A/D转换电路组成的温度和湿度实时监测系统。这样的系统,在实际工作中存在诸如在线调节不方便、数字化和智能化程度较低等缺点。
因此,本文研究了基于PIC16F877A单片机的蔬菜大棚温湿度监测系统相关技术,对主控电路进行了改进,提出了相应的对策和解决方案。
1 设计思路
通常情况下,温室内的温度和湿度对作物的影响巨大。如若要使得这些植物在非本季节处于较佳的生长状态,就必须严格控制温室内的温湿度。而不同类别的植物,所需温湿度也不尽相同。严格监测和控制温室内温度和湿度环境参数,能够有效保障植物时刻处于较佳的生长状态,有利于提高生产质量和产量。
首先,本文分析了温室温湿度监测系统基本原理和性能要求,针对农业生产所使用的普通MCU与PIC系列PIC16F877A进行性能比较,对优化主控电路做出理论依据,并提出相应的优化方案和整改对策。 然后分析了目前农业生产所使用的模拟量传感器和直插式数字传感器进行性能差异,从非电和电两个方面着手对影响温湿度监测精度及可靠性的原因进行分析,并在优化的主控电路。最后采用了以PIC16F877A对直插数字集成式温湿度传感器DHT11进行循环控制,达到对蔬菜大棚温湿度实时监控的目的1。
2 硬件电路设计
图1 主控电路示意图
本文选用DHT11作为温湿度环境信号监测系统的主要传感器件。DHT11数字温湿度传感器含有已校准数字信号输出,包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连,具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。DHT11传感器的校准系数以程序的形式存在OTP内存中,传感器内部在检测型号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,非常适合温室内的温度和湿度环境参数信号监测系统的技术特点2。
本设计利用DHT11直插式数字温湿度传感器对蔬菜大棚温湿度进行实时监测,并把实测温湿度值实时显示在LCD1602上,可以通过键盘设定温湿度极限值,如果实测温湿度超过设定极限值,则进行LED或者蜂鸣器报警操作。
基于PIC16F877A单片机的蔬菜大棚温湿度监测系统主控电路如图1所示,监测过程大体如下:当产品上电时,PIC16F877A与DHT11传感器通讯,当PIC做好数据接收准备时,DHT11通过单总线将数据发到至PIC,最后再由PIC将处理过的检测数据发送至LCD1062进行显示,从而达到蔬菜大棚温湿度的实时检测。在此基础上,用户可以通过按键输入温湿度极限值,对温湿度报警值进行设定,之后以达到峰值超标自动报警的目的。
3 主函数初始化和外部中断流程图设计
我们对需要的特殊寄存器进行初始化后,使其进入while循环,等待外部中断。
①初始化
初始化函数包括了系统初始化函数sys init();,LCD初始化函数lcd_init();等。系统初始化函数主要是对外部中断的I/O口,和使能端进行设置3。LCD初始化函数lcd_init();主要是多LCD的I/O口进行方向设置,LCD指令输入等操作。如图2所示,对主函数进行初始化设计。
图2 主函数初始化流程图
初始化过程(复位过程)
1.延时15ms
2.写指令38H(不检测忙信号)
3.延时5ms
4.写指令38H(不检测忙信号)
5.延时5ms
6.写指令38H(不检测忙信号)
7.(以后每次写指令、读/写数据操作之前均需检测忙信号)
8.写指令38H:显示模式设置
9.写指令08H:显示关闭
10.写指令01H:显示清屏
11.写指令06H:显示光标移动设置
12.写指令0CH:显示开及光标设置
本设计运用了.h,将LCD1602的初始化程序模块化,这样便于整体程序设计的模块化操作,LCD1602原函数代码如下所示:
void lcd_init()
{
ADCON1=0x07; // PORTA as Digital
CTRL_DIR=0x00; //设置控制端口为输出
DATA_DIR=0x00; //设置数据端口为输出
lcd_cmd(CLR_DISP); //清屏
lcd_cmd(DISP_2Line_8Bit); //8位2行5*7点阵
lcd_cmd(DISP_ON); //显示开,光标开
lcd_cmd(ENTRY_INC); //文字不动,光标右移
lcd_cmd(DD_RAM_BASE); //显示起始地址
}
②外部中断
在本文中外部中断主要有两大部分,第一部分是主要是由键盘来实施操作,其目的是在温湿度检测的同时能够实现温湿度极限值的设定。第二部分是有程序内部的数据判断来实施中断,其主要目的在于所采集到的温湿度当前值是否超过所设定的极限值,如果超过,以此来做出报警动作,反之中断不进行任何操作。
第一部分,即键盘设定极限值的操作中断源代码如下:
if(INTE && INTF) // 是RB0中断,切换报警值选项 {
INTF=0;
__delay_ms(20); // 按键延时消抖
if(RB0==0)
option*=-1;
}
第二部分,即做出报警操作的中断源代码如下:
if(CCP1IE&&CCP1IF) // RC2(CCP1)中断,增加报警值 {
CCP1IF=0;
if(option==-1) // 增加湿度报警值
{
humid++;
if(humid>90)
humid=90;
}
if(option==1) // 增加温度报警值
{
temp++;
if(temp>50)
temp=50;
}
write_eeprom();
}
if(CCP2IE&&CCP2IF) //RC1(CCP2)中断, 减小报警值
{
CCP2IF=0;
if(option==-1) // 减小湿度报警值
{
humid--;
if(humid
humid=20;
}
if(option==1) // 减小温度报警值
{
temp--;
if(temp
temp=5;
}
write_eeprom();
}
如图3所示,本文对中断入口和外部信号进行了设置,使得设计的主控电路能够更好的响应其他优先级更高的事件,从而完成了外部中断流程的设计。
图3 外部中断流程图设计
从上述设计的主控电路来看,本文在对传统主控程序进行分析后,才给出基于PIC16F877A的温湿度监测系统主控程序的设计,并设计主要模块的流程图。不难看出,通过PIC单片机设计监测系统的主控电路,能够使得整个监测系统的主要部分实现模块化设计,这将有利于系统将来的升级改造,并降低了整个程序复杂度,使程序设计、调试和维护等操作简单化。从而使得整个监测系统相对与传统的监测系统而言,能够体现出智能化、数字化的特点。
【参考文献】
[1] 孙安青.PIC单片机实用C语言程序设计与典型实例[M].北京.中国电力出版社.2008.21-31.
【关键词】PIC单片机热电偶PWMPID算法
0 引言
温度是工业控制中主要的被控参数之一,特别是在冶金、化工、建材、食品、机械等工业中,具有举足轻重的作用。对于不同场所、工艺,所需的温度范围、精度要求,则采用的测温元件、测温方法以及对温度的控制方法也将不同。
在服装、食品等一些轻工业中,对温度控制的范围、精度有特殊的要求,且对温控设备的造价十分敏感,因而需要一种经济而实用的温控系统。
如在服装工业中,服装的印染、烫画,温度一般要求在150~180℃,温控精度在0~399℃的范围内应达到±2℃,时间以s为单位。如果温度或时间不能满足要求,则产品的质量就达不到要求,甚至可能损坏原材料。因此要求比较高的温度及时间精度。同时,由于其产品的低成本性,要求温控系统的成本尽量低。
1 温度检测部分
工作温度一般为0~399℃,温控精度为±2℃,所以我们选择K型热电偶。镍铬-镍硅(镍铝)热电偶(分度号为K)。
该热电偶的正极为含铬10%的镍铬合金,负极为含硅3%的镍硅合金(有些国家的产品负极为纯镍)。可测量0~1300℃的介质温度,适宜在氧化性及惰性气体中连续使用,短期使用温度为1200℃,长期使用温度为1000℃,其热电势与温度的关系近似线性,价格便宜,是目前用量最大的热电偶。
1 .1 热电偶测温原理
热电偶是一种感温元件,它能将温度信号转换成热电势信号,通过电气测量仪表的配合,就能测量出被测的温度。
热电偶测温的基本原理是热电效应。在由两种不同材料的导体A和B所组成的闭合回路中,当A和B的两个接点处于不同温度T和T。时,在回路中就会产生热电势。这就是所谓的塞贝克效应。
导体A和B称为热电极。温度较高的一端(T>叫工作端(通常焊接在一起);温度较低的一端(T。>叫自由端(通常处于某个恒定的温度下)。
根据热电势与温度函数关系。可制成热电偶分度表。分度表是在自由端温度T。=0℃的条件下得到的。不同的热电偶具有不同的分度表。
在热电偶回路中接入第三种金属材料时,只要该材料两个接点的温度相同,热电偶所产生的热电势将保持不变,即不受第三种金属接入回路中的影响。因此,在热电偶测温时,可接入测量仪表,测得热电势后,即可知道被测介质的温度。
【关键词】温度测量;PIC16F877;DS18B20;仿真测试
在日常生活经常要用到温度的检测及控制,传统的测温元件有热电偶和热电阻,而热电偶和热电阻测出的一般是电压,在转换成对应的温度,需要比较多的硬件支持,硬件电路很复杂,软件调试也复杂,制作成本高。而且测出来的温度精度也没有技术成熟的温度传感器高。
本文基于PIC单片机来设计数字式测温计,直接采用数字式温度传感器DS18B20,用单片机对18B20进行控制,来进行测温[1]。显示部分可用lcd1602,单片机可直接驱动lcd1602显示温度,硬件较简单,稳定。DS18B20采用单总线技术,容易扩展,并且具有转换速度快,转换精度高,可由片机直接读出温度并显示出来等优点。
一、设计目标和思路
本文采用PIC16F877的USART异步通信模式,可广泛应用于单片机与PC机,以及单片机与单片机之间的通信。USART接口由RC6、RC7这两只引脚构成。RC6用于数据的发送,RC7用于接收数据[2]。
当单片机需要通过USART发送数据时,只需将所发送数据送入数据缓冲寄存器TXERG,然后系统会自动将TXREG寄存器内容送入发送移位寄存器TSR,接着系统会根据所设置的波特率脉冲信号,通过RC6引脚从高位到低位依次发送出去。当系统将TXERG寄存器内容加载到TSR中时,会自动将中断发送标志位TXIF置位,根据程序决定是否进入中断。而当单片机需要通过USART接受数据时,通过RC7引脚将数据依次送入接收移位寄存器RSR中,当收到一个停止位时,移位寄存器RSR就把收到的8位数据自动送入接收数据缓冲器RCREG中。在接收数据缓冲器RCREG收到一个稳定的数据后,接收中断标志位RCIF将自动置位,根据程序决定是否进入中断。
二、原理结构图
本文利用PIC16F877和DS18B20传感器设计了测温计,其包含主控器部分、温度显示部分、传感测试部分和按键设计部分[3]。
基于PIC16F877的测温计原理电路图结构如图1所示。
其中,电源部分的S1为复位按钮它在被按得时候断开放开后自动闭合,在其断开又闭合的瞬间使整套电路中各芯片的供电电压实现从5V降到0V再升到5V的过程,从而达到复位的目的。输入电容C2一般情况不接,但当集成稳压器远离整流、滤波电路时应接入一个0.33μf的电容器,它的作用是改善纹波和抑制输入的瞬时过电压,保证78L05的输入与输出间的电压差不会超过允许值。输出电容C3一般不采用大容量的电解电容器,只要接入0.1μf的电容器便可以改善负载的瞬态响应。但是,为了减小输出的纹波电压,在输出端并联一只大容量的电解电容C4,会取得更好的效果。然而,这样将随之产生一种弊端:一旦78L05的输入端出现短路时,输出端上的大电容器上储存的电荷将通过集成稳压器内部电路调整管的发射极与基极泄放,因大容量电容器释放能量较大,会造成集成稳压器内部调整管的损坏,导致电路无法工作。为了防止这一点,在78L05的输入端与输出端之间跨接一个二极管,它为C4上电荷的泄放提供了一个分流通路,对集成稳压器起保护作用。
串口接收温度函数流程图如图2所示。
三、Protues仿真调试
为调试和检验上述的电路原理图的正确性和合理性,本文通过Protues软件仿真来进行波形调试。
在仿真调试的过程中,先后对DS18B20测温模块、lcd1602显示模块、PIC单片机的USART模块通信等,分别进行了仿真测试。待各部分均测试正确无误后,方才对整体电路进行测试。图3所示即为本文对温度测量部分进行仿真调试和测试。
从Protues的仿真结果来看,本文设计的数字温度测量电路,以PIC16F877单片机为工作处理器的核心,外接DS18B20和LCD1602,用单片机处理数字信号,再把其送入显示器显示。在经过反复的仿真调试和测试后,验证其使用起来比较方便且结果简单易读。与此同时,如果在本文涉及的基础上在扩展其功能,如多点测温、温度报警等,则只需调整PIC单片机程序即可。这样的话,本文设计的测温系统,在具有电路简单、维护方便等优点的同时,还具有扩展兼容性好、读数准确易懂等特点,能够满足日常生活对测温计的一般基本要求。
参考文献
[1]刘君华.传感器技术及应用实例[M].电子工业出版社, 2008.
[2]彭树生,庄志洪,赵惠昌.《PIC单片机原理及应用》P224-226[M].机械出版社,2001,1.
[3]李荣正.PIC单片机原理及应用[M].北京航空航天大学出版社,2005.
作者简介:
关键词 AT89C52单片机;步进电机;工作模式
中图分类号:TM383 文献标识码:A 文章编号:1671—7597(2013)021-080-02
步进电机可以将数字信息转化为角位移或者线性位移,其在开环工作方面具有出色性能,便于通过数字设备对其进行智能控制。同时,步进电机的控制系统结构相对简单,但是具有较高的定位精度,还可以通过不同方式的信号输入进行转动方向和移动速度调节。因此,步进电机在工业领域中得到了非常广泛的应用。
完整的步进电机系统分为三部分,分别为控制部分、驱动部分以及步进电机部分。本文设计分析了一种采用AT89C52型单片机为控制核心的步进电机控制系统。
1 步进电机工作原理及单片机控制实现分析
1.1 步进电机工作原理
步进电机由驱动电路进行驱动,通常驱动模块会采用双极性驱动的方式进行步进驱动。这种驱动方式的优势在于电机线圈中的电流可以改变流动方向,不同的流动方向会产生不同的驱动效果。利用双极性驱动模块进行步进电机驱动可以同时驱动四线或六线的多相混合步进电机。本文以两相步进电机为例。
当控制模块向驱动模块发送脉冲信号时,若步进电机需要进行正向转动,则根据其转动方式可以确定电机通电顺序为A+B+A-B+A-B-A+B-。若需要步进电机进行反向转动,则步进电机绕组的通电相序则进行相应的调整,变为A+B-A-B-A-B+A+B+。此外,步进电机旋转角频率是由通电频率确定的,因此,可以通过改变通电频率来改变步进电机的运行速度。
1.2 单片机控制实现
根据选定的步进电机的相数可以确定AT89C52单片机所需要产生的相位信息。选用AT89C52的一个好处是其在接口和控制性能上都要优于51单片机,故其扩展性能要更优一些。通常步进电机的额定电压为12 V左右,额定电流为8 A左右,其电流需求较大,但是电压需求较低。因此需要在单片机和步进电机之间增加隔离电路和放大电路,以满足系统需求。因此单片机控制系统可以通过图1框图实现:
2 硬件电路设计
由图1可知,硬件电路分为输入输出部分、单片机部分、步进电机部分、电源部分等。下面分别对每部分性能进行分析。
2.1 输入输出部分
为提高系统的灵活度,便于对步进电机的系统参数进行控制和调整,需要引入输入设备,本处选用键盘。输出设备要求可以显示当前的控制状态和电机运行状态,可以选用LCD设备进行显示。
通过键盘可以对系统输入参数指令和控制指令,进而控制单片机实现对系统的控制。而LCE设备的选用可以根据AT89C52的接口分布进行确定,通过LCD设备可以显示步进电机的运行状态和运行速度等信息。
此外,本文选用了一片8279作为键盘和显示器与单片机之间的接口芯片。通过该芯片可以更好的满足操作性能和控制性能的均衡需求。
2.2 单片机部分
单片机为该系统的核心模块,本文选用AT89C52单片机产生控制信号。AT89C52具有8 KB的RAM和ROM,式中信号为12 MHz,可以很好的满足系统需求。如果后续使用中需要进行系统扩展,C52单片机还提供有RAM和ROM外扩接口。
利用引脚P1.0-P1.7进行步进电机脉冲信号输出,将引脚P3.0、P3.1、P3.2、P3.3、P3.4等分配给键盘控制部分,可以通过键盘实现正反转、加减速、停止等功能操作。将引脚P2.0、P2.1、P2.2、P2.3、P2.4、P2.5、等分配给LCD显示器,可以控制输出显示步进电机当前的运行状态和运行速度。
2.3 步进电机部分
根据上文分析可知,单片机无法与步进电机直接进行连接,需要通过该隔离、放大电路实现连接。实际应用中,对于强弱电的隔离通常可以采用光电隔离的方式,这种方式效果好,受干扰小。对于放大电路的选取,可以使用集成功放元件也可以根据实际需要配置独立模块。
2.4 电源部分
在系统框图中可以看到,该系统涉及两种不同的工作电压,因此需要分别设计强电和弱点部分的电源。为满足系统需求,可以使用集成稳压器和可变输出电压模块分别为单片机和步进电机进行供电。需要注意的是,两个电源不能共地。
3 软件程序设计
硬件平台设计完毕后,需要根据硬件电路对单片机进行系统编程,以满足操作和控制需求保证各部分电路可以根据控制信号正常进行工作。系统软件部分分为三部分,分别为键盘和显示模块、系统监控模块、控制信号生成模块等。
3.1 键盘和显示模块
该模块实现的功能是,对键盘按键进行确认,确认无误后对输入键值进行信号处理,如,若输入的是输入键则需要调用输入程序、若输入的是控制键则需要调用控制程序。而显示模块则是通过定时查询接口数据,实时显示步进电机的工作状态、键盘输入数据等。
3.2 系统监控模块
系统监控模块在系统启动后就开始运行,其主要功能是完成对键盘的扫描,根据扫描结果设置单片机控制帧内容等,以满足步进电机的操作要求。对于键盘的扫描通常采用中断的方式实现,原因在于,中断服务程序在单片机中地位较高,当系统产生中断时,单片机可以进行有限相应,可以更好的满足系统的实时性和灵活性要求。
3.3 控制信号生成模块
该模块的主要作用是根据键盘输入内容控制单片机的系统配置和步进电机的工作模式,如设置单片机输出控制几相电机、步进电机的转动方向、转动步数、系统运行频率等。该模块主要通过调整单片机的控制帧结构实现对步进电机系统的控制。
4 总结
本文设计了一种基于AT89C52单片机的步进电机控制系统,该系统可以通过键盘输入控制信息,继而油单片机根据输入信息发送相应的控制信号,控制步进电机的转动方向、转动速率、转动频率等。该系统功能丰富、控制灵活度高、有较强的实际编程性,可适用范围广,具有一定的实用价值。
参考文献
[1]何冲,王淑红,侯胜伟,牛慧文.基于AT89C52单片机的步进电机控制系统研究[J].电气技术,2012(4).
[2]彭礴,张明敏,林飞龙,湛翔飞,李杰,谢斌,晏敏.基于AT89S52高精度步进电机伺服控制系统设计[J].电子测量技术,2011,34(3).
关键词:C语言;高职;单片机
中图分类号:G642 文献标识码:B
“C语言程序设计”是高职高专电子专业的专业必修课。传统教学以理论为主,以学科本位的逻辑体系来设计课程的教学内容。课程内容没有与高职电子专业的其他课程有机衔接,不符合高职高专技能培养的特点。学生在学习C语言之后,不能用之有效地解决实际问题,学生的学习积极性难以调动,因此有必要对该课程进行改革。
1 现状分析
目前高等学校都把“C语言程序设计”作为理工科非计算机专业的计算机基础教育课程,属于计算机基础教育课程的一部分。但课程设置并没有考虑与其他专业课程之间的关系,没有针对高职应用电子技术的专业特点,成了非计算机专业学生的“计算机通识教育”课程。
虽然许多学校对“C语言程序设计”课程从教学内容、教学手段、教学方法等方面进行了大胆的改革,把逻辑与编程解题思路(算法)放在主体地位,讲解如何分析问题和解决问题;但是受“在学校里牢固掌握基础知识,毕业后在实践中积累经验”这种传统的教学理念的影响,把培养学生阅读程序、设计程序的能力,分析问题、、解决问题的能力和逻辑思维能力作为教学目标。课堂上学到的也只是用C语言解决一些数学问题,所学内容和实际应用相脱节,认识不到“C语言程序设计”和自己专业之间的关系,学生在学习C语言之后,不能用C语言编写为本专业服务的应用软件。特别对高职高专电子专业学生来说,C语言的知识成了他们专业知识结构中的一个“孤岛”。
2 改革的必要性
C语言是影响深远的、传统的、优秀的面向过程的结构化程序设计语言。C语言功能丰富、表达能力强、使用灵活方便、应用面广、代码转换质量高。C语言方便进行模块化软件设计,还可以实现C语言和汇编语言的混合编程。C语言既具有高级语言的优点,又具有低级语言的许多特点,能像汇编语言那样直接利用CPU的硬件特性进行程序设计。既可以编写应用软件,又可以编写系统软件。和汇编语言相比,C高级语言程序设计快、可读性、可移植性和可维护性好。一般情况下,完成同样的任务,使用C高级语言比用汇编语言可提高工作效率5-10倍,在调试阶段更容易体会到这一点,因此C语言特别适合单片机的开发。嵌入式系统中使用的嵌入式操作系统绝大部分也都是以C高级语言为基础的,很多直接将源代码提供给使用者。目前在单片机应用领域,C高级语言越来越受到人们的重视。用C语言进行单片机程序设计已经成为单片机开发的一个主流,是单片机开发与应用的必然趋势。
单片机课程是应用电子技术及相关专业的一门重要的专业主干课,在专业基础课和其他专业课方面起着重要的桥梁作用。它涉及到的基础理论知识较广,应用范围广,是一门实践性、工程性很强的技术课程,在电子技术及相关专业课程中群中占有十分重要的地位。电子专业的学生普遍将单片机用于课程设计、毕业设计和电子产品设计大赛等许多实践环节。单片机应用也是学生将来在电子类公司或电子行业工作的最基本的技能。“单片机原理与应用”课程都是基于汇编语言的,高职高专学生很难应用汇编语言去搞程序设计,学生学到的单片机知识不能得到应用。
高等职业教育的培养目标是:培养既有一定理论基础又有较强实践能力,在生产服务第一线工作高层次的实用型、技术型人才,它不同于一般本科院校的学术型、工程型人才的培养目标。就高职应用电子技术专业而言,它培养强电弱电相结合,以弱电为主,并能熟练应用电气技术、计算机技术和控制技术等现代科学技术,具有较强实践能力的技术管理人才。强调应用性、实用性是高职教育的特色,教学内容突出基础理论知识的应用和实践能力培养的原则,以应用为目的,以“必需、够用”为度,加强针对性和实用性。
因此,高职应用电子专业的“C语言程序设计课程”应不同于本科相应专业,也应不同于高职其他专业。“C语言程序设计”课程的开设应紧扣本专业的特点,为本专业的培养目标服务。如果将“C语言程序设计”变成“单片机C语言程序设计”,学生通过本课程的学习掌握单片机C语言程序设计方法,达到独立利用C语言编写单片机应用程序的目的。将C语言“知识孤岛”和单片机“知识孤岛”连接起来,结合所学其他专业知识,使学生学会应用单片机开发电子系统的基本方法。如果学生以后需要用C语言或其他高级语言开发通用计算机系统的应用软件或系统软件,有了“单片机C语言程序设计”的基础,可以触类旁通,很容易掌握其他高级程序设计语言。这也符合从特殊到一般,再从一般到特殊的认知规律。
3 课程改革设想:
3.1 课程内容的改革
把“C语言程序设计”置换为“单片机C语言程序设计”,放在“单片机原理与应用”课程之后开设,将“计算机基础教育”课程变成“单片机开发技能”课程。课程内容适用于C高级语言的初学者,包括数据类型、运算符和表达式、数组、指针和函数、程序的顺序结构、选择结构和循环结构、程序设计基本知识和单片机的C编程等内容。对C语言中较难或单片机程序不常使用的内容,比如多维数组、指向指针的指针、链表等进行删减。相关例题应本着“深入浅出,突出实用”的指导思想,难度应与高职高专学生的基础相适应,算法不要过于复杂。单片机的C语言编程部分主要应包括中断、定时器/计数器、串行口、键盘和显示等相关应用,适当包含少量可编程芯片的应用。所选内容应体现先进性、实用性和技能培养的特点,抛弃一些过时或不实用的内容,把提高学生的职业技能放在突出的重要位置。整门课程应将单片机和C语言有机结合起来,强调知识点在单片机程序设计中的应用,体现“单片机C语言”的特色,避免把课程内容分为“C语言程序设计”和“单片机C编程”两部分。
3.2 编译开发环境
以80C51系列为基础,开发环境选择德国KeilSoftware公司的Keil uVision集成开发环境(当前版本是uVision3)。这是一个基于Windows的开发平台,集成了编辑器、项目管理器、Cx51编译器、Ax51宏汇编器、BL51/Lx51连接定位器和调试器,用户群极为庞大,符合教学特点的典型性。其中Cx51是专为80C51单片机设计的C语言编译器,生成的程序代码运行速度高,存储空间小。KeiluVision还提供了强大的项目管理功能,可以十分方便地进行结构化多模块程序设计,特别是Keil提供的纯软件模拟仿真功能(也支持硬件目标板在线仿真),非常适合教学使用。Keil调试器支持断点管理和程序代码的多种 执行方式(全速、单步、执行到指定行等)。在调试状态下有寄存器窗口、存储器窗口、观察窗口和命令窗口,用于程序执调试过程中显示单片机寄存器、存储器、局部变量和观察点的状态和输入各种调试命令。Keil uVision的集成功能(Peripherals)菜单可以打开中断系统、I/O接口、串行口、定时器计数器等状态窗口,通过这些状态窗口可以观察软件仿真结果。
Keil uVision可以与PROTEUS整合构建单片机虚拟实验室。PROTEUS是目前世界上最先进最完善的嵌入式系统设计与仿真平台,可以实现数字电路、模拟电路及微控制器与外设组成的混合电路系统仿真、软件仿真、系统协同仿真和PCB设计等全部功能。由于PROTEUS软件包逼真、真实的协同仿真功能,得到了包括剑桥在内的众多大学用户的认可,作为电子学或嵌入式系统的课程教学、实验和水平考试平台。Keil uVision与PROTEUS通过设置联机调试单片机系统,在PROTEUS中完成单片机系统的电路原理图绘制后,在Keil uVision集成开发环境中进行程序设计、项目的创建、编译链接和调试,同时可在PROTEUS查看直观的结果(如键盘输入和LCD显示等)。
3.3 教学方式的改革
高职教学应该是基础和技能的教学同步进行,甚至先教技能再教理论,在不断实践中掌握技能,在技能学习中提高基础理论。在高级语言程序设计教学中,不能期望高职学生对每一个算法都理解。一些太复杂的算法、单片机应用系统中常用芯片的驱动程序,可以以函数库或软件包的形式直接提供给学生,供学生在程序设计中调用,降低理论教学难度。
确立以学生为中心的教学理念。从学生实际出发,以学生为本,采用多样化、层次化的教学方法,贯彻循序渐进、深入浅出的原则。学生没有高级语言程序设计的基础,在“单片机C语言程序设计”教学中要注意分散难点,缩小台阶。在内容体例的设计上以实用为主,抛弃过多的语法细节和非通用的或实际用途很少的语言特性,理出重点和教学主线;采用一体化教学方法,以程序样例为主实施教学。淡化语法教学,以程序设计带动基本语法的学习。
上机实验是掌握单片机C语言程序设计的必要手段。不能简单地认为上机实验只是辅的教学。程序设计的能力是在实际动手实践中练就的,通过上机操作和验证可进一步加深各种语句的理解,提高学生的编程能力。通过Keilu Vision与PROTEUS组成的联机调试环境,熟练使用Keilu Vision和PROTEUS软件对学生的深入学习有巨大的帮助。
关键词: 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.
关键词单片机教学 应用能力 实践能力 教学改革
中图分类号:G420文献标识码:A
目前在许多高校里,《单片机原理及应用》这门课程是应用电子、计算机、自动化甚至机电一体化等专业学生的必修课,尤其从学生就业方面来考虑,由于单片机是一门实践性很强的课程,因此对学生的应用能力和实践能力的培养是必要的。笔者结合多年单片机教学的实际情况和学生平时上课的表现以及考试的结果,仔细分析学生的反馈意见,发现目前的单片机教学当中存在着诸多问题和不足亟待解决和改革。为了保证教学质量和教学效果,让学生毕业后能够尽快适应工作岗位,基于应用能力和实践能力培养的教学改革势在必行。
1 明确教学目标,合理组织教学内容
目前有些高校开设本课程的目标并不明确。目标不明确主要表现在三个方面:一是“为什么要学?”,二是“学什么?”,三是“如何学?”。教学目标不仅要让学生在他的求职简历中反映这门课程的成绩,而且要使学生在招聘企业的有关单片机的软硬件设计的笔试或面试中,能够反映学生的应用能力和实践能力。考虑到单片机的概念多、专有名词多、内容抽象、编程语言指令多、综合性强和解决实际问题的能力强等特点,在教学时数的限制下对于单片机的教学内容的选择和组织至关重要。
目前《单片机原理及应用》的教学内容分为理论教学和实践教学两部分,理论教学内容主要包括:单片机硬件结构,汇编语言指令系统和程序设计,系统扩展, 接口技术及应用系统设计;实践教学主要包括实验和课程设计。
长期以来,单片机的教学都是以汇编语言为主,而汇编语言的学习和单片机抽象的内部硬件结构密切相关,其程序涉及到存储器、寄存器、状态标志等,使学生在学习的过程中难阅读、难理解、难编程,容易感觉枯燥乏味从而失去了学习的激情和兴趣,致使教学质量和效果都不尽人意。而C语言是一种结构化的高级语言,它具有丰富的库函数,可以减少大量的代码编写负担,可以轻松实现复杂的数值计算。同时,C语言较汇编语言有可读性、可维护性好,便于维护、调试以及移植容易等优点,越来越多的单片机编程人员转向使用C语言开发程序。另外,一般学生在学习单片机之前刚刚学习过标准C语言,而且单片机的C语言KEIL C的大部分和标准C是一样的,这样有利于学生在短期内掌握单片机的C语言编程。
在实践教学中,由于Proteus具有强大的仿真功能以及原理图和PCB设计能力,而且可以与Keil C整合构建完整的实验开发平台,①完全可以替代硬件电路相对固定的实验箱或实验台,让学生进行丰富灵活的实践。使用Proteus进行实践教学既可以激发学生的学习兴趣,又能锻炼学生的动手能力,培养学生从原理图制作,程序开发,仿真验证和测试以及PCB制作等一系列的全面且完备的能力。另一方面,学校实验室引入Proteus,可以减少大量由于实验设备的损坏和维护带来的资金投入。因此,在单片机的教学中引入单片机C语言开发工具Keil C51和仿真工具Proteus的相关内容,增加一些具体应用实例的教学和实践,以培养学生单片机的应用能力和实践能力为目标,将有助于提高单片机教学的质量和教学效果。
2 充分利用现有优势资源,改革教学手段,构建新的教学模式
目前大多数院校的单片机教学手段都是以板书讲授为主,缺乏生动、直观的一些辅助手段,实验教学大多以单片机实验箱或实验台为实验平台,而且实验时间一般安排在“汇编指令系统”讲完之后,理论学习和实验进行时间的不对应,无法实现课堂上理论教学和实验室的实践相联系。另外实验的内容也多为验证性实验,很少进行开放性和设计性的实验,导致学生过度追求实验结果,而忽略了软硬件设计和调试等过程,单片机的应用能力、开发技巧得不到很好的锻炼。因此,在教学手段方面引入多媒体教学,在单片机C语言开发工具Keil C51和仿真工具Proteus的平台支持下,②先利用Proteus可以快速地完成元器件的放置和原理图的设计,然后在Keil C51开发环境下编写程序,把源程序编译连接后,学生可从窗口中清楚地看到程序每条指令的地址、机器码和源代码。而且还可以通过单步运行,还可看到单片机内部特殊功能寄存器的变化。这样不仅可以帮助学生比较直观地学习单片机的内部硬件结构,而且容易理解堆栈、定时器、中断向量、中断调用等抽象的概念。在Keil C51下生成一个可运行的目标文件(如HEX文件),再添加到Proteus的平台下就可以进行系统仿真了。Proteus所进行的是一种交互式仿真,在仿真进行中可以对各控制按钮和按键等进行操作,系统实时地输出对输入的响应。这样在课堂教学中配合多媒体手段,可以节约大量的绘图时间,而且可快速灵活地修改硬件设计和软件编程,实现不同功能的应用设计。
利用多媒体不仅可以增加知识的传授量,使教学更直观,教学内容更加丰富多彩、形象、生动,而且可以激发学生的学习兴趣,促进学生对知识的理解和应用。这样实验教学可以和理论教学同步进行,在教室中教师利用仿真软件和学生一起做验证性实验,③课下让学生提前在Keil C51和仿真工具Proteus的平台下做设计性、动手性实验,最后到实验室进行验证和实践,这样就可增强他们自主分析问题和解决问题的能力。课程学完之后通过单片机课程设计这一实践环节,使学生从单片机的选型、接口电路设计、编程及调试等各环节进行一次系统的综合训练,例如电子钟、步进电机控制器、单片机交通灯控制器等的软、硬件设计,使学生具有单片机应用系统的初步设计能力。
在教学手段方面,采用板书和多媒体相结合进行直观教学以及学生通过实验室实践操作外,还应充分发挥校园网、Internet在教学中的作用。教师可以引导学生学会查阅、消化和运用一些网络资源,如厂家提供的芯片技术资料、单片机论坛和教学网站里面大量的设计案例、技术文章和单片机软硬件资源,为自己进行单片机软硬件设计打下良好基础。
3 综合运用多种教学方法,提高教学质量和效果
在单片机的教学中根据不同的教学对象和教学内容采用不同的教学方法,如演示法、实物法、互动法、类比法、启发法、讨论法、任务驱动法等,可以起到事半功倍的教学效果。上单片机第一堂课,教师可以带一个单片机实验板的实物到教室,为学生演示一个单片机控制的“走马灯”实例,其它上课时间也可以根据需要通过实物或多媒体向学生演示单片机的工作过程,这不仅可以有效激发学生学习单片机的兴趣,而且使学生对单片机及电路有一个感性认识,为其逐步学会应用单片机进行软硬件设计打下一定的基础。讲课过程中要有师生间的交流互动,鼓励学生质疑,并为学生提供自由提问、质疑、探究、讨论问题的机会,让学生通过个人、小组、集体等多种形式解难释疑。作为教师,要密切注意学生在教学活动中的表现,适当适时启发学生思考,充分挖掘不同层次学生的潜力,这是取得良好教学效果的保证。另外,对重点概念却比较抽象的知识可采用类比法进行教学。比如中断、定时器溢出概念,可分别用接电话和闹钟等生活中的事例来类比讲解,有助于学生理解和掌握这些难懂的概念。当学生对单片片机的应用有了初步了解后,可以针对某个知识块采用任务驱动法对学生提出具体的设计要求,比如对并行I/O口的使用这部分内容,可以给出这样一个任务,单片机的P1口连接8个按键,P0口通过上拉电阻接8个发光二极管,编程实现按下某个按键对应发光二极管亮的程序。运行成功后可以改变硬件连接,比如断开上拉电阻,观察运行结果;或者改变P1口为P2口,如何修改程序等,通过对任务的实现过程,可以达到对并行I/O口的灵活使用。
4 结束语
本文基于学生单片机应用能力和实践能力的培养,从教学内容、教学手段、教学模式和教学方法等多方面提出了单片机改革的必要性和具体措施,在单片机的教学中引入单片机C语言开发工具Keil C51和仿真工具Proteus,在实际教学过程中取得良好的教学效果,值得其他院校借鉴。
注释
①房惠龙.基于Proteus的单片机实验平台的创建[J].常州:常州信息职业技术学院学报,2007(6).