公务员期刊网 精选范文 单片机程序设计范文

单片机程序设计精选(九篇)

前言:一篇好文章的诞生,需要你不断地搜集资料、整理思路,本站小编为你收集了丰富的单片机程序设计主题范文,仅供参考,欢迎阅读并收藏。

单片机程序设计

第1篇:单片机程序设计范文

关键词:SystemC;51单片机;仿真环境

中图分类号:TP332 文献标识码:A 文章编号:1007-9599 (2012) 17-0000-02

1 SystemC介绍

SystemC由C++衍生而来,在C++基础上添加硬件扩展库和仿真库构成,从而使SystemC可以建模不同抽象级别的包括软件和硬件的复杂电子系统,既可以描述纯功能模型和系统体系结构,也可以描述软硬件的具体实现。

事物级建模因不考虑很多底层细节,所以进行建模时间短,并且可以将重点放在如何通信,而不是通信在更底层如何实现。事物级建模可以使用事件驱动,由一事件可驱动一系列行为,因此建模可以在早期进行。

在设计软件算法以及接口说明时,往往采用C++语言,主要是因为C或C++语言提供了在开发紧凑及有效的系统时所需要的控制以及数据抽象。而大多数的设计人员都熟悉C或C++语言,同时,大部分的开发工具都与C或C++有一定的关联。

SystemC类库提供了构建系统结构模型所必须的元素,这些元素包括:硬件时序、芯片工作的若干激励信号等。而这些元素在标准的C++语言所缺乏的特性,若将这些元素加入C中需要扩展语言本身的属性,这样做对整个行业而言是很难接受的。面向对象的C++语言则可通过类来扩展语言本身,而无需添加任何新的syntactic。SystemC给出了这些构建系统结构模型所必须的元素并允许设计人员继续利用所熟悉的C++语言以及其他开发工具进行系统设计。[2]

本文的系统是利用SystemC3.0.1实现了一个51单片机程序设计的仿真环境。

第2篇:单片机程序设计范文

一、机器周期和指令周期

1.机器周期

机器周期是指单片机完成一个基本操作所花费的时间,一般使用μs来计量单片机的运行速度。MCS-51单片机的一个机器周期包括12个振荡脉冲周期,因此,一个机器周期就是振荡脉冲的十二分频。如果MCS-51单片机的振荡脉冲频率为12MHz时,那么执行一个机器周期就只需要1μs;如果采用的是6MHz的晶振,那么执行一个机器周期就需要2μs。

2.指令周期

指令周期是指单片机执行一条指令所需要的时间,一般以单片机的机器周期来计量指令周期。MCS-51单片机的指令周期根据指令的不同,分成单周期指令(执行这条指令只需一个机器周期)、双周期指令和四周期指令。除了乘、除两条指令是四周期指令之外,其余MCS-51单片机指令均为单周期或双周期指令。如果MCS-51单片机采用的是12MHz晶振,那么它执行一条指令一般只需1~2μs的时间;如果采用的是6MHz晶振,执行一条指令一般就需2~4μs的时间。

现在的单片机有很多种型号,但每个型号的单片机器件手册中都会详细说明执行各种指令所需的机器周期。我们可以依据单片机器件手册中的指令执行周期和单片机所使用晶振频率,来完成需要用软件的方法进行的延时的程序设计。

二、延时指令

在MCS-51单片机指令中并没有真正的延时指令,从以上的概念我们知道单片机每执行一条指令都需要一定的时间。所以可以让单片机不断地执行没有具体实际意义的指令(通常把这些指令称为哑指令),就可以达到软件延时的效果。

1.数据传送指令MOV

数据传送指令功能是将数据从一个地方复制、拷贝到另一个地方。如:MOV R7,#80H,执行这条指令的功能是将立即数80H送到寄存器R7。就单这条指令而言并没有任何实际意义,而执行该指令则需要一个机器周期。

2.空操作指令NOP

空操作指令功能只是让单片机执行没有意义的操作,消耗一个机器周期。

3.减1条件转移指令DJNZ

减1条件转移指令功能是将第一个操作数的内容减1,判断所得结果是否为0,不为0则转移到指定地点,为0则顺序往下执行。

利用以上三条指令的组合就可以比较精确地用软件的方法设计出所需要的延时程序。

三、50ms延时程序的设计

50ms延时程序的设计(设晶振频率f=12MHz,则机器周期为1μs)(见下表)。

①MOV R6,#100在整个程序中只被执行一次,且为单周期指令,所以耗时1×1μs。

②MOV R7,#250从②看到④只要R6-1不为0,就会返回到这句,共执行了R6次,共耗时1×100μs。

③DJNZ R7,I2只要R7-1不为0,就反复执行此句(内循环R7次),又受外循环R6控制,所以共执行R7*R6次,因是双周期指令,所以耗时2×R7×R6=2×250×100μs。

④DJNZ R6,I1从④看到②只要R6-1不为0,就会R6次执行这句,因是双周期指令,所以耗时2×100μs。

⑤RET是一条子程序返回指令。在整个程序中只被执行一次,且为双周期指令,所以耗时2×1μs。

所以总延时时间计算为:

t=(1×1+1×100+2×250×100+2×100+2×1)×机器周期=50303μs=50.3ms

第3篇:单片机程序设计范文

关键词:单片机;课程实践;答辩;KEIL C

中图分类号:G642 文献标识码:A 文章编号:1009-3044(2013)36-8369-02

单片机课程实践是高校自动化专业集中实践环节的必修课,是学生学习《单片机原理》课程后,进行的一次全面的综合实践,其目的旨在加深对单片机基础理论和基本知识的理解,培养学生具有单片机系统应用软件设计和开发的能力,在具体实现过程中强化学生的实践意识,提高应用能力、创新意识和合作精神。在项目的实践中,使得学生掌握一定的理论与技术知识,而且应该树立管理理念,建立项目工程思维观念,而这一点正是高级语言编程思维的一种体现。

通过将单片机课程实践和高级语言程序设计实验相结合,使学生在理解单片机理论和高级语言编程思想的基础上,实际动手开发一个实际的应用系统,来提高综合运用所学理论知识的能力。

1 研究内容或对象

引导学生运用已学的单片机理论知识、单片机程序设计方法和高级语言编程思想,具体设计一个实用的小型单片机应用系统,开发设计过程按以下顺序进行――选定课题、调查用户需求、总结归纳数据流程、分析性能、书写需求分析及总体设计报告(包括组成原理图、硬件连接、程序流程、系统功能模块)、完成应用系统的开发、撰写课程实践报告、系统验收、组织课程实践答辩。让学生在这一系列工作中综合运用单片机系统原理以及编程语言等相关课程知识,培养学生的综合素质。

