单片机开发范文

时间:2023-03-13 13:33:33

单片机开发

单片机开发范文第1篇

关键词:单片机;自动控制系统;开发

1 前言

基于单片机的特点,单片机在自动控制系统开发中得到了重要应用,不但提高了自动控制系统的性能,同时也满足了自动控制系统的开发需求。考虑到单片机的应用情况,在单片机开发过程中认真总结经验,做到掌握单片机的特点,重点做好单片机的开发。结合单片机开发实际,要想提高单片机开发的实效性,就要从明确功能目标、合理设置硬件电路和做好控制程序设计等方面内容。因此,在单片机开发过程中,应重点做好以上几方面工作,保证单片机开发取得实效。

2 单片机开发应明确功能目标

在单片机开发过程中,单片机作为自动控制系统的核心部件,决定着自动控制系统的功能。基于这一认识,在单片机开发过程中,明确功能目标是十分必要的。为此,应从以下几个方面入手:(1)单片机开发应确定开发方向。由于单片机的功能较多,以单片机为基础可以开发出多种自动控制系统。基于单片机的这一特点,在单片机开发过程中,只有确定开发方向,并在开发方向上做好单片机配置,才能保证单片机开发达到预期目标。因此,确定开发方向,是保证单片机开发取得实效的关键;(2)单片机开发应确定自动控制系统功能。在单片机开发过程中,除了要明确开发方向之外,在开发方向框架下确定自动控制系统的功能,是满足单片机开发需要的重要步骤,关系到单片机开发的整体质量,并决定了单片机开发能否实现预定功能。因此,确定自动控制系统功能,是单片机开发的关键;(3)单片机开发应把握开发原则。单片机作为自动控制系统的重要元件,不但决定了自动控制系统的功能,同时也是自动控制系统开发的关键。因此,在开发过程中应把握高效性、全面性和合理性的原则,保证单片机开发能够取得积极效果,进而满足单片机开发需要,使单片机开发取得积极效果。

3 单片机开发应合理设置硬件电路

在单片机开发过程中,硬件电路的设定关系到单片机控制功能的实现,对单片机开发具有较强的决定作用。基于单片机开发实际,合理设置硬件电路,是保证单片机开发取得实效的关键措施。为此,单片机开发应将设置硬件电路作为重要内容,具体应从以下几个方面入手:(1)单片机开发应根据功能需要合理设置硬件电路。在单片机开发过程中,单片机的硬件电路布置决定着单片机的整体功能。基于这一特点,只有根据功能需要合理设置硬件电路,并保证硬件电路的合理性,才能提高单片机开发的整体质量,进而满足单片机开发需要;(2)单片机开发在硬件电路设置中应优化电路板空间。由于单片机的电路板空间有限,要想实现更多的控制功能,就要在电路设置中对电路板空间进行优化,进而实现单片机的其他功能。因此,合理优化电路板空间,是保证单片机开发质量的关键,对单片机开发具有重要意义;(3)单片机开发应保证硬件连接质量。在单片机开发过程中,为了保证硬件电路质量满足实际需要,应对硬件连接的紧固程度进行确认,保证单片机的硬件连接质量达标,避免硬件脱落造成单片机的功能无法实现。因此,对硬件连接质量进行检查是十分必要的。

4 单片机开发应做好控制程序设计

在单片机开发过程中,控制程序设计是关系到单片机开发质量的关键。基于这一认识,做好控制设计是满足单片机开发的重要措施。以下为热敏电阻温度计的控制程序设计实例:

系统扩展了一个按键,接于IOA15,当按键按下时,就进行A/D转换初始化,并进行4次A/D转换,SPCE061A的A/D转换结果在高10位,每次将其移入低10位再计算4次平均值作为AD有效结果返回;为了提高准确度,变量TempAD、Temper都采用浮点数,计算完成用语音将温度值报出来。由于在放音时播放函数会改变一些参数,为了稳定起见,在每次A/D转换前都做一次初始化。

由于每个热敏电阻的特性并非一样、与热敏电阻串联的固定电阻的不准确等原因,每支温度计在整个测量范围内至少找5点进行校正,并适当的修改参数以达到最佳状态。

A/D转换程序:

.PUBLIC _ReadAD _ReadAD: .proc R2=4 //共进行4次转换

R3=0

TestLoop:

R1=[P_ADC_MUX_Data] //进行一次AD转换

R1=0x8000 TempConverLoop:

TEST R1,[P_ADC_MUX_Ctrl] JZ TempConverLoop //转换完成?

R1=[P_ADC_MUX_Data] //读取AD转换值

R1=R1 LSR 4 //将AD值移到低10位

R1=R1 LSR 2 R3+=R1 //四次A/D值累加

R2-=1

JNZ TestLoop

R3=R3 LSR 2 //结果除以4,求4次A/D值的平均值

R1=R3 //R1-------A/D返回值

RETF

ENDP

从上述程序来看,单片机在控制程序设计过程中,应根据自动控制系统的功能进行设计,并保证程序的准确性,使控制程序能够全面反映自动控制系统功能。

5 结论

通过本文的分析可知,结合单片机开发实际,要想提高单片机开发的实效性,就要从明确功能目标、合理设置硬件电路和做好控制程序设计等方面内容。因此,在单片机开发过程中,应重点做好以上几方面工作,保证单片机开发取得实效。

参考文献:

[1]肖洪兵.跟我学用单片机[M].北京:北京航空航天大学出版社,2002(08).

[2]何立民.单片机高级教程(第1版)[S].北京:北京航空航天大学出版社,2001.

[3]赵晓安.MCS-51单片机原理及应用[S].天津:天津大学出版社,2001(03).

[4]李广第.单片机基础(第1版)[S].北京:北京航空航天大学出版社,1999.

[5]徐惠民,安德宁.单片微型计算机原理接口与应用(第1版)[S]. 北京:北京邮电大学出版社,1996

单片机开发范文第2篇

关键词: 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.

作者简介:

胡建红,江西省电子信息技师学院,高级讲师,华中科技大学工程硕士。

单片机开发范文第3篇

关键词 单片机开发;仿真技术;应用

中图分类号TP368.1 文献标识码A 文章编号 1674-6708(2014)116-0216-02

截至目前,单片机正向着高的集成度、体积小、可靠、低功耗的方向发展,以便于生产出体积小方便携带的、高性价比的产品。现在,一些从业人员越来越重视单片机的开发应用。这当中最重要的也就是仿真技术,采用软硬件协同仿真的技术,来模拟应用的系统,以降低投资风险。

1 单片机仿真技术综述

单片机是一个芯片上集成了中央处理器CPU、存储器、定时器这些功能的完善的的计算机系统。单片机吸引了人们的极大关注,在单片机技术进步的同时也促进了电子通信、电气控制等领域的发展,逐渐成为当前应用中较为广泛的技术之一。但是在产品设计的过程中,需要进行技术代码的反复调试,随开发难度的增高产品的成本也会增加,阻碍了单片机开发的推广。

