单片机开发范例6篇

单片机开发

单片机开发范文1

1 通信协议

为了保证可靠的通信,必须有一套完善的通信协议。分布式控制系统中的每台单片机均有唯一的番号。通信开始时,先由PC机呼叫被叫单片机的番号,单片机在接收到微机的呼叫后,首先判断是不是自己的番号,如果是,则发送呼叫应答信号,否则不予理睬。微机在接收到呼叫应答信号之后,将向单片机发出通信命令字符串。以下是上位PC机协议的格式:

单片机号单片机号命令码命令码停止标志 其中,单片机号代表现场第几台单片机,占用1个字节,发送两次的目的是为了防止干扰;命令码则代表上位机向下位机的工作命令,它也占用1个字节,发送两次的目的也是为了防止干扰。而停止标志则表明一次命令发送完毕。使用时可依据该标志判断上位机的命令是否发送完毕。

下位机协议格式如下:

数据块校验位该格式中,数据块为下位机上传到上位PC机的数据。校验位则用于PC机对收到的数据进行奇偶校验(占1个字节)。校验正确后,可将数据写入内存,否则发出数据传输错误信息,以要求单片机重新传输数据。

另外,作为一个完整的通信协议,只有上述约定还不够,还必须在发送和接收数据的时间间隔上加以限制。否则,很可能由于某些原因而造成无限制的等待对方应答,使整个系统处于工作不正常状态,或者延误其它动作的处理。具体时间限制可根据通信内容、CPU处理速度,再加上适当的余量来确定。

2 单片机通信程序设计

设计单片机通信程序时,必须充分发挥单片机的效率。由于单片机多应用于实时性较强的控制场合,因此,应将及时响应和控制对象的动作放在优先考虑的位置,以尽量减少通信等辅助性操作所占用的CPU时间。基于上述考虑,笔者在设计单片机通信程序时,将通信程序分为接收中断处理程序、发送中断处理程序和通信处理程序3部分,并将这3部分程序巧妙地进行组合,从而构成整个单片机的通信程序。

2.1 接收中断处理程序

接收中断处理程序主要负责接收微机发送到单片机接收缓冲区(不对数据进行处理,以减少中断占用的时间)的数据,当接收到规定的字符数或在一定等待时间内无后续数据之后,置接收完毕标志,以表明接收缓冲区中有待处理的数据并请求通信处理程序对其进行处理。其流程图如图1所示。

2.2 发送中断处理程序

发送中断处理程序主要负责向微机发送数据,发送中断一般处于禁止状态,只有在通信处理程序将需要发送的数据写入单片机的发送缓冲区,并将发送中断置为允许方式后,发送中断才开始工作,并将缓冲区数据逐一发送给微机。当发送完指定长度的数据后(发送缓冲区为空),发送中断处理程序将发送中断置为禁止(关闭)状态,直到通信处理程序将其再一次开放。其流程如图2所示。

2.3 通信处理程序

考虑到尽量减少通信中断程序所占用的CPU时间,通信处理程序被放在普通主循环中调用。只有在接收到上位机送来的一串数据,且接收完毕标志为“ON”时,才能真正进行处理,否则不进行处理。这样就可利用送信后等待微机回答的时间进行别的处理,从而消除了空等待时间,提高了CPU的利用率。通信处理程序可根据通信处理状态的不同来分别执行不同的路径。在进入相应路径后,首先对接收缓冲区的内容进行正确性检查,检查正确后再根据通信要求或协议规定对缓冲区的内容进行处理(包括内存的写入和读出),同时重新组织数据到发送缓冲区以向微机发送数据,最后退出通信处理程序以执行其它的程序。待接收中断程序重新接收到数据并将接收完标志置为“ON”后,可重新进入通信处理程序进行处理。

3 PC机通信程序设计

在VC++6.0环境下,利用PC机串口进行通信的常用方法有两种?第一是调用Windows API?Appli- cation Program Interface?函数;第二是使用ActiveX的MSComm控件。第一种方法需声明及调用许多API函数,十分烦琐。而第二种方法是将API函数封装起来,这种方法虽较为简便,但不能满足复杂情况下的通信要求。本文将介绍另外一种用PComm处理PC机的串口通信方法。

PComm是一种用于处理多进程/多线程的串口通信软件开发工具,它提供了许多基于API函数的命令集来处理串口通信,可以在Visual C++、Visual Basic、Delphi 5.0等多种开发工具下使用,且具有传输速度快、使用灵活方便等特点,能够满足复杂情况下的串口通信要求。

3.1 Pcomm的主要命令码

PComm的主要命令码有以下几种:

sio open(port);

用于设置并打开串口,其中port的1、2、3、4分别代表COM1、COM2、COM3、COM4。当返回值为0时,表示串口已经打开,否则为串口打开出错。

sio close(port);