根据单片机课程实践和专业课程实践两个实践教学环节各有4~5周但分散的实际情况,考虑将其进行整合。并在实践教学环节中安排相应的指导老师对学生进行必要的指导和帮助,为学生提供分析思路,解决学生项目完成中碰到的实际问题。

2 研究拟达到目标

通过在单片机课程实践中结合高级语言编程思想,使学生在掌握单片机理论基础知识的同时,通过参与项目的分析、设计与实现,建立软件工程理念,具备一定的理论与单片机实物实践相结合、解决实际应用问题的能力。同时在完成项目的过程中,锻炼科研开发能力和科研论文写作能力,为大四的毕业设计和毕业论文的顺利完成奠定基础,并为以后工作中的理论与实践相结合奠定良好的基础。

使学生在单片机课程实践和高级语言程序编程实践相结合的实践教学环节中,利用所学的单片机系统原理和C语言程序设计基础知识设计单片机应用系统,解决单片机系统应用中的实际问题,掌握高级语言编程思想,借助相关编程工具,完成一个小型项目的自主分析、设计与实现。

3 主要研究方法

教师提供部分项目供学生选择,学生亦可自拟项目,但课题的选择要由教师审查核准。项目尽量选择实际需求的题目,让学生走出校园,通过调查走访,了解国内单片机应用发展的状况,开阔眼界,而且在开发一个真实项目的过程中,带来求知的源动力,激发学生自主学习的渴望以及创造力;对于虚拟项目,要求学生做到切合实际需求,能解决一定的应用问题,有一定的应用价值。

编程开发工具原则上推荐学生使用KEIL C,如果学生认为其它开发工具更适合可由学生自主选择。由于实际可用的编程开发工具与日俱增且不断更新,为此在课程实践中,对学生开发工具的选择不做过多限制,使得学生可以选择自己感兴趣的程序设计工具进行项目开发,既锻炼了学生自学的能力,又能让学生成为项目开发的决策者,这种主人翁意识使得学生变被动学习为主动学习,从而激发学生自主学习的积极性。

为了防止学生对课程实践任务敷衍了事,对课程实践的考核方式由原来的提交程序和文档改变为答辩的方式。且在集中教学环节之前就让学生明确单片机课程实践的任务,同时考虑在集中教学环节结束后适当放宽学生上交可运行的项目程序和课程实践报告以及组织答辩的时间,让学生能更好的延续自主学习的积极性并进一步完善项目的开发。

4 特色、创新及推广应用价值

通过将单片机课程实践和高级语言程序设计基础实验相结合,让学生在项目的分析、设计、与实现的过程中掌握单片机理论知识、单片机系统应用的设计方法和高级语言程序编程思想 ,提高自动化专业学生理论与实践相结合的能力,激发学生的学习积极性和主观能动性,提高学生解决实际应用问题的能力。

《单片机原理》课程实践教学,将单片机课程实践和高级语言程序设计实验两个教学环节有机整合,让学生能在该实践教学环节中综合运用单片机系统原理和高级语言程序设计基础以及相关编程思想等多种知识,培养初步的科研能力和科研论文写作能力以及团队合作精神。并通过组织课程实践答辩使学生进行类似毕业答辩的演习。

在自动化专业学生的单片机课程实践教学环节中,通过团队合作的方式,以共同完成项目为目标,让学生在单片机课程实践中综合运用所学的单片机系统原理和高级语言程序设计基础的理论知识来完成项目的分析与设计,并借助相关的编程语言来完成项目的编程实现。将原本独立但有高度关联的两个实践教学环节进行有机整合,可以让学生有更多的时间来系统而连续的综合运用所学的相关知识,进而更好的将理论与实践进行有机结合,激发学生的学习热情,提高学生的学习积极性。

第4篇:单片机程序设计范文

关键词: C语言;单片机;开发;应用

作为一种智能化工具,单片机的开发在传统上来说更倾向于使用汇编语言,而高级语言一直使用的甚少。但面对目前计算机领域技术发展的最新环境,汇编语言对于单片机开发来说已经不是最适合的编程语言了。从长远来看,将类似于C语言这样的高级计算机语言运用于单片机开发的技术虽然目前尚未成熟,但却是单片机开发技术更为完善和发展的大势所趋。

1 单片机的开发

近代计算机技术发展的突出特点是微电子技术的蓬勃兴起,作为微电子技术发展的代表,单片机逐渐被应用于生活的各个领域。它的出现使近代计算机技术向前迈进了一大步,更从系统分支上使计算机形成了两大系统分支:通用系统和嵌入系统。在现代电子系统中,单片机有其无可比拟的优越性:成本低、芯片体积小、性能好,因此,单片机的适用领域也非常广泛。在我们如今的生活中,单片机技术已成功被渗入到仪器仪表、家用电器、汽车机械等领域,是智能化工具的代表。

1.1 单片机开发的特征

目前单片机的开发主要具有以下特征:“扩展的串行方式、广泛的运用在片程序储存器技术、全盘CMOS化、8位机的主导地位、逐步使用C语言”[1]。上述特征概括性的展示了单片机技术目前的发展状况,其中,C语言的使用已经开始成为单片机技术开发的主要语言。

1.2 单片机开发的语言

应用于单片机开发的语言主要有两种:汇编语言与高级语言,其中高级语言以C语言为代表。汇编语言相较C语言来说具有较高的可控性,使用起来较为简便,因此在单片机开发中运用的较为广泛。随着目前处理器对C语言的运用逐渐增多,结合C语言相较于汇编语言来说具有更强的可移植性的特点,在对处理器内部结构的具体情况不甚清楚的状况下,处理C语言的编译器也可很快上手,因此,C语言比汇编语言更加适用于目前的单片机开发系统。

2 C语言应用于单片机开发

作为编译型语言,C语言兼具高级语言和汇编语言的特点和功能,因其自身强大的可移植性,C语言在单片机的开发应用中有很大的便捷性。C语言主导结构化的程序设计方式,自顶向下展开。使用C语言进行单片机开发,即使没有对单片机的硬件结构的详细了解,编译器也可以按照自顶向下的设计方式使变量储存单元得到合理有效的分配,如此设计出的单片机程序十分可靠易行。

2.1 特点

作为程序设计语言中的一种,C语言以其结构化的特征被广泛运用于程序开发。C语言具有以下特点:功能性强、结构性好、高度的可移植性(不同的机型都可运行,面向用户)。此外,相比于汇编语言,C语言这种编译型程序设计语言具有更强的可读性,这主要是得益于该种语言有功能强大的库函数、高效的编译能力和迅捷简便的运算。

使用C语言进行单片机开发程序的编写,程序开发者不用时时与硬件接触,能够将精力全部集中于思考程序的算法和功能,对于一些琐碎的细节问题可以大而化之不必过于在意,因此C语言比汇编语言更适应一般人的思维习惯,更能节省程序编写的时间。

