在单片机应用开发中,代码的使用效率问题、单片机抗干扰性和可靠性等问题仍困扰着 工程师。为帮助工程师解决单片机设计上的难题,《电子工程专辑》网站特邀Holtek香 港分公司工程部处长邓宏杰先生担任《单片机应用编程技巧》专题讨论的嘉宾,与广大 设计工程师交流单片机设计开发经验。现根据论坛中的讨论归纳出单片机开发中应掌握 的几个基本技巧。一、 如何提高C语言编程代码的效率邓宏杰指出,用C语言进行单片机程序设计是单片机开发与应用的必然趋势。他强调:“ 如果使用C编程时,要达到最高的效率,最好熟悉所使用的C编译器。先试验一下每条C语言编译以后对应的汇编语言的语句行数,这样就可以很明确的知道效率。在今后编程的 时候,使用编译效率最高的语句。” 他指出,各家的C编译器都会有一定的差异,故编译效率也会有所不同,优秀的嵌入式系统C编译器代码长度和执行时间仅比以汇编语言编写的同样功能程度长5-20%。他说:“对于复杂而开发时间紧的项目时,可以采用C语言,但前提是要求你对该MCU系统的C语言和C编译器非常熟悉,特别要注意该C编译系统所能支持的数据类型和算法。虽然C语言是最普遍的一种高级语言,但由于不同的MCU厂家其C语言编译系统是有所差别的,特别是在一些特殊功能模块的操作上。所以如果对这些特性不了解,那么调试起来问题就会很 多,反而导致执行效率低于汇编语言。” 二、 如何减少程序中的bug? 对于如何减少程序的bug,邓宏杰给出了一些建议,他指出系统运行中应考虑的超范围管理参数有: 1.物理参数。这些参数主要是系统的输入参数,它包括激励参数、采集处理中的运行参 数和处理结束的结果参数。合理设定这些边界,将超出边界的参数都视为非正常激励或 非正常回应进行出错处理。 2.资源参数。这些参数主要是系统中的电路、器件、功能单元的资源,如记忆体容量、 存储单元长度、堆叠深度。在程式设计中,对资源参数不允许超范围使用。 3.应用参数。这些应用参数常表现为一些单片机、功能单元的应用条件。如E2PROM的擦 写次数与资料存储时间等应用参数界限。 4.过程参数。指系统运行中的有序变化的参数。
上传时间: 2013-10-21
上传用户:chukeey
随着单片机开发技术的不断发展,目前已有越来越多的人从普遍使用汇编语言到逐渐使用高级语言开发,其中主要是以C语言为主,市场上几种常见的单片机均有其C语言开发环境。这里以最为流行的80C51单片机为例来学习单片机的C语言编程技术。大家都有C语言基础,但是编单片机程序,大家还得找专门的书来学习一下。这里我们只介绍Keil这种工具软件的用法。学习一种编程语言,最重要的是建立一个练习环境,边学边练才能学好。Keil软件是目最流行开发80C51系列单片机的软件,Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(µVision)将这些部份组合在一起。下面我以一个实验举一个例子,一步一步学习Keil软件的使用。 首先我们看硬件原理图: 很明显,要点亮使发光二极管,必须使单片机的I/O口P1.0输出低电平。于是我们的任务就是编程序使P1.0输出地电平。1. 使用Keil前必须先安装。安装过程简单,这里不在叙述。2. 安装好了Keil软件以后,我们打开它。打开以后界面如下:
上传时间: 2013-11-07
上传用户:wtrl
作为嵌入式系统主控单元——单片机,其软件往往是一个微观的实时操作系统,且大部分是为某种应用而专门设计的。系统程序有实时过程控制或实时信息处理的能力,要求能够及时响应随机发生的外部事件并对该事件做出快速处理。而分时操作系统却是把CPU的时间划分成长短基本相同的时间区间,即“时间片”,通过操作系统的管理,把这些时间片依次轮流地分配给各个用户使用。如果某个作业在时间片结束之前,整个任务还没有完成,那么该作业就被暂停下来,放弃CPU,等待下一轮循环再继续做。此时CPU又分配给另一个作业去使用。由于计算机的处理速度很快,只要时间片的间隔取得适当,那么一个用户作业从用完分配给它的一个时间片到获得下一个CPU时间片,中间有所“停顿”;但用户察觉不出来,好像整个系统全由它“独占”似的。分时操作系统主要具有以下3个特点:① 多路性。用户通过各自的终端,可以同时使用一个系统。② 及时性。用户提出的各种要求,能在较短或可容忍的时间内得到响应和处理。③ 独占性。在分时系统中,虽然允许多个用户同时使用一个CPU,但用户之间操作独立,互不干涉。分时操作系统主要是针对小型机以上的计算机提出的。一般而言,微处理器(MPU)驱动的通用计算机,系统设计人员对每一台的最终具体应用都是不得而知的,因此,在价格允许的情况下,硬件设计务求CPU时钟尽可能的快;计算及管理能力尽可能的强;程序和数据存储器的容量尽可能的大;各种计算机外设的配接尽可能的详尽等等,特别是采用分时操作系统的机器,因为是一机多用户的管理系统,它的要求就更高了。相对而言,微控制器(MCU)俗称单片机,是一个单片集成系统,它将这些或那些计算机所需的外设,诸如程序和数据存储器、端口以及有关的子系统集成到一片芯片上。从硬件上,单片机系统与采用分时操作系统的计算机系统是无法比拟的。但是,在单片机系统的设计中,设计人员对其最终具体应用是一清二楚的,它的使用环境相对是单一固定的。所控制的过程的可预见性为分时系统思想的实现提供了可能性。具体一点就是:虽然单片机的CPU速度较低,但其任务是可预见的,这样作业调度将变得简单而无须占用很多的CPU时间,同时“时间片”的设计是具体而有针对性的,因此可变得很有效。一、单片机分时系统的设计单片机系统往往是一个嵌入式的控制系统,因此目前绝大部分的单片机系统还是一实时系统。能够真正体现分时系统的设计思想的往往是那些多路重复检测控制系统。即便是在这些多路重复检测控制系统中,它的实时性也是非常重要的。也就是说,在单片机系统中应用了分时系统设计思想,但其及时性应首先进行考虑。
上传时间: 2013-12-23
上传用户:佳期如梦
随着单片机性能不断提高而价格却不断下降, 单片机控制在越来越多的领域得以应用。按照传统的模式, 在整个项目开发过程中, 先根据控制系统要求设计原理图, PCB 电路图绘制, 电路板制作, 元器件的焊接, 然后进行软件编程, 通过仿真器对系统硬件和软件调试, 最后将调试成功的程序固化到单片机中。这一过程中的主要问题是, 应用程序需要在硬件完成的情况下才能进行调试。虽然有的软件可以进行模拟调试, 但是对于一些复杂的程序如人机交互程序, 在没有硬件的时候, 没有界面的真实感, 给调试带来困难。在软硬件的配合中如需要修改硬件, 要重新制板, 在时间和投入上带来很大的麻烦。纵观整个过程, 无论是从硬件成本上, 还是从调试周期上, 传统开发模式的效率有待提高。能否只使用一种开发工具兼顾仿真, 调试, 制板, 以及最大限度的软件模拟来作为单片机的开发平台, 用它取代编程器、仿真器、成品前的硬件测试等工作是广大单片机开发者的梦想。 PROTEUS 软件介绍为了更加直观具体地说明Proteus 软件的实用价值, 本文以一具体的TAXI 的计价器和计时器电路板的设计过程为例。其电路板要实现的功能是:㈠计时功能(相当于时钟);㈡里程计价功能:两公里以内价格为4 元, 以后每一公里加0.7 元, 不足一公里取整(如10.3 公里取11 公里);㈢通过键盘输入里程, 模拟计算里程费, 实现Y= (X- 2)*0.7+4 的简单计算。基于上述功能, 选用ATMEL 公司生产的通用芯片AT89C51 单片机构成应用系统。AT89C51 是内含8 位4K 程序存储器, 128B 数据存储器, 2 个定时器/计数器的通用芯片。系统开发环境采用ProteusISIS 6。2.1 计价器模拟系统硬件构成系统主要由一个AT89C51 单片机、74LS373、74LS240、矩阵键盘、4 位7 段数码管等组成。通用AT89C51 单片机芯片作为整个电路的核心部分、74LS373 作为LED 段选控制、74LS240四路反相器则为4 位共阴极7 段数码管提供位选通信号、矩阵键盘输入控制信号。
上传时间: 2013-11-09
上传用户:木子叶1
鼠标有RS232串口和PS/2二种接口,在单片机应用中,由于PS/2鼠标是1yrL电平,和单片接口更方便,通常PS/2鼠标控制芯片采用TP8452。以TP8452为例说明PS/2鼠标的工作原理,其他的PS/2鼠标控制芯片均与TP8452兼容。TP8452能接受3个按键和2组光电探头的信号,组合成一定格式的信息,传送给系统。TP8452还具有按键去抖和噪声抑制功能,组成完善的信号采集前端电路。在单片机系统中,可以直接利用鼠标作为输入设备,也可以单独使用TP8452,作为转速、距离测量的预处理电路。由于TP8452的存在,不论是高速旋转,还是慢速爬行,甚至正反振荡,都不会影响其测量的准确性。1 PS/2鼠标原标图采用TP8452的典型3键鼠标原理图如图1所示。GX、GY是2组光电探头,检测滚轮的转动。每组光电探头内有2个光敏接收管,间隔为滚轮格栅的1/4,根据2个信号的相位关系,TP8452可以确定滚轮的正反转向。K1、K2、K3是3个按键。TP8452连续监视2个滚轮和3个按键,一旦有动作,立即将信息通过PS/2接口向系统报告。
上传时间: 2013-10-29
上传用户:xuanjie
摘要:设计并实现了一个USB/EPP 转接系统,给出其硬件设计方案并讨论了相关技术细节, 使其实现USB 接口到EPP接口的相互数据转发。使仅具有EPP 接口的传统仪器设备借助于USB/EPP 转接系统拥有USB 总线所提供的即插即用和设备插架特性, 方便其通过USB 接口灵活接入同时拥有多个外设的计算机主机系统。关键词:USB;EPP;转接系统中图分类号:TP368.3 文献标识码:A文章编号:1008- 0570(2005)11- 2- 0166- 03 在传统的I/O 模式中,计算机外设通常映射为CPU 中固定I/O 地址,要求由主机分配一个指定的IRQ 中断请求。由于PC 机的端口和中断资源有限,因而使外设的可扩展性受到局限;同时,随着电脑应用的拓展,PC 机的外设接口越来越多,外设对系统资源的独占性也容易导致系统资源冲突。由于各种外部设备不断增加,容易导致各种I/O 冲突。由Intel、Compaq、Microsoft、IBM等厂商所提出的USB 总线标准,基于即插即用和设备插架技术,设备接入时不影响应用程序的运行,具有良好的可扩充性和扩展的方便性。目前USB 协议已经发展到了最新的2.0 版本,可支持峰值传输速率为480Mbps 的高速外设,可提供4~8 个USB 2.0 接口,同时通过USB 集线器(HUB)的扩展还可以支持多达127 个外设同时连接,基本上解决了各种外设同时存在同时使用的所有问题。基于USB 接口的上述优点,目前的计算机,特别是笔记本计算机基本上都只配备USB 接口,而取消了传统的串口和并口,这对那些以前购置的需要与计算机进行通信而只有串口或并口的各种仪器的继续使用造成了极大的障碍。 针对传统的数字化仪器与计算机通信中存在的接口不足的问题,本文设计了一个USB/EPP 转接系统,使其能够从计算机的USB 接口接收数据,经过格式转换,从USB/EPP 转接系统的并行接口EPP 发送给传统的仪器设备;同时也能够从USB/EPP 转接系统的并行接口EPP 接收数据,将其转化为USB 帧格式,并发送到计算机的USB 接口。从而使仅具有EPP 接口的传统仪器设备借助于USB/EPP 转接系统,可以继续正常使用。2 USB 总线2.1 USB 系统描述及总线协议USB 是一种电缆总线,支持在主机和各种即插即用外设之间进行数据传输。由主机预定的标准协议使各种设备分享USB 带宽,当其它设备和主机在运行时,总线允许添加、设置、使用以及拆除外设,这为多个仪器设备共享同一个主计算机提供了可能。USB 协议采用了管道模型的软硬件协议,摒弃了一般外设协议的端口映射方式,从而有效地避免了计算机应用系统I/O 端口地址冲突。根据功能划分,一个USB 系统由三个部分组成:即USB 互连、USB 主机和USB 设备。图1 给出了USB系统的通用拓扑结构。
上传时间: 2013-10-09
上传用户:半熟1994
基于多点网络的水厂自动监控系统设计Design of MPI Based Automatic Monitoring and Control System in Water Works刘 美 俊(湖南工程学院,湘潭411101)摘要针对水厂工作水泵多、现场离控制站距离远的特点,提出了一种基于MPI多点网络的自动监控系统的设计方法,分析了系统的工作原理,介绍了系统中数据的采集与处理、主站与从站的通信原理以及系统软件的设计。由于这种系统的主、从站PLC之间采用MPI网络通信,具有运行可靠、性能价格比高的特点,所以适用于中小规模水厂的分布式监控场合。关键词多点网络主站从站监控系统Abstract Ina ccordancew ithth efe atuersof w aterw orks,i. e. ,manyp umpsin o perationa ndth ep umps, farfor mt hec ontrolst ation,th em ethodo fdesigninga na utomati(〕monitoringa ndc ontorlsy stemb asedo nM PIis p resented.Th eo perationalpr incipleo fth esy stemi san alyzed,th ed atac olection,data processing; communication between master station and slave station as wel as design and system software are discussed. Because MPI network communicationis used among master station, slave stations and PLC, the system is reliable and high cost-efective. It is, suitable for smal and mediumsized water works for distrbuted monitoring and control.Keywords MPI Masterst ation Slaves tation Monitoringa ndc ontorlsy stem 自来 水 厂 的自动控制系统一般分为两大部分,一对组态硬件要求较高,投资较大。相对而言,MPI网是水源地深水泵的工作控制,一是水厂区变频恒压供络速度可达187.5 M bps,通过一级中继器传输距离可水控制,两部分的实际距离通常都比较远。某厂水源达Ikm 。根据水厂的具体情况,确定以MPI方式组地有3台深井泵给水厂区的蓄水池供水。水厂区的成网络,主站PLC为S7-300系列的CPU3121FM,从任务是对水池的水进行消毒处理后,通过加压泵向管站为S7-200系列的CPU222。这样既满足了系统要路恒压供水。选用Siemens公司的S7系列可编程控求,又相对于Profibus网络节省了三分之一的成本,制器(PLC)和上位机组成实时数据采集和监控系统, 这种分布式监控系统具有较高的性能价格比。系统对深水泵进行远程控制,对供水泵采用变频器进行恒中PLC的物理层采用RS - 485接口,网络延伸选用压控制以保证整个水厂的电机设备安全、可靠地运带防雷保护的中继器,使系统的安全运行得到了保行。证。MPI网络的拓扑结构如图1所示。1 多点网络(NWI)监控系统的组成Sie me ns 公司S7系列PLC通常有MP」多点网络与Profibus现场总线网络两种组网方式。Profibus现场总线的应用目前较为普遍,通用性较好,它由Profibus一DP, Profibus一FMS, Profibus一PA组成。Profibus - DP型用于分散外设间的数据传输,传输速率为9.6kbps一12Mbps,主要用于现场控制器与分散1/0之间的通信,可满足交直流调速系统快速响应的时间要求,特别适合于加工自动化领域的应用;Profibus - FMS主要解决车间级通信问题,完成中等传输速度的循环或非循环数据交换任务,适用于纺织、楼宇自动化、可编程控制器、低压开关等;Profibus - PA型采用了OSI模型的物理层和数据链路层,适用于过程自动化的总线类型。
上传时间: 2013-10-09
上传用户:fac1003
PLC 以 其 可靠性高、抗干扰能力强、配套齐全、功能完善、适应性强等特点,广泛应用于各种控制领域。PLC作为通用工业控制计算机,是面向工矿企业的工控设备,使用梯形图符号进行编程,与继电器电路相当接近,被广大工程技术人员接受。但是在实际应用中,如何编程能够提高PLC程序运行速度是一个值得我们思考研究的问题。1 PLC工作原理PLC 与 计 算机的工作原理基本相同,即在系统程序的管理下,通过运行应用程序完成用户任务。但两者的工作方式有所不同。计算机一般采用等待命令的工作方式,而PLC在确定了工作任务并装人了专用程序后成为一种专用机,它采用循环扫描工作方式,系统工作任务管理及应用程序执行都是用循环扫描方式完成的。PLC 有 两 种基本的工作状态,即运行(RUN)与停止(STOP)状态。在这两种状态下,PLC的扫描过程及所要完成的任务是不尽相同的,如图1所示。 PLC在RUN工作状态时,执行一次扫描操作所的时间称为扫描周期,其典型值通常为1一100nis,不同PLC厂家的产品则略有不同。扫描周期由内部处理时间、输A/ 输出处理执行时间、指令执行时间等三部分组成。通常在一个扫描过程中,执行指令的时间占了绝大部分,而执行指令的时间与用户程序的长短有关。用户 程 序 是根据控制要求由用户编制,由许多条PLC指令所组成。不同的指令所对应的程序步不同,以三菱FX2N系列的PLC为例,PLC对每一个程序步操作处理时间为:基本指令占0.741s/步,功能指令占几百微米/步。完成一个控制任务可以有多种编制程序的方法,因此,选择合理、巧妙的编程方法既可以大大提高程序运行速度,又可以保证可靠性。 提高PLC程序运行速度的几种编程方法2.1 用数据传送给位元件组合的方法来控制输出在 PL C应 用编程中,最后都会有一段输出控制程序,一般都是用逻辑取及输出指令来编写,如图2所示。在图2所示的程序中,逻辑取的程序步为1,输出的程序步为2,执行上述程序共需3个程序步。通常情况下,PLC要控制的输出都不会是少量的,比如,有8个输出,在条件满足时要同时输出。此时,执行图2所示的程序共需17个程序步。若我们通过位元件的组合并采用数据传送的方法来完成图2所示的程序,就会大大减少程序步骤。在三 菱 PLC中,只处理ON/OFF状态的元件(如X,Y,M和S),称为位元件。但将位元件组合起来也可以处理数据。位元件组合由Kn加首元件号来表示。位元件每4bit为一组组合成单元。如KYO中的n是组数,当n=1时,K,Yo 对应的是Y3一Yo。当n二2时,KZYo对应的是Y7一Yo。通过位元件组合,就可以用处理数据的方式来处理位元件,图2程序所示的功能可用图3所示的传送数据的方式来完成。
上传时间: 2013-11-11
上传用户:几何公差
随着 微 电 子技术的飞速发展,电子产品越来越微型化,集成化,自动化,低廉化,进而推动着其它许多产业的发展。特别进人21世纪以来,生物技术与电子技术的结合,成为高科技领域的研究热点。199()年由瑞士的Manz和Widmer首先提出的“微全分析系统”〔’〕(microto talan alysissy stems,即ptTAS),通俗地称为“建在芯片上的实验室”(Lab on a chip)或简称芯片实验室(Lab chip),主要组成部分为电泳芯片,同时是进样,分离和检测为一体的微型装置,其在电泳实验中的高效检测性能为生物化学分析仪器发展提供了一种借鉴。p.TAS广泛应用于生物医学、环境检测、食品卫生、科学以及国防等众多领域。目前 应 用 的大多为多通道的毛细管电泳芯片,这也是芯片发展的一个必然趋势。这不仅对电泳芯片本身的设计和制作提出了更高的要求,也对传感器和数据处理技术提出了新的挑战。考虑成本,集成度,控制能力以及可靠性方面的因素,本系统采用单片机作为实时数据处理、控制以及通讯的硬件平台。如果系统中既有实时的通信任务,同时又有其他实时任务,采用一个廉价的单片机,资源会比较紧张,不仅实现困难,结构复杂,而且效果可能不满意。而采用高性能的处理器,又浪费了其有效资源,所以本系统采用两个MCU协同工作,以并行/分布式多机的思想,构成了电泳芯 片核心的双单片机系统结构。微全 分 析 系 统 进行的多项实时任务,可以划分为以下 几个模块:①采集模块。负责对外围检验设备进行控 制以及对传送过来的信号进行采集和分析;②交互模 块。通过液晶显示,键盘扫描,以及打印等实现实验人 员对前端采集电路的交互操作;③双单片机控制和通 信模块。协调双单片机之间的数据传输和指令传输 ;④网络传输模块。其中一个单片机通过以太网发送接 收数据到上位机。本文提出一种实时多任务的双单片 机控制和通信系统[31的设计,一个MCU基于TCP /IP网络模块的实现。
上传时间: 2013-11-15
上传用户:wangdean1101
基于USB接口的数据采集模块的设计与实现Design and Implementation of USB-Based Data Acquisition Module路 永 伸(天津科技大学电子信息与自动化学院,天津300222)摘要文中给出基于USB接口的数据采集模块的设计与实现。硬件设计采用以Adpc831与PDIUSBDI2为主的器件进行硬件设计,采用Windriver开发USB驱动,并用Visual C十十6.0对主机软件中硬件接口操作部分进行动态链接库封装。关键词USB 数据采集Adpc831 PDNSBDI2 Windriver动态链接库Abstract T hed esigna ndim plementaitono fU SB-BasedD ataA cquisiitonM oduleis g iven.Th ec hips oluitonm ainlyw ithA dpc831a ndP DTUSBD12i sused for hardware design. The USB drive is developed场Wmdriver, and the operation on the hardware interface is packaged into Dynamic Link Libraries场Visual C++6.0. Keywords USB DataA cquisition Adttc831 PDfUSBD12 Windriver0 引言US B总 线 是新一代接口总线,最初推出的目的是为了统一取代PC机的各类外设接口,迄今经历了1.0,1.1与2.0版本3个标准。在国内基于USB总线的相关设计与开发也得到了快速的发展,很多设计者从各自的应用领域,用不同方案设计出了相应的装置[1,2]。数据采集是工业控制中一个普遍而重要的环节,因此开发基于USB接口的数据采集模块具有很强的现实应用意义。虽然 US B总线标准已经发展到2.0版本,但由于工业控制现场干扰信号的情况比较复杂,高速数据传输的可靠性不容易被保证,并且很多场合对数据采集的实时性要求并不高,开发2.0标准产品的成本又较1.1标准产品高,所以笔者认为,在工业控制领域,目前开发基于USB总线1.1标准实现的数据采集模块的实用意义大于相应2.0标准模块。
上传时间: 2013-10-23
上传用户:q3290766