关闭串口,当返回值为0时,表示串口已经关闭,否则为串口关闭出错。

sio ioctl(port?baud?mode);

用于设置串口波特率、校验位、数据位、停止位等参数。

sio getch();

从串口输入缓冲区读出一个字符,返回值为0表示已收到数据。

sio-read(port?buf?len);

用于从串口输入缓冲区读出一串字符,buf代表字符串数组len代表数组长度,返回值为0表示未收到字符,大于0代表收到字符的个数。

sio-SetReadTimeouts?port?TotalTimeouts(Inter-valTimeouts);

在设定的等待时间内连续读串口输入缓冲区,TotalTimeouts代表设定的等待时间,IntervalTimeouts代表每次读出的间隔时间。

sio-flush(port?func);

用于清空缓冲区。当func为0时清空输入缓冲区,为1时清空输出缓冲区,为2时清空输入输出缓冲区。

sio-putch(port?term);

用于向串口缓冲区发送一个字符,返回值为0时表示发送正确,否则表示发送错误。

sio-write(port?buf?len);

用于从串口缓冲区发送一串字符,buf代表字符串数组,len代表数组长度。

3.2 实现过程

在用Pcomm处理PC机的串口通信时,其实现过程如下:

(1)启动VC++ 6.0,新建一个基于对话框的应用程序TxRx。同时增加静态文本、编辑框和按钮控件,并为它们添加相应的变量。其属性见表1。

表1 TxRx应用程序的属性

控  件ID变量名类  型按  钮IDC_TRSMITT发送按钮 EditIDC_TXDATAM_TxDataCstringEditIDC_RXDATAM_RxDataCstring(2) 将Pcomm.h和Pcomm.lib加入到工程中,并在TxRxDlg.cpp文件中加入#include “Pcomm.h”头文件,此后便可调用其提供的通信命令集。

(3)在TxRxDlg.cpp文件中添加有关程序代码,也就是在OnInitiDialog??函数中的TODO语句后加入以下代码:

//TODO? Add extra initialization here

int ret?port=1?

ret=sio open?port?? //打开串口1

sio DTR?port?0?? //置DTR为低电平

sio ioctl?port?B19200?P NONE|BIT 8| STOP 1?? //设置波特率为19200,8位数据位,

1位停止位,无校验位。

3.3 数据通信

下面举例说明PC机如何通过串口向单片机发送并接收数据。

void CTXRXDlg??SendRecv??//收发数据子函数

{

while?1?

{

int ret1?

sio flush?port?2;//清空串口输入输出缓冲区

sio- write(port,1,5);

向串口缓冲区发送5个字符

sio- SetReadTimeouts(port,40,1);

//在40ms内每隔1ms读一次串口

ret1=sio-read(port,RecvBuf,1);

if (ret1>0)

{

sio- close(port);

break;

}

//若收到数据,关闭串口,跳出循环

else;

//若未收到数据,对串口再一次发数据并再次查询接收。

}

}

4 结束语

单片机开发范文2

关键词:单片机;电子技术;应用开发

单片机是现代科学技术发展的必然产物,也是新时代人类智慧的结晶,将单片机应用于电子技术领域可以优化许多产业的生产结构,对大众生活的方式形成一种转变,提升了各个领域运作的效率,使许多复杂、繁琐的过程变得简单化、高效化。所谓单片机,就是指在电子芯片的基础上构成的相对完整的计算机系统,可以在单片机中达到计算机的一些日常功能,而这些功能都是通过芯片实现的,包括计算机外部的总线及内存等部分,由此可以看出,单片机的功能是非常强大的,仅在一块芯片上就可以集成计算机的一些功能,如网络、图像与声音的输出功能[1]。单片机的出现让现代人的生活更加丰富多彩,人们对信息的需求可以从单片机中得到满足,推动着我国电子技术的快速发展。

1单片机在电子技术中的应用原理

单片机的构成包括控制器、运算设备及储存器等系统,而今已经发展为一种十分常用的控制系统,在社会的各个领域、人们的生活中随处可见,包括工业生产的自动化设备、各个领域所使用的仪表盘、终端移动电子通讯设备等,都包含着单片机的应用。单片机的构成原理并不简单,是通过集成可编程性的电路,完成各部分组件所发出的指令的过程。也就是将集成电路作为编写指令的单元,再分配给电路中的各个部件完成指令任务,实际操作中,各个部分都可以协同完成操作,而不是独立的某一个单元完成操作。在单片机的集成电路中,完成指令任务的部分便被称为程序,不同类型的单片机所具备的任务完成能力是各不相同的。与洽谈嵌入式的系统相比,单片机的优势非常明显,其体积较小、易于携带,比其他系统的集成度更高,而且对能源的消耗速度较慢,本质上属于一种微型计算机的处理结构,具有强大的数据储存与指令功能[2]。在现代电子技术发展的过程中,单片机的应用越来越广泛,其应用价值也体现在为人们的生活提供便利,操作稳定、流畅性高,适用于更多的现代电子产品中。