除了上述两点之外,C语言在自身改进和扩充方面也是十分便捷的,这主要得益于它功能完善的程序结构,此种强大的程序结构很适合用来设计模块化程序。“自顶向下、逐步求精”是结构化程序设计的主要原则,C语言在应用于单片机系统开发时主要采用该种设计方法。这种方法的优势就在于可以使模块功能得到系统化的分工,每个模块有每个模块的任务。

2.2 C语言对单片机的优化

单片机开发目前被广泛应用于工业测控领域中的嵌入式系统,这是利用C语言对单片机系统资源的优化,这样的应用使得单片机开发所面对的工作环境和内容日趋复杂,最繁琐的便是软件的设计。由于工作任务艰巨,设计人员尤其需要考虑控制系统单片机的资源分配(软硬件方面),而单片机系统的资源量却不够充裕。这种不充裕主要体现为结构简单的CPU和片内结构以及缺少程序存储器等方面的资源。

基于以上原因,利用有限的资源做好C语言的程序设计成为单片机开发的关键环节。C语言作为高级计算机语言利弊并存,虽然优点很多,但是不能忽视的是,C语言由于生成代码长,造成占用存储空间大,基本在20%~50%左右,这就要求我们在具体操作的时候要知晓软硬件的任务所属,根据其不同的优势来分配任务,对系统任务也要做到预先分析。因此,当C语言运用于单片机开发时,对程序的优化是需要适当进行的。这不仅是C语言本身的特点所决定的,也是单片机开发的现状所决定的。

2.3 开发环境

以C语言编程的单片机应用开发软件有很多,其中KEILC51

以其完善的性能成为这其中的佼佼者。“这款软件既能编辑仿真,又能编译,它同时支持不同公司的以MCS51为架构的芯片,也支持汇编和C语言的程序设计”[2]。这款软件功能强大,尤其是在程序的调试和仿真软件方面具有卓越的功能,方便学习使用和投入工作。在这种单一却不失灵活的开发环境中,C语言被集成于统一的开发环境,“这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器”[3]。这种单一却不失灵活的开发环境有如下特点:

该软件的工程由三部分组成:源文件、开发工具选项、编程说明。该软件的特点就是一对多(一个工程对应产生一个或N个目标程序),从而构成多个组。

该软件可以满足用户浏览源文件的需求,且方便快速,可以寻找文件,全局搜索文件,在集成开发的环境下也可保证用户功能得以启动。“另外KEILC51可以在编辑器内编辑、调试程序,它能提供一种自然的调试环境,使你更快速地检查和修改程序”[4]。

2.4 C语言在单片机开发中运用的步骤

C语言在单片机开发中运用的步骤主要有:编写编译源程序和连接转换目标代码。除了这两方面的主要内容之外,当程序设计结束之后,还应该将“源程序转换成在单片机上能运行的HEX件,使单片机能执行编写好的程序”[5]。具体的C语言在单片机开发中的步骤如下所述:

1)安装软件。作为商业软件,我们在KEIL的网站上可以下载到软件的安装包,这个过程很简单,只要跟随软件提示安装即可。首先对安装包进行解压,然后打开SETUP.EXE文件,点击安装,按照提示输入序列号并在询问是否接受版权信息时点击接受按钮,最后按要求完成安装。

2)进行C源文件的创建工作。第一步建立新项目,在新项目中添加以前就有的程序文件或者建立新文件。第二步建立一个新的程序文件,找到新文件的文字编辑窗口,在其中编写程序,即可生成C源文件。

3)编译并调试。编译调试是C语言运用于单片机开发的中间阶段。这一阶段首先要求软件操作者调整到调试模式,然后使用仿真器在源程序的一级进行程序调试,调试的时候要注意对已建立的源文件纠错,同时编译源程序,在使用C51编译器的基础上生成目标文件或浮动的目标码模块。最后,将编译好的模块连接,生成文件。

4)最后进行生成HEX文件的工作。作为整个步骤的最后一步。生成文件对C语言的运用有着非常重要的作用,也使单片机开发在性能、功效上有了现实的意义。进行这一步首先要把目标文件生成HEX文件,该文件的主要功能是烧写芯片。该文件以Intel公司所提出的数据宽度为字节,“文件转换后所生成的HEX文件可以通过编程器写入单片机的程序存储器,也可以用仿真器进行调试”[6]。

3 总结

C语言在单片机开发中的运用目前比较广泛,它使单片机应用于生产生活的时候更为有效,同时极高的开发效率将单片机的使用推广到了生产生活的各个方面。面对目前计算机领域技术发展的最新环境,汇编语言对于单片机开发来说已经不是最适合的程序编写技术了。综上所述,C语言应用于单片机的开发对单片机在未来运用于更广阔的空间具有很大的促进作用。

参考文献:

[1]居水荣,单片机开发系统综述[J].半导体情报,2011(01).

[2]张亚力、贾英布,基于C语言在单片机技术的应用[J].农业网络信息,2011(05).

[3]董蕴宝、潘旭君,浅谈C语言在单片机中的程序设计[J].科学与技术信息,2009(11).

[4]牛余朋,谈谈C语言在单片机开发中的应用[J].电子制作,2009(01)

[5]赵亮、候国锐,单片机C语言编程与实例[M].北京:人民邮电出版社,2009.

[6]范寿康、王宁,单片微型计算机的应用开发技术[M].北京:人民邮电出版社,2009.

作者简介:

第5篇:单片机程序设计范文

Abstract: Based on the practice of C++ curriculum reform of electrical specialty in my school, considering from the problems of electrical specialty C++ programs in colleges and the actual needs of graduates of electrical specialty to the C++ course, this paper sums up content and method of C++ teaching reform of college electrical specialty in my school ,learning each other with relevant colleagues.

关键词: 学用并存;交叉融合;面向对象

Key words: studies co-exist with using;cross fusion;object-oriented

中图分类号:G71 文献标识码:A文章编号:1006-4311(2010)29-0245-01

0引言

随着工业现代化的进展,微机控制技术在自动控制中使用越来越多,其中基于PC总线的工控机系统占了相当大的部分。这些系统多数采用Windows操作系统,采用建立在Windows操作系统上的组态软件作为控制软件,因此,微机控制技术的发展对专科电类专业的程序设计语言的教学提出了更高的要求。传统的转科电类专业讲授Basic语言和C语言,这些语言已经不能满足对控制用的组态软件等的设计和维护的任务。C++语言是从C语言发展来的,它继承了C语言程序设计作为一门高级实用的程序设计语言,因此我校在2000年将C++程序设计语言引入电类专业的教学中,经过多年的学习实践,探索出了一部分经验,现总结如下:

1提高专科电类专业C++课程的定位准确性

专科电类专业主要培养获得电气工程师基本的训练,具有较高素质的综合性应用型高级工程技术人才,毕业生主要在生产一线工作,这就要求学生具有对较先进的计算机控制系统的设计和维护能力。专科电类专业C++课程的教学目标首先应是满足学生对VC++或VB总结学习,从而能够满足其对控制软件进行设计使用维护的要求。作为VC++或VB的基础,学生需全面掌握C++语言的基本概念和面向对象的程序设计的思想,因此,C++课程首先应是一门语言基础课,其次,电类专业的学生多数都学习计算机控制技术和单片机,而单片机的程序设计现在多采用C语言设计,因此学习C++需同时照顾到学生学习单片机程序的要求,所以C++课程同时也是一门专业实践课。

2提高C++课程教学内容的实用性

C++语言所涉及的概念很多,要全部学习需要很多的课时,对于专科电类专业的学生来说,课时往往都很少,因此,C++课程的教学内容应有所侧重,针对学生学习单片机课程的需要,理论联系实际,从实际应用出发,将C++语言中过程化语言的部分安排1/2以上的课时,其中函数的概念、数组的概念、指针的概念、结构的概念、三种程序的基本结构及流程控制语句应详细讲透。而针对继续学习VC或VB等程序语言的要求,引用、继承与函数的概念应是重点讲授的内容。

3C++课程教学方法研究

C++课程内容很多,专科学校所安排的课时较少,因此学生学习起来有一定的难度,教师需采取一定的方法来引导学生尽快掌握C++的精髓,实际教学中,我采取了以下方法:

3.1 联系实际,提高兴趣,学用并存单纯的语言学习往往比较单调、枯燥,因此学生往往厌学,在课程学习开始阶段,我们给学生放一些先进的计算机控制的现场画面,演示一下组态软件在计算机控制中的作用,并告诉学生这些软件是用建立在C++语言基础上的VC++等语言做成的,使学生看到C++语言的应用前景,从而树立起明确的学习目标,这样可以有效的激发学生学习C++语言的学习兴趣。

由于C++语言的前半部分是过程性语言部分,本质上是高版本的C,因此在学习的过程中,可以结合单片机的程序设计编一些短小实用的控制程序,并用单片机给学生作一些演示,让学生体会一下用C语言来设计程序相对于汇编语言的优点,同时用一些实际小问题,让学生自己编写程序,解决问题,学用并行,提高学生的兴趣和实际动手能力。

3.2 针对电类专业的特点,突出C++语言的控制特点电类专业的学生学习C++语言主要是以控制为目的,因此,在讲授C++时应突出其控制特色,C++语言程序的基本结构及流程控制语句、函数、指针、数组、结构的概念作为与单片机的控制有关的概念是C++的重要概念,结合单片机的C语言程序设计,让学生明白C++程序是函数驱动的,在讲述它的概念时,要突出它是面向对象程序设计的基础,具有在它的基础上控制用的组态软件才能够进行模块化设计,具有突出控制的特色。

3.3 突出对象,重点培养学生面向对象程序设计的思想现代计算机控制系统所有的组态软件种类很多,比如国外的IFLX,国内的组态王等,这些软件各有特色,但其共有的特色是可以自由组态,设计快捷方便,维护简单。而要实现这些功能,没有面向对象的程序设计语言的支持是不可能的,而C++语言正是由于引入了面向对象程序设计的思想后,才变得功能强大而使用灵活方便,因此在讲授C++程序设计语言时需重点培养学生面向对象程序设计的思想,让学生在面向对象程序设计的思想指导下来理解和掌握对象的概念,从而能够更好的理解组态软件的设计基础,有利于自己对组态软件的应用和维护。

3.4 从工程实际应用出发,加强课程之间的交叉融合C++课程理论性较强,因此从解决实际问题出发,将 C++语言程序设计和单片机应用与开发,以及拖动控制系统课程的部分内容进行有机整合,通过课程之间的交叉渗透,以及对实际调速问题的解决,提高学生的语言程序设计的应用能力。我校将C++语言程序课程设计、单片机应用课程设计,以及拖动控制系统课程设计结合一起,用C++语言程序设计,实现了对步进电机、交直流电机调速的微机控制。既提高了学生对课程的理解,又提高了他们的实践动手能力,效果突出,受到学生的好评。

第6篇:单片机程序设计范文

关键词:项目教学法 开放式程序设计 单片机教学

近年来,在职业教育教学改革中提到最多的就是项目教学法,总的来说项目教学法主要是改变以往教学模式中先从理论概念入手,先理论后实践,先学后用的模式,变为以职业活动导向的具体项目为目标的新的教育模式,这种从项目案例引出问题,从实践到理论,从具体到抽象,从个别到一般的新型教育模式就是“以项目为导向的教学方法”。

1.《单片机》课程应用项目教学法的必要性

目前几乎所有的中、高职院校在电类、计算机类专业中都开设了《单片机》课程,而传统的单片机教学大都还延续着“讲结构”“学指令”“背程序”的教学过程,由于单片机本身内部结构抽象,指令繁杂难记,最终导致学生“背”程序的局面。总而言之传统教学的枯燥繁琐使得大多数学生失去了学习的兴趣,因而对单片机教学方法的改革势在必行。

“项目教学法”最显著的特点是“以项目为主线、以教师为主导、以学生为主体”,改变了以往“教师讲,学生听”被动的教学模式,创造了学生主动参与、自主协作、探索创新的新型教学模式。这种教学模式在单片机教学中显得尤为适合,一个个鲜活的项目不仅有效的激发的学生学习的兴趣,而且项目联系生活实际,指令穿插其中,学习的过程也不会觉得枯燥无味了。

2.“开放式程序设计”与项目教学的巧妙结合

项目教学的灵魂是以学生为主体,以教师为主导,在以往单片机教学中教师往往直接给出学生实现任务的程序清单,针对程序清单上的指令一条条讲解,学生被动学习,指令听懂了还好,不懂就背,至于程序是怎么写出来的就更不清楚了。而项目教学首先在选题上必须接近实际,与其在一些传统的例程如求一个数的阶乘;把一个数从几加到几这样的题目中选择,不如选择类似控制循环彩灯的实际项目。

其次,我觉得用“开放式程序设计”的思想引导学生自主编写程序,跟有利于激发学生的学习兴趣,提高学生独立创新能力。即在教授给学生基本的程序设计方法后,针对某一项目不给出学生以标准程序清单,而让学生独立自主,发散思维,需要我们教师做的只是顺着他的思路去思考,帮他去完善,最后总结提高。这样的开放式编程往往会收到意想不到的效果,并且极大地调动了学生独立思考的能力、与学习的积极性,学生在课堂上都互相比着谁的程序更简单,谁的程序更优化,谁的思路更巧妙,真正的让学生变为学习的主体,教师作为辅助、引导。

