单片机C语言编程的过程中,在某些对时序要求比较严格的情况下,直接使用汇编语言可以提供一种灵活高效的解决方法。文中详尽叙述了Keil C51调用A51程序编程的命名规则和参数传递等规则,并通过对具体实例的分析说明了混合调用的具体实现方法。
上传时间: 2013-11-24
上传用户:HZB20416
单片机开发资料 单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。 单片机也被称为微控制器(Microcontroller),是因为它最早被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。 早期的单片机都是8位或4位的。其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。此后在8031上发展出了MCS51系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大的提高。随着INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。目前,高端的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。 单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的综合,甚至比人类的数量还要多。
上传时间: 2013-11-16
上传用户:Aeray
针对机舱消防应急救援模拟训练系统中训练环境控制的难题,设计了一种以AT89C52单片机为核心的多点温度烟雾测控系统。该系统可实现对模拟系统中消防环境(烟雾,温度)的实时测量和控制。根据训练系统对温度烟雾指标要求严格的特点,引入了基于NCD 与优化函数结合的非线性PID 对PID 参数进行优化整定,实现了实时控制。整个设计简明,清晰。
上传时间: 2013-10-21
上传用户:lunshaomo
自动检测80C51串行通讯中的波特率:本文介绍一种在80C51 串行通讯应用中自动检测波特率的方法。按照经验,程序起动后所接收到的第1 个字符用于测量波特率。这种方法可以不用设定难于记忆的开关,还可以免去在有关应用中使用多种不同波特率的烦恼。人们可以设想:一种可靠地实现自动波特检测的方法是可能的,它无须严格限制可被确认的字符。问题是:在各种的条件下,如何可以在大量允许出现的字符中找出波特率定时间隔。显然,最快捷的方法是检测一个单独位时间(single bit time),以确定接收波特率应该是多少。可是,在RS-232 模式下,许多ASCII 字符并不能测量出一个单独位时间。对于大多数字符来说,只要波特率存在合理波动(这里的波特率是指标准波特率),从起始位到最后一位“可见”位的数据传输周期就会在一定范围内发生变化。此外,许多系统采用8 位数据、无奇偶校验的格式传输ASCII 字符。在这种格式里,普通ASCII 字节不会有MSB 设定,并且,UART总是先发送数据低位(LSB),后发送数据高位(MSB),我们总会看见数据的停止位。在下面的波特率检测程序中,先等待串行通讯输入管脚的起始信号(下降沿),然后起动定时器T0。在其后的串行数据的每一个上升沿,将定时器T0 的数值捕获并保存。当定时器T0溢出时,其最后一次捕获的数值即为从串行数据起始位到最后一个上升沿(我们假设是停止位)过程所持续的时间。
上传时间: 2014-08-22
上传用户:dajin
计算机部件要具有通用性,适应不同系统与不同用户的需求,设计必须模块化。计算机部件产品(模块)供应出现多元化。模块之间的联接关系要标准化,使模块具有通用性。模块设计必须基于一种大多数厂商认可的模块联接关系,即一种总线标准。总线的标准总线是一类信号线的集合是模块间传输信息的公共通道,通过它,计算机各部件间可进行各种数据和命令的传送。为使不同供应商的产品间能够互换,给用户更多的选择,总线的技术规范要标准化。总线的标准制定要经周密考虑,要有严格的规定。总线标准(技术规范)包括以下几部分:机械结构规范:模块尺寸、总线插头、总线接插件以及按装尺寸均有统一规定。功能规范:总线每条信号线(引脚的名称)、功能以及工作过程要有统一规定。电气规范:总线每条信号线的有效电平、动态转换时间、负载能力等。总线的发展情况S-100总线:产生于1975年,第一个标准化总线,为微计算机技术发展起到了推动作用。IBM-PC个人计算机采用总线结构(Industry Standard Architecture, ISA)并成为工业化的标准。先后出现8位ISA总线、16位ISA总线以及后来兼容厂商推出的EISA(Extended ISA)32位ISA总线。为了适应微处理器性能的提高及I/O模块更高吞吐率的要求,出现了VL-Bus(VESA Local Bus)和PCI(Peripheral Component Interconnect,PCI)总线。适合小型化要求的PCMCIA(Personal Computer Memory Card International Association)总线,用于笔记本计算机的功能扩展。总线的指标计算机主机性能迅速提高,各功能模块性能也要相应提高,这对总线性能提出更高的要求。总线主要技术指标有几方面:总线宽度:一次操作可以传输的数据位数,如S100为8位,ISA为16位,EISA为32位,PCI-2可达64位。总线宽度不会超过微处理器外部数据总线的宽度。总数工作频率:总线信号中有一个CLK时钟,CLK越高每秒钟传输的数据量越大。ISA、EISA为8MHz,PCI为33.3MHz, PCI-2可达达66.6MHz。单个数据传输周期:不同的传输方式,每个数据传输所用CLK周期数不同。ISA要2个,PCI用1个CLK周期。这决定总线最高数据传输率。5. 总线的分类与层次系统总线:是微处理器芯片对外引线信号的延伸或映射,是微处理器与片外存储器及I/0接口传输信息的通路。系统总线信号按功能可分为三类:地址总线(Where):指出数据的来源与去向。地址总线的位数决定了存储空间的大小。系统总线:数据总线(What)提供模块间传输数据的路径,数据总线的位数决定微处理器结构的复杂度及总体性能。控制总线(When):提供系统操作所必需的控制信号,对操作过程进行控制与定时。扩充总线:亦称设备总线,用于系统I/O扩充。与系统总线工作频率不同,经接口电路对系统总统信号缓冲、变换、隔离,进行不同层次的操作(ISA、EISA、MCA)局部总线:扩充总线不能满足高性能设备(图形、视频、网络)接口的要求,在系统总线与扩充总线之间插入一层总线。由于它经桥接器与系统总线直接相连,因此称之为局部总线(PCI)。
上传时间: 2013-11-09
上传用户:nshark
自动检测80C51 串行通讯中的波特率本文介绍一种在80C51 串行通讯应用中自动检测波特率的方法。按照经验,程序起动后所接收到的第1 个字符用于测量波特率。这种方法可以不用设定难于记忆的开关,还可以免去在有关应用中使用多种不同波特率的烦恼。人们可以设想:一种可靠地实现自动波特检测的方法是可能的,它无须严格限制可被确认的字符。问题是:在各种的条件下,如何可以在大量允许出现的字符中找出波特率的定时间隔。显然,最快捷的方法是检测一个单独位时间(single bit time),以确定接收波特率应该是多少。可是,在RS-232 模式下,许多ASCII 字符并不能测量出一个单独位时间。对于大多数字符来说,只要波特率存在合理波动(这里的波特率是指标准波特率),从起始位到最后一位“可见”位的数据传输周期就会在一定范围内发生变化。此外,许多系统采用8 位数据、无奇偶校验的格式传输ASCII 字符。在这种格式里,普通ASCII 字节不会有MSB 设定
上传时间: 2013-10-15
上传用户:shirleyYim
描述了基于FPGA的FIR滤波器设计。根据FIR的原理及严格线性相位滤波器具有偶对称的性质给出了FIR滤波器的4种结构,即直接乘加结构、乘法器复用结构、乘累加结构、DA算法。在本文中给出上述几种算法的结构框图,并通过FPGA编程实现上述几种算法,并给出所用的资源来比较各种算法的优劣。
上传时间: 2013-12-09
上传用户:lvzhr
Verilog_HDL的基本语法详解(夏宇闻版):Verilog HDL是一种用于数字逻辑电路设计的语言。用Verilog HDL描述的电路设计就是该电路的Verilog HDL模型。Verilog HDL既是一种行为描述的语言也是一种结构描述的语言。这也就是说,既可以用电路的功能描述也可以用元器件和它们之间的连接来建立所设计电路的Verilog HDL模型。Verilog模型可以是实际电路的不同级别的抽象。这些抽象的级别和它们对应的模型类型共有以下五种: 系统级(system):用高级语言结构实现设计模块的外部性能的模型。 算法级(algorithm):用高级语言结构实现设计算法的模型。 RTL级(Register Transfer Level):描述数据在寄存器之间流动和如何处理这些数据的模型。 门级(gate-level):描述逻辑门以及逻辑门之间的连接的模型。 开关级(switch-level):描述器件中三极管和储存节点以及它们之间连接的模型。 一个复杂电路系统的完整Verilog HDL模型是由若干个Verilog HDL模块构成的,每一个模块又可以由若干个子模块构成。其中有些模块需要综合成具体电路,而有些模块只是与用户所设计的模块交互的现存电路或激励信号源。利用Verilog HDL语言结构所提供的这种功能就可以构造一个模块间的清晰层次结构来描述极其复杂的大型设计,并对所作设计的逻辑电路进行严格的验证。 Verilog HDL行为描述语言作为一种结构化和过程性的语言,其语法结构非常适合于算法级和RTL级的模型设计。这种行为描述语言具有以下功能: · 可描述顺序执行或并行执行的程序结构。 · 用延迟表达式或事件表达式来明确地控制过程的启动时间。 · 通过命名的事件来触发其它过程里的激活行为或停止行为。 · 提供了条件、if-else、case、循环程序结构。 · 提供了可带参数且非零延续时间的任务(task)程序结构。 · 提供了可定义新的操作符的函数结构(function)。 · 提供了用于建立表达式的算术运算符、逻辑运算符、位运算符。 · Verilog HDL语言作为一种结构化的语言也非常适合于门级和开关级的模型设计。因其结构化的特点又使它具有以下功能: - 提供了完整的一套组合型原语(primitive); - 提供了双向通路和电阻器件的原语; - 可建立MOS器件的电荷分享和电荷衰减动态模型。 Verilog HDL的构造性语句可以精确地建立信号的模型。这是因为在Verilog HDL中,提供了延迟和输出强度的原语来建立精确程度很高的信号模型。信号值可以有不同的的强度,可以通过设定宽范围的模糊值来降低不确定条件的影响。 Verilog HDL作为一种高级的硬件描述编程语言,有着类似C语言的风格。其中有许多语句如:if语句、case语句等和C语言中的对应语句十分相似。如果读者已经掌握C语言编程的基础,那么学习Verilog HDL并不困难,我们只要对Verilog HDL某些语句的特殊方面着重理解,并加强上机练习就能很好地掌握它,利用它的强大功能来设计复杂的数字逻辑电路。下面我们将对Verilog HDL中的基本语法逐一加以介绍。
标签: Verilog_HDL
上传时间: 2013-11-23
上传用户:青春给了作业95
可编程技术势在必行 — 用更少的资源实现更多功能 随时随地降低风险、使用可编程硬件设计平台快速开发差异化产品 — 驱使人们不断探索能够提供更大容量、更低功耗和更高带宽的 FPGA 解决方案,用来创建目前 ASIC 和 ASSP 所能提供的系统级功能。赛灵思已经开发出一种创新型 FPGA 设计和制造方法,能够满足“可编程技术势在必行”的两大关键要求。堆叠硅片互联技术是新一代 FPGA 的基础,不仅超越了摩尔定律,而且实现的功能能够满足最严格的设计要求。利用该技术,赛灵思缩短了批量交付最大型 FPGA 所需的时间,从而可以满足最终客户的批量生产需求。本白皮书将探讨促使赛灵思开发堆叠硅片互联技术的技术及经济原因,以及使之实现的创新方法。
上传时间: 2013-11-03
上传用户:ztj182002
GMSK信号具有很好的频谱和功率特性,特别适用于功率受限和信道存在非线性、衰落以及多普勒频移的移动突发通信系统。根据GMSK调制的特点,提出 亍一种以FPGA和CMX589A为硬件裁体的GMSK调制器的设计方案,并给出了方案的具体实现,包括系统结构、利用CMX589A实现的高斯滤波器、 FPGA实现的调制指数为O.5的FM调制器以及控制器。对系统功能和性能测试结果表明,指标符合设计要求,工作稳定可靠。 关键词:GMSK;DDS;FM调制器;FPGAl 引 言 由于GMSK调制方式具有很好的功率频谱特性,较优的误码性能,能够满足移动通信环境下对邻道干扰的严格要求,因此成为GSM、ETS HiperLANl以及GPRS等系统的标准调制方式。目前GMSK调制技术主要有两种实现方法,一种是利用GMSK ASIC专用芯片来完成,典型的产品如FX589或CMX909配合MC2833或FX019来实现GMSK调制。这种实现方法的特点是实现简单、基带信 号速率可控,但调制载波频率固定,没有可扩展性。另外一种方法是利用软件无线电思想采用正交调制的方法在FPGA和DSP平台上实现。其中又包括两种实现 手段,一种是采用直接分解将单个脉冲的高斯滤波器响应积分分成暂态部分和稳态部分,通过累加相位信息来实现;另一种采用频率轨迹合成,通过采样把高斯滤波 器矩形脉冲响应基本轨迹存入ROM作为查找表,然后通过FM调制实现。这种利用软件无线电思想实现GMSK调制的方法具有调制参数可变的优点,但由于软件 设计中涉及到高斯低通滤波、相位积分和三角函数运算,所以调制器参数更改困难、实现复杂。综上所述,本文提出一种基于CMX589A和FPGA的GMSK 调制器设计方案。与传统实现方法比较具有实现简单、调制参数方便可控和软件剪裁容易等特点,适合于CDPD、无中心站等多种通信系统,具有重要现实意义。
上传时间: 2013-10-24
上传用户:thesk123