2单片机在电子技术中的应用优势

2.1增强系统的稳定性

单片机对数据处理的流程非常清晰,是先将相关数据收集起来,存在储存器中,在系统下达指令以后,单片机进入工作模式的状态,对数据进行处理。单片机在运行的过程中,由数据库为各部分程序输送相关参数信息,完成数据的备份工作并履行相关指令,与相关系统联合展开操作,根据指令代码完成相关的任务。单片机可以实现计算机的控制,所以在电子技术领域的优势非常明显,单片机需要在下达指令时了解指令的内容,并对数据加以编辑,可以准确的识别信息,使整个工作中的电子技术运行状态更加稳定和可靠。

2.2增强系统抗干扰性

应用于电子技术中的单片机与传统的单片机技术有所不同,在性能方面得到了显著优化,既改变了系统原有的非线性行为,使稳定性得到大幅的提升,在工作效率方面也明显提升,外界的许多干扰因素无法扰乱单片机的正常运行。如内部结构的影响、外部环境的影响等,这两个方面对单片机的运行干扰性明显降低,由此可见,现代单片机在电子技术中的应用可以有效增强该系统的抗干扰性。

2.3延长系统使用寿命

现代电子技术中的半导体技术发展十分迅速,对中央处理器的革新使其应用效果更好,经过单片机技术的调整,可以实现8位、16位、32位的同步发展,那么用户就可以根据自己的实际需求来选择产品。从实际的调查中可以发现,融入单片机的电子技术产品的使用寿命更长,其微处理器的应用效果更好,而且在成本方面,单片机的操作成本明显更低,经济性优势非常显著。

3单片机在电子技术中的具体应用

3.1家用电器

现代社会已经进入智能化的时代,许多家用电器中融入了智能化的功能,将单片机应用于电子技术中,可以提升家用电器的智能化水平,拓展了现代家用电器的发展空间。如高级游戏机及相关电子玩具,在单片机的融合下,功能更加强大、流畅性更好;家用电器的智能洗衣机,可以在单片机的作用下调节洗涤强度与洗涤时间,便于人们在生活中使用,甚至能够对清洗衣物的洁净度进行识别,这对于传统的家用洗衣机来说,无疑是一次巨大的创新;家用电器的智能冰箱,可以对蔬菜水果的保鲜程度加以识别,从而智能地调节温度,其中都是将单片机作为核心系统制造的;还有使用单片机制造的现代摄影机,外部的环境及光圈的速度都会影响摄影的效果,在单片机的作用下,摄影机可以自动地调节情景模式及光圈速度,用更加智能化的方式优化性能[3]。

3.2医用领域

现代医疗科技已经非常发达,解决了许多人类医疗事业中的疑难杂症,而这些先进的医疗设备中也有单片机的应用,如医院中使用的X光机、CT机等等,还有近年出现的自动报告机、自助挂号机等,优化了医院的服务功能,减少了患者就医的时间。在快节奏的现代社会中,因单片机在电子技术中的应用,提升了医疗机构设备的优越性,一方面可以切实提升医疗机构的治疗水平,为患者带来更好的诊治服务,曾经的一些难以确诊的疾病,在先进的设备应用中可以为患者提供更准确的诊断结果;另一方面可以优化了传统就医通道,让患者节省许多就医过程中浪费的时间,单片机的灵活性与扩展性非常强,这些优势在现代的医疗设备中得到了良好的体现,如医院中的监控系统及病房呼叫系统,在融合单片机技术以后,呼叫的效率更快,便于医院方面及时做出应急安排[4]。

3.3工业领域

现代电子技术中融入单片机技术以后,在工业生产中也促成了自动化流水生产线的升级,具体来讲,就是在现代工业的发展中,由于单片机技术的融合,使科技发展的水平更高,工业生产的操作更加流畅,而我国现代工业的发展进程更快。如工业信息数据系统中融入了单片机技术以后,工业生产系统的控制效果更好,从主机向下级的生产线生产命令时,下级设备的响应更加迅速,尤其是在工业流水生产线上,单片机的应用优势更加明显[5]。传统的自动化生产系统往往需要人为操作加以监督和管理,在单片机的控制下,人力的需求明显降低,技术人员可以在流水生产线中设置报警系统,一旦系统中出现问题,报警系统会迅速反馈信息给主系统,主系统会发出指令给管理人员,并采用一定的措施应对,提升了对系统故障的响应效率,可以推动现代工业生产力的进步。

3.4硬件设计