3.“开放式程序设计”结合项目教学法在单片机教学中的具体应用

3.1确定项目任务

单片机常见的输出设备有发光二极管、LED数码管、点阵、液晶等,若要实现的人机对话功能,充分体现单片机强大的交互性,没有输入设备是万万不可的。而单片机常用的输入设备非键盘莫属。因而在完成以发光二极管和LED显示器为核心的前两个项目之后,怎样通过程序使键盘实现对单片机的控制将是本次项目完成的主要任务。

本次项目的名称是“键盘控制单片机输入输出”。作为一个完整的项目,它必须在“多学时、多任务、多相关知识链接”的模式下完成。本节课内容出自项目的第一个工作任务“指拨开关控制流水灯”。学生刚刚在课堂上刚刚完成了两个显示设备――流水灯与LED数码管部分的学习,如果这个时候把键盘部分学懂,正好能够完成用输入来控制输出,从知识的衔接上也比较合理。

3.2讨论制定计划

计划是项目教学成败的关键。若要完成工作任务,学习计划的制定容不得出现一点偏差,这个环节上一定要体现学生的团队协作能力,即分组后由组长组织组内讨论,组间讨论,教师把关,最后制定出完成的学习计划。整个过程知识上要跟前面项目充分衔接,技术上可以利用多媒体、互联网等手段,教师引导把握方向。

例如本次项目若要实现编写程序完成键盘对输出的控制,两部分知识储备必不可少,即硬件知识和软件知识。学生在上本节课之前,只对输出设备的硬件结构有所了解,输入设备的硬件结构还没有接触到。因此在完善好硬件知识的基础上,再学习用汇编语言相应指令编写程序,这样循序渐进才能完成教学任务。

在学生基本讨论完毕后,教师应引导学生明确本次课的重点、难点、关键的。我认为单片机的特点是以硬件为基础,以软件为核心,二者相互依存、缺一不可。由于电专业学生有电类课程作为基础,学习硬件知识难度不大;因此我将本课的重点确定为单片机软件的学习――控制转移指令的理解与熟练运用;本节课的难点是用不同编程思路实施同一任务;突破难点的关键是透彻理解程序每步运行过程。

3.3实施完成计划

按照确定的最优解决方案,学生独自或以小组方式在工作计划指导下完成工作任务。

在这个项目中学生会依次接受到三个不同的工作任务,学生会结合软、硬件知识独立在计算机上编写、调试程序。这个阶段颠覆了以前传统的教学方法即给学生程序、讲程序、学生敲程序的教学模式,而让学生逐步体会的工作理念是“放式程序设计”,即你写的程序没有对和错之分,只有实验现象与工作任务的相同和不同之分。而往往同一工作任务,学生经过思考后写出了不同思路的、不同种类的程序,且都达到了任务要求。这个过程我如果看到学生的思路跟我预计的标准思路对不上,我并没有否定,而是顺着他的思路去思考,帮他去完善。最后在全班找到最优化程序的同时,极大的开发了学生的思维发散能力。

拓展延伸很重要。我的拓展方法是在开放式编程的基础上对每次抛出的工作任务在完成后都马上做延伸。例如第一个工作任务“1个指拨开关控制1个灯亮”在完成后马上延伸到如何能控制灯只亮1秒钟呢?在开关抬起后怎么控制小灯马上熄灭呢?我认为通过知识的延伸能更好的锻炼学生思维的灵活性,光明白指令还不行,必须要达到熟练应用的目的。在本工作任务延伸完毕之后马上进入到下一个工作任务,之后再延伸,这样反复练习不仅拓展了学生的思路,而且学生编程、调试的效率也大大提高了。

3.4评价总结

在学生完成工作任务的同时引导学生注重成果体验分析与评价,当学生编写、调试好一个程序后马上用仿真软件进行仿真,观看效果。我这个阶段做的一是给做好的同学马上记录成绩,给予肯定表扬,对还没有完成的同学解决共性问题、给予鼓励。二是找出几名用不同思路编写的程序,把机房所有学生电脑屏幕依次切换到那几名同学的电脑上。让学生面向全班同学分析自己的编程思路,把自己的程序分享给大家。之后全班以分组讨论的形式自主研究他的成果,若有不同意见提出问题,该生马上与之探讨,教师辅助引导、掌控全局。这样做的好处是使学生学会与别人分享成果,感悟团结协作、主动探究的乐趣,充分建立起自己的自信心与主人翁意识。

4.课后反思

项目教学法改变了以往单片机课程传统的教学过程,为了达到教学目标、激发学生的学习兴趣与独立思考的能力,在课堂上给学生充足的时间与空间进行“开放式程序设计”,以学生为主体,引导学生自主、探究、合作学习。从中也体现了“做中教、做中学”的教育理念。由于采用了“开放式程序设计”并对每个工作任务进行了拓展延伸,学生对本节课的重点――熟练运用控制转移指令有了很好的掌握,而且由于方法得当本节课的难点也得到了很好的突破,最后90%的同学能够在规定时间内成功调试程序。

第7篇:单片机程序设计范文

关键词:单片机;主控制器;分控制器;有线通信;光亮度检测;零点检测 文献标识码:A

中图分类号:TP273 文章编号:1009-2374(2017)02-0007-03 DOI:10.13535/ki.11-4406/n.2017.02.004

1 概述

照明耗电是高校消耗电能比较多的一部分,目前很多高校教学楼并没有专人管理,有些学校虽然设了专人管理,但是管理模式落后,这些管理模式包括:设定统一的开启和关闭整座教学楼照明电源时间;设定统一的时间并分层送电。这些模式相比较无人管理,在一定程度上达到了节能的目的,存在着在白天光照良好的情况下教室灯具开启和在午休时间长明灯的现象,造成电能浪费。但是统一开启模式,并不能根据教室里实际需要开启的光源或者实际需要开启的教室数来启动照明系统,不能真正意义上达到节能的效果。

为此,本系统是以单片机为控制器的核心,根据高校某教学楼照明系统在实际运行中的情况,设计照明节能统一控制系统。该系统能够根据不同的环境下,统一安排对整个教学楼的照明进行控制,在既保证教室办公照度的前提下,又达到节能的目的,从而使照明的量和质达到一个平衡。

2 系统整体方案

根据功能要求,系统需要设计远程操作室的上位机系统,每个教室个体的下位机系统以及上下位机系统之间的通信系统。本设计选用单片机系统作为上下位系统的控制器,采用485半双工通信方式组建主从模式的通信系统。整个系统的结构框图如图1所示:

3 硬件电路设计

