虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

数据地址

  • MSP430单片机实现微波成像系统的扫描控制与数据采集

    MSP430单片机实现微波成像系统的扫描控制与数据采集应用MSP430单片机实现微波成像系统的天线扫描控制与数据采集功能,介绍了该系统控制及采集部分的硬件结构及软件设计。

    标签: MSP 430 单片机 微波成像

    上传时间: 2013-10-28

    上传用户:王庆才

  • 单片机常用芯片和器件手册

    单片机常用芯片和器件手册 地址锁存器由于MCS-51单片机的P0口是分时复用的地址/数据总线,因此在进行程序存储器扩展时,必须利用地址锁存器将信号从地址/数据总线中分离开来。 常用的地址锁存器是: 74LS373828274LS273 存储器扩展MCS-51的程序存储器寻址空间为64k字节(0000H--FFFFH),其中8051、8751片内涵有4K字节的ROM或EPROM,8031片内部不带ROM。当片内ROM不够用或采用8031芯片时,需扩展程序存储器。MCS-51单片机访问外部程序存储器所使用的控制信号有:   ALE:低8位地址锁存控制;   PSEN:外部程序存储器“读取”控制。 常用的程序存储器有:   EPROM: 2716  2732  2764  27128   27256   EEPROM:2817  2864 MCS-51的数据存储器寻址空间为64k字节(0000H--FFFFH)。而8031单片机内部只有128个字节的RAM存储器。数据存储器只使用WR、RD控制线。 常用的数据存储器有:   静态RAM:6116  6264   动态RAM:2186

    标签: 单片机常用 芯片 器件手册

    上传时间: 2013-11-15

    上传用户:xiaowei314

  • C51使用手册

    C51使用手册 .pdf 第二节内存区域(Memory Areas)1. Pragram Area由Code 说明可有多达64kBytes 的程序存储器2. Internal Data Memory:内部数据存储器可用以下关键字说明data 直接寻址区为内部RAM 的低128 字节00H 7FHidata 间接寻址区 包括整个内部RAM 区00H FFHbdata 可位寻址区 20H 2FH3. External Data Memory外部RAM 视使用情况可由以下关键字标识xdata 可指定多达64KB 的外部直接寻址区地址范围0000H 0FFFFHpdata 能访问1 页(25bBytes)的外部RAM 主要用于紧凑模式(Compact Model)4. Speciac Function Register Memory

    标签: C51 使用手册

    上传时间: 2013-11-19

    上传用户:busterman

  • Keil C51开发系统基本知识3

    Keil C51开发系统基本知识3 1. 1. 专用寄存器include文件例如8031、8051均为REG51.h其中包括了所有8051的SFR及其位定义,一般系统都必须包括本文件。2. 2. 绝对地址include文件absacc.h该文件中实际只定义了几个宏,以确定各存储空间的绝对地址。3. 3. 动态内存分配函数,位于stdlib.h中 4. 4. 缓冲区处理函数位于“string.h”中其中包括拷贝比较移动等函数如:memccpy memchr memcmp memcpy memmove memset这样很方便地对缓冲区进行处理。5. 5. 输入输出流函数,位于“stdio.h”中流函数通8051的串口或用户定义的I/O口读写数据,缺省为8051串口,如要修改,比如改为LCD显示,可修改lib目录中的getkey.c及putchar.c源文件,然后在库中替换它们即可。3. 第三节 Keil C51库函数原型列表

    标签: Keil C51 开发系统 基本知识

    上传时间: 2013-11-06

    上传用户:smallfish

  • 单片机入门基础知识大全免费下载

    单片机入门基础知识大全免费下载 单片机第八课(寻址方式与指令系统) 通过前面的学习,我们已经了解了单片机内部的结构,并且也已经知道,要控制单片机,让它为我们干学,要用指令,我们已学了几条指令,但很零散,从现在开始,我们将要系统地学习8051的指令部份。 一、概述 1、指令的格式 我们已知,要让计算机做事,就得给计算机以指令,并且我们已知,计算机很“笨”,只能懂得数字,如前面我们写进机器的75H,90H,00H等等,所以指令的第一种格式就是机器码格式,也说是数字的形式。但这种形式实在是为难我们人了,太难记了,于是有另一种格式,助记符格式,如MOV P1,#0FFH,这样就好记了。 这两种格式之间的关系呢,我们不难理解,本质上它们完全等价,只是形式不一样而已。 2、汇编 我们写指令使用汇编格式,而计算机只懂机器码格式,所以要将我们写的汇编格式的指令转换为机器码格式,这种转换有两种方法:手工汇编和机器汇编。手工汇编实际上就是查表,因为这两种格式纯粹是格式不同,所以是一一对应的,查一张表格就行了。不过手工查表总是嫌麻烦,所以就有了计算机软件,用计算机软件来替代手工查表,这就是机器汇编。 二、寻址 让我们先来复习一下我们学过的一些指令:MOV P1,#0FFH,MOV R7,#0FFH这些指令都是将一些数据送到相应的位置中去,为什么要送数据呢?第一个因为送入的数可以让灯全灭掉,第二个是为了要实现延时,从这里我们可以看出来,在用单片机的编程语言编程时,经常要用到数据的传递,事实上数据传递是单片机编程时的一项重要工作,一共有28条指令(单片机共111条指令)。下面我们就从数据传递类指令开始吧。 分析一下MOV P1,#0FFH这条指令,我们不难得出结论,第一个词MOV是命令动词,也就是决定做什么事情的,MOV是MOVE少写了一个E,所以就是“传递”,这就是指令,规定做什么事情,后面还有一些参数,分析一下,数据传递必须要有一个“源”也就是你要送什么数,必须要有一个“目的”,也就是你这个数要送到什么地方去,显然在上面那条指令中,要送的数(源)就是0FFH,而要送达的地方(目的地)就是P1这个寄存器。在数据传递类指令中,均将目的地写在指令的后面,而将源写在最后。 这条指令中,送给P1是这个数本身,换言之,做完这条指令后,我们可以明确地知道,P1中的值是0FFH,但是并不是任何时候都可以直接给出数本身的。例如,在我们前面给出的延时程序例是这样写的: MAIN: SETB P1.0     ;(1)    LCALL DELAY ;(2)     CLR P1.0      ;(3)    LCALL DELAY   ;(4)     AJMP MAIN    ;(5) ;以下子程序 DELAY: MOV R7,#250   ;(6) D1: MOV R6,#250   ;(7) D2: DJNZ R6,D2    ;(8)    DJNZ R7,D1   ;(9)    RET        ;(10)    END        ;(11)     表1  MAIN: SETB P1.0     ;(1)    MOV 30H,#255     LCALL DELAY ;     CLR P1.0      ;(3)     MOV 30H,#200     LCALL DELAY   ;(4)     AJMP MAIN    ;(5) ;以下子程序 DELAY: MOV R7,30H   ;(6) D1: MOV R6,#250   ;(7) D2: DJNZ R6,D2    ;(8)    DJNZ R7,D1   ;(9)    RET        ;(10)    END        ;(11) 表2    这样一来,我每次调用延时程序延时的时间都是相同的(大致都是0.13S),如果我提出这样的要求:灯亮后延时时间为0.13S灯灭,灯灭后延时0.1秒灯亮,如此循环,这样的程序还能满足要求吗?不能,怎么办?我们可以把延时程序改成这样(见表2):调用则见表2中的主程,也就是先把一个数送入30H,在子程序中R7中的值并不固定,而是根据30H单元中传过来的数确定。这样就可以满足要求。 从这里我们可以得出结论,在数据传递中要找到被传递的数,很多时候,这个数并不能直接给出,需要变化,这就引出了一个概念:如何寻找操作数,我们把寻找操作数所在单元的地址称之为寻址。在这里我们直接使用数所在单元的地址找到了操作数,所以称这种方法为直接寻址。除了这种方法之外,还有一种,如果我们把数放在工作寄存器中,从工作寄存器中寻找数据,则称之为寄存器寻址。例:MOV A,R0就是将R0工作寄存器中的数据送到累加器A中去。提一个问题:我们知道,工作寄存器就是内存单元的一部份,如果我们选择工作寄存器组0,则R0就是RAM的00H单元,那么这样一来,MOV A,00H,和MOV A,R0不就没什么区别了吗?为什么要加以区分呢?的确,这两条指令执行的结果是完全相同的,都是将00H单元中的内容送到A中去,但是执行的过程不同,执行第一条指令需要2个周期,而第二条则只需要1个周期,第一条指令变成最终的目标码要两个字节(E5H 00H),而第二条则只要一个字节(E8h)就可以了。 这么斤斤计较!不就差了一个周期吗,如果是12M的晶振的话,也就1个微秒时间了,一个字节又能有多少? 不对,如果这条指令只执行一次,也许无所谓,但一条指令如果执行上1000次,就是1毫秒,如果要执行1000000万次,就是1S的误差,这就很可观了,单片机做的是实时控制的事,所以必须如此“斤斤计较”。字节数同样如此。 再来提一个问题,现在我们已知,寻找操作数可以通过直接给的方式(立即寻址)和直接给出数所在单元地址的方式(直接寻址),这就够了吗? 看这个问题,要求从30H单元开始,取20个数,分别送入A累加器。 就我们目前掌握的办法而言,要从30H单元取数,就用MOV A,30H,那么下一个数呢?是31H单元的,怎么取呢?还是只能用MOV A,31H,那么20个数,不是得20条指令才能写完吗?这里只有20个数,如果要送200个或2000个数,那岂不要写上200条或2000条命令?这未免太笨了吧。为什么会出现这样的状况?是因为我们只会把地址写在指令中,所以就没办法了,如果我们不是把地址直接写在指令中,而是把地址放在另外一个寄存器单元中,根据这个寄存器单元中的数值决定该到哪个单元中取数据,比如,当前这个寄存器中的值是30H,那么就到30H单元中去取,如果是31H就到31H单元中去取,就可以解决这个问题了。怎么个解决法呢?既然是看的寄存器中的值,那么我们就可以通过一定的方法让这里面的值发生变化,比如取完一个数后,将这个寄存器单元中的值加1,还是执行同一条指令,可是取数的对象却不一样了,不是吗。通过例子来说明吧。    MOV R7,#20    MOV R0,#30H LOOP:MOV A,@R0    INC R0    DJNZ R7,LOOP 这个例子中大部份指令我们是能看懂的,第一句,是将立即数20送到R7中,执行完后R7中的值应当是20。第二句是将立即数30H送入R0工作寄存器中,所以执行完后,R0单元中的值是30H,第三句,这是看一下R0单元中是什么值,把这个值作为地址,取这个地址单元的内容送入A中,此时,执行这条指令的结果就相当于MOV A,30H。第四句,没学过,就是把R0中的值加1,因此执行完后,R0中的值就是31H,第五句,学过,将R7中的值减1,看是否等于0,不等于0,则转到标号LOOP处继续执行,因此,执行完这句后,将转去执行MOV A,@R0这句话,此时相当于执行了MOV A,31H(因为此时的R0中的值已是31H了),如此,直到R7中的值逐次相减等于0,也就是循环20次为止,就实现了我们的要求:从30H单元开始将20个数据送入A中。 这也是一种寻找数据的方法,由于数据是间接地被找到的,所以就称之为间址寻址。注意,在间址寻址中,只能用R0或R1存放等寻找的数据。 二、指令 数据传递类指令 1) 以累加器为目的操作数的指令 MOV A,Rn MOV A,direct MOV A,@Ri MOV A,#data 第一条指令中,Rn代表的是R0-R7。第二条指令中,direct就是指的直接地址,而第三条指令中,就是我们刚才讲过的。第四条指令是将立即数data送到A中。 下面我们通过一些例子加以说明: MOV A,R1 ;将工作寄存器R1中的值送入A,R1中的值保持不变。 MOV A,30H ;将内存30H单元中的值送入A,30H单元中的值保持不变。 MOV A,@R1 ;先看R1中是什么值,把这个值作为地址,并将这个地址单元中的值送入A中。如执行命令前R1中的值为20H,则是将20H单元中的值送入A中。 MOV A,#34H ;将立即数34H送入A中,执行完本条指令后,A中的值是34H。 2)以寄存器Rn为目的操作的指令 MOV Rn,A   MOV Rn,direct   MOV Rn,#data 这组指令功能是把源地址单元中的内容送入工作寄存器,源操作数不变。

    标签: 单片机 免费下载 基础知识

    上传时间: 2013-10-13

    上传用户:3294322651

  • ARM处理器的工作模式

    ARM处理器的工作模式 ARM处理器状态    ARM微处理器的工作状态一般有两种,并可在两种状态之间切换:第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令;第二种为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。在程序的执行过程中,微处理器可以随时在两种工作状态之间切换,并且,处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容。但ARM微处理器在开始执行代码时,应该处于ARM状态。  ARM处理器状态    进入Thumb状态:当操作数寄存器的状态位(位0)为1时,可以采用执行BX指令的方法,使微处理器从ARM状态切换到Thumb状态。此外,当处理器处于Thumb状态时发生异常(如IRQ、FIQ、Undef、Abort、SWI等),则异常处理返回时,自动切换到Thumb状态。    进入ARM状态:当操作数寄存器的状态位为0时,执行BX指令时可以使微处理器从Thumb状态切换到ARM状态。此外,在处理器进行异常处理时,把PC指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到ARM状态。ARM处理器模式    ARM微处理器支持7种运行模式,分别为:用户模式(usr):ARM处理器正常的程序执行状态。快速中断模式(fiq):用于高速数据传输或通道处理。外部中断模式(irq):用于通用的中断处理。管理模式(svc):操作系统使用的保护模式。数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。系统模式(sys):运行具有特权的操作系统任务。定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。ARM处理器模式    ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。大多数的应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。    除用户模式以外,其余的所有6种模式称之为非用户模式,或特权模式;其中除去用户模式和系统模式以外的5种又称为异常模式,常用于处理中断或异常,以及需要访问受保护的系统资源等情况。ARM寄存器    ARM处理器共有37个寄存器。其中包括:31个通用寄存器,包括程序计数器(PC)在内。这些寄存器都是32位寄存器。以及6个32位状态寄存器。 关于寄存器这里就不详细介绍了,有兴趣的人可以上网找找,很多这方面的资料。异常处理    当正常的程序执行流程发生暂时的停止时,称之为异常,例如处理一个外部的中断请求。在处理异常之前,当前处理器的状态必须保留,这样当异常处理完成之后,当前程序可以继续执行。处理器允许多个异常同时发生,它们将会按固定的优先级进行处理。当一个异常出现以后,ARM微处理器会执行以下几步操作:进入异常处理的基本步骤:将下一条指令的地址存入相应连接寄存器LR,以便程序在处理异常返回时能从正确的位置重新开始执行。将CPSR复制到相应的SPSR中。根据异常类型,强制设置CPSR的运行模式位。强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。如果异常发生时,处理器处于Thumb状态,则当异常向量地址加载入PC时,处理器自动切换到ARM状态。 ARM微处理器对异常的响应过程用伪码可以描述为: R14_ = Return LinkSPSR_= CPSRCPSR[4:0] = Exception Mode NumberCPSR[5] = 0 ;当运行于 ARM 工作状态时If == Reset or FIQ then;当响应 FIQ 异常时,禁止新的 FIQ 异常CPSR[6] = 1PSR[7] = 1PC = Exception Vector Address异常处理完毕之后,ARM微处理器会执行以下几步操作从异常返回:将连接寄存器LR的值减去相应的偏移量后送到PC中。将SPSR复制回CPSR中。若在进入异常处理时设置了中断禁止位,要在此清除。

    标签: ARM 处理器 工作模式

    上传时间: 2013-11-15

    上传用户:hanbeidang

  • AT89C51系统接口技术

    • 8255的控制字• 8255的工作方式1和工作方式2• DAC0832工作方式• ADC0809工作方式@ 要求 掌握 :• 8255接口芯片 • MCS-51单片机与D/A转换器的接口连接 • MCS-51单片机与A/D转换器的接口连接 • 初始化编程及应用了解:• I/O口扩展的原因 • 简单I/O口的扩展 • 单片机的键盘技术 8.1  I/O口扩展概述 8.2  简单I/O口扩展8.3  8255可编程通用并行接口芯片8.4  8155可编程通用并行接口芯片8.1  I/O口扩展概述 8.1.1  I/O口扩展的原因MCS-51系列单片机共有四个并行I/O口,分别是P0、P1、P2和P3。其中P0口一般作地址线的低八位和数据线使用;P2口作地址线的高八位使用;P3是一个双功能口,其第二功能是一些很重要的控制信号,所以P3一般使用其第二功能。这样供用户使用的I/O口就只剩下P1口了。另外,这些I/O口没有状态寄存和命令寄存的功能,因此难以满足复杂的I/O操作要求。由于MCS-51系列单片机I/O口数量和功能有限,所以在实际应用中不得不使用扩展的方法,来增加I/O口的数量,增强I/O口的功能。  8.1.2  I/O口的编址技术用户可以通过对I/O口进行读和写操作来完成数据的输入和输出。例如:P0口的地址为80H。用户可以使用MOV指令对P0口进行写操作。          MOV   P0,  A 8.1.3  单片机I/O传送的方式单片机为了实现数据的输入/输出传送,通常使用3种控制方式。1.  无条件传送方式 当外设和单片机能够同步工作时,可以采用无条件方式进行传送,即数据可以随时进行传送。2.  查询方式 查询方式又称为有条件传送方式,即数据的传送是有条件的。在进行I/O操作之前,用户要通过软件查询外设是否为数据传送做好准备,只有确认外设为数据传送做好准备。单片机才能执行数据的输入/输出(I/O)操作。3.  中断方式 当外设和计算机进行数据交换时,外设向单片机发出中断请求(即通知单片机)。单片机接到中断请求后,就作出响应,暂停正在执行的程序,而转去为设备的数据输入/输出服务。当服务完成后,程序返回,单片机再继续执行被中断的程序。    中断方式大大提高了单片机系统的工作效率,所以在单片机中被广泛应用。

    标签: 89C C51 AT 89

    上传时间: 2013-11-10

    上传用户:yqs138168

  • 基于CH375的USB数据传输

    本文针对在苹果园中监测测量控制等系统中无法方便的把数据传输给移动设备的情况,在此介绍了一种以USB接口芯片沁恒CH375和MCS51单片机为核心,U盘、移动硬盘等为存储介质的数据存储方案。本模块给出了硬件电路的设计和U盘的读写程序,并指出了易出错的调试细节。实验结果证明,该方法具有成本低,可靠性高,通用性强,可以简便地集成到各种监测、测控系统中。

    标签: 375 USB CH 数据传输

    上传时间: 2013-10-16

    上传用户:zhqzal1014

  • 用51单片机设计的时钟电路毕业论文

    用51单片机设计的时钟电路毕业论文第一章电路原理分析1-1 显示原理1-2 数码管结构及代码显示1-3 键盘及读数原理1-4 连击功能的实现第 二 章 程序设计思想和相关指令介绍2-1 数据与代码转换2-2 计时功能的实现与中断服务程序2-3 时间控制功能与比较指令2-4 时钟误差的分析附录A 电路图附录B 存储单元地址表附录C 输入输出口功能分配表附录D 定时中断程序流程图附录F 调时功能流程图附录G 程序清单

    标签: 51单片机 时钟电路 毕业论文

    上传时间: 2013-10-29

    上传用户:hoperingcong

  • 基于ADS1253的色谱仪数据采集系统设计

    本文设计的色谱仪数据采集系统,采用24位AD芯片ADS1253对检测器输出的电压信号进行模/数转换,然后由单片机读取数据并传送给上位机。主要介绍了该系统的硬件和软件设计。其中,硬件电路运用了抗干扰设计,软件设计给出了程序框图。最后的实验结果表明,该系统采到的数据准确、可靠,保证了仪器检测出更多的样品组份。

    标签: 1253 ADS 色谱仪 数据采集

    上传时间: 2014-12-27

    上传用户:rolypoly152