单片机的操控形式相对单一,可以通过接口来控制后续的设备而且控制的效果较好,无论软件还是硬件,都可以达到兼容的效果,在一定程度上减少了主机对下属设备操控所需要的时间。单片机在硬件设计中的应用可以表现为多种形式,有的是简单的系统,有的是复杂的系统,根据工业生产或人们生活需求的不同,单片机的应用是非常广泛的。以人们的日常生活为例,小区的门禁卡系统也属于一种常见的单片机在电子技术中应用的形式,其自动化的操作是显著的技术特征,通过计算机发出的指令就可以实现自动开门与关门的操作,可以有效地提升工作的效率,节省了人力与响应的时间。信号在进入通道以后由相关设备完成采集,再通过不同的渠道将搜集来的信号发射出去,达到主机的指令部得到指令。单片机中的I/O模块可以用于收集信息,但不仅是这一模块收集信息,工业控制领域中也有诸多部分可以用于传输信号,单片机的内部拥有完整的数据保存、逻辑运算系统,可以实现定时操作,或是对设备系统进行严格的控制与管理,故常用于工业的硬件设计中[6]。

3.5智能化设备

现代工业生产涉及诸多智能化的设备,这些设备在自动化技术的应用下,有效地提升了工业的生产效率。不仅是工业的生产,现代社会的公共服务系统也因单片机的应用得到优化,而工业生产中所使用的自动化智能设备,需要应用单片机技术来缩小体积,实现功能的集约化管理。为达到更精准采集数据的目标,在智能化设备中应用单片机已经并不少见,如工业生产中的报警系统和雷达监控系统,就需要应用单片机的结构,拓展其使用功能,越来越多的工业生产将单片机纳入发展规划中,也正是因为单片机的功能优势过于明显,主机通过查看数据库就可以检测到各类设备的运行情况,并获得相关信息。一旦系统发生异常,由单片机负责收集系统信息及分析信息的单元,会快速响应,发出故障信号。一般来说,现代工业生产中系统的功能非常复杂,如果技术人员无法在短期内及时的处理故障问题,那么就可能会浪费大量的时间去排查故障,难以提升工业生产的效率,可能会使工业企业蒙受一定的经济损失,将单片机引入电气化生产设备中,不仅能够提升系统的集成能力,还可以对生产的状态进行实时的监测,尤其是故障诊断的过程中,在单片机系统的支持下,技术人员可以快速查找故障点,及时排除工业生产系统中的安全隐患,满足现代工业安全生产的需求。

3.6通信设备

现代人的主要通信设备是手机,属于终端移动电子通信设备,此外还有一些平板电脑、笔记本电脑等,这些设备在人们的日常生活中非常重要,现代通信行业的发展与单片机的运用密切相关,人们可以从生活中发现,现代电子产品的体积越来越小而且功能越来越强大,这正是由于单片机的应用,使电子产品的功能拓展性更高。如手机设备中的电话录音及语音方面的功能,就是依赖单片机完成的,单片机系统可以输入语音并作出针对性的识别,将语音信息传输到其他组件中。单片机可以利用自身的介质完成录音操作并进行记录,在用户下达指令以后,单片机系统会立即向其他功能单元发送命令信号,则录音就已储存在单片机系统中。

4单片机在电子技术中的重要开发

4.1CPU开发

单片机在CPU方面的开发改进可以从两个层次分析,分别是CPU总线宽度的改进和CPU实际结构的改进。在CPU总线宽度的改进方面,以往的标准是8位基础上,目前可以扩展至32位甚至48位,是对原有基础的大幅改进,而改进CPU总线的宽度可以解决单片机处理过程缓慢的问题,大幅提升单片机运行的效率,增强单片机对信息的处理功能;在CPU的实际结构改进方面,以往的单片机是建立在单独的CPU运行基础上,改进以后可以将其调整为两个至三个单元协作运行,能够提升多个CPU之间的运行效率,促进各个CPU单元的功能合作。

4.2储存器开发

单片机的实际开发包括储存器方面的内容,通过对读写功能的研究分析,技术人员可以在原有基础上将单片机调整为闪存型的设备,用动态化与静态化两种形式的操作来满足实际的功能需求,可以有效地避免单片机在运行中丢失信息或者掉电的情况,这也有助于单片机提升自身的便捷性。关于单片机储存器的开发还有很大的空间,需要技术人员深入研究单片机的系统结构,根据单片机的运行原理来优化单片机的运行过程,更多的关注储存器对信息的录入效率与储存安全性,以发挥其强大的储存功能。

4.3微型化发展

