前言:一篇好文章的诞生,需要你不断地搜集资料、整理思路,本站小编为你收集了丰富的c语言程序设计实例主题范文,仅供参考,欢迎阅读并收藏。
关键词:C语言程序设计 教学方法 实践
中图分类号:TP312.1 文献标识码:A 文章编号:1007-9416(2013)06-0168-02
1 引言
C语言是国际上广泛流行的计算机高级语言,自1972年问世以来,以其功能强大、使用灵活,既可用于编写应用软件,又能用于编写系统软件的特点得到迅速推广[1]。以我院电气工程系生产过程自动化技术专业为例,它是很重要的一门专业基础课,一般安排52学时左右(包括上机实验),通过该课程的学习,学生不仅能够掌握程序设计的一些基本方法和技巧,也为后续课程的学习打下基础。但现阶段非计算机专业的C语言教学不容乐观,为了激发学生的学习兴趣,在近几年的实际教学中不断进行探索和实践,得到一些有益的启示。
2 存在问题
2.1 学习不主动,学习方法不科学
近几年高校扩招缘故,高职学生基础下降,自我控制能力和自我约束能力较差,对学习没有兴趣。特别是对于非计算机专业的学生认为这门课程不重要,学习时课前不预习,上课注意力不集中,只是机械的听老师讲课,课堂上也不做笔记,课后也不及时复习[2],这样的恶性循环造成了学生对C语言越学越不会的局面。
2.2 教学方法单一,降低了学习兴趣
在传统的C语言整个教学过程中,教师始终处于主导地位,学生只是被动的接受知识,再加之教师只是一味地给学生灌输C语言的语法知识,而忽略了编程,学生处于一种“学完忘完”的现象。教学内容的枯燥,教学方法的单一,学生难以发挥学习的主动性和积极性,降低了学习兴趣。
3 改进方法
3.1 课堂多互动,调动学生学习兴趣
传统的教学主要以教师讲授为主,学生只是被动的接受,我们学院一节课课时长达100分钟,学生很难集中注意力,不能主动的去分析问题、解决问题。在讲课的同时,教师可以通过提问---回答---讲解的方式使学生注意力集中,还可以通过分组、进行小组讨论,让学生处于主体,提高学生兴趣,活跃课堂气氛,调动学生积极性。
3.2 教学方法和手段的改革
3.2.1 从问题入手,进行启发式教学
传统的教学过程是先介绍基本概念,再讲解语法知识,然后围绕语法知识进行举例,最后上机编程运行。对于高职学生来说,逻辑思维比较差,对于纯理论的东西缺乏兴趣。在教学过程中要精心设计各种问题,把教学内容巧妙地隐含在每个任务中,让学生带着任务和问题去学习[3]。比如在讲数组时先提出问题:如何编写程序来计算全班同学的平均成绩?这个时候学生进入思考过程,能力强一些的甚至试图动手写出程序。但由于之前只学过变量,程序中变量设置过多,比较麻烦,这个时候,教师可以引出一批相同类型的数据应该怎么解决-----数组的概念,最终成功解决问题。
3.2.2 作业布置循序渐进,由易到难
教师在布置作业时,要能够满足学生的成就心理,以鼓励的方式进行作业设置。也就是说在作业布置时应该从简单入手,必要时给出提示或相似的例子,由易到难提高作业难度,这样可以增强学生自信心,进而解决更难的问题。例如在利用循环的嵌套打印图形组合的作业中,作业题目由易到难可以做如下布置。
这个题目在先前题目的基础上,进一步提高了难度,由有规律变换变成了无规律变换的图形组合,学生通过本题目的练习有意识的会拆分图形,把无规律变换成为有规律变换,对知识融会贯通,成功解决问题。
由此可见,从所学知识的简单应用到复杂推广,可在逐步增加难度的题目中逐渐提高学生的应用能力。
3.2.3 理论与实践相结合,提高学生实践能力
C语言程序设计这门课程是实践性较强的课程,不仅要学习理论知识,更重要的是要学以致用,利用所学到的知识编写程序解决实际问题。在上机过程中,学生可以通过编译软件掌握程序的编写、调试、运行。在具体的操作中,发现问题、解决问题。本专业理论与实践课比是2:1,一般两次理论课后安排一次上机,这样学生可以吧课堂上的理论知识通过编译软件进行练习,进一步验证程序的可执行行。这样不但能培养学生动手能力,还能培养学生独立思考能力,理论与实践相结合,提高学习的质量和效率。
4 结语
总之,在C语言程序设计的教学过程中,要努力提高学生对该课程的学习兴趣和学习热情,在教学方法和手段上不断进行改革,加强实践动手能力。C语言的教学改革是一项长期的过程,需要我们不断改进、不断完善,只有坚持不懈的探索实践,才能达到更好的效果。
参考文献
[1]谭浩强.C语言程序设计.北京:清华大学出版社,2010.2-6.
[关键词]知识认知导航C语言程序设计
中图分类号:G71文献标识码:A文章编号:1671-7597(2009)1210102-02
一、引言
C语言作为计算机程序设计的基础课程,对于培养学生基本程序设计思路的地位不可撼动。对于C语言来说,教学的最终目的是让学习者能够熟练的利用相关软件编译C语言程序。然而,据具体教学实践来看,这一教学目标的实现情况并不乐观。
究其原因,就课程特点来说,C语言课程体系结构严密,需要记忆并灵活运用的知识点多,程序设计逻辑性强、灵活度高。作为程序设计的初学者,在有限的课时内不易掌握相关知识。就学生的学习行为来说,学生对C语言课程的学习具有盲目性,没有构建出学科的知识结构,而这正是问题所在的关键。
为了克服这样一种不良的教学境况,本文设计出了一个以知识认知导航理论为基础的C语言课程的教学改良方法。
二、知识认知导航理论概述
知识认知导航是遵照学科的知识结构特点和学习者的认知特点,为学习者的学习提供一种引导。
知识是相对稳定的、具有特定结构的体系,对知识的学习是不能改变这种结构的。为此合理的知识结构有利于知识的灵活运用,有利于促进进一步的学习。对于学习者,在接触一个新的学科领域时,首先是以接受性学习为主,在对该学科的知识结构明确的基础上据个人的实际情况来确定具体的学习目标和学习路径,然后再从点滴学起,建构完整的知识结构。所以人的学习首先是由大到小的细化过程,然后是由小到大的建构过程。前一个过程主要依赖于过程的引导,后一个过程则受外界引导和自身领悟力两者的影响。而在实际的学习中,这两个过程是并列交替进行的。在整个学习过程中,教师以引导者、促进者的身份出现,而不是知识的灌输者。
基于上述人们对知识的认知特点,如果能够建立起一个可以引导人们对专业领域知识进行认识、学习的导航系统,则可以将整个学科的知识内容、分化关系、层次结构、发展动向以及前沿最新研究等清晰地展示给学习者,使得学习者能够在该系统上确立自己的知识层次、认知位置和最邻近发展区,并且为学习者的具体学习提供引导作用。
知识认知导航以学习导航和对知识框架的认识为核心,其学习过程如图1所示。
图1知识认知导航学习过程
从图1中可以看出,学习者是经过学习、定位、知识结构变化、再学习这样一个不断循环的过程中实现知识的积累和构建的。
可见知识认知导航的目的就是:使学习者能始终认清位置、认清方向,并引导学习者及时纠正偏差,保证学习能沿着正确的方向前进。
三、基于知识认知导航理论的C语言课程教学方案设计
(一)构建课程知识体系的知识认知导航图
知识认知导航图属于知识地图的一种形式。知识地图的概念最早是由情报学家布鲁克斯于20世纪80年代初提出的,他认为人类的知识结构可以绘制成各个单元概念为结点的学科认识图,体现知识之间的联系和获取途径,以帮助用户知道在什么地方能够找到知识的管理工具。
对于C语言课程来说,专业的理论知识,各知识点连贯性强,其较强的逻辑性思维,使得初学者很容易一头雾水,无从下手。为此作为一门课程的引导者,教师必须在学习者学习这门课程之前将该课程的知识体系以一个简单明了的结构视图展现在学习者面前。通过对该课程的知识背景、结构框架及内容之间的相互联系等的讲解,使学习者的头脑中先搭建一个整体的知识框架,以后的学习就是往这个框架中填充的过程。知识框架的搭建,为本门课程的学习确定了总体方向,学习者就可以从整体中去把握学习过程中的重点难点,以防止在错综复杂的知识体系中迷失方向。
由于学习者的个体差异,不同学习者的知识结构是不一样的。因此,构建知识体系的知识认知导航图也为学习者在学习之初的自我定位提供了一个很好的依据。
图2《C语言程序设计》知识认知导航图
针对C语言这一门课程而言,就可以其课程特点,按照一般学习者的知识的认知过程、特点以及获取知识的先后顺序,构建出一个C语言课程的知识认知导航图。
图2是以知识的生长、分化为主线,以所学知识的应用先后来划分层次的,该图仅画出了学习该课程中的几个主要过程,其余部分均被省略。
在该图中,纵向箭头表示计算机技术的一个大的发展过程,同时也是该课程理论学习的总顺序。横向联系表示在不同的阶段所需要学习的相关内容,并且标出部分内容在整个课程中的地位。教师可以以这样一个导航图为基础,在详细介绍课程之前,提纲挈领的将本课程的整体框架、各个知识点的相互关系以及该课程的发展讲述给学习者。同时也可以以该图为基础,以知识测试的方式,通过让学习者进行若干相关知识的测试,得到不同学习者的已有知识成分,使得教师掌握学习者的第一手知识结构资料,以便后继教学的因材施教;也使得学习者能够清晰地知道自己在该课程中已经学习过哪些内容,还有哪些没有学习过,为后继学习指明了方向。
构建课程知识体系的知识认知导航图,可以完整地体现本课程的总体知识结构,并且按照知识的生长、分化为主线,以知识在本课程的应用先后来划分层次,将原本杂乱的基础知识编织成一个相互关联的知识网络,使教师与学习者都能够清晰的掌握该课程的结构,为教与学提供了一个便捷的知识传播与获取的路径。
(二)单类知识体系视图化
对于C语言程序设计来说,仅从图2便可以看出该课程的所涉及知识相当专业,所包含的内容相当繁复,仅仅为学习者提供一个课程的总体框架是不能满足的,也不利于学习者去掌握该课程中分支知识的具体内容,此时,还需要为学习者提供单类知识的知识体系导航图,为学习者详细的描述出该知识点的分类、应用及常见案例等。然而将单类知识从课程总体框架中分离并不意味着将该知识点独立,而是为了让学习者在掌握该知识详细内容的前提下,逐步构建该课程理论体系的结构图。通过单类知识体系的视图化,在将单个知识点清晰地展现给学习者,便于其深入了解该知识点的同时,也为学习者对感兴趣的内容进行进一步的学习指明了方向。因此,单类知识体系视图的构建,是教师为学习者提供知识深层学习的有效手段,也是教师在备课与讲授的时候所要注意的地方。
(三)利用项目驱动法建立阶段学习效果定位机制
知识认知导航图,不但要为学习者提供一个有效便捷的学习路径,还要为学习者的学习效果进行及时的测试定位,即将学习者的学习过程视图化。这样,便于教师与学习者了解学习者的学习情况,从而为进一步的教与学提供参考依据。
项目驱动法,就是师生通过共同实施一个完整的项目工作而进行的教学活动。这种方法可以很好的测试出学生的学习情况,并明确地定位出学生对于知识的掌握程度。
对于C语言课程本身来说,项目驱动法是测试学生学习效果的最佳方法。为此,通过结合课程知识体系的知识认知导航图与单类知识体系视图,利用项目驱动教学法可以构建阶段学习效果定位机制。首先,以单类知识体系视图为结点,通过构建相关知识的测试题库,根据题目的难易程度,以及测试者的测试成绩,可以直接获取学习者的结点学习情况;其次,以课程知识体系的知识认知导航图,构建课程的阶段性测试题库,结合上述结点的测试题(尤其是学习者做错的题),通过测试可以提供学习者阶段性的学习情况;最后,利用具体的程序项目,对学习者的综合能力进行测试,提供学习者对知识的整体把握情况。这样通过结点测验、阶段测验与综合项目测试相结合,为学习者与教师提供了最为直接的学习情况参数,从而为进一步的教与学提供了参考依据。
四、用项目驱动法完善知识体系
如前所述,C语言程序设计这一课程特点是要将所学知识应用于实际。知识认知导航理论可以为学习者构建一套完整的理论体系,但是针对具体的应用,则要求学习者需要丰富的实践经验、创新意识和团队精神,而项目驱动法正好能够很好的训练学习者的这些能力。它将教师从知识认知导航中的引导者变成了知识的统筹者,将学习者从构建知识网变成使用知识网,让学习者变成了认知的主体,真正实现学以致用。利用项目驱动法,结合软件工程流程,通过具体项目的设计、实施、控制、评价,可以很好的巩固学习者的知识点,激发学习者的自学兴趣,明确学习目的,实现学习者由被动学习转为主动学习,进一步完善学习者的知识结构体系,同时也有利于教师对学习者知识掌握程度的评价。
五、结束语
以知识认知导航理论为基础的教学方法,通过构建知识认知导航图,建立有效的阶段学习效果定位机制,可以将繁杂的知识联系在一起,将课程知识结构和学习者的学习过程视图化,便于教与学,同时也为教师与学习者及时掌握学习情况提供了参考依据。在学习过程中结合项目驱动教学法为学习者的学习效果进行定位,有利于知识的结构化,为教与学的改进与深化提供了很好的参考模式。
参考文献:
[1]苗英恺、陈佳,“知识认知导航图”在教育中的应用初探[J].教育信息化,2006.2.
关键词:C语言;程序设计;循环结构;教学方法
中图分类号:G642文献标识码:A
1引言
“C语言程序设计”是计算机系各专业的必修课程,属专业主干课,是一门学位课程。也是各高校部分非计算机专业开设的程序设计课程之一。本课程开设的目的是使学生掌握面向过程的程序设计的基本概念,逐步形成正确的程序设计思想,理解结构化程序设计方法;掌握程序设计的基本技术,程序设计的基本组织方法即函数(模块)程序设计;具备调试程序的能力。因为C语言功能强大,程序编写灵活,具有较强的实践性,是一门高级语言中的“低级语言”,既可以用来编写系统软件,又可以用来开发应用软件,因此对学生以后参与专业领域的应用软件的开发和使用会有极大的帮助。C语言是结构化的语言,学好C语言程序设计,能为后续课程(数据结构、编译原理、操作系统、C++、Java等)及其他程序设计课程的学习打下基础。同时,C语言程序设计也是计算机类各种考试所要求的重点课程之一。
2循环结构程序设计
结构化程序设计中包含三种基本技术:顺序结构、选择结构和循环结构。循环结构的程序设计是学生学习了结构化程序设计的前两种基本技术之后的第三种基本技术,是结构化程序设计技术中最重要也是最难的部分。这门课程一般都是学生学习程序设计的入门课程,第一次学习循环,可能难于理解“循环”的含义,在设计程序时正确使用循环也就更困难了。针对这些特点,循环结构程序设计的教学方法和教学手段也就值得探讨。
3循环结构程序设计的教学方法
3.1教学重点和难点
要想学生能够轻松理解和掌握循环结构的程序设计,首先得确定本部分内容的重点和难点。
本部分的重点主要是:(1)循环控制结构及其设计。(2)循环控制语句的应用。教学重点是循环控制语句中的while语句,只要把while语句的使用讲解清楚了,后面的for语句和do-while语句就容易多了。
本部分的难点是循环控制结构及其设计。
3.2突出教学重点与分散难点的方法
为了突出教学中的重点并分散难点,可以从三方面入手:
(1) 从分析问题的重复性入手。学生在日常的生活、学习中能看到、体会到重复这种行为。精心设计实例,给学生一个比较实际的切入点,通过教师的引导,使学生能体查、归纳“重复行为”,从而理解和掌握循环的主要特点:有规律地重复操作。在教师的启发、引导下,使学生在课堂上真正地成为“主体”,教师扮演“主导”角色。在整个过程中,紧紧抓住循环程序设计的思想,采用“自顶向下,逐步求精”的结构化程序设计方法,把重点突出出来,并把难点进行分散,使学生容易理解和接受。
(2) 难点内容,提前做好铺垫。在前面内容适当的地方安排出现循环程序,但不讲它的功能,为讲解现在的内容做好铺垫,打下伏笔。这使得学生的每一步学习都有基础,是一个循序渐进的过程,使学生的学习是在“走台阶”,而不是“三级跳”,效果很好。
(3) 在循环程序设计的应用中,可以从简单公式化的循环入手到复杂非公式化的循环的处理。讲解过程中,通过黑板进行详细分析和讲解,使学生加深学习和理解。适当的地方进行提问,教师引导学生积极参与到分析问题,解决问题的过程中,写出程序后,放到实际的环境下运行,让学生来分析程序的正确性,改正程序的错误,有利于学生理解难点、掌握重点。
3.3教学过程的设计与组织
(1) 提出问题
本部分的内容是循环程序设计,体现在两个方面,一是循环结构程序设计的算法表示;二是循环结构程序的C语言表示。循环程序设计是结构化程序设计中最难、最复杂的部分,而授课对象是初次接触程序设计和循环结构,因此循环的引入就至关重要。例如:通过引入求5!这个简单的例子,运用已经学过的顺序结构程序设计就可以实现;但是求复杂的阶乘,比如20!,任意自然数n!,用已经学过的顺序结构程序设计和选择结构程序设计就难于解决,要用简单的方法解决这样的问题,就必须使用结构化程序设计中的第三种基本技术:循环结构的程序设计。这样就轻松地引入了循环结构程序设计。在引入的过程中,要注重调动学生的积极性,采用互动教学法带动学生的积极性。
(2) 解决问题的方法及讲授新内容
在用问题引入了循环后,第一步,分析用循环控制结构求20!的算法的自然语言和流程图表示。第二步,为了实现这种循环控制行为,C语言提供了多种循环控制语句,while语句就是其中的一种,介绍while语句的一般形式和功能。第三步,讲解while循环语句的应用。在讲解的过程中,为了提高学生的学习效果,达到预期的目标,除了采用常用的教学方法和手段外,还可以采用以下一些教学方法和手段:
① 注重启发、引导学生。教师在讲解分析时,注重启发、引导学生主动分析问题、解决问题。
② 注重采用任务驱动的教学模式。通过提出问题,分析问题,引入新知识,解决问题,总结提高,一步步实现教学的目标。
③ 采用国际上惯用的解析教学法。
④ 把编写的程序放到实际环境下运行。让学生来分析程序的正确性,改正程序的错误,有利于学生掌握好重点、难点知识。
⑤ 应用现代化多媒体教学手段,有利于提高教学效率,便于学生理解。充分利用黑板和投影相结合的方式;分析过程用黑板进行教学,以便体现思维过程。
4结束语
要使学生轻松容易地理解和掌握C语言中的循环结构程序设计方法和技巧,必须在教学的所有环节上都进行认真研究和精心设计。通过对循环结构程序设计的教学,使学生提高综合应用的能力,为今后的后续课程及软件的设计和开发打下坚实的基础。
参考文献:
[1] 徐庆生.C语言程序设计[M].北京:科学普及出版社,2007.
[2] 高牧,杨志强,许兰兰,等. C/C++教学改革的探索与实践[J]. 计算机时代,2005(11).
The Design and Discussion of Programming Course of Iteration Structure Pedagogical
in C Programming Language
SUN Ying, XU Shun-qiong, LI Xing-mei
(Department of Computer Science, Chuxiong Normal University, Chuxiong 675000, China)
【关键字】 XML Dataset DataTable 存储数据
随着C#的流行,C#越来越为广大开发人员所接受。我们都知道,C#的开发不仅需要掌握其基本的原理,更要多实践,从实践中获取真正的开发本领。在我们的实际开发中,往往基本的原理满足不了开发需求,作为一名教师,在长期的教学以及项目开发中,我总结出了下面小技巧,希望对大家的开发有所裨益。
一、C#中读取XML到Dataset最简单的方法
C#其实是支持读取XML到Dataset的,但是可能直接读取效率不是特别的高。如果你的XML非常小的话,那么用这种方法再合适不过了。
使用方法:
using System.Data;
using System.Xml;
………………………….
DataSet myds=new DataSet();
myds.ReadXml(“yourxmlfilepath.xml”);
DataTable mytable=new DataTable();
mytable= myds.Tables[0];
String something;
something = mytable.Rows[1]["name"].ToString().Trim();
textBox1.Text=something;
That’s it.
二、C#中得到文件夹下文件
C#封装了很多类,可以直接使用,对获取本机资源提供了很大的便利。
String FPath=at“D:\CSharp\” ;//at表示后面的特殊字符都不是转义字符,而按照特殊字符对待
System.IO.DirectoryInfo MyDir = new System.IO.DirectoryInfo(FPath);//得到文件夹信息
foreach (System.IO.FileInfo MyFile in MyDir.GetFiles(“*.mp3″))//得到mp3文件
{
String FName = MyFile.Name;//得到文件名, MyFile.FullName是带路径的文件名
// 对文件进行处理
}
三、在C#中使用DataTable存储数据
说DataTable之前应该先说说DataSet,DataSet其实是存储在内容中的一个关系数据库,是一个数据表的集合,一个DataTable就是DataSet中的一个关系数据表,了解关系数据库的话对此应该很容易理解。
类:DataTable
命名空间:System.Data
System.Data.DataTable MyTable = new System.Data.DataTable(“Files”);
创建了一个名为Files的数据表,这个数据表对象的名字叫做MyTable。刚创建的数据表没有属性列和记录,需要我们进行添加:
MyTable.Columns.Add(“OriginalFileName”,
System.Type.GetType(“System.String”));
在数据表中创建一个名为 OriginalFileName类型为String的属性列,使用相同方法可以添加其他的属性列。添加完属性后就可以使用DataRow添加记录:
DataRow MyDr = MyTable.NewRow();
MyDr["OriginalFileName"] =“从头再来-刘欢”;
MyTable.Rows.Add(MyDr);
使用相同的方法可以添加其他的记录。添加完毕后就可以对其进行操作:
for(int m=1;m
{
for (int n = 1; n
{
String Content= MyTable.Rows[m - 1][ n - 1].ToString().Trim();
}
}
希望上述技巧能对大家的实际开发带来真正的方便!总之,C#的开发是一个长期的工作,从基础开始,把握好一些技巧的应用,相信通过您的努力,一定能开发出有创意的C#程序!
参考文献:
[1] 孙印杰 杨滔 吕书琴 ,《+SQL SERVER动态网站 设计实例精解》,北京,电子工业出版社,2009年
[2] 谭浩强,《C#程序设计》,北京,清华大学出版社,2008年
[3] 朱秀英,朱爱彬,《C#程序设计题解与实验指导》,北京,中 国人民大学出版社,2009年
[4] 赵喜清,李思广,《C语言程序设计》,北京,中国农业科学技 术,2008年
关键词:震动;语音;超声波;导盲
引言
目前市场上的导盲装置,如:导盲机器人、导盲犬、GPRS导盲定位等,这些成本都很高而且像导盲犬不易于练习。但超声波能够很好的对障碍物进行检测且检测距离较远,而且设备成本较低,便于携带。文章用一个超声波传感器检测前方障碍物,同时利用ISD1730语音芯片快速语音播报。实时提示前方障碍物的距离,为使用者提供安全保障。
1 系统概述
本设计以AT89C51单片机为核心,实现超声的发送、接收、处理、显示及语音播放及声光提示功能。系统结构框图如图1所示。
图1 系统结构框图
2 硬件设计
本系统硬件电路包括超声发射与接收模块、语音模块、显示电路、光电提示电路和震动模块五大部分。
2.1 超声发射与接受模块
结合本设计所要求的检测范围,选用HC-RS04模块实现超声发射与接收。该模块采用TRIG触发测距,性能稳定,测度距离精确,盲区小。HC-RS04模块与AT89C51单片机的连接电路如图2所示。
图2 超声模块与单片机连接电路图
2.2 震动模块
震动模块主要是通过偏振电机实现,其电路图如图3所示。
2.3 显示电路以及光电提示电路
本设计由LCD1602显示屏显示当前与障碍物的距离。 LCD1602与单片机的连接图4所示。光电提示电路由单片机控制其IO口实现指示灯闪烁,如图5所示。
2.4 isd1730语音模块
本系统采用ISD1730 优质语音芯片。ISD1730不仅有录放功能,还有快进、擦除、音量控制、直通放音和复位等功能。这些功能通过按键就可完成。在按键模式时,芯片可以通过/LED 管脚给出信号来提示芯片的工作状态,并且伴随有提示音,用户也可自定4种提示音效。本系统采用SPI工作方式,电路如图6所示。
3 软件设计
本系统的软件设计是在C51编程的基础之上采用了模块化设计和子程序嵌套技术。主要实现超声发射、接收、信号处理、语音控制、震动、显示以及光电提示等功能。主程序流程图如图7所示:
4 结束语
文章介绍的具有语音功能的超声导盲仪,将超声模块和震动模块结合。既有语音提示功能,又能在触感上警示,有效地解决了盲人导航的问题,为盲人提供安全保障。该导盲仪具有高精度、语音可自行录制、使用方便,具有很大的推广价值。
参考文献
[1]李丽霞,在超声测距中的应用[J].电子技术,2002(6).
【关键词】温湿度;监测系统;主控电路;PIC
目前,大部分常用的温湿度监测系统是以晶体管电路或51单片机为核心部件,再配以相应的传感器和A/D转换电路组成的温度和湿度实时监测系统。这样的系统,在实际工作中存在诸如在线调节不方便、数字化和智能化程度较低等缺点。
因此,本文研究了基于PIC16F877A单片机的蔬菜大棚温湿度监测系统相关技术,对主控电路进行了改进,提出了相应的对策和解决方案。
1 设计思路
通常情况下,温室内的温度和湿度对作物的影响巨大。如若要使得这些植物在非本季节处于较佳的生长状态,就必须严格控制温室内的温湿度。而不同类别的植物,所需温湿度也不尽相同。严格监测和控制温室内温度和湿度环境参数,能够有效保障植物时刻处于较佳的生长状态,有利于提高生产质量和产量。
首先,本文分析了温室温湿度监测系统基本原理和性能要求,针对农业生产所使用的普通MCU与PIC系列PIC16F877A进行性能比较,对优化主控电路做出理论依据,并提出相应的优化方案和整改对策。然后,分析了目前农业生产所使用的模拟量传感器和直插式数字传感器进行性能差异,从非电和电两个方面着手对影响温湿度监测精度及可靠性的原因进行分析,并在优化的主控电路。最后,采用了以PIC16F877A对直插数字集成式温湿度传感器DHT11进行循环控制,达到对蔬菜大棚温湿度实时监控的目的[1]。
2 硬件电路设计
本文选用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所示,对主函数进行初始化设计。
如图3所示,本文对中断入口和外部信号进行了设置,使得设计的主控电路能够更好的响应其他优先级更高的事件,从而完成了外部中断流程的设计。
从上述设计的主控电路来看,本文在对传统主控程序进行分析后,才给出基于PIC16F877A的温湿度监测系统主控程序的设计,并设计主要模块的流程图。不难看出,通过PIC单片机设计监测系统的主控电路,能够使得整个监测系统的主要部分实现模块化设计,这将有利于系统将来的升级改造,并降低了整个程序复杂度,使程序设计、调试和维护等操作简单化。从而使得整个监测系统相对与传统的监测系统而言,能够体现出智能化、数字化的特点。
【参考文献】
[1]孙安青.PIC单片机实用C语言程序设计与典型实例[M].北京.中国电力出版社,2008:21-31.
关键词:单片机;教学改革;课程体系
中图分类号:G642 文献标识码:B
文章编号:1672-5913(2007)18-0125-02
在嵌入式系统中单片机仍然占有重要的地位,各高校的相关专业大都开设有单片机原理及应用的课程。笔者在长期教学过程中感觉到,要想培养的学生适应、满足社会需要的能力,有必要对教学的内容和方法进行一些改革,在本文中对此进行了一些思考和探索。
1问题提出
目前社会对于嵌入式系统的开发人才需求量大,涉及面广,但学生在校期间虽然学习了相关的课程,却难以胜任开发工作。究其原因是缺乏实际运用知识的能力。
嵌入式系统中使用的MCU种类繁多,有8位、16位的,也有32位的。有普通的单片机,也有DSP和ARM。仅就8位的单片机来讲,也有众多的系列。显然,学校的教学不可能也不必要对这些全部进行讲授,更何况新的MCU还会不断的出现。我们认为,不管MCU的类型、字长和其他功能如何,只要使学生通过某一种MCU的学习,掌握了核心知识点,那么他们就能够在今后的工作中举一反三、融会贯通,很快适应工作的需要。这个核心知识点就是――MCU内部的各功能部件是怎样为应用服务、怎样为系统服务的。同时,学生在学习单片机原理及应用课程时已进入高年级。他们这时已有了相当的基础知识和自学能力。因此,在教学中简单的“就事论事”,泛泛地介绍MCU的结构、功能,往往不能使学生获得深刻的印象,更谈不上熟练地运用了。因此,培养学生的系统设计能力及创新能力,应是我们教学的关键所在。
2单片机应用系统设计的知识结构与教学内容安排
首先,教学内容的安排应使学生通过本课程的学习后,能够具备完善、合理的知识结构,能够胜任单片机应用系统的设计与研制工作。我们认为应具备的知识结构如图1所示。
图中有的内容,如传感器技术、信号调理技术、程序设计技术及与应用相关的知识在其它的课程中解决。其次,随着微电子技术的发展,集成电路的集成度越来越高。各种型号的单片机中不仅包含了大容量的存储器器和各种接口电路;而且还包含了AD转换器、程控放大器等模拟电路。对应用系统的体积、成本、功耗等也提出了越来越高的要求。因此,在单片机应用系统中不必要进行外部电路的扩展,而应当强调“单片应用”。
基于上述考虑,我们认为教学内容应围绕着四个方面安排。一是单片机的体系结构,包括其编程模型、指令系统、存储器系统等;二是各种片内各种功能部件的原理及应用,包括中断系统、I/O接口、定时/计数器、AD转换器、PWM功能等;三是通过常见的串行接口实现单片机功能的扩展。在万一需要对单片机的功能进行扩展时也尽量使用串行接口实现扩展。四是应用系统设计实例、分析。
用作教学的实际型号,应选用功能相对完善,结构简单、易学的型号。综合各种情况,我们在实际的教学中以常见的MCS-51系列为例。具体内容安排如下:
1) 单片机体系结构(6学时)。
基本存储器结构及空间分布、扩展的片内存储器;
编程模型;
中断系统结构;
指令系统简介。
2) 单片机片上I/O接口及应用 (6学时) 。
并行I/O端口;
定时/计数器;
串行通信接口。
3) 程序设计技术 (理论课6学时,实验8学时) 。
汇编语言程序设计;
C51程序设计技术;
集成开发环境IDE使用简介;
程序设计方法概述。
4) 利用串行接口实现功能扩展(理论课6学时,实验8学时) 。
同步串行接口;
IIC接口及常见芯片;
SPI接口。
5) 新一代51单片机的片上外设接口(2学时)。
计数器阵列 (PCA) 及应用;
AD转换器及程控放大器;
PWM及应用;
6) 应用系统中的接口(理论课4学时,实验8学时)。
显示接口 (LED、LCD) ;
键盘接口;
开关量的输入与输出接口。
7) 单片机应用系统的抗干扰技术(2学时)。
硬件设计中的抗干扰;
软件抗干扰技术。
8) 单片机应用系统设计概要 (理论课4学时,实验12学时) 。
单片机应用系统设计方法;
应用系统软、硬件协同设计;
系统调试方法;
应用系统设计举例。
按上述安排,理论课和实验课各36学时。通过这些内容的学习和时间训练,学生能掌握应用系统设计的核心知识,大大提高动手能力与创新能力,从而满足实际工作需要。当然,上述教学内容安排对教师提出了较高的要求,要求任课教师有丰富的实践经验,关注单片机技术应用的最新发展,并随时调整教学内容,保证将最新的知识传授给学生。
3教学过程的实现
为实现上述教学目标,应将课堂教学与实验紧密结合起来,并有意识地将单元电路的实验与某一具体的应用系统结合。这样当基本内容和全部单元实验完成后,即可将其组合成一个具体的应用系统,学生可以借此领会到单片机各功能部件在系统中的应用及其方法,在这个基础上再进一步学习应用系统的设计方法就水到渠成,得到事半功倍的效果。
参考文献
[1] 邵贝贝. 关于嵌入式系统教学的思考[A]. 第三届高等院校嵌入式系统教学研讨会论文集[C]. 2005.
[2] 何立民. 单片机高级教程―应用与设计[M]. 北京:北京航空航天大学出版社,2000.
关键词:Word2007;实时标注系统;课程实验
中图分类号:TP311.52
实时标注系统是笔者自主开发的基于Word2007的在局域网环境中使用的工具软件。其目的是使教师能够实时得到学生对所学知识的反馈信息,从而知道教师下一步教学。
《PHP+MySQL动态网站程序设计》是计算机网络专业所开设的一门专业基础课。在教学中既要对PHP语法知识、MySQL数据库相关知识进行讲解,又要对基础知识加以应用,在实例或作业中提高学生动态网站程序设计开发调试能力。然而,传统教学中由于学生基础差异大及课时量限制,造成教师讲解针对性不强,无法顾及各层次学生,从而影响了教学效果。
针对以上问题,笔者作为《PHP+MySQL动态网站程序设计》任课教师尝试将实时标注系统应用于该课程中,探索改变现状、提高教学质量的方法,使该课程达到教师和学生都满意的教学效果。
1 实时标注系统的功能
实时标注系统是使用Word―addin开发的嵌入式软件。其功能是教师将教学内容Word文档在局域网中,学生在学习中将疑问或评论以批注的形式添加在Word文档中,教师可以实时看到学生的批注内容,从而及时了解学生的学习需求。教师将Word文档依照正常方法打开文件;根据实时标注系统要求设置其IP地址信息,之后点击StartButton开启教师机IP服务地址;等待学生在学习Word文档内容时所添加的标注自动实时显示在当前文档相应位置上;最后,在结束接受批注内容时,点击StopButton关闭教师机IP服务地址即可。在教师将IP服务正确开启之后,与教师机出于同一局域网范围的学生机即可依照正常方式打开与教师机所打开的同名的Word文档。学生通过知识点学习,将疑问或相关评论以批注的形式添加到该Word文档中;在希望教师看到批注时点击SendButton将批注内容传送到教师端即可。
2 实时标注系统应用于《PHP+MySQL》课程的实验
本次试验目的是希望通过将实时标注系统应用在《PHP+MySQL》课程中,改变传统的教学方式,充分调动学生的学习积极性,以学生需求作为教师教学的出发点,从而提高教学质量,达到教师和学生都满意的教学效果。
实验对象选择笔者所在学校计算机网络技术专业二年级学生,共四十六人。《PHP+MySQL》是该班级学生所学习的一门专业必修课,能够学好这门课程不仅是完成学习任务,对他们今后就业以及后日后续课程的学习都有好处。同时,该班级学生已经具备计算机基本操作基础和C语言程序设计基础,系统学习过Word2007基本操作方法,对于打开文档、保存文档、添加批注以及实时标注系统的使用都驾轻就熟。这一点为本次实验的顺利进行打下了坚实的基础。
本次实验为期两个月,这两个月中每周《PHP+MySQL》学时为六课时(每课时45分钟),主要讲解内容为PHP基本语法部分。
实验过程:以两课时作为一次授课,首先教师将课前准备的本次课程内容以Word文档的形式发送到局域网当中的学生机,作为学生自学的基本材料。在适当对本次课程的主要知识点加以介绍之后,留出时间供学生自学。此时,根据实时标注系统的操作要求,教师需要将IP地址加以设置,为实时接收学生的批注内容做准备。该时间根据教学内容的不同会适当有所调整,但一般会控制在20分钟到35分钟之间。在这段时间内,教师会鼓励学生在其所学习的Word文档中及时将他们存在疑问的知识点加以批注,并在批注中尽量简洁明了地解释他们的疑问所在,同时每添加一条批注就将其发送到教师机。而教师在这个时间段中,不需要对教学内容做过多解释,只需及时看到学生所添加的批注,了解他们的疑问,并就疑问的讲解做准备。在教师关闭IP地址之后就学生存在疑问的知识点加以重点讲解。受到课时限制,教师可以灵活处理,例如:对于大多数学生都存在疑问的知识点,教师需重点讲解;而只有个别同学提出疑问的知识点,教师可以以提问的方式让其他同学加以解答;有个别知识点教师可以到网路教学平台中供学生讨论,既提高了学生互相帮助团队协作的意识,也提高了学生的参与度,调动了学生的学习积极性。在实际授课中,根据《PHP+MySQL》课程的课程特点,在对基本知识点加以学习之后,在课堂中教师还需留出时间留下程序设计实例操作练习题,既提高学生的程序设计调试能力,这一过程也是对学生自学效果的及时检验。
3 实时标注系统应用于《PHP+MySQL》课程实验结果分析
对于本次实验的效果,笔者采用问卷以及访谈的方式,对学生的学习情况进行了调查。现对调查结果总结如下:(1)对于在课堂中使用实时标注系统,大部分学生表示能够接受。许多学生反映单纯听老师讲授内容容易走神,无法长时间集中注意力,从而错过一些知识点,需要课下进一步学习;而是用实时标注系统首先自己自学,可以根据自身情况安排时间,因此这样的学习方式能够接受。当然,也有个别学生反映自学内容时比较困难,希望教师能够适当讲解。(2)对于实时标注系统学生们都反映其操作方式简单,不会为学习课程内容增加额外负担。由于实时标注系统是基于Word2007的嵌入式系统,而Word文档呈现内容已经被教师和学生所接受,因此,新的教学方式完全符合学生的操作习惯,无需再学习其他平台的操作方法,这为课程的学习带来了方便。(3)大部分学生觉得实时标注系统的使用对于他们学习课程内容是有一定帮助的。主要体现在该系统可是帮助他们更好地自主学习,及时提出疑问,及时得到老师的帮助方面。也有个别同学觉得相较于传统教学方式该系统的使用帮助不大。(4)学生反映在今后其它的课程学习中还希望使用该系统,但让在文档内容呈现、疑问讲解等细节方面如果可以加以改善,相信今后的使用会带来更大的帮助。
4 总结
将实时标注系统应用于《PHP+MySQL》课程的实验旨在探索通过教学软件的帮助适当调整教学方法,将传统的以教师讲授为中心的教学方式转变为以学生学习为中心,真正做到教学以学生为本,一切从学生出发。实验基本达到实验目标,取得了一定的收效,并就实时标注系统应用于教学中的方式方法积累了一定的经验。当然,实验中也存在不足之处,例如实时标注系统的并发处理方面还有待提高;教师在准备自学材料时可以更加灵活使其更具吸引力,这样可以帮助学生更好的学习。笔者在今后的课程实验中会改进以上不足,期望得到教学质量的更大提高,使得教学实现教师与学生双赢的效果!
参考文献:
[1]莫雷.教育心理学[M].北京:教育科学出版社,2007.
[2]宋广文,苗洪霞.网络时代教师角色的转换[J].教育研究,2001(8).
[3]杨春涛.信息时代的教育改革[J].素质教育研究,2006(9).
关键词:PT100;自校正;非线性;D/A转换器
中图分类号:TP391文献标识码:A文章编号:1009-3044(2012)01-0197-02
A Simulation of a Simple Design PT100 RTD
LIU Yue-ru
(Xinjiang Wind Energy Institute,Urumqi 830000,China)
Abstract:This paper presents a simulation PT100 thermal resistance of the circuit design。The design utilizes a precision op amp buffers the input voltage through D/A converter to adjust the voltage applied to the standard resistor and the current ratio, thus changing the resistance value。Through the built-in precision resistance measurement circuit measured the op amp’s offset voltage, and use D/A converter automatically compensate for the offset voltage can be synthesized to obtain high-precision programmable resistors to meet the PT100 thermal resistance of long-term stability requirements.
Key words: PT100; self-correction; nonlinear; D/A converter
热电阻是中低温区最常用的一种温度传感器。它的主要特点是测量精度高,性能稳定。其中铂热电阻的测量精确度是最高的,它不仅广泛应用于工业测温,而且被制成标准的基准仪。而热电阻PT100(以下简称PT100)是一种稳定性和线性都比较好的铂丝热电阻传感器。可以工作在-200℃至650℃的范围。
但有时为了满足设计整个系统设计的要求,需要在实验室中模拟PT100在工业现场的使用。本设计采用运放等构成单口网络,通过单片机编程得到输入电压及电流的比值,即可获得可编程的线性电阻。这种阻抗合成技术可获得很高精度的输出电阻。通过查找PT100的分度表,可以得到准确的温度值。
1电路原理设计
合成电阻的电路原理图如图1所示,由输入运放、D/A转换器、输出运放及失调调零电路构成。施加于标准电阻一端的输入电压值经过缓冲放大、比例调节后,反馈到标准电阻的另一端,以此来控制输入电流,从而确定输入电阻值。
运算放大器A1接成电阻跟随器形式,输出电压为U10=Ui,作为D/A转换器的基准电压。D/A转换器采用电压输出型乘法转换器(电流输出型乘法转换器需要后面加一级运放电路将电流信号转换成电压信号即可),使基准电压即使减小到接近零也可得到较好的比例输出。数/模转换器的传输系数K由输入数/模转换器U1的数字信号决定。因此D/A转换器的输出电压为UD/A=Kui。由于A2工作于线性放大状态时两输入端电位相等,因此A2的反相端电压为KUi。这样,施加于标准电阻上的电压为Ui-KUi,电流为Ii=(Ui-KUi)/Rs。由于运放A1的同样输入电流为零,则对输入端来讲,可得合成电阻R=Ui/Ii为:
R=Rs/1-K
(1)
即标准电阻倍增了1/(1-K)倍。当K=0时,电阻不变;当K=0.9时,电阻放大10倍。可见,可以通过改变D/A转换器的输入值以调整K值来改变合成电阻值。电路中,运算放大器A1连接成电压跟随器的形式,A2接近单位增益,并接入校正电容,因此得到稳定的合成电阻。
2误差分析
式(1)中电阻是基于理想到的,但实际运放由于存在失调电压、热电势、偏置电流等会引入误差。合成电阻施加的电压较小时,失调电压及热电势等误差电压的影响较大;电流较小时,偏置电流影响较大。在两级运放中,设失调电压与相应的热电势等误差电压之和分别是Ue1、Ue2,则运放A1输出端及A2反相输入端的电压分别为:Uo1=Ui-Ue1U2i=KU01-Ue2
其中,K为D/A转换器的传输系数。再由Ii=(Ui-U2i-)/Rs及R=Ui/Ii,可得合成电阻值为:
R=[Rs-(Kuel+Ues)/Ii]/1-K
(2)或
R=Rs/1-K+(Kuei+Ue2)/Ui
(3)
可见,Ue1、Ue2与合成电阻值有关,并使电阻变成非线性,当Ue1、Ue2为0时,上式退化为(1)式。可见,其误差不仅与Ue1、Ue2成正比,而且与Ii或Ui成反正,即合成电阻的工作电流电压越小,相对误差越大。如挑选失调电压优于10μV的低温漂精密运算放大器AD707K,外接失调调零电位器调整后,短期内Ue1、Ue2可控制在0.1μV以内。此时,如K=0.9,Rs=1kΩ,工作电流在0.2mA时,由(2)式可得Ue1、Ue2引入的误差接近1ppm,即误差比K=0时放大了10倍。
输入运放的偏置电流也会分流输入电流而引入较大误差,其相对误差为Ib/Ii。工作于0.2mA时,如采用典型偏置电流为0.5nA的运放AD707K,可产生2.5ppm的误差,如加大工作电流可以进一步减小误差。采用某些斩波稳零的运放(如典型失调电压为0.5μV、典型偏置电流仅为2pA的TLC2652运放),则可以忽略偏置电流的影响,但其输入噪声电压偏大。
3校正措施
合成电阻中,工作电流不同时还存在运放失调电压等引起的误差,而且这些误差由于温漂及时漂等原因并不能长期稳定。
式(2)可见,合成电阻与输入电流有关,而实际的工作电流与自校正时的电流又不一定相同,所以Ue1、Ue2引起的误差并不能直接通过测量阻值来校正。误差的根据是Ue1、Ue2。所以有效的办法是求出并消除Ue1、Ue2,使合成电阻与工作电流无关。
采用系统自带的精密电阻测量体系可以求出Ue1、Ue2。具体步骤为:取K=0.9,用激励电流为I1的最合适的量程一测得合成电阻为r3;取K=0,用量程一及激励电流为I2的稍大的量程二来分别测量合成电阻,得到读数r1、r2。将其电阻及电流值分别代入式(2)并整理,可得:
Ue2=I1Rs-I2r1
(4)
Ue2=I2Rs-I2r2(5)0.9Ue1=I1Rs-Ue2-0.1I1r3(6)
对式(4)、(5)、(6)求解,得:
Ue1=1.1111I1(r1-0.1r3)
(7)
Ue2=(r1-r2)/(1/I2-1/I1)(8)
可见失调电压可以通过测量电阻及已知的恒流激励源来求取。如激励电流I1=0.5mA时,读数r1为1000Ω。大电阻(20MΩ)量程的激励倍增后的r3为10000.018Ω。大电阻(20MΩ)量程的激励电流I2=0.5μA即电压仅5mV时,r2变为1001.8Ω,此时可求得Ue1=-1μV,Ue2=-0.9μV。当然仅利用(4)、(6)两式也可得到(7)式及Ue2=I1(Rs-r1),但已知值Rs及测量值r1的来源性质不同,会引入较大误差。而式(8)中,r1、r2同为测量值,其漂移影响较小。
尽管求出了Ue1、Ue2,但由于施加于合成电阻的电压或电流不定,所以并不能通过改变K值来消除误差。有效的办法是外接D/ A转换器来抵消Ue1、Ue2,以彻底消除式(2)、(3)中的非线性项。采用廉价的10位双D/A转换器TLC5617的两个通道分别对两运放进行补偿。
图2利用D/A转换器的调零电路
对于运放A1,接成非单位增益的同相放大电路时,可在反相输入端加入校零电路。为保持电压跟随器形式。AD707K等运算放大电路提供了失调电压调节端,只要在两调零端接入电位器至电源端,改变两调节端的输入电流即可实现手动调零。
参考文献:
[1]童诗白,华成英.模拟电子技术基础[M].4版.北京:高等教育出版社,2001.