3.1 电源电路的设计

本系统设计了一个+5V的直流电源给单片机供电,该电路将市电220V交流电降压为10V交流电,再经过二级管桥式整流、电容滤波、LM7805稳压,最后输出一个稳定的+5V直流电,输出的电压偏差不超过0.1V,整体性能达到预期要求。

3.2 主控制器的电路设计

主控制器选用单片机(AT89S51),搭配键盘、数码显示、复位、晶振及通讯接口。

键盘主要是用硎淙胄畔,这些信息包括各种启停信号、分控制器地址号、复位等。本设计采用4×4矩阵式键盘,与单片机的P1并行口连接。每个按键对应一个功能,键盘行线与列线呈垂直排列分布,16个开关按键都放于行列的交叉处,键盘行线一端通过上拉电阻与电源连接,一端与P1口连接,分别为P1.4、P1.5、P1.6、P1.7,列与P1口的低四位连接,分别是P1.0、P1.1、P1.2、P1.3。

由于本系统显示要求不是很高,所以选用数字共阴极结构的七段LED管来显示。利用单片机的P.0端口控制管脚,为了满足LED管正常发光所需的电流,加入74HC245进行驱动。

3.3 分控制器电路设计

分控制器实现的控制和数据处理任务相对简单,采用单片机(AT89S2051),搭配晶振、实时时钟芯片、可控硅控制电路、零点检测电路、看门狗电路、通信接口电路。

利用硅光电池的短路电流与光照度成线性关系的这个特性,对光照亮度进行检测,再用LM324运算放大器对硅电池检测产生的电信号进行放大,将光电池传感器输出的0~0.5V电压放大为0~5V,提供给A/D转换模块用。

利用限流电阻和两个发光二极管组成电路,控制单片机P1.3接口点位的高低,从而控制发光二极管电路的通断,从而实现电压过零点的检测。

照明亮度控制系统是将前面放大的硅光电池信号强度与设定的亮度信号进行比较,根据差值情况调整输出电压来控制照明灯的亮度。输出电压的平均值,

利用单片机的定时器配合软件产生输出一定频率的方波,当电源电压VCC不变的情况下,改变波形的占空比α来改变输出电压的平均值。

3.4 RS485通信电路的设计

根据任务,本系统设计由一个主机带多个从机的通信系统。具体选用专用的485低功耗通信芯片(MAX485),用一对双绞线将各个接口连接起来实现。将该芯片的RO和DI端连接到单片机的RXD和TXD,利用单片机控制芯片的和DE端,接收数据时令=0,发送数据时令DE=1。另外,采用光电耦合器提高系统的抗烦扰能力。

4 系统软件设计

4.1 程序总体结构设计

本控制系统软件设计的总体结构如图2所示:

整个程序设计要完成照明启停、照明亮度调节、人机交互、通信控制这四大部分的控制任务。照明启停控制部分包括教室单一启停控制及全部教室统一启停控制;人机交互包括操作键盘系统和监视的数码显示系统。

4.2 照明启停控制程序设计

照明启停控制主要是分控制器接收主机发送的命令信息,利用485通信方式,适时反馈给主控制器信息,最后执行并完成任务。

4.2.1 全部启停控制程序步骤:

第一步:数据初始化。

第二步:调用键盘扫描子程序,并判别是否有启停控制信号输入;如果没有返回上一步,如果有进入下一步。

第三步:读取输入信号。

第四步:主控制器发送全部启停信号到各个分控制器。

第五步:各分控制器反馈给主控制器地址信号。

第六步:判别主、分地址是否一致。如果一致,主控制器给分控制器发送确定信号后返回;如果不一致,显示错误信息后返回。

4.2.2 单独启停控制程序步骤:

第一步:数据初始化。

第二步:主控制器发送给某分控制器地址信号。

第三步:分控制器系统判别地址是否与主控制器发送的一致。如果不一致,关闭该分控制器系统;如果一致,向主机汇报地址接收主机一致信息。

第四步:分控制器执行主控制器发送的启停信号。

第五步:执行完成后返回。

4.3 人机交互程序设计

4.3.1 键盘扫描程序设计。键盘扫描程序主要完成前面提到的启停控制、分控制器控制、确认等任务,由于动作的特殊性,需要在程序中考虑防抖,引入延时程序,在延时一段时间后再次键盘扫描,如果3次检测都有信号即可说明该按键确实动作。具体的程序流程如图3所示:

图3 键盘扫描流程图

4.3.2 显示程序设计。本显示系统主要是完成分控制器地址的显示,具体的程序流程:

第一步:数据初始化。

第二步:查表读取段码。

第三步:将上面的码送到驱动显示。

第四步:送信息给译码器选通低电位数码管。

第五步:判别显示是否完整。是结束返回;不是将显示的缓冲区左移并返回到第二步,继续往下执行。

4.4 RS485通信程序设计

4.4.1 主控制器通信程序设计。主控制器通信部分主要是完成向分控制器下达指令、接收分控制器反馈的各种信息。具体程序设计流程包括:

第一步:初始化。

第二步:主控制器向各个分控制发送地址帧。

第三步:判别是否为广播模式。如果不是,将等待从机信息反馈;如果是,执行下一步。

第四步:主控制器向分控制器发送数据。

第五步:等待分控制器应答,发送成果Y束并返回。

4.4.2 分控制器通信程序设计。分控制器通信部分主要完成:接收主控制下达的指令信息,将本控制器的地址、执行情况信息反馈给主控制器,然后确认信息准确后执行并完成任务。具体程序设计流程包括:

第一步:数据初始化。

第二步:判别主控制器发送的地址是否与本分控制器地址一致。如果一致,反馈给主控制器一致信息,然后到下一步;如果不一致,结束。

第三步:执行主控制器发送的控制任务。

第四步:反馈给主控制器执行成功信号。

第五步:结束返回。

4.5 照明亮度控制程序设计

照明亮度控制系统主要是完成PWM信号的占空比调节。具体程序设计流程包括:

第一步:数据初始化。

第二步:单片机输出一定频率的方波,并接收亮度检测信息。

第三步:判别亮度是否与设定值一致。如果一致,程序结束;如果不一致,执行下一步。

第四步:根据大小调节占空比,并返回检测。

5 结语

本文主要提出了一种教室节能智能照明控制系统的设计方案,并介绍了具体的软、硬件电路设计过程。该系统利用485构建的主从通信方式,完成主分控制器之间的信息传递与处理。各个分控制器能够根据主控制器发出的指令,完成各个教室照明系统开启、亮度调节且完成相应的显示任务。在一定程度上解决无专人设置或者有专人设置但是不能自主开启各教室、照明亮度调节的问题,更加有效地节能。但是在教室照明系统的实际运行中,发现由于学生步入教室行为的不确定性,学生进入教室后选择座位的不确定性等,如何将智能控制理论应用到单片机系统开发,实现更优的照明控制系统设计将是下一步研究的重点。