单片机在运行过程中需要各个模块相对独立但又总体结合的方式,维持一个系统的正常运转,然而明显扩大的体积可能会影响单片机的运行质量,相关设备的运行能耗也会非常巨大。单片机将CPU、RAM、ROM融为一体,并将这些功能模块储存于一个小体积的芯片部件中,部分增益性质的单片机在功能上会更加强大,对PMW及WDT程序的应用程度更高,依照这种方式来研究单片机的系统,联系单片机的通信结构、储存器、定时电路等单元,就可以看到单片机在正常运行状态下单元电路的发展趋势。技术人员需要注意的是,现代的单片机要朝向更微型、更多元的方向发展,对于各个领域单片机体积要求的不同,其体积与质量也需要不断地缩小,在此基础上保留单片机的应用功能就成为技术人员需要研究的难题。

4.4半导体工艺

单片机在传统生产中正常的能耗约为600MW,由于各个领域对单片机运行的要求趋于低能化,所以这些标准被限制在了100MW左右,那么现代单片机的生产必须要更加精准、生产技术更加先进,才能满足低功耗运行的现实要求。多数的单片机制造企业尝试引入新的生产工艺,即互补金属氧化物的半导体生产工艺,在不断的生产实践与研究的过程中,又发展为互补性的高密度金属氯化物半导体生产工艺。至此,单片机的生产彻底脱离了传统的生产工艺,解决了以往单片机工作效率不高的问题,也能够在一定程度上保证低功耗运行的需求,维持单片机正常运作状态中的稳定性。如现代工业生产有一些特殊的生产领域,由于工作的环境较为特殊,单片机的设备可能会在运行中发生电池损坏的情况,在高密度金属氯化物半导体生产工艺的支持下,单片机的电池及其他部分组件会具有较强的抗干扰能力,意味着单片机设备的使用寿命更长,受环境因素的影响更小,不仅可以发挥低耗能的优势,还可以大幅提升单片机运行的可靠性,而这种生产工艺在全球范围内属于一种全新的生产工艺,要想大范围的推广仍会面临一些困难。

单片机开发范文3

关键词:单片机;开发板;ISP

中图分类号:TP368.1 文献标识码:A文章编号:1007-9599 (2011) 08-0000-02

MCU Development Borad Design of Multi-function MCS-51

Zhang Daode

(Hubei University of Technology Mechanical Engineering,Wuhan430068,China)

Abstract:The develop boarddesigned here is of common functions,

such as water lamp,timer,interrupt,singing by buzzer,X5045 watch dog,Real time clock DS1302,digital temperature sensor DS18B20,parallel D/A converter DAC0832,serial A/D converter TLC0832,RS-232 interface,

dynamic display of digital tub,ISP download online,SRAM6264 etc.It is meaningful for single chip machine study and development.

Keywords:MCU;Development board;ISP

一、前言

MCS-51系列单片机是目前主流的8位单片机之一[1],但由于它的硬件能力有限,本文设计了一种单片机开发板,综合了当下流行的单片机接口电路,很好地扩充了MCS-51单片机的功能。

二、系统主要组成及开发平台

该系统的组成部分的核心是AT89S52单片机芯片,同时扩展了一块RAM6264,并口8155,同时扩充了DAC0832和TLC0832作为AD/DA转换电路,在此基础上还扩充有FM12864中文液晶图形模块接口电路、DS18B20温度传感检测电路,DS1302时钟显示芯片接口,X5045看门狗接口电路,另外将键盘和数码管显示作为独立的模块,方便了使用也使I/O资源空闲,RS-232串口通信电路可实现开发楹和电脑的双机通信。电源方面设置了USB供电和外接电源供电两种方式。

AT89S52单片机口具有8KB的FLASH[2],通过提供的ISP在线下载线可以现场仿真而无须专门的烧写器即可以将目标程序下载到CPU中,在51 MCU_SYSTEM中就可以观察到程序的运行情况。本文所使用的开发工具为µVision2集成开发平台[3],包含一个高效的编辑器、一个项目管理器和一个MAKE工具。并且支持所有Keil C51工具,包括C编译器、宏汇编器连接/定位器、目标代码到HEX转换器。

三、系统主要硬件设计

(一)单片机部分

CPU采用的是AT89S5X系列的单片机,同时兼容飞利浦P89系列的单片机,在本系统是单片机上的EA接的是高电平,表示对ROM的读写从内部程序存储器开始,并且可以延至外部存储器。在P0口接有470欧的排组上拉数据口,系统主频率12MHz。

图1.单片机部分电路设计

(二)8155部分

在本系统中采用8155实现I/O扩展。8155不仅具有两个8位的I/O端口A、B口和一个6位的I/O端口C口,而且还可以提供256个字节的静态RAM存储器和一个14位的定时/计数器。8155和单片机的接口非常简单,目前被广泛应用。系统用一片73LS138实现8155、6264等芯片的片选。

图2.8155接口电路设计

(三)DAC0832部分