这些年来,像Proteus仿真软件的开发运用,计算机仿真技术的发展势头非常迅猛。与此同时,单片机仿真技术也有了进一步地发展。单片机仿真技术是一种综合性非常强的重要技术,它具有安全高效、较少受环境限制的优点。单片机仿真技术是以计算机为基础的软件应用,建立有关系统设计的模型实现模拟,对数据进行处理并作一定地分析,检验程序的正确性,采用动态的系统仿真模型测试真实的环境,及时发现潜在地问题并纠正。

然而单片机技术作为现代信息技术中隶属于计算机仿真的重要应用分支,在近年来也取得了较大的技术突破。单片机仿真中会应用到软硬件协同仿真技术,这项技术多是在硬件还没有准备好的条件下开展同仿真的验证。如此,软硬件协同仿真技术这一技术为单片机应用的开发提供了一个广阔的发展舞台,这一技术带给人们的如此大的惊喜。

2 仿真技术在单片机开发中的应用举例

现在软硬件协同仿真技术处理低级别的系统还是够用的,仿真模式包括软件调试、微处理器模式以及软硬件协同仿真技术RTL的描述。一般情况下,单片机开发中的仿真过程会有软件环境和硬件环境分别对应的控制接口,都需要通过晶振时间来分别完成硬件和处理器交互接入。在这里介绍了将软硬件协同仿真技术应用到电子琴系统应用中,以及如何在实践中完成软硬件协同仿真。

2.1 仿真系统总体设计

以电子琴系统为例,系统的硬件仿真及调试界面主要是基于仿真板,系统执行、监控断点、内部存储器和寄存器数据返回给硬件仿真板是单片机仿真软件的功能,在此同时单片机仿真软件执行产生和捕获功能,也会将系统内部模块的功能启动调用。本次例子的设计总体包括有AT89S51单片机、矩阵式键盘、音频模块及显示模块四部分。电子琴应用的硬件仿真设计电路图如下:

2.2 AT89S51单片机设计

AT89S51单片机总共有40个引脚,其内部存储器的前4K个字节被分配给了程序存储器,128个字节分配给了随机存储器,芯片周围具有32个外部双向口引脚,中断指针可以实现优先级的控制以及对应循环嵌套,2个定时器、计数器需要16位控制,芯片内置看门口程序功能,嵌入有晶振。芯片具备低功耗、高性能等特点。MCS-51指令集和80C51芯片的引脚结构系统仿真及开发的主要资料,采用非常高的密度,不容易丢失损坏内存的先进技术。对于系统开发的效率方面,可以将具有特定功能的控制应用拷入到芯片,以实现开发成本低、效率高的目标。

2.3 矩阵式键盘结构设计

在开发电子琴系统的过程中需要用到较多的按键,因此本次设计采用矩阵形式排列来完成设计。同直接连接的键盘相比,尽管矩阵式键盘的结构比较复杂,识别方式也相对繁琐,但这种矩阵式键盘的结构却能够很好地改善端口的利用率。电子琴系统中每个键的行、列线同引脚的连接都要间隔电阻元件,通过高低电平来实现设计。假如把行线作为输出端,不按键时,输出端是高电平“1”,表示没有按下按键;把列线作为输入端,有按下键时,输入端为低电平“0”,这样通过观察输入端的电平的高低就可以知道是不是有键按下。

2.4 音频模块设计

用AT89S51定时器记录一个音频脉冲,每经过一半的音频脉冲时间,就反向输出,一直反复,就产生不同频率的脉冲信号,通过蜂鸣器发出声音,形成动听的音乐,这就是该电子琴应用系统的音频模块。

2.5 显示模块设计

把共阴极数码管a-h这8个引脚连接到AT89S51单片机的P2端口的P2.0~P2.7,来形成电子琴系统应用的显示模块,数码管在应用中可以将数字0~9显示出来。

总而言之,系统仿真及开发都要考虑到软件及单片机的实际情况,仿真模拟运行并验证软件的可行性,在设计前期尽可能地发现系统设计的潜在问题,及时地纠正问题避免投资的浪费,攻克单片机技术的设计开发成本高这一难关。

3 结论

结合以上内容,开发人员对软硬件协同仿真技术的使用中可以更加高效地应用仿真模拟功能,便捷开发的过程。这也表明了,软硬件协同仿真这一技术在进行系统应用设计的调整上能更方便更快速,在设计实现应用系统的前期能更好地验证应用的可行性,更好地进行软硬件的检测。这一技术在单片机技术设计开发仿真能力中是最最方便且实用性很强的工具,由此也可以得出,利用单片机技术开发应用时,这一种仿真技术是特别值得推广的值得宣传的先进技术。可以笃定,随着信息技术越来越快地发展和单片机仿真技术越来越完善,单片机仿真技术能够运用到生活的方方面面,利用单片机技术设计开发应用,通过运用单片机仿真技术,来获得效益的最大化。

参考文献

[1]韩洪照.仿真技术在单片机中的开发应用[J].科技创业月刊,2011(3):75-76.

[2]吴曼荔,齐志艺.单片机的开发技巧及其应用[J].电子科学,2009(1):108-109.

单片机开发范文第4篇

关键词:串口通信;单片机;开发;应用

中图分类号:TP311.52 文献标识码:A文章编号:1007-9599 (2011) 06-0000-01

Serial Communication Application in the MCU Development

Yuan Beijia

(Information Engineering,Zhengzhou University,Zhengzhou 450001,China)

Abstract:Serial communication as a computer communications,the development process of the computer,has been rapid development and wide application.With SCM technology continues to expand and develop in the microcontroller serial communication has also been widely used and developed.

Keywords:Serial communication;MCU;Development;Application

随着电子继承技术的发展,现在的单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统。由于其功能不断的增强,相对通信的功能要求也就更高,因此串口通信技术在单片机的设计和使用中得到了广泛的应用。

一、串口通信的原理

不同的通信方式的有着不同的通信原理,串口通信采用的是按位(bit)来进行操作的,因此相对于按照字节(byte)来操作的通信方式速度要慢。但是串口通信也要他自身的优点,串口采用的是三根线来完成通信功能,一根线来实现数据的发送和接手,另外两个线来实现串口的控制。它虽然慢,但是可以实现远距离的传输,根据串口的配置模式的不同可以实现同步和异步两种传输方式。因此在实现串口的通信的时候必须要对相应的参数波特率、数据位、停止位和奇偶校验进行设置。

二、串口通信的模式

根据串口通信的特点和方式将串口通信的模式可以分为两类,分别是同步传输和异步传输两类。所谓的同步传输就是需要有共同的时钟源。只有收发双方都有相同的时钟源,才能够保证数据的正确发送和接收。传输的每组数据必须加上同步字,不允许有空隙,在没有信息要传输时,填上空字符,传输的同事还要传输时钟信号。异步传输则不需要相同的时钟源,但是不能相差的太多。不能超过允许的范围。相比之下,同步传输的效率比异步传输的效率高,但是匹配时钟相对比较的复杂,一旦匹配不上,就会发生错位。因此在实际的应用过程中异步传输使用的范围相对较广,出错的几率相对较小,应用的比较广泛。