参考文献

[1] 李华.MCS-51系列单片机实用接口技术[M].北京:北京航空航天大学出版社,2003.

[2] 孙涵芳,徐爱卿.单片机原理及应用[M].北京:北京航空航天大学出版社,1996.

[3] 吴金戎,沈庆阳,等.8051单片机实践与应用[M].北京:清华大学出版社,2002.

第8篇:单片机程序设计范文

关键词:OBE(Out-Based Education) 单片机原理课程 计算思维能力 教学改革

中图分类号:G64 文献标识码:A 文章编号:1672-3791(2015)10(c)-0093-02

OBE(Outcome-Based Education)教育理念起源于美国,并在20世纪的后20年在一些发达国家发展起来的一种新的教育模式。随着其理念的普及与深入发展,OBE教育模式逐步成为工程教育人才培养的基础。OBE教育理念的实质是把学生在学习过程中的主体表现作为教育质量考核的重要指标,在人才培养的过程中强调学生的学习结果,并以此作为反馈教学活动质量的重要因素。

单片机原理及应用是电气工程、电子工程、自动化、通信工程等专业的核心基础课程。该课程主要包括了单片机的硬件结构,汇编指令和汇编程序设计,接口技术以及C程序设计技术,是一门实践性很强的课程。在传统的教学过程中,通常以教师为教学活动的主体,学生被动的接受课程知识,因此在这门实践为主体的课程中,学生很难达到应有的教学目标。此外,在该课程所配套的实验教学过程中,多数以验证性实验为主,部分学生在实验过程中目的性不强,很多的时候也只是看到了实验最终的一个现象,并没有深刻体会到实验过程中所涉及到的分析流程,并且在课程的考核上很多的时候都是以卷面考核的方式来进行,在考试过程中很多学生也只是靠僵硬的记忆来答卷,在试卷考核的内容中有一些灵活应用的地方就容易大量丢分,究其原因,很多的学生在学习过程中其目的就是考试及格,学习并不是源于学习的兴趣。

1 课程理论内容讲授环节设计

从学生的学习效果反馈来看,单片机这门课程难点很大程度上在于很多同学没有建立起利用计算机进行解决问题的思维方式,换言之,就是很多同学觉得单片机难学在于他们碰到程序设计问题的时候,很多时候无从下手解决,因此可以分析出在教学过程中的汇编指令,汇编程序设计以及高级语言程序设计时单片机教学的重点和难点。根据OBE理论就需要从新反向设计这部分的教学内容和教学手段,在讲授方式上教师应当注意由浅入深,课堂上适当增加程序分析和设计的内容,同时注重理论和实践相结合,可以选择一个适当的综合性题目,在题目的完成过程逐步掌握基本程序设计的要领。

基于OBE教育理念的教学方式就是以预期的学习产出作为目标,并通过产出的结果反向设计和课程相关的教学活动。在单片机原理及应用的授课过程中,制定课程的预期学习产出和相应的教学策略是实现OBE工程教育的重要前提。针对单片机原理及应用这门课程需要较高实践性的特定,同时优化理论教学和实验教学,激发学生的学习兴趣和动力。建立起学生自主学习的积极性,提高教学效率和改善教学效果。

2 实验教学环节设计

实验教学是本科教育教学工作的重要组成部分,是人才培养过程十分关键重要步骤,实验教学和理论教学在单片机这门过程中二者的关系是相辅相成的。在单片机原理及应用教学中,强化学生在实践教学环节的学习效果,有利于提高实践教学质量,提升学生实践能力、合作精神和创新意识。从人才培养的根本目的看,实践环节的意义在于实践理论,实现学生专业知识外化的转化能力。

在实验教学环节,优化实践教学方案,制订实验教学大纲,设计实践教学的环节和相关子项目,突出学生实践能力培养、重视实践教学效果、明确技能考核要求,充分体现课程体系下实践教学改革的总体思路,从根源上优化各专业的实践教学方案,以便形成科学且合理的实践教学体系。在制定电子信息类专业教学计划时,教学大纲的制定重视课程与实验内容的合理优化配合,避免理论知识与实践的重复或脱节;另外,充分体系课程知识结构发展和教学安排的组织、内容及方法的映射关系,避免重复的验证性实验项目,增加具有创新性、设计性、综合性的实验项目的实践教学体系,使学生在实验教学环节能提升其实践主动性、创新能力、求实及合作精神的作用。因此,构建科学、合理的实践教学体系对此实践教学目标产生深远的影响。

3 课程评价的考核目标和学习产出的关系

课程评价的考核目标引导和决定预期学习产出的结果,具有重要的导向作用。在单片机原理课程上实行相应的多元考核评价方法,多元化的评价模式包括两个方面,理论环节和实验环节。其中理论环节包括识记能力、理解能力和表达能力;实验环节包括实践能力、小组合作能力和创新意识。通过理论环节和实践环节测评的设定,过程考核和结果考核有机地结合起来,学习结果可体现为过程和结果两个方面。

4 结语

对大学生计算思维能力的培养已经成为工程教育界的共识,其最终目的是培养大学生的实践与思维相结合的能力,培养大学生利用已有计算机和数学基础发现和解决问题的创新能力。该研究通过对计算思维基本概念的界定,介绍了以计算思维能力培养为导向的单片机原理课程的教学改革现状,探讨了其中存在的问题,提出了相应的教学模式与解决策略。

参考文献

[1] 高凤梅,刘艳,张文超.“以学生为本”的《单片机原理》课程教学模式改革[J].高教论坛,2010(6):35-36.

[2] 顾佩华,李N平,沈民奋,等.以设计为导向的EIP-CDIO创新型工程人才培养模式[J].中国高等教育,2009(Z1):47-49.

[3] 刘光蓉.以计算思维能力培养为导向的C程序设计实验教学[J].实验技术与管理,2013(1):154-156,191.

[4] 邓磊,姜学锋,刘君瑞.实施专业融合,提升理工科学生的计算思维能力[J].工业和信息化教育,2013(6):15,37-41.

[5] 马宝山,刘剑桥,金国华,等.单片机应用课程设计教学改革探讨[J].实验科学与技术,2015,13(2):103-104.

[6] 顾佩华,沈民奋,李升平,等.从CDIO到EIP-CDIO――汕头大学工程教育与人才培养模式探索[J].高等工程教育研究,2008(1):12-20.

第9篇:单片机程序设计范文

关键词:单片机;温度测控;控制系统