DAC0832是8位D/A转换器,,转换结果为一对差动电流输出,转换时间大约为1us。使用单电源+5VD+15V供电[1]。参考电压为-10V-+10V。在此我们直接选择+5V作为参考电压。DAC0832有三种工作方式:直通方式,单缓冲方式,双缓冲方式;在此我们选择直通的工作方式,将XFER、WR2、CS管脚全部接数字地。管脚8接参考电压,在此我们接的参考电压是+5V,如图3所示,可以产生三角波,锯齿波,梯型波等波形。CE2接在74LS138上,通过分配地址完成片选。

图3.DAC0832接口电路

(四)TLC0832

TLC0832是八位串行逐次逼近模数转换器[4],它有两个可选择的输入通道。其接口电路如图所示。TLC0832的通道0外接了电位器,可以模拟不同的电压输入。对TLC0832的控制需要3根I/O口线,可以从单片机及8155接入。

图4.TLC0832接口电路

(五)X5045接口电路

复位电路采用了带I2C的监控芯片X5045,上电即可复位[5],电路如图5所示。另外8155设置了独立的复位方式以弥补和51单片机的复位不同步缺点。

图5.看门狗接口电路

(六)键盘接口电路

在单片机应用系统中通常应具有人机对话功能能随时发出各种控制指令和数据输入以及报告应用系统的运行状态与运行结果。本文所采用的是独立式键盘,其中key代表阻值为1kΩ的排阻。

(七)数码管显示接口电路

系统数码管显示及键盘显示均比较灵活,提供了专门的I/O接口,可以用8155来控制,也可以用单片机来控制。开发板支持4位七段示LED数码显示器。

四、结束语

限于篇幅,本文关于DS1302、LCD显示接口以及系统软件设计等方面未能介绍。本文设计的单片机开发板在实际中发挥了重要作用,适合于单片机学习者及简单的工程应用。

参考文献:

[1]杨光友.单片微型计算机原理及接口技术[M].水利水电出版社,2002

[2]AT89S51 Datasheet.Atmel Inc.2006

[3]赵亮.单片机C语言编程与实例[M].人民邮电出版社,2003

[4]张道德.单片机接口技术(C51版).中国水利水电出版社,2007

[5]X5045 Datasheet.Intersil inc.2006

单片机开发范文4

论文摘要:目前单片机渗透到我们生活的各个领域,本文介绍了单片机的应用并且根据自己的一些经验谈了单片机应用过程中应该掌握的几个技巧。

目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,广泛使用的各种智能IC卡等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。

一、单片机的特点应用

单片机的特点主要有 :高集成度,体积小,高可靠性 ;控制功能强;低电压,低功耗,便于生产便携式产品 ;易扩展;优异的性能价格比。目前,单片机的应用领域 主要包括:办公自动化设备;单片机在机电一体化中的应用;在实时过程控制中的应用;单片机在日常生活及家用电器领域的应用;在各类仪器仪表中引入单片机,使仪器仪表智能化,提高测试的自动化程度和精度,简化仪器仪表的硬件结构,提高其性能价格比;在计算机网络和通信领域中的应用;商业营销设备;单片机在医用设备领域中的应用;汽车电子产品;航空航天系统和国防军事、尖端武器等领域,单片机的应用更是不言而喻。

二、单片机开发中的几个基本技巧

在单片机应用开发中,代码的使用效率问题、单片机抗干扰性和可靠性等问题仍困扰着。现归纳出单片机开发中应掌握的几个基本技巧。

1、如何减少程序中的bug。对于如何减少程序的bug,应该先考虑系统运行中应考虑的超范围管理参数如下。物理参数:这些参数主要是系统的输入参数,它包括激励参数、采集处理中的运行参数和处理结束的结果参数。资源参数:这些参数主要是系统中的电路、器件、功能单元的资源,如记忆体容量、存储单元长度、堆叠深度。应用参数:这些应用参数常表现为一些单片机、功能单元的应用条件。过程参数:指系统运行中的有序变化的参数。

2、如何提高C语言编程代码的效率。用C语言进行单片机程序设计是单片机开发与应用的必然趋势。如果使用C编程时,要达到最高的效率,最好熟悉所使用的C编译器。先试验一下每条C语言编译以后对应的汇编语言的语句行数,这样就可以很明确的知道效率。在今后编程的时候,使用编译效率最高的语句。各家的C编译器都会有一定的差异,故编译效率也会有所不同,优秀的嵌入式系统C编译器代码长度和执行时间仅比以汇编语言编写的同样功能程度长5-20%。对于复杂而开发时间紧的项目时,可以采用C语言,但前提是要求你对该MCU系统的C语言和C编译器非常熟悉,特别要注意该C编译系统所能支持的数据类型和算法。虽然C语言是最普遍的一种高级语言,但由于不同的MCU厂家其C语言编译系统是有所差别的,特别是在一些特殊功能模块的操作上。所以如果对这些特性不了解,那么调试起来问题就会很多,反而导致执行效率低于汇编语言。