三、串口通信在单片机开发中的应用

(一)硬件设计。本文主要讨论的是串口通信在单片机开发过程中的应用。根据单片机的设计流程,首先是进行硬件的设计,也就是根据项目的需求完成相应的元器件的选型,包括控制器、电平转换芯片等等,进行硬件方案的设计。根据需求的不同采取不同的工作模式,设计不同的工作电路完成对串口通信的硬件设计。

(二)软件设计。串口通信的软件设计可以分为两部分,分别是上位机和下位机软件设计。最终来实现利用串口进行通信。

1.上位机软件。上位机是指人可以直接发出操控命令的计算机,因此他软件根据平台的不同编写的时候采用的开发语言和环境也不同。以下以常见的PC机为例来介绍上位机软件的开发,采用vc++来实现。PC机与单片机进行串行通信前,首先要分别对各自的串口进行初始化,确定串口的工作方式、波特率、数据格式等。本例中约定,PC机与单片机之间串行通信使用PC机的串口1(COM1),波特率为9600bps,数据格式为8个数据位、1个停止位、无奇偶校验位。具体过程如下所示:

建立一个基于对话框的MFC应用程序ScommTest。添加控件MSComm,选择Project菜单下Add To Project子菜单中的 Components and Control选项,在弹出的对话框中双击Registered ActiveX Controls项,则所有注册过的ActiveX控件出现在列表框中。初始化串口的工作模式,波特率,数据格式。设置好串口的格式和参数后,进行串口的读写操作。

2.下位机软件。下位机是直接控制设备获取设备状况的计算机,上位机发出的命令首先给下位机,下位机再根据此命令解释成相应时序信号直接控制相应设备。下位机随时读取设备状态数据,转化成数字信号反馈给上位机。为了节省下位机的资源和时间,下位机软件采用汇编来实现,执行速度快。

(1)串口初始化

OV TMOD,#20HMOV TH1,#0FDHMOV TL1,#0FDHSETB TR1MOV SCON,#50H SETB EA SETB ES

(2)串口发送及显示

CJNE A,#7DH,LP DEC R0 MOV P0,#07CH LCALL DELAYLJMP MLP:CJNE A,#0BDH,LOOP3LOOP0:DEC R0CJNE R0,#29H,LOOP5INC R0LJMP MAINLOOP5:MOV P0,#77HMOV A,@R1MOV SBUF,A MOV P0,#77HJNB TI,$CLR TIMOV P0,#77HLCALL DELAY INC R1LJMP MAIN

(3)串口接收及显示

MOV A,SBUFMOV 30H,AMOV DPTR,#TABLE2MOV R4,#0FFH MOV A,SBUF

四、结束语

串口通信的应用随着嵌入式技术的不断更新和发展,正在发生着巨大的变化。单片机作为嵌入式领域的重要组成部分,使用也越来越广泛。串口通信作为单片机通讯的重要方式之一,其应用的领域也将越来越广泛。因此这种通信系统的研究和使用具有很大应用价值。

参考文献:

[1]李建设.单片机的串行通信接口技术探讨[J].现代电子技术,2005,18

[2]董学义.PC机与单片机的串行通信设计[J].科技资讯,2007,13

单片机开发范文第5篇

关键词Microchip单片机功耗编程

由美国Microchip公司生产的PIC系列单片机,由于其超小型、低功耗、低成本、多品种等特点,已广泛应用于工业控制、仪器、仪表、通信、家电、玩具等领域,本文总结了作者在PIC单片机开发过程中的一些经验、技巧,供同行参考。

1怎样进一步降低功耗

功耗,在电池供电的仪器仪表中是一个重要的考虑因素。PIC16C××系列单片机本身的功耗较低(在5V,4MHz振荡频率时工作电流小于2mA)。为进一步降低功耗,在保证满足工作要求的前提下,可采用降低工作频率的方法,工作频率的下降可大大降低功耗(如PIC16C××在3V,32kHz下工作,其电流可减小到15μA),但较低的工作频率可能导致部分子程序(如数学计算)需占用较多的时间。在这种情况下,当单片机的振荡方式采用RC电路形式时,可以采用中途提高工作频率的办法来解决。

具体做法是在闲置的一个I/O脚(如RB1)和OSC1管脚之间跨接一电阻(R1),如图1所示。低速状态置RB1=0。需进行快速运算时先置RB1=1,由于充电时,电容电压上升得快,工作频率增高,运算时间减少,运算结束又置RB1=0,进入低速、低功耗状态。工作频率的变化量依R1的阻值而定(注意R1不能选得太小,以防振荡电路不起振,一般选取大于5kΩ)。

另外,进一步降低功耗可充分利用“sleep”指令。执行“sleep”指令,机器处于睡眠状态,功耗为几个微安。程序不仅可在待命状态使用“sleep”指令来等待事件,也可在延时程序里使用(见例1、例2)。在延时程序中使用“sleep”指令降低功耗是一个方面,同时,即使是关中断状态,PortB端口电平的变化可唤醒“sleep”,提前结束延时程序。这一点在一些应用场合特别有用。同时注意在使用“sleep”时要处理好与WDT、中断的关系。

图1提高工作频率的方法

例1(用Mplab-C编写)例2(用Masm编写)

Delay()Delay

{;此行可加开关中断指令

/*此行可加开关中断指令*/movlw.10

for(i=0;i<=10;i++)movwfCounter

SLEEP();Loop1

}Sleep

decfszCounter

gotoLoop1

return

2注意INTCON中的RBIF位

INTCON中的各中断允许位对中断状态位并无影响。当PORTB配置成输入方式时,RB<7:4>引脚输入在每个读操作周期被抽样并与旧的锁存值比较,一旦不同就产生一个高电平,置RBIF=1。在开RB中断前,也许RBIF已置“1”,所以在开RB中断时应先清RBIF位,以免受RBIF原值的影响,同时在中断处理完成后最好是清RBIF位。

3用Mplab-C高级语言写PIC单片机程序时要注意的问题

3.1程序中嵌入汇编指令时注意书写格式见例3。

例3

…………

while(1){#asmwhile(1){

……#asm/*应另起一行*/

#endasm……

}/*不能正确编译*/#endasm

……}/*编译通过*/

……

当内嵌汇编指令时,从“#asm”到“endasm”每条指令都必须各占一行,否则编译时会出错。

3.2加法、乘法的最安全的表示方法见例4。

例4

#include<16c71.h>

#include

unsignedinta,b;

unsignedlongc;

voidmain()

{a=200;

b=2;

c=a*b;

}/*得不到正确的结果c=400*/

原因是Mplab-C以8×8乘法方式来编译c=a*b,返回单字节结果给c,结果的溢出被忽略。改上例中的“c=a*b;”表达式为“c=a;c=c*b;”,最为安全(对加法的处理同上)。

3.3了解乘除法函数对寄存器的占用