温度测控在工业领域具有广泛的应用,随着传感器技术、微电子技术、单片机技术的不断发展, 为智能温度测控系统测控功能的完善、测控精度的提高和抗干扰能力的增强等提供了条件。由于单片机具有集成度高、功能强、体积小、价格低、抗干扰能力等优于一般 CPU 的优点,因此,在要求较高的控制精度和较低成本的工业测控系统中,往往采用单片机作为数字控制器取代模拟控制器。

1、控制系统原理

控制系统由硬件和软件两部分组成。其中硬件部分主要由信号采集与放大电路、温度补偿电路、A/D 转换电路、单片机电路几部分组成 。 软件包括单片机AT89C52 程序设计、单片机AT89C52 与AT89C2051 通信程序设计、单片机 AT89C2051 程序设计三个主要模块组成。

2、控制系统硬件设计

2.1信号采集与放大电路

采用 K 型热电偶获得现场的实际温度,温度采样范围为 0-400℃, 相应地转换的电压信号范围为 0—20mv。因为系统要控制 8 路工业电炉, 所以就要对 8 路温度进行检测采样和控制, 这里采用 CD4051 实现八选一通道选择。电压信号放大采用低零漂移的运算放大器 OP07, 差分双端输入, 可以有效地抑制共模干扰。

从热电偶获得的最大有效电压为 20mv, 而 ICL7135 满量程时的电压为 2V, 所以放大电路的放大倍数为 100, 该放大电路由运放 U4、U5 组成第一级差分武电路, U6 组成第二级差分式电路, 根据这一放大倍数来取电阻的阻值, 该放大电路的放大倍数可由下式计算:

Av=A1A2=(1+2R96/R95) (- R89/R98), 要保证 Av=-100, 取 R89=20K, 取 R98=20K。取 R96=20K, R95 为一电位器, 其取值范围之为 0-500。所以只要调节电位器 R95, 就可以满足要求。

2.2温度补偿电路

热电偶分度表是在冷端温度为 0℃时测定的, 热电偶在实际测量中, 当冷端的温度不是 0℃时, 就不能直接利用分度表得知温度值, 因此必须对热电偶冷端进行温度补偿修正。热电偶测温电路中要有冷端温度补偿电路、冷端补偿方法较多, 这里采用冷端温度补偿器来实现温度补偿。该补偿电路的工作原理是热电偶产生的电势经滤波放大后有一定的灵敏度, 采用温敏二极管组成的测量电桥的输出经放大器放大后也有相同的灵敏度。将这两个放大后的信号再通过增益为 1 的运算放大器相加, 则可以自动补偿冷端温度变化引起的误差。

2.3A/D 转换电路

因温度是一个缓慢变化的过程, 对采样速率要求不高,为提高抗干扰能力,采用双积分 A/D 转换器。

本文采用 MAXIM 公司的 ICL7135,MC1403 芯片为 ICL7135 提供基准电压。通常情况下, 设计者都是用单片机来并行采集 ICL7135 的数据, 在这里, 作者采用单片机对 ICL7135 进行串行数据采集, 利用该方式具有结构简单、占用单片- 机资源少等特点。

在 ICL7135 与单片机系统进行连接时,如果使用 ICL7135 的并行采集方式, 则不但要连接 BCD 码数据输出线, 又要连接 BCD 码数据的位驱动信号输出端, 这样至少需要 9 根 I/0 口线, 因此, 系统的连接比较复杂, ICL7135 的串行接法是通过计脉冲数的方法来获得测量转换结果的, 可以通过单片机的定时器 TO 或 Tl 来作计数脉冲器, 定时器 TO 所用的 CLK 频率是系统晶振频率的 1/12, 因此可利用单片机的ALE 信号经 74LS74 分频后作为 ICL7135 的脉冲(CLK) 输入, 便可得到定时器 TO 所使用的频率与单片机系统晶振频率的关系, 以及ICL7135 所需频率输入与单片机系统晶振频率的关系。为使定时器TO 计数脉冲与 ICL7135 工作所需的脉冲同步, 可以将 ICL7135 的BUSY 信号接至 AT89C52 的 P3.2(INTO) 引脚上, 此时定时器 TO 是否工作将受 BUSY 信号的控制, 并且将定时器 TO 的选通控制信号GATE 位置 1。ICL7135 的输入电压与 TO 计数脉冲成线性关系,ICL7135 满量程时对应的有效计数脉冲为 20000, 可以得以下公式:

fIN=VIN/VMAX*20000=VIN/VR*1000, 式中: fIN 为对应输入电压VIN 的计数脉冲, VMAX, VR 分别为 ICL7135 的最大工作电压和基准电压, 且有 VMAX=2VR, VR 工作时事先通过 MC1403 输出端电位器调好。

只要 VR 非常准确, 且准确测量出 VIN, 因 ICL7135 和 AT89C52的精确度都非常高, 故得到的 fIN 也可达到很高的精度。

2.4CPU 电路

之所以要用 AT89C52 和 AT89C2051 两个单片机, 主要是考虑到 AT89C52 要实现的功能比较多, 负荷较重, 且其片内 RAM 空间已全部分配完所以采用 AT89C52 作为系统的核心控制芯片, 用 AT89C52 用于产生 PWM波形去控制固态继电器的导通与截止。

3、控制系统的软件设计

3.1单片机 AT89C52 程序设计

包括主程序设计和中断采样程序设计, 要对 8 路温度进行循环采集, 通过定时器 T2 每隔 1s 定时对 8路温度进行顺序采集, 这就要对通道选择, 这可通过 AT89C52 的P2.0、P2.1、P2.2 对多路开关 CD4051 的地址引脚 A0、Al、A2 进行控制而实现在采样中断子程序中, 要对看门狗计数器清零, 这可通过AT89C52 的 Pl.1 来控制 MAX813L 的 WD1 引脚实现,每次进人中断采样时, 给 MAX813L 的 WD1 引脚一个脉冲, 从而对其内部计数器清零。获得采样数据后, 要进行处理, 加热模式判别, 与 AT89C2051 进行通信, 将获得的控制量传送给 AT89C2051 以实现PWM波形的生成, 偏差和偏差变化率存取计算。

3.2单片机 AT89C2051 程序设计

利用 AT89C2051 来完成 PWM波形的发生AT89C52 只需将经运算后得到的控制量送 给AT89C2051,这样, AT89C52 的负荷就减轻了,有利于提高整个系统的工作性能。而 AT89C2051 只管 PWM波形的发生, 有利于提高控制精度, 获得较好的实时性,且电路结构相当简单,八路输出, 只需要一片AT89C2051,和一个简单的驱动电路。其工作过程也十分简单:AT89C2051 经软件算法后获得 PWM波形,八路输出采用循环输出,因每路数据的更新时间非常短,不会影响控制的实时性,然后通过驱动电路驱动后去控制固态继电器的闭合时间。