3、如何解决单片机的抗干扰性问题。防止干扰最有效的方法是去除干扰源、隔断干扰路径,但往往很难做到,所以只能看单片机抗干扰能力够不够强了。在提高硬件系统抗干扰能力的同时,软件抗干扰以其设计灵活、节省硬件资源、可靠性好越来越受到重视。单片机干扰最常见的现象就是复位;至于程序跑飞,其实也可以用软件陷阱和看门狗将程序拉回到复位状态;所以单片机软件抗干扰最重要的是处理好复位状态。一般单片机都会有一些标志寄存器,可以用来判断复位原因;另外你也可以自己在RAM中埋一些标志。在每次程序复位时,通过判断这些标志,可以判断出不同的复位原因;还可以根据不同的标志直接跳到相应的程序。这样可以使程序运行有连续性,用户在使用时也不会察觉到程序被重新复位过。

4、如何测试单片机系统的可靠性。当一个单片机系统设计完成,对于不同的单片机系统产品会有不同的测试项目和方法,但是有一些是必须测试的:测试单片机软件功能的完善性;上电、掉电测试;老化测试;ESD和EFT等测试。有时候,我们还可以模拟人为使用中,可能发生的破坏情况。例如用人体或者衣服织物故意摩擦单片机系统的接触端口,由此测试抗静电的能力。用大功率电钻靠近单片机系统工作,由此测试抗电磁干扰能力等。

综上所述,单片机已成为计算机发展和应用的一个重要方面,单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。此外在开发和应用过程中我们更要掌握技巧,提高效率,以便于发挥它更加广阔的用途。

参考文献:

[1]何立民.MCS-51系列单片机应用系统设计系统配置与接口技术.北京:北京 航空航天大学出版社,1990

单片机开发范文5

关键词:单片机;嵌入式系统;开发

随着社会经济的快速发展,在强大的经济实力支持下,近年来我国科学技术领域也获得了长足的进步,科学技术的快速发展及其在社会各个领域的广泛应用,在极大的提升各领域生产力及生产效率的同时,也为各领域创造了巨大的社会经济效益,其对于保障社会各领域建设事业的健康可持续发展等有着重要作用。信息技术是21世纪发展最为迅猛的科学技术之一,信息技术的快速发展,也开启了信息时代的大门,随着信息技术在社会多个领域的广泛渗透,以计算机信息技术为基础的单片机技术领域也获得了极大的发展,基于单片机的嵌入式系统的开发也成为了人们研究的热点领域之一。基于单片机嵌入式系统的研发之所以能够吸引业界如此多的注意力,究其原因主要是该系统的功能的强大性,及适用的广泛性,基于单片机的嵌入式系统能够应用到社会多个领域中,如信息家电,及手持设备等领域,不仅能够有效地提升这些领域的工作效率,为企业创造巨大的社会经济效益,还能有效地实现产品的智能化及多功能化发展,因而加大对单片机嵌入式系统开发的相关研究,有着积极意义。接下来对嵌入式系统进行简要的概述,在此基础上,对基于单片机的嵌入式系统开况进行详细的探讨。

1嵌入式系统概述

随着信息技术的不断发展,计算机系统在结构及性能方面,也在发生着重大的改变,原有的计算机系统已难以适应社会发展的需要,以及人们日益升高的对系统性能的要求,因此加大对计算机系统的研发,就显得尤为必要了。嵌入式系统便是在这样的社会大背景下应运而生的,其对于提升计算机性能,提升计算机系统的智能化水平等,有着重要作用。嵌入式系统,顾名思义是一种基于计算机技术,以实际应用为目标,可以实现对软硬件剪裁,同时在系统的安全稳定性、体积及成本和性能等方面,有着更高要求的专业计算机系统。基于嵌入式系统的优异性能,该系统已广泛应用于我国社会的多个领域,如信息家电领域,甚至在我国的国防工业领域,该系统也有着广泛的应用。

具体来说,嵌入式系统相较于以往的计算机系统,其具有如下主要特点:(1)体积小特点。随着信息技术的不断发展,人们对计算机系统在体积方面也提出了更高要求,为了更加方便人们的携带及使用,当前系统的研发有向小体积方向发展的趋势,而嵌入式系统就是一种具有较小体积的计算机系统,为了有效降低系统的体积,该系统将其部分控制部件,巧妙地安装进系统中,从而在有效的缩小系统体积的同时,也极大地提升了系统空间的利用率,降低了系统生产成本;(2)高性能特点。该系统相较于以往的计算机系统,具有更好的系统稳定性,及更高的运算速率,同时该系统在开发周期方面,也得到了急剧的降低,因而较高的性价比,也是该系统的主要特点之一;(3)存储容量不高。由于该系统不具有以往计算机系统的硬盘设备,其在数据信息的存储方面,主要借助FLASHmemory,及ROM等储存介质实现数据信息的保存,因而其存储容量不高;(4)实时性特点。该系统对时间较为敏感,在部分应用软件中,其对时间有一定的限制,若在某项操作中,其超过了规定的时间,其就不能达到预期的效果,因而该系统具有很强的实时性特性[1]。