由于PIC片内RAM仅几十个字节,空间特别宝贵,而Mplab-C编译器对RAM地址具有不释放性,即一个变量使用的地址不能再分配给其它变量。如RAM空间不能满足太多变量的要求,一些变量只能由用户强制分配相同的RAM空间交替使用。而Mplab-C中的乘除法函数需借用RAM空间来存放中间结果,所以如果乘除法函数占用的RAM与用户变量的地址重叠时,就会导致出现不可预测的结果。如果C程序中用到乘除法运算,最好先通过程序机器码的反汇编代码(包含在生成的LST文件中)查看乘除法占用地址是否与其它变量地址有冲突,以免程序跑飞。Mplab-C手册并没有给出其乘除法函数对具体RAM地址的占用情况。例5是乘法函数对0×13、0×14、0×19、0×1A地址占用情况。

例5

部分反汇编代码

#include01A7081FMOVF1F,W

#include01A80093MOVWF13

;借用

unsignedlongValue@0x101A90820MOVF20,W

charXm@0x2d;01AA0094MOVWF14

;借用

voidmain()01AB082DMOVF2D,W

{Value=20;01AC0099MOVWF19

;借用

Xm=40;01AD019ACLRF1A

;借用

Value=Value*Xm01AE235FCALL035Fh

;调用乘法函数

……01AF1283BCF03,5

}01B0009FMOVWF1F

;返回结果低字节

01B10804MOVF04,W

01B200A0MOVWF20

;返回结果高字节

4对芯片重复编程

对无硬件仿真器的用户,总是选用带EPROM的芯片来调试程序。每更改一次程序,都是将原来的内容先擦除,再编程,其过程浪费了相当多的时间,又缩短了芯片的使用寿命。如果后一次编程的结果较前一次,仅是对应的机器码字节的相同位由“1”变成“0”,就可在前一次编程芯片上再次写入数据,而不必擦除原片内容。

在程序的调试过程中,经常遇到常数的调整,如常数的改变能保证对应位由“1”变“0”,都可在原片内容的基础继续编程。另外,由于指令“NOP”对应的机器码为“00”,调试过程中指令的删除,先用“NOP”指令替代,编译后也可在原片内容上继续编程。

另外,在对带EPROM的芯片编程时,特别注意程序保密状态位。厂家对新一代带EPROM芯片的保密状态位已由原来的EPROM可擦型改为了熔丝型,一旦程序代码保密熔丝编程为“0”,可重复编程的EPROM芯片就无法再次编程了。使用时应注意这点,以免造成不必要的浪费(Microchip资料并未对此做出说明)。

参考文献

1MicorchipPIC16CxxDataBook

单片机开发范文第6篇

关键词 microchip 单片机 功耗 编程

由美国microchip公司生产的pic系列单片机,由于其超小型、低功耗、低成本、多品种等特点,已广泛应用于工业控制、仪器、仪表、通信、家电、玩具等领域,本文总结了作者在pic单片机开发过程中的一些经验、技巧,供同行参考。

1 怎样进一步降低功耗

功耗,在电池供电的仪器仪表中是一个重要的考虑因素。pic16c××系列单片机本身的功耗较低(在5v,4mhz振荡频率时工作电流小于2ma)。为进一步降低功耗,在保证满足工作要求的前提下,可采用降低工作频率的方法,工作频率的下降可大大降低功耗(如pic16c××在3v,32khz下工作,其电流可减小到15μa),但较低的工作频率可能导致部分子程序(如数学计算)需占用较多的时间。在这种情况下,当单片机的振荡方式采用rc电路形式时,可以采用中途提高工作频率的办法来解决。 具体做法是在闲置的一个i/o脚(如rb1)和osc1管脚之间跨接一电阻(r1),如图1所示。低速状态置rb1=0。需进行快速运算时先置rb1=1,由于充电时,电容电压上升得快,工作频率增高,运算时间减少,运算结束又置rb1=0,进入低速、低功耗状态。工作频率的变化量依r1的阻值而定(注意r1不能选得太小,以防振荡电路不起振,一般选取大于5kω)。

另外,进一步降低功耗可充分利用“sleep”指令。执行“sleep”指令,机器处于睡眠状态,功耗为几个微安。程序不仅可在待命状态使用“sleep”指令来等待事件,也可在延时程序里使用(见例1、例2)。在延时程序中使用“sleep”指令降低功耗是一个方面,同时,即使是关中断状态,port b端口电平的变化可唤醒“sleep”,提前结束延时程序。这一点在一些应用场合特别有用。同时注意在使用“sleep”时要处理好与wdt、中断的关系。

图1 提高工作频率的方法

例1(用mplab-c编写) 例2(用masm编写) delay() delay { ;此行可加开关中断指令 /*此行可加开关中断指令*/ movlw.10 for (i=0; i<=10; i++) movwf counter sleep(); loop1 } sleep decfsz counter goto loop1 return 2 注意intcon中的rbif位

intcon中的各中断允许位对中断状态位并无影响。当port b配置成输入方式时,rb<7:4>引脚输入在每个读操作周期被抽样并与旧的锁存值比较,一旦不同就产生一个高电平,置rbif=1。在开rb中断前,也许rbif已置“1”,所以在开rb中断时应先清rbif位,以免受rbif原值的影响,同时在中断处理完成后最好是清rbif位。

3 用mplab-c高级语言写pic单片机程序时要注意的问题

3.1 程序中嵌入汇编指令时注意书写格式 见例3。

例3