2基于单片机的嵌入式系统开发

2.1单片机概述

随着计算机信息技术的快速发展,近年来我国单片机技术领域也获得了迅猛的发展,单片机,又可被称为微型计算机,其是一种将RAM,ROM,CPU等设备,采用高度集成的方式,将其全部设计在同一芯片上的一种微处理器。当前随着单片机技术的不断发展,其超大规模的集成技术领域,也获得了长足的进步,同时随着单片机在低质量、小体积方面的不断发展,当前我国单片机已形成了一套相对成熟的技术体系,在性能及功能性方面,也获得了极大的提高,因而单片机技术在当前社会的多个领域,诸如工艺控制,仪器仪表,以及通信领域等,已获得了广泛的应用,并取得了显著的成效,相信在不久的将来,其在社会的多个领域都有着良好的应用前景。

2.2操作系统微内核

2.2.1微内核结构

单片机作为一种微处理器,其是嵌入式系统最为核心的部分,其对于系统功能的充分发挥,发挥关键作用。嵌入式操作系统,其微内核在结构上主要由以下几个部分组成:(1)任务管理和调度模块。该模块的主要功能是,实现对任务的有效的控制及其调度,同时该模块还能有效实现各任务间的数据通信,以及对任务数据信息进行储存等;(2)硬件抽象层模块。该模块的主要功能是,在一定的硬件平台下,实现对某些硬件的有效映射,从而发挥系统的相关功效。嵌入式操作系统微内核的以上结构设计,不仅能够有效地降低系统核心的负荷,提升其运行效率,保障系统性能的充分发挥,还能有效地提升系统的可扩展性,及可剪裁性等方面的性能,因而系统的微内核结构,对于保障系统的正常运转,提升系统运行效率等,有着重要作用[2]。

2.2.2微内核结构对系统性能的作用

在嵌入式操作系统中,设计微内核结构,对提升系统的性能有着重要作用,也正是基于此,微内核结构的设计,已广泛地应用于系统开发中,然而随着人们嵌入式系统性能要求的不断提高,及系统应用领域及环境的不断拓展,当前的微内核结构设计已难以适应社会发展的需要,因而研发出体积更大,性能更高的微内核,对于满足社会对嵌入式系统的性能需要,就显得尤为必要了。然而增大微内核的体积,这也引起了当前社会各界的普遍争论,一部分人的观点是,在核心结构系统中,可以使用客户/服务器形式,如此一来,不仅会提高系统的开发成本,对系统性能也会造成较大影响;另一部分人则认为,微核心理论之所以存在较大问题,其主要原因是受到以往系统内涵理论的局限,因而如果在结构设计上不合理的话,将会极大地影响系统的性能。因此为了提升嵌入式系统的功能,加大对其微内核结构及性能的相关设计研究,有着重要作用[3]。

2.3EOS51系统结构

当前在基于单片机的嵌入式系统中,微内核基本上是EOS51系统结构,其实现过程大致是这样的,通过对任务实施有效的控制,并进行相应的切换,同时对任务间的互斥控制以及通信控制等,采取相应的时机控制操作,由此保障微内核引擎工作的正常进行。在运转中,当系统实施电的连接时,就能够通过系统存储器,获得相关的地址信息,然后再得到相关指令后,可以实现对系统的初始化,而剩下的存储设备,则由用户自行处理。如此一来的话,就能有效地保障系统的正常启动,同时其外部硬件设施等,用户也能够依照自身需求情况,进行适当的拓展,因而基于单盘机的嵌入式系统的开发,不仅具有较高的系统灵活性,同时其微内核结构的设计,也具有更广泛的适用性[4]。

3结语

由以上可以看出,基于单片机的嵌入式系统,相较于以往的计算机系统,具有更小的体积和质量,同时在性价比方面,也有着更高的竞争优势,因此加大对基于单片机的嵌入式系统开发的相关研究,有着深远意义。

参考文献

[1]陈丽芳.基于单片机的嵌入式系统开发[J].电子测试,2015(10):13-14.

[2]张璐璐.单片机温度测量和控制系统的设计与实现[D].吉林:吉林大学,2014.

[3]刘玉良,李刚,康凯.基于MATLAB的嵌入式系统软件开发[J].天津大学学报,2012(5):593-596.

单片机开发范文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

INTCON中的各中断允许位对中断状态位并无影响。当PORT B配置成输入方式时,RB引脚输入在每个读操作周期被抽样并与旧的锁存值比较,一旦不同就产生一个高电平,置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 #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 资料并未对此做出说明)。

参考文献