…… …… while(1) {#asm while(1) { …… #asm /*应另起一行*/ #endasm …… }/*不能正确编译*/ #endasm …… }/*编译通过*/ …… 当内嵌汇编指令时,从“#asm”到“endasm”每条指令都必须各占一行,否则编译时会出错。

3.2 加法、乘法的最安全的表示方法 见例4。

例4

#include<16c71.h> #include unsigned int a, b; unsigned long c; void main() { a=200; b=2; c=a*b; } /*得不到正确的结果c=400*/ 原因是mplab-c以8×8乘法方式来编译c=a*b,返回单字节结果给c,结果的溢出被忽略。改上例中的“c=a*b;”表达式为“c=a;c=c*b;”,最为安全(对加法的处理同上)。

3.3 了解乘除法函数对寄存器的占用

由于pic片内ram仅几十个字节,空间特别宝贵,而mplab-c编译器对ram地址具有不释放性,即一个变量使用的地址不能再分配给其它变量。如ram空间不能满足太多变量的要求,一些变量只能由用户强制分配相同的ram空间交替使用。而mplab-c中的乘除法函数需借用ram空间来存放中间结果,所以如果乘除法函数占用的ram与用户变量的地址重叠时,就会导致出现不可预测的结果。如果c程序中用到乘除法运算,最好先通过程序机器码的反汇编代码(包含在生成的lst文件中)查看乘除法占用地址是否与其它变量地址有冲突,以免程序跑飞。mplab-c手册并没有给出其乘除法函数对具体ram地址的占用情况。例5是乘法函数对0×13、0×14、0×19、0×1a地址占用情况。

例5

部分反汇编代码 #include 01a7 081f movf 1f,w #include 01a8 0093 movwf 13 ;借用 unsigned long value @0x1 01a9 0820 movf 20,w char xm @0x2d; 01aa 0094 movwf 14 ;借用 void main() 01ab 082d movf 2d,w {value=20; 01ac 0099 movwf 19 ;借用 xm=40; 01ad 019a clrf1a ;借用 value=value*xm 01ae 235f call 035fh ;调用乘法函数 …… 01af 1283 bcf 03,5 } 01b0 009f movwf 1f ;返回结果低字节 01b1 0804 movf 04,w 01b2 00a0 movwf 20 ;返回结果高字节 4 对芯片重复编程

对无硬件仿真器的用户,总是选用带eprom的芯片来调试程序。每更改一次程序,都是将原来的内容先擦除,再编程,其过程浪费了相当多的时间,又缩短了芯片的使用寿命。如果后一次编程的结果较前一次,仅是对应的机器码字节的相同位由“1”变成“0”,就可在前一次编程芯片上再次写入数据,而不必擦除原片内容。

在程序的调试过程中,经常遇到常数的调整,如常数的改变能保证对应位由“1”变“0”,都可在原片内容的基础继续编程。另外,由于指令“nop”对应的机器码为“00”,调试过程中指令的删除,先用“nop”指令替代,编译后也可在原片内容上继续编程。

另外,在对带eprom的芯片编程时,特别注意程序保密状态位。厂家对新一代带eprom芯片的保密状态位已由原来的eprom可擦型改为了熔丝型,一旦程序代码保密熔丝编程为“0”,可重复编程的 eprom 芯片就无法再次编程了。使用时应注意这点,以免造成不必要的浪费(microchip 资料并未对此做出说明)。

参考文献

1 micorchip pic16cxx data book

单片机开发范文第7篇

【关键词】单片机开发 仿真技术 Proteus仿真软件 应用

随着电能路径技术在单片机开发技术中的应用,仿真技术水平在我国的贸易、科技领域发展较为迅速。单片机仿真技术的开发原理是依托于集中解决机器和多类I/O暂停系统的技术原理,集合集中解决机器和多类I/O暂停系统的硅片,将仿真技术的数据存放在硅片上,进而建立一个系统化、全面化、层次化的仿真开发技术系统。作为集中电能路径的重要组成部分之一的单片机,SCM、SOC、MCU是控制单片机仿真技术电能路径的三个主要环节。其特点使耗电容量少、在集中解决机器和多类I/O暂停系统可以灵活延伸、制造工序简单易懂、使用效率比较高。

1 单片机仿真技术概述

随着我国计算机水平和通讯技术水平的日益成熟,单片机仿真技术成为现代教育领域的一门教学课程。作为单片机的智能化体系主要组成部分之一的微小解决机器,其不仅承担着控制和检测复刻电能路径的责任,还要在电能路径受到电容量压力过大时调节电阻力,扮演调节角色。因此,对单片机仿真技术研究的核心内容是合理控制电阻力对微小解决机器的影响、调节电能路径,避免出现电阻容量过大或者电能路径受阻的情况。据算计技术和数字技术理论的日趋成熟促使了单片机发掘技术的发展,也为仿真技术模拟体系提供了理论基础。专家们在对单片机发掘技术理论进行研究的过程中,要运用任意存放机器设备的协调技术,保证仿真技术模拟技术在模拟平面得以正常施展,调节电能路径。模拟仿真技术的应用不当可以减少单片机的成本,节约研发费用和时间成本,还可以减低生产单片机的设定风险。因此,模拟仿真技术不仅为单片机的大量生产提供了成长舞台,还促进了单片机仿真技术的不断发展。

2 Proteus仿真软件的引入

计算机水平和通讯技术水平的不断提升,促使各类模仿体系的产生。各类模仿体系的产生一方面为技术人员研发单片机仿真软件节约了大量的人力、物力、财力,另一方面促使单片机仿真技术的诞生。Proteus仿真软件作为单片机仿真模拟体系中的一员,是集虚拟电能路径、数据电能能路径为一体化的仿真软件,不仅可以有效地将电能路径于模拟体系得到结合,还可以在计算机仿真技术中对电能路径的结构、单片机数据编码、电能路径理论模型进行虚拟制定和演练操作,把模拟仿真技术理论图表成功实践到单片机Proteus仿真软件中,依托与单片机编码的调节作用,从而生成PCB检测体系。

目前,Proteus单片机仿真软件与课堂教学试验融为一体,不仅提升了课堂教学的质量,将仿真技术与计算机合成技术得到有效整合,还能够降低软件开发过程中的费用成本支出。我国的Proteus仿真软件开发技术主要是结合设备设定生产、现代计算机开发技术、数字化研发技术的相关理论基础,利用模拟模仿研发范围,使Proteus仿真软件再工程软件开发领域、商品研发领域、服装贸易研发领域得到广泛应用,促进我国工程、服装贸易行业的快速发展。另外,工程的兼容研发和商品的循环研发时间是有严格标准的,即不能够超过模拟模仿研发环节的期末时间,确保商品的初始状态在模拟模仿氛围中得以真实展现。比如安装Proteus仿真软件系统中的LabView和Soliworks软件在器材上,不仅可以保障机械运用元素在仿真技术三维空间中正常应用,避免出现三维度运作操作出现失误或者失灵的现象。

3 单片机开发中仿真技术的应用

3.1 性能要求

设定多向研发应用设备的前提是遵循单片机仿真技术原理,研发适合克服需求的单片机模仿机器。技术研究人员在开发多向研发应用装备的同时,要考虑特殊客户对单片机仿真机器的性能要求,实现小组共享多向研发应用器材的目的。研发小组共享机器设备不仅可以帮助提升单片机器材的使用效率,还可以避免单片机器材在研发过程中出现反复投资器材的现象,为形成和谐的研发模拟模仿提供良好的条件。

3.2 多路开发器整体结构

多向研发运用板是多路开发器设定的条件之一,不仅可以为单片机完成仿真技术提供原理,还可以帮助多路开发器在模拟模仿计算机体系中达到仿真技术标准。仿真多路开发器的原理可以看出,技术研究人员在开发仿真多路开发器时,在模拟模仿软件系统中设置多个开发用户的目的是为了提升仿真技术的使用效益。其中,多路控制器控制着多个开发用户、多路请求电路、多路状态指示,单片机开发板在仿真多路开发器中居于核心位置,其存在的作用就是实现单片机仿真技术目标的标准化。

3.3 多路开发器电路设计

仿真多路开发器研究原理可以得出结论,多路控制器控制者多类客户主体机器,多类客户主体机器在受到多路控制器的严格控制下,根据单片机开发板的相关规定进行远程操控,以“多对一”或者“一对一”的形式开展模仿应用任务。所谓“多对一”形式就是多类客户对应一个单机片开发板,“一对一”就是一个客户对应一个单片机开发板。多路开发器电路设计的主要元素是电磁继电器和74LSO4反相器,作为构建一类单片机远程控制电能的数字化通讯设备,从而共同完成“多对一”或者“一对一”的模仿应用任务。

4 结束语

随着计算机处理水平和通讯技术水平的不断提升,以及Proteus仿真软件的引入,仿真技术在单片机开发中的应用越来越广泛。仿真技术在多路开发器电路中运转还比较顺利,不仅完成了“多对一”或者“一对一”的模仿应用任务,还提升了电能器材的使用效率。

参考文献

[1]程聪.关于仿真技术在单片机开发中的应用之探索[J].计算机光盘软件与应用,2015,01:145-146.

单片机开发范文第8篇

关键词:仿真技术;单片机;开发应用

现阶段,随着我国科学技术的发展,使得电能路径技术、仿真技术等在单片机的开发以及利用过程中发挥着重要的作用。事实上,单片机仿真技术在实际的运用过程中主要借助集合有解决机器以及多类I/O暂停系统的硅片而展开相关的工作。一般情况,需要相关的技术人员将仿真技术的数据存放在硅片之上,继而以此为基础推动系统化、全面化以及层次化的仿真技术系统的构建,并由此带动单片机的开发以及发展。

一、单片机仿真技术概述

近年来,随着我国科学技术的发展,尤其是计算机通讯技术的发展以及运用,使得单片机仿真技术逐渐产生,并在实际的应用过程中实现相关效益的取得。

事实上,在构建单片机智能化体系的过程中,微小解决机器作为该体系中的重要组成部分,其在实际的运用过程中不仅能够控制、检测复刻电能路径,还能够对电能路径的电阻力进行适时的调节,继而由此推动相关环节的有序进行。基于此,就使得相关部门以及人员在进行单片机仿真技术研究的过程中,控制好电阻力对于微小解决机器的影响,继而由此实现对于电能有效调节。

一般而言,计算机技术、数字技术的发展和运用促进了我国单片机发掘技术的发展,并促进了仿真技术模拟体系的构建。事实上,相关的专家以及技术人员在进行单片机发掘技术的研究过程中,逐渐加强了对于协调技术的使用,继而以此为基础,推动仿真技术在模拟平面的正常运用。

相关的实践显示,在单片机开发的过程中使用模拟仿真技术,其不仅能够实现单片机生产成本的降低,还能够促进单片机生产风险的降低。总的来说,随着相关技术人员以及专家在进行单片机开发的过程中加强了对于仿真技术的使用,从而促进了单片机的发展,继而由此推动相关效益的取得。

二、Proteus仿真软件的引入

事实上,随着计算机技术、通讯技术的不断发展以及应用,催生了大量的仿真技术以及模仿体系。事实上,这种情况的出现一方面实现了相关部门以及人员在进行单片机仿真软件研发的过程中,相关的人力、物力以及财力的节约,而另一方面则高效促进了单片机仿真技术的诞生。

作为单片机仿真模拟体系中最为常见的一环,Proteus仿真软件在实际的运行过程中,实现了虚拟电能路径以及数据电能路径的一体化。而这一状况的出现不但能够促进电能路径与模拟体系的有效结合,还能够在此基础之上,实现对于电能路径的结构、单片机数据编码等方面内容进行虚拟的制定和演练,并最终以此为依托,推动PCB检测体系的构建以及相关作用的发挥。

目前,Proteus单片机仿真软件在实际的运用过程中,逐渐与课堂教学试验融为一体。这种情况的出现就使得相关的教学质量得到了显著的提升,并促进了仿真技术与计算机合成技术的有效整合,推动软件开发费用的降低。现阶段,我国的相关部门以及技术人员在进行Proteus仿真软件开发的过程中,主要依托计算机开发、数字化等多种先进技术展开相关的工作。除此之外,在实际的软件开发作业过程中,需要相关的技术人员加强对于模拟研发环节期间的管控,从而以此为基础,促使商品的初始状态在模拟模仿氛围中得以真实展现。

三、单片机开发中仿真技术应用

现阶段,我国的相关部门在实际的生产管理过程中加强了仿真技术在单片机开发过程中的应用,继而以此为基础推动了相关作业效率以及质量的提高。关于仿真技术在单片机开发的应用过程中所需关注的相关的内容,笔者进行了相关总结,具体内容如下。

(一)性能要求

在推动仿真技术在单片机开发过程中的运用,需要相关技术人员在实际的操作过程中严格遵循单片机仿真技术的相关原理。不仅如此,在实际的运用过程中,还需要相关技术人员加强对于单片机仿真机器性能要求的了解以及把握,继而在此基础之上,实现多向研发应用器材的构建。事实上,这一措施的实施,不仅仅能够促进单片机器材使用效率的提高,还能够对单片机的器材在研发过程中反复投资现象的规避,继而以此为核心,为单片机的开发以及运用创造良好的条件。

(二)多路开发器整体结构

此外,在借助仿真技术进行单片机的开发过程中,需要加强相关研究人员对于多路开发器整体结构的构建。事实上,上述相关措施不仅可以为单片机完成仿真技术提供原理,还可以帮助多路开发器在模拟模仿计算机体系中达到仿真技术标准。

通过对仿真多路开发器的研究以及分析可以得知,技术人员在进行相关的开发过程中,加强了对于仿真多路开发器的开发,并在此基础上开设了多个开发用户,其目的就是在于能够以此为依托,推动仿真技术使用效益的不断提高。事实上,多路控制器的构造,能够在正常运行过程中对开发用户、多路请求电路等方面进行有效的控制。不仅如此,由于单片机开发板位于仿真多路开发器中的核心位置,所以能够推动单片机仿真技术在实际的作用过程中朝着标准化、合理化、科学化的方向发展。

(三)多路开发器电路设计

事实上,相关技术研究人员在对仿真多路开发器的原理进行研究分析的过程中发现:多路控制器在实际的运行过程中能够对多种客户主体机器进行科学、合理的控制。而客户主体机器能够在这种控制之下,依据单片机开发板的相关规定进行远程操控,一般情况下,其能够以“多对一”、“一对一”的形式推动模仿应用任务的完成。

所谓的“多对一”,指的就是多类客户主体机器对应一个单机片开发板,基于此就可以得知,所谓的“一对一”,指的就是一个客户主体机器对应一个单片机开发板。

一般情况下,多路开发器电路在实际的设计、构建过程中,主要依托电磁继电器以及74LS04反相器推动相关作业有效进行。不仅如此,多路开发器作为构建一类单片机远程控制电能的数字化通讯设备,在实际的使用过程中能够推动前文所述的“多对一”、“一对一”的模仿应用任务的完成。

结语:

随着科学技术的不断发展,尤其是计算机技术以及通信技术的进步,使得仿真技术应运而生,并在单片机的开发过程中发挥着重要的作用。本文基于此,主要分析了单片机开发的内涵,并就现在常用的protues仿真技术软件进行了具体的阐释,最后又针对仿真技术在单片机开发中的作用进行了分析。笔者认为,随着相关技术的使用,我国的仿真技术必将获得长足的发展,推动单片机的开发以及运用。

参考文献:

[1]薛晓鲲.仿真技术在单片机开发中的应用探讨[J].科技视界,2015,(6):124-125.

[2]程聪.关于仿真技术在单片机开发中的应用之探索[J].计算机光盘软件与应用,2015,(1):145-146

[3]李俊仕.试分析单片机开发中仿真技术的应用[J].电子技术与软件工程,2015,(24):258.

[4]李蒙.基于STC89单片机的实验教学系统[D].天津大学,2016.

[5]黄嵘.逻辑电路与单片机的虚拟实验系统设计与实现[D].北京邮电大学,2015.

单片机开发范文第9篇

【关键词】单片机;C语言;指针

C是一种编译型语言.有高级语言的特点,并具备汇编语言的功能,移植性能好,便于自顶向下结构化程序设计,C语言在单片机中的应用,给开发者带来了很大的方便.软件开发者不需要对单片机硬件的结构有很深人的了解,编译器可以自动完成变量存储单元的分配.使得单片机的程序设计更加简单可靠。指针、地址、数组及其相互关系是C语言中最有特色的部分。在编写单片机的应用程序时,常常需要对端口及存储单元进行寻址.因此,掌握指针在这些寻址过程的工作原理是很有必要的,这有利于编写灵活高效的程序。

一、指针结构声明

C语言中,对于指针的声明采用如下形式:类型标识符*指针变量名;由于单片机存储区的关系,所以单片机C语言的指针声明格式有别于普通C语言指针的声明格式,其格式为:

类型标识符[存储区类型]

指针变量名[指针变量存储区类型]

单片机C语言的指针的定义比普通C语言指针的定义多两个部分:存储区类型是指指针变量所指向的数据的存储区,可以是所有的数据存储类型;指针变量存储区类型是指指针变量的存放区域的数据,可以是data、ldata、xdata或pdata如下声明:

unsigned char xdata *data yc;

上声明语句是指在RAM(data)内声明一指针变量yc,该指针变量指向一无符号字符型数据,该无符号型字符存在xdata区内。 该指针变量的应用格式如下:

unsigned char xdata indata[6];

unsigned char xdata *data yc;

yc=indata;

其编译后的的汇编为:MOV 08H,#00H;0x08和0x09是在片内RAM存储区分配的yc指针变量的地址空间。

二、指针寻址的实现

单片机C语言的数组的寻址和普通C语言的寻址基本上是一样的,只是当数组存储在片内时,由于片内RAM资源十分有限,所以很难有比较复杂的数据结构,而且在编程过程中也尽量避免在片内RAM中使用较大的数组。

1.指向data区的指针寻址的实现

这是最基本的寻址方法,比如一个检测系统中,通过A/D转换把外部数据输入单片机中,单片机对这6次采样数据求和,具体程序如下:

unsigned char data inputdata[6];

unsigned int data sum,i;

unsigned char data * data yc;

void main()

{ sum=0;

collectdata( );/*采集数据函数,输入到数组inputdata中*/

yc=inputdata;

for(i=0;i

sum+=*yc;

}

2.指向程序存储区的指针寻址实现

指针指向数据存储区其其实质就是C语言中指向函数的指针这一概念,可以利用这种指针来实现函数指针调用函数。指向函数的指针变量定义格式为:类型标识符(*指针变量名)([参数1],[参数2]……);定义好后用(*指针变量名)([参数],[参数]……)即可调用这个函数。例如,主程序中要引用一个键盘扫描函数scan,程序如下所示:

Void scan()

Void main()

{ void (*yc)();

Yc=scan;

For(;;)

{(*yc)( );}

}

三、C51热启动代码的编制

对于工业控制计算机,往往设有看门狗电路,当看门狗动作使计算机复位,这就是热启动。热启动时,一般不允许从头开始,这将导致现有的已测量到或计算到的值复位,导致系统工作异常。因而在程序中必须判断是热启动还是冷启动,常用的方法是:确定某内存单位为标志位(如0x7f位和0x7e位),启动时首先读该内存单元的内容,如果它等于一个特定的值(例如两个内存单元的都是0xaa),就认为是热启动,否则就是冷启动,程序执行初始化部份,并将0xaa赋与这两个内存单元。

根据以上的设计思路,编程时,设置一个指针,让其指向特定的内存单元如0x7f,然后在程序中判断,程序如下:

void?main()

{?char?data?*HotPoint=(char?*)0x7f;

if((*HotPoint==0xaa)&&(*(--HotPoi-nt)==0xaa))

{?/*热启动的处理?*/??}

else

{?HotPoint=0x7e;/*冷启动的处理*/

*HotPoint=0xaa;

*(++HotPoint)=0xaa;

}

/*正常工作代码*/

}

然而实际调试中发现,无论是热启动还是冷启动,开机后所有内存单元的值都被复位为0,当然也实现不了热启动的要求。这是为什么呢?原来,用C语言编程时,开机时执行的代码并非是从main()函数的第一句语句开始的,在main()函数的第一句语句执行前要先执行一段“起始代码”。正是这段代码执行了清零的工作。C编译程序提供了这段起始代码的源程序,名为“startup.a51”,打开这个文件,可以看到如下代码:

IDATALEN?EQU?80H;the?length?of?IDATA?memory?in?bytes.

STARTUP1:

IF?IDATALEN??0

MOV?R0,#IDATALEN-1

CLR?A

IDATALOOP:MOV?@R0,A

DJNZ?R0,IDATALOOP

ENDIF

可见,在执行到判断是否热启动的代码之前,起始代码已将所有内存单元清零。如何解决这个问题呢?好在启动代码是可以更改的,方法是:修改startup.a51源文件,然后用编译程序所附带的a51.exe程序对startup.a51编译,得到startup.obj文件,然后用这段代码代替原来的起始代码。具体步骤是(设C源程序名为HOTSTART.C):

修改startup.a51源文件(这个文件在C51\LIB目录下)。

执行如下命令:

A51?startup.a51得到startup.obj文件。将此文件拷入HOTSTART.C所在目录。

将编好的C源程序用C51.EXE编译好,得到目标文件HOTSTART.OBJ。

用L51?HOTSTART,STARTUP.OBJ命令连接,得到绝对目标文件HOTSTART。

用OHS51?HOTSTART得到HOTSTART.HEX文件,即可。

对于startup.a51的修改,根据自已的需要进行,如将IDATALEN?EQU?80H中的80H改为70H,就可以使6F到7F的16字节内存不被清零。

四、结束语

单片机C语言的应用是十分灵活的,要充分发挥C语言的优势,对内外部数据和程序进行方便自如的操作,必须要掌握好指针的应用。

参考文献

[1]马忠棒.单片机的C语言应用程序设计[M].北京航空航天大学出版社,2001.

[2]曹聪,岳继光.单片机C语言指针的应用[J].微型电脑应用,2003.

单片机开发范文第10篇

【关键词】项目教学;单片机;开发板;实践

教育部正在酝酿一种改革,启动高校转型改革,1200所国家普通高等院校,将会有600多所也就是将近一半转向职业教育。那也就是说,培养技能型人才的高校比例将会大幅上升。我校为应用型本科院校,开展的应用型本科教育实际上就是本科的职业教育。

单片机原理及应用是我校电气工程及其自动化、自动化等专业一门非常重要的主干课程。单片机广泛应用在电力电子技术、工业自动化、智能仪器仪表等多个领域,但是相关工作岗位要求学生有很强的系统设计能力和项目开发的能力,如何培养技能型人才,让学生学以致用,实现毕业后与工作岗位的无缝对接,具备工作岗位的专业技能,对单片机相关课程现有的传统教学模式提出了挑战。

一、单片机项目教学法及其实践平台

目前,单片机课程传统的教学模式是“理论教学”、“课内实验”和“课程设计”。教学内容相对比较单一,综合训练和工程背景不强、,造成学生对单片机技术理解不透彻、实践动手能力普遍较弱。[1]

项目教学法主张先练后讲,先学后教,强调学生的自主学习,主动参与,从尝试入手,从练习开始,调动学生学习的主动性、创造性、积极性等,学生为主体,教师为主导,围绕具体的项目构建教学内容体系,通过师生共同参与完成一个具体的项目而展开的教学活动。项目驱动法教学是以实践应用为根本目标,在项目的教学实施过程中,学生按需学习,亲身实践,学习成为一个参与的创造实践活动,项目完成的过程有利于培养分析和解决问题的能力,加强对学生自学能力、创新能力的培养。[2]

在单片机项目教学法中引入单片机开发板,keil开发软件。

图1 单片机开发板

1.开发板简介

单片机开发板如图1所示,为单片机项目教学提供硬件环境。该开发板采用方便易学设计理念,各功能模块完全独立,互不干扰,模块之间用排线快速连接。一方面可以锻炼动手能力,同时可加强初学者对实验板硬件的认识,熟悉电路,快速入门;另一方面,因为各功能模块均独立设计,完全利用此板上的模块资源,可以根据自身需要构建一个相应的最小系统板。系统单片机采用宏晶STC单片机,该单片机集成Flash 程序存储器,并且具有 ISP在系统可编程功能,无需编程器,应用宏晶公司提供的下载软件,可由串口直接下载程序,几秒钟即可完成,为项目教学中的编程调试提供极大方便。

2.keil软件应用

Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。Keil提供一个集成开发环境(uVision),这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,和一个功能强大的仿真调试器。Keil软件在单片机项目教学过程中主要让同学学习单片机编程。

二、项目教学方法的实施

项目的内容是项目教学的基础,项目的设计是项目教学的最重要的环节,通过各个项目的实施,不仅要让同学掌握单片机的基础知识,还要培养同学的系统设计和开发能力。

本文将开发板提供的硬件环境和传统单片机教学内容相结合,打破传统单片机教材的章节结构,根据难易程度设计了三个层次的项目内容,每个层次由几个具体项目组成,每个项目大概4到8课时。[3][4]

1.基础训练

项目1:单片机认知,keil软件应用,下载软件应用。

主要内容:了解单片机的性能,单片机的引脚功能,学习使用keil软件开发平台,了解开发板的主要功能模块,开发板下载软件下载流水灯的程序。

实施效果:通过该项目的实施,让同学掌握keil软件的基本应用,对单片机系统开发过程有初步认识。

项目2:输入输出接口,led指示灯应用,按键,数码显示等。

主要内容:了解led灯,led数码显示,独立键盘,矩阵键盘等简单输入输出接口的原理及使用方法。

实施效果:上述输入输出接口是单片机相关项目的基础,通过该项目为同学在后续的项目实施过程中提供了简单的人机交互接口,使同学对单片机在各相关行业的应用有更加感性的认识。

项目3:单片机存储器结构,寄存器应用

主要内容:顺序结构程序,分支程序,循环程序,子程序等。

实施效果:通过该项目的实施主要让同学掌握单片机的编程方法,单片机各存储器的功能以及读写方法。

2.接口模块训练

项目4:单片机中断系统

主要内容:了解STC51单片机的中断系统结构,中断相关寄存器的功能,掌握中断的编程方法和中断电路的使用。

实施效果:中断时单片机与外设交换数据的重要手段,通过该项目的实施使同学对中断有了更深入的了解,掌握中断的编程方法,中断程序结构,中断在工程应用中的意义。

项目5:单片机定时器/计数器

主要内容:掌握STC51单片机定时器/计数器的结构,寄存器的功能,各种工作模式的特点,定时器/计数器的编程方法。

实施效果:项目分别针对实际生产生活过程中的应用进行了定时器,计数器的练习。

项目6:串行通信接口

主要内容:掌握STC51单片机串行通信接口的结构,寄存器的功能,各种工作模式的特点,串口的通信协议和编程方法。

实施效果:通过该项目的实施使同学了解串行通信的基础知识,完成单片机和PC(串口调试助手)之间的通信,完成两台开发板之间的通信(要求同学自定义通信协议)。

3.综合训练

项目7:SPI总线,A/D,D/A转换器的应用

主要内容:SPI总线的引脚功能,时序。项目选用具有SPI接口的A/D,D/A转换器。

实施效果:串行总线接口有很多优点,在单片机电路的扩展过程中使用更加广泛,通过SPI总线和A/D或D/A转化器项目的实施,不仅使同学掌握SPI总线,A/D,D/A工作原理和编程方法,而且让同学掌握单片机电路串行扩展的思想,引导同学自学I2C总线和单总线等串行总线。

项目8:温度可调声光报警系统

主要内容:温度采集,键盘设置温度的上下线,数码显示温度,声光报警,继电器输出。

项目所用模块组合如图2所示。

实施效果:该项目相对比较综合,难度较大,可以在此基础上增加加热,降温环境,实现闭合控制,很好的提高了学生综合能力。

图2 温度可调声光报警系统

综合训练项目可以根据实际情况具体实施。

三、结束语

基于单片机开发板的项目教学方法改变了“单片机理论教学+实验教学+课程设计”传统模式,并打破了传统课本单片机教学内容的结构。教学过程中,每个项目的实施都达到了很好的效果,并为我校学生参加的单片机类的全国大赛都取得的优异成绩奠定了基础。

另外,该开发板提供的模块很多,综合训练可以根据不同同学的学习情况进行单独设置。同学可以通过增加难度,增加模块功能,或者自行设计模块和开发板对接来完成毕业设计。

参考文献

[1]唐炜.基于“项目驱动”的单片机类课程实践教学改革[J].实验室研究与探索,2010(05).

[2]王京港,张翠屏.基于项目驱动及Proteus仿真的单片机教学改革探索[J].中国电力教育,2013(22):138-139.

[3]彭远芳,陆勤,胡宁,杨洋.基于“项目驱动法”的单片机课程一体化教学的探索与实践[J].计算机教育,2010(06).

[4]赵永熹,黄云峰.基于项目驱动法的单片机课程体系设计[J].中国电力教育,2013(4):55-56.

上一篇:单片机原理范文 下一篇:pic单片机范文