当前位置:文档之家› PCI9054寄存器地址映射总结

PCI9054寄存器地址映射总结

PCI9054寄存器地址映射总结
PCI9054寄存器地址映射总结

1、PCI9054具有三种工作模式:M模式、J模式和C模式,它们可以通过MODE[1:0]两个管脚来设定。应注意的是这三种模式都是对LOCAL总线而言。M模式是为在LOCAL端连接MPC850或者MPC860微处理器而设定的专用模式,此时LOCAL端管脚定义为对这两个处理器的接口。J模式和C模式则是针对一般应用的模式,它们之间的区别不大。J模式下,32位地址线和32位数据线是复用的,但在C模式下它们是非复用的。显而易见,C模式下的时序和逻辑控制最简单,所以本次设计选择9054工作在C模式下。

MODE0 MODE1 总线模式

1 1 M模式

1 0 J模式

0 1 保留

0 0 C模式

2、PCI9054的局部总线与PCI总线之间的数据传输有三种方式:PCI Initiator、PCI Target和DMA。PCI Initiator是由局部端的处理器通过PCI9054对存储器或者IO发起访问。PCI Target则是由总线主控设备通过PCI9054对其LOCAL 端存储器进行访问。而DMA传输是在PCI9054控制下,完成PCI端存储器和LOCAL端存储器的之间的数据传输。

PCI9054主从状态PCI Initiator PCI Target DMA PCI端主从主

LOCAL端从主主

PCI Initiator(主模式)

PCI Target(从模式)

DMA

3、PCI9054内部有5个寄存器组:PCI配置寄存器组、LOCAL配置寄存器组、运行寄存器组、DMA寄存器组、消息队列寄存器组,这里为一些一些关键的寄存器。

(1)PCI配置寄存器组

在PCI9054中,提供了84个字节大小的PCI配置空间,用来配置诸如设备识别码、版本号、状态、命令、其它寄存器组的基址和LOCAL总线其它空间基址等的信息。用户可以通过PCI总线、LOCAL总线或者外置的EEPROM来配置。

PCIBAR0:存放PCI9054中的LOCAL端配置寄存器组、运行寄存器组和DMA寄存器组在PCI总线MEMORY空间的起始地址。

PCIBAR1: 存放PCI9054中的LOCAL端配置寄存器组、运行寄存器组和DMA寄存器组在PCI总线I/O空间的起始地址。

PCIBAR2: 存放PCI9054中的LOCAL总线的地址空间0映射到PCI总线存储空间的起始地址。

PCIBAR3: 存放PCI9054中的LOCAL总线的地址空间1映射到PCI总线存储空间的起始地址。

这四个主要完成LOCAL端总线相关的寄存器在PCI总线的映射,以及LOCAL总线管理的地址空间在PCI总线上的映射。这四个寄存器都是由系统进行配置的,无法通过EEPROM配置。

其中PCIBAR0,PCIBAR1,就是把LOCAL总线配置寄存器,DMA寄存器,运行寄存器映射到对应的内存空间去,配置的值就是他们在内存空间的起始地址。再是PCIBAR2,PCIBAR3寄存器,对应到LOCAL总线管理了两部分地址空间,space0和space1。PCIBAR2,PCIBAR3就是把这两部分映射到PCI 总线地址上,即把这两个空间映射到PC机的内存空间。PCIBAR2的配置值就是LOCAL总线端space0空间映射到PCI内存空间的起始地址,PCIBAR3的配置值则是LOCAL总线端space1空间映射到PCI内存空间的起始地址。而LOCAL总线端SPACE0和SPACE1在local端的实际地址及范围,则是由LOCAL配置寄存器决定。

(2)Local配置寄存器

Local寄存器组同样用到了很多寄存器,但是映射主要涉及到LAS0RR、LAS0BA、PCIBAR2;LAS1RR、LAS1BA、PCIBAR3(在PCI配置寄存器组中)六个32位寄存器

LAS0BA表示的是局部地址空间S0的基地址,该寄存器中的值被重新映射到PCIBAR2地址空间,以确定存储空间解码范围。在译码过程中,这个值用来替换PCI端的物理地址。如,64K的局部空间按照十六进制表示为0000FFFFH,在EEPROM里对于MEMORY规定要求填入这个数的反码,所以LAS0RR的值实际为FFFF0000H。对于I/O来说里面的值是地址范围取反加一。

LAS0BA表示的是局部地址空间S0的基地址,该寄存器中的值被重新映射到PCI地址空间(PCIBAR2),以确定存储空间解码范围。LAS0BA的值是LASORR的倍数,如果LAS0RR是1M的地址范围,那么LAS0BA就是0M,1M,2M,3M等等。若要求局部地址空间S0的基地址为80000000H,则LAS0BA 的值应为80000001H。LAS0BA的最低位置成“1”,表示PCI直接从模式访问本地地址空间0,使能译码;写“0”则禁止使能。

(3)地址映射

在应用程序开发操作硬件的时候,例如:PCI基址寄存器+offset ,通过PCI 驱动底层的地址转换得到PCI基址寄存器(0x78900000h)+offset,这个地址可以找到PCI9054芯片的内部,然后,PCI9054芯片再把这个PCI地址进行重映射到Local端的内存空间地址,这一步根据Local Space0 Range 寄存器的设置,其高12位由Local端基址寄存器的高12位替换即所谓的重映射,而Local 端基地址的高12位是0x123h,所以,PCI端的地址PCI基址寄存器(0x78900000h)+offset”→Local端地址“0x12300000h +offset”,如此完成地址的重映射。由于C模式的LocalBus端LA为[2:31]所以地址应该右移两位。

51系列单片机寄存器详解

AUXR:辅助寄存器 字节地址=8EH,不可位寻址 - - - WDIDLE DISRTO - - DISALE WDIDLE:WTD在空闲模式下的禁止/允许位 当WDIDLE=0时,WDT在空闲模式下继续计数 当WDIDLE=1时,WDT在空闲模式下暂停计数 DISRTO:禁止/允许WDT溢出时的复位输出 当DISRTO=0时,WDT定时器溢出时,在RST引脚输出一个高电平脉冲 当DISRT0=1时,RST引脚为输入脚 DISALE :ALE禁止/允许位 当DISALE=0时,ALE有效,发出恒定频率脉冲 当DISALE=1时,ALE仅在CPU执行MOVC和MOVX类指令时有效,不访问外寄存器时,ALE不输出脉冲信号 AUXR1:辅助寄存器1字节地址A2,不可位寻 - - - -- - - DPS DPS:数据指针寄存器选择位 当DPS=0时,选择数据指针寄存器DPRT0 DPRT1时,选择数据指针寄存器DPS 当= PSW:程序状态字 CY——进位标记 AC——半进位标记 F0——用户设定标记 RS1、RS0——4个工作寄存器区的选择位。 VO——溢出标记 P——奇偶校验标记 PCON:电源控制器及波特率选择寄存器 字节地址=87H,不可位寻址 SMOD - - POF GF1 GF0 PD IDL SMOD——波特率倍增位 GF1、GF0——用户通用标记 PD——掉电方式控制位,PD=1时进入掉电模式 IDL——空闲方式控制位,IDL=1时进入空闲方式 在AT89S51中PCON.4是电源断电标记位POF,上电是为1 IE:中断允许控制寄存器

EA:中断允许总控制位 当EA=0时,中断总禁止。 当EA=1时,中断总允许后中断的禁止与允许由各中断源的中断允许控制位进行设置。 EX0( EX1):外部中断允许控制位 当EX0( EX1)=0 禁止外中断 当EX0( EX1)=1 允许外中断 ET0(EX1):定时/计数中断允许控制位 当ET0(ET1)=0 禁止定时(或计数)中断 当ET0(ET1)=1 允许定时(或计数)中断 ET2:定时器2中断允许控制位,在AT89S52、AT89C52中 ES:串行中断允许控制位 当ES=0 禁止串行中断 当ES=1 允许串行中断 IP:中断优先级控制寄存器 PX0——外部中断0优先级设定位 PT0——定时中断0优先级设定位 PX1——外部中断1优先级设定位 PT1——定时中断1优先级设定位 PS——串口中断优先级设定位 优先级设定位2PT2——定时器SCON:串行口控制寄存器 SM0、SM1:串行口工作方式选择位 SM2:多机通信控制位 REN:允许/禁止串行口接收的控制位 TB8:在方式2和方式3中,是被发送的第9位数据,可根据需要由软件置1或清零,也可以作为奇偶校验位,在方式1中是停止位。

MCS-51系列特殊功能寄存器

MCS-51系列特殊功能寄存器(80H~FFH) 1.P0 (80H) 2.SP 栈指针(81H) 3.DPTR 数据指针(由DPH和DPL组成) DPL 数据指针低八位(82H) DPH 数据指针高八位(83H) 4.PCON 电源管理寄存器(87H) SMOD :波特率倍增位。SMOD=0时,不变;SMOD=1时,倍增。 GF1,GF0 :通用标志位。 PD :掉电方式位。PD=1时,进入掉电方式。 IDL :待机方式位。IDL=1时,进入待机方式。 5.TMOD 定时/记数方式寄存器(89H) GATE :门控位。GATE=0时,直接由TR启动定时器;GATE=1时,须外部INT为1时,且TR启动定时器。 C/T :功能选择位。C/T=0时,为定时器;C/T=1时,为计数器。 M1,M0 :方式选择位。

6.T CON 定时/记数控制寄存器(88H) TF1 :定时器1溢出标志。由硬件置1,并且进入中断;进入中断服务程序后,由硬件清0,查询方式下由软件清0。 TR1 :定时器运行控制位。TR1=0时,关闭T1;TR1=1时,启动T1。 TF0 :定时器0溢出标志。由硬件置1,并且进入中断;进入中断服务程序后,由硬件清0,查询方式下由软件清0。 TR0 :定时器运行控制位。TR0=0时,关闭T0;TR0=1时,启动T0。 IE1 :外部中断1请求标志。 IT1 :外部中断1触发方式。IT1=0时,为低电平触发方式;IT1=1时,为负跳变触发方式(边沿触发)。 IE0 :外部中断0请求标志。 IT0 :外部中断0触发方式。IT0=0时,为低电平触发方式;IT0=1时,为负跳变触发方式(边沿触发)。 7.P1 (90H) SM0,SM1 :串行方式控制。 SM2 :多机通讯控制位。SM2=0时,禁止多机通讯;SM2=1时,允许多机通讯。

CC2530常用寄存器归纳

P0SEL(P1SEL相同):各个I/O口的功能选择,0为普通I/O功能,1为 P2SEL:(D0到D2位)端口2 功能选择和端口1 外设优先级控制 什么是外设优先级:当PERCFG分配两个外设到相同的引脚时,需要设置这两 PERCFG:设置部分外设的I/O位置,0为默认I位置1,1为默认位置2

P0DIR(P1DIR相同):设置各个I/O的方向,0为输入,1为输出 P2DIR :D0~D4设置P2_0到P2_4的方向 D7、D6位作为端口0外设优先级的控制

P0INP(P1INP意义相似) :设置各个I/O口的输入模式,0为上拉/下拉,1 需要注意的是:P1INP中,只有D7~D2分别设置对应I/O口的输入模式。D1D0两位无作用。 P2INP:D0~D4控制P2_0~P2_4的输入模式,0为上拉/下拉,1为三态; D5~D7设置对P0、P1和P2的上拉或下拉的选择。0为上拉,1

P0IFG(P1IFG相同):终端状态标志寄存器,当输入端口有中断请求时,相应的标志位将置1。 P0IEN(P1IEN相同):各个控制口的中断使能,0为中断禁止,1为中断使能。 P2IFG:D0~D4为P2_0~P2_4的中断标志位D5为USD D+中断状态标志,当D+线有一个中断请求未决时设置该标志,用于检测USB挂起状态下的USB恢复事件。当USB控制器没有挂起时不设置该标志。 P2IEN:D0~D4控制P2_0~P2_4的中断使能 D5控制USB D+的中断使能

PICTL:D0~D3设置各个端口的中断触发方式,0为上升沿触发,1为下降沿触发。 D7控制I/O引脚在输出模式下的驱动能力。选择输出驱动能力增强来补偿引脚DVDD的低I/O电压,确保在较 低的电压下的驱动能力和较高电压下相同。0为最小驱动能力增强。1为最大 IEN0:中断使能0,0为中断禁止,1为中断使能 IEN1:中断使能1,0为中断禁止,1为中断使能

单片机总结

一、中断 (2) 1、中断优先级控制IP (2) 2、中断请求控制标志TCON (2) 3、中断允许控制IE (3) 4、写中断函数(不用在main函数前声明): (3) 二、定时器 (4) 1、工作方式寄存器TMOD:写程序时选择定时器和工作方式(设置M0、M1)。 (4) 2、对定时器装初值: (4) 3、设置中断: (4) 4、启动定时器控制寄存器: (4) 5、写中断函数(不用再main函数前声明): (5) 6、注意:中断函数中的功能程序代码的执行时间不要超过定时时间。 (5) 三、串行接口 (6) 1、将TMOD设置成定时器1,工作方式为2 (6) 2、计算T1的初值:TH1和TL1的值相同: (6) 3、启动定时器T1(对TCON设置):TR1=1; (6) 4、确定串行口控制SCON: (6) 5、串行口工作在中断方式时,进行中断设置: (6) 6、写中断函数。 (6) 串口补充:波特率的计算: (6)

一、中断 中断涉及到的寄存器和写程序时的操作顺序: 1、中断优先级控制IP IP的每一位需用程序置一,某个控制位置一,相应得中断源就设定为高级中断。 同一优先级中的中断申请不止一个时,则有中断优先权排队问题。同一优先级的中断优先权排队,由中断系统硬件确定的自然优先级形成,其排列如所示: 2、中断请求控制标志TCON IT0(TCON.0),外部中断0触发方式控制位。 当IT0=0时,为电平触发方式,P3.2引脚低电平有效。 当IT0=1时,为边沿触发方式,P3.2引脚下降沿有效。 IE0(TCON.1),外部中断0中断请求标志位。单片机硬件自动置位和自动清零,不用编写在程序中。 IT1(TCON.2),外部中断1触发方式控制位。 当IT0=0时,为电平触发方式,P3.3引脚低电平有效。 当IT0=1时,为边沿触发方式,P3.3引脚下降沿有效。

51_52系列单片机特殊功能寄存器及资源映射方式总结

51系列单片机特殊功能寄存器总结 第一节:片内RAM映射: 51:00H_7FH 128B片内(DATA),其中00H-07H: bank0,08H-0FH: bank1, 10H-17H: bank2,18H-1FH:bank3. 20H-2FH: 位寻址区(bdata) 30H-7FH: 堆栈区。 80H-FFH: SFR区 52:增加了80H-FFH间接寻址的片内RAM(IDATA) 第二节:特殊功能寄存器(51) ①TCON,地址:88H,定时器计数器控制,中断控制 IT0/1:外部中断触发方式控制,置0,为低电平触发,置1,为下降沿触发。每个机器周期的S5P2器件多外部触发采样。响应中断需要两个机器 周期。 IE0/1:外部中断请求标志,CPU响应中断后,硬件自动将IE清0 TFx,定时器Tx溢出标志,计数溢出时,硬件将其置位,响应中断后,硬件将其清0,该位可由程序查询。 TRx, 定时器x运行控制,置1则启动定时器,清0则停止定时器。 ②TMOD,地址:89H, 定时器计数器工作方式控制 counter对外部输入外冲计数,计一次数需要两个机器周期。 GATE: 取反后与外部中断输入或运算后再同TCON的TRx位相与控制计数器的启与停,GATE为0时,允许TRx开启或停止计数器,为1时,允许INTx开启或停止计数器。 ③TL0, 地址:8AH, 定时器0低八位 ④TL1, 地址:8BH, 定时器1低八位

⑤TH0, 地址:8CH, 定时器0高八位 ⑥TH1, 地址:8DH, 定时器1高八位1 ⑦SCON, 地址:98H,串行通信控制寄存器 S M2:方式2和方式3的多机通信控制位,在方式0中,SM2应置0。 REN:允许串行接收位,由软件置1时,允许接收,清0时。禁止接收 TB8:方式2和方式3中,发送的第9位数据,需要时由软件置位或复位。 RB8: 方式2和方式3中,接收到的第9位数据,在方式1时,RB是接收到停止位,在方式0时,不使用RB8. TI:接收中断标志,由硬件置1,在方式0时,串行发送到第8位结束时置1;在其他方式,串行口发送停止位时置1。TI必须由软件清0。 RI:接收中断标志,由硬件置1。在方式0时(SM2应置0),接收到第8位结束时置1,当SM2=0的其他方式(方式0,1,3)时,接收到停止位置位“1”,当SM2=1时,若串口工作在方式2和3,接收到的第9位数据(RB8)为1时,才激活RI。在方式1时,只有接收到有效的停止位时才会激活RI。RI必须由软件清0 ⑧SBUF, 地址:99H,串行通信数据缓冲器 ⑨IE, 地址:A8H,中断使能控制寄存器 EA: globle interuption Enable, 1: Enable, 0: Disable ET2: timers2 flowover interuption Enable for52, 1: Enable, 0: Disable ES: serrial port interuption Enable, 1: Enable, 0: Disable ET1/0: timers1/0 flowover interuption Enable, 1: Enable, 0: Disable EX1/0: external interuption Enable, 1: Enable, 0: Disable

51单片机特殊功能寄存器功能一览表

51单片机特殊功能寄存器功能一览表 21个特殊功能寄存器(52系列是26个)不连续地分布在128个字节的SFR存储空间中,地址空间为80H-FFH,在这片SFR空间中,包含有128个位地址空间,地址也是80H-FFH,但只有83个有效位地址,可对11个特殊功能寄存器的某些位作位寻址操作(这里介绍一个技巧:其地址能被8整除的都可以位寻址)。 在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SFR)。这样的特殊功能寄存器51单片机共有21个并且都是可寻址的列表如下(其中带*号的为52系列所增加的特殊功能寄存器):

分别说明如下: 1、ACC---是累加器,通常用A表示 这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在ACC中的缘故吧。它的名字特殊,身份也特殊,稍后在中篇中我们将学到指令,可以发现,所有的运算类指令都离不开它。自身带有全零标志Z,若A=0则Z=1;若A≠0则z=0。该标志常用作程序分枝转移的判断条件。 2、B--一个寄存器 在做乘、除法时放乘数或除数,不做乘除法时,随你怎么用。 3、PSW-----程序状态字。 这是一个很重要的东西,里面放了CPU工作时的很多状态,借此,我们可以了解CPU的当前状态,并作出相应的处理。它的各位功能请看下表: 下面我们逐一介绍各位的用途 CY:进位标志。 8051中的运算器是一种8位的运算器,我们知道,8位运算器只能表示到0-255,如果做加法的话,两数相加可能会超过255,这样最高位就会丢失,造成运算的错误,怎么办?最高位就进到这里来。这样就没事了。有进、借位,CY=1;无进、借位,CY =0 例:78H+97H(01111000+10010111) AC:辅助进、借位(高半字节与低半字节间的进、借位)。

计算机组成原理实验报告总结寄存器的原理及操作.doc

成绩:实验报告 课程名称:计算机组成原理 实验项目:寄存器的原理及操作 姓名: 专业:计算机科学与技术 班级: 学号:

计算机科学与技术学院 实验教学中心 20 16年6月20日

实验项目名称:寄存器的原理及操作 一、实验目的 1.了解模型机中 A, W 寄存器结构、工作原理及其控制方法。 2.了解模型机中寄存器组 R0..R3 结构、工作原理及其控制方法。 3.了解模型机中地址寄存器 MAR,堆栈寄存器 ST,输出寄存器 OUT寄存器结构、工作原理及其控 制方法。 二、实验内容 1、A、W寄存器:利用 COP2000实验仪上的K16..K23 开关做为DBUS的数据,其它开关做为控制信号, 将数据写入寄存器A, W。 2、R0、R1、R2、R3 寄存器实验:利用COP2000实验仪上的K16..K23 开关做为DBUS的数据,其它开 关做为控制信号,对数据寄存器组R0..R3 进行读写。 3、MAR、ST、OUT寄存器:利用COP2000实验仪上的K16..K23 开关做为DBUS的数据,其它开关做为 控制信号,将数据写入地址寄存器MAR,堆栈寄存器ST,输出寄存器OUT。 三、实验用设备仪器及材料 伟福 COP2000 系列计算机组成原理实验系统 四、实验原理及接线 实验 1:A,W 寄存器实验

实验 2 :R0,R1, R2,R3寄存器实验

MAR为存储器地址寄存器,其功能是存储操作数在内存中的地址,信号MAREN的功能是将数据总线DBUS上数据 MAR,信号 MAROE的功能是将MAR的值送到地址总线ABUS上 ST 堆栈寄存器的作用,是出现中断或子程序调用时,保存断点处PC 的值,以便中断或子程序结束时, 能继续执行原程序。图中,信号STEN的作用是将数据总线DBUS上数据存入堆栈寄存器ST 中

单片机涉及寄存器知识点汇总

单片机涉及寄存器知识点汇总 第六章两个串口寄存器 1:串行口控制寄存器SCON(98H) 按位解释: (1)SM0、SM1——串行口4种工作方式的选择位 SM0 SM1 方式功能说明 0 0 0 同步移位寄存器方式(用于扩展I/O口) 0 1 1 8位异步收发,波特率可变(由定时器控制) 1 0 2 9位异步收发,波特率为fosc/64或fosc/32 1 1 3 9位异步收发,波特率可变(由定时器控制)(2)SM 2 ——多机通信控制位 在方式二,三情况下:SM2=0,不管第九位是啥,RI=1,产生中断;SM2=1,第九位为1,才产生中断,为0,舍弃前八位。 (3)REN——允许串行接收位 REN=1 允许串行口接收数据。 REN=0 禁止串行口接收数据。 由软件置“1”或清“0” (4)TB8,发送第九位,方式2,3中可作为奇偶校验位或者识别地址帧或数据帧的标志。

(5)RB8,接收的第九位,适用于方式二和方式三。方式一中若SM2=0,RB8接收到的是停止位。 (6)TI——发送中断标志位 方式0时,串行发送第8位数据结束时由硬件置“1”, 其它工作方式,串行口发送停止位的开始时置“1”。 TI=1,表示一帧数据发送结束,可申请中断。CPU响应中断后, 向SBUF写入要发送的下一帧数据。 TI必须由软件清0。 (7)RI——接收中断标志位 方式0时,接收完第8位数据时,RI由硬件置1。 其它工作方式,串行接收到停止位时,该位置“1”。 RI=1,表示一帧数据接收完毕,并申请中断。 RI必须由软件清“0”。 2、特殊功能寄存器PCON (87H) 就一个波特率选择位。 3:四种工作方式

特殊功能寄存器地址与控制位

/************************************************************ * 特殊功能寄存器地址和控制位 ************************************************************/ /*中断使能1*/ #define IE1_ 0x0000 sfrb IE1 = IE1_; #define WDTIE 0x01 /*看门狗中断使能*/ #define OFIE 0x02 /*外部晶振故障中断使能*/ #define NMIIE 0x10 /*非屏蔽中断使能*/ #define ACCVIE 0x20 /*可屏蔽中断使能/flash写中断错误*/ #define URXIE0 0x40 /*串口0接收中断使能*/ #define UTXIE0 0x80 /*串口0发送中断使能*/ /*中断标志1*/ #define IFG1_ 0x0002 sfrb IFG1 = IFG1_; #define WDTIFG 0x01 /*看门狗中断标志*/ #define OFIFG 0x02 /*外部晶振故障中断标志*/ #define NMIIFG 0x10 /*非屏蔽中断标志*/ #define URXIFG0 0x40 /*串口0接收中断标志*/ #define UTXIFG0 0x80 /*串口0发送中断标志*/ /* 中断模式使能1 */ #define ME1_ 0x0004 sfrb ME1 = ME1_; #define URXE0 0x40 /* 串口0接收中断模式使能 */ #define USPIE0 0x40 /* 同步中断模式使能 */ #define UTXE0 0x80 /* 串口0发送中断模式使能 */ /* 中断使能2 */ #define IE2_ 0x0001 sfrb IE2 = IE2_; #define URXIE1 0x10 /* 串口1接收中断使能 */ #define UTXIE1 0x20 /* 串口1发送中断使能 */ /* 中断标志2 */ #define IFG2_ 0x0003 sfrb IFG2 = IFG2_; #define URXIFG1 0x10 /* 串口1接收中断标志 */ #define UTXIFG1 0x20 /* 串口1发送中断标志 */ /* 中断模式使能2 */ #define ME2_ 0x0005 sfrb ME2 = ME2_; #define URXE1 0x10 /* 串口1接收中断模式使能 */ #define USPIE1 0x10 /* 同步中断模式使能 */ #define UTXE1 0x20 /* 串口1发送中断模式使能 */ /************************************************************

单片机各寄存器汇总

符号 地址功能介绍 B F0H B寄存器 ACC E0H 累加器 PSW D0H 程序状态字 IP B8H 中断优先级控制寄存器 P3 B0H P3口锁存器 IE A8H 中断允许控制寄存器 P2 A0H P2口锁存器 SBUF 99H 串行口锁存器 SCON 98H 串行口控制寄存器 P1 90H P1口锁存器 TH1 8DH 定时器/计数器1(高8位)TH0 8CH 定时器/计数器1(低8位)TL1 8BH 定时器/计数器0(高8位)TL0 8AH 定时器/计数器0(低8位) TMOD 89H 定时器/计数器方式控制寄存器 TCON 88H 定时器/计数器控制寄存器 DPTR 82H 83H 83H数据地址指针(高8位) PC SP 81H 堆栈指针 P0 80H P0口锁存器 PCON 87H 电源控制寄存器 、PSW-----程序状态字。 D7D6D5D4D3D2D1D0 CY AC F0 RS1 RS0 OV P 下面我们逐一介绍各位的用途 CY:进位标志。 AC:辅助进、借位(高半字节与低半字节间的进、借位)。 F0:用户标志位,由用户(编程人员)决定什么时候用,什么时候不用。 RS1、RS0:工作寄存器组选择位。这个我们已知了。 0V:溢出标志位。运算结果按补码运算理解。有溢出,OV=1;无溢出,OV=0。什么是溢出我们后面的章节会讲到。

P :奇偶校验位:它用来表示ALU 运算结果中二进制数位“1”的个数的奇偶性。若为奇数,则P=1,否则为0。 运算结果有奇数个1,P =1;运算结果有偶数个1,P =0。 例:某运算结果是78H (01111000),显然1的个数为偶数,所以P=0。 定时/计数器寄存器 1.工作方式寄存器TMOD(P134) TMOD 为T0.T1的工作方式寄存器,其各位的格式如下:TMOD D7 D6 D 5 D4 D3 D2 D1 D0 GATE C/-T M1 M0 GATE C/-T M1 M0 定时器1 定时器0 位7 GATE ——T1的门控位。 当GATE=0时,只要控制TR1置1,即可启动定时器T1开始工作; 当GATE=1时,除需要将TR1置1外,还要使INT1引脚为高电平,才能启动相应的定时器开始工作。 位6 C/—T ——T1的功能选择位。 当C/—T=0时,T1为定时器方式; 当C/—T=0时,T1为计数器方式; 位5和位4 M1和M0——T1的方式选择位。 由这两位的组合可以定义T1的3种工作方式 定时器T1工作方式选择表 如右表: 位3 GATE ——T0的门控位。 当GATE=0时,只要控制TR0置1,即可启动定时器T0开始工作; 当GATE=1时,除需要将TR0置1外,还要使INT0引脚为高电平,才能启动相应的定时器开始工作。 位2 C/T ——T1的功能选择位。 当C/—T=0时,T0为定时器方式; 当C/—T=0时,T0为计数器方式; 位1和位0 M1和M0—T0的方式选择位。 由这两位的组合可以定义T1的3种工作方式 定时器T0工作方式选择表 TMOD 不能进行位寻址,只能用字节传送指令设置定时器工作方式,低半节定义定时器0,高半字节定义定时器1。复位时,TMOD 所有位均为0,定时器处于停止工作状态。 定时/计数器控制寄存器中断请求标志寄存器TCON(P183) TCON 的作用是控制定时器的启/停,标志定时器的溢出和中断情况。定时器控制寄存器TCON 各位格式如下:TCON(88H) 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 当有中断源发出请求时,有硬件将相应的中断标志位置 1.在中断请求被响应前,相应中断标志位被锁存在特殊功能寄存器TCON 或SCON 中。 TCON 为定时器T0和T1的控制寄存器,同时也锁住T0和T1的溢出中断标志及外部中断——INT0和— M1 M0 工作方式 功能描述 0 0 方式0 13位计数器 0 1 方式1 16位计数器 1 0 方式 2 自动再装入8位计数器 1 1 方式3 定时器1:停止计数 M1 M0 工作方式 功能描述 0 0 方式0 13位计数器 0 1 方式1 16位计数器 1 0 方式 2 自动再装入8位计数器 1 1 方式3 定时器0:分成2个8位计数器

PIC单片机各寄存器汇总资料讲解

1) 芯片的振荡模式选择。 2) 片内看门狗的启动。 3) 上电复位延时定时器PWRT的启用。 4) 低电压检测复位BOR模块的启用。 5) 代码保护。 __CONFIG_CP_OFF &_WDT_OFF &_BODEN_OFF &_PWRTE_ON &_XT_OSC &_WRT_OFF &_LVP_OFF &_CPD_OFF ; _CP_OFF 代码保护关闭 _WDT_OFF 看门狗关闭 _BODEN_OFF _PWRTE_ON 上电延时定时器打开 _XT_OSC XT振荡模式 _WRT_OFF 禁止Flash程序空间写操作 _LVP_OFF 禁止低电压编程 _CPD_OFF EEPROM数据读保护关闭 LVP Low Voltage Program 低电压编程 CP Code Protect 代码保护 Date EE Read Protect EEPROM数据读保护 Brown Out Detect Power Up Timer Watchdog Timer Flash Program Write 外部时钟输入(HS,XT或LP OSC配置)如下图: 陶瓷(ceramic)谐振器电容的选择如下表:

一般情况为:11 1111 0011 0001 0x3F31 或0x3F71 位13 CP:闪存程序存储器代码保护位1 1=代码保护关闭 0=所有程序存储器代码保护 位12 未定义:读此位为1 1 位11 DEBUG:在线调试器模式位1 1=禁止在线调试器,RB6和RB7是通用I / O引脚 0=在线调试功能开启,RB6和RB7专用于调试 位10:9 WRT1:WRT0:闪存程序存储器的写使能位11 PIC16F876A / 877A 11=写保护关闭,所有的程序存储器可能被写入由EECON控制 10=0000h-00FFh写保护,0100h-1FFFh写入由EECON控制 01=0000h-07FFh写保护,0800h-1FFFh写入由EECON控制 00=0000h-0FFFh写保护,1000h-1FFFh写入由EECON控制 位8 CPD:数据EEPROM存储器代码保护位(Code Protection bit) 1 1=数据EEPROM存储器代码保护关闭 0=数据EEPROM存储器代码保护功能开启 位7 LVP:低电压(单电源)在线串行编程使能位(Low V oltage Program) 0 1=RB3/PGM引脚有PGM功能,低电压编程启用 0=RB3是数字I / O 引脚,HV(高电压13V左右) 加到MCLR必须用于编程 位6 BOREN:欠压复位使能位(低电压检测复位)(Brown-out Reset(Detect)) 0 1=低电压检测复位BOR(BOD)模块启用 0=低电压检测复位BOR(BOD)模块关闭 位5:4 未定义:读此两位均为1 11 位3 PWRTEN:上电定时器使能位(上电复位延时定时器)(Power-up Timer) 0 1=上电定时器关闭 0=上电定时器开启 位2 WDT:看门狗定时器使能位0晶体振荡器电容的选择 1=看门狗开启如右图: 0=看门狗关闭 位1:0 Fosc1:Fosc0:振荡器选择位01 11=RC振荡器 10=晶体振荡器HS模式。参考振荡频率范围:>2 MHz 01=晶体振荡器XT模式。参考振荡频率范围:100 kHz ~ 4 MHz 00=晶体振荡器LP模式。参考振荡频率范围:<200 kHz

51单片机特殊功能寄存器详细说明

/*-------------------------------------------------------------------------- REG51.H Header file for generic 80C51 and 80C31 microcontroller. Copyright (c 1988-2001 Keil Elektronik GmbH and Keil Software, Inc. All rights reserved. --------------------------------------------------------------------------*/ /* BYTE Register */ sfr P0 = 0x80; sfr P1 = 0x90; sfr P2 = 0xA0; sfr P3 = 0xB0; sfr PSW = 0xD0; 程序状态字 sfr ACC = 0xE0; 累加器 sfr B = 0xF0; B寄存器 sfr SP = 0x81; 堆栈指针 sfr DPL = 0x82; 数据指针低八位 sfr DPH = 0x83; 数据指针高八位 sfr PCON = 0x87; 波特率选择寄存器 sfr TCON = 0x88; 定时器/计数器控制寄存器

sfr TMOD = 0x89; 定时器方式选择寄存器 sfr TL0 = 0x8A; 定时器0低八位 sfr TL1 = 0x8B; 定时器1低八位 sfr TH0 = 0x8C; 定时器0高八位 sfr TH1 = 0x8D; 定时器1高八位 sfr IE = 0xA8; 中断允许寄存器 sfr IP = 0xB8; 中断优先级寄存器 sfr SCON = 0x98; 串行控制寄存器 sfr SBUF = 0x99; 串行数据缓冲器 /* BIT Register */ /* PSW */ 程序状态字 sbit CY = 0xD7; 有无进位或者借位 sbit AC = 0xD6; Auxiliary Carry有无低四位向高四位的进位或借位 sbit F0 = 0xD5; 用户管理的标志位,可根据自己的需求设定 sbit RS1 = 0xD4; 这两位用于选择当前工作寄存器区。8051有8个8位寄存器R0~R7,它 们在RAM中的地址可以根据用户需要来确定。 sbit RS0 = 0xD3; RS1 RS0:R0~R7的地址0 0:00H~07H 0 1:08H~0FH 1 0:10H~17H 1 1:18H~1FH

51单片机的特殊功能寄存器

51单片机的特殊功能寄存器 通过前面课程的学习,我们已知道了单片机的内部有ROM、有RAM、有并行I/O 口,那么,除了这些东西之外,单片机内部究竟还有些什么?这些个零碎的东西怎么连在一起的? 下面就让我们来对单片机内部作一个完整的分析吧! 从图中我们可以看出,在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、 P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。在一个51单片机 的内部包含了这么多的东西。 对图进行进一步的分析,我们已知,对并行I/O口的读写只要将数据送入到相应I/O口的锁存器就可以了,那么对于定时 /计数器,串行I/O口等怎么用呢?在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SFR)。事实上,我们已接触过P1 这个特殊功能寄存器了,还有哪些呢?看下表 符号地址功能介绍 B F0H B寄存器 ACC E0H 累加器 PSW D0H 程序状态字 IP B8H 中断优先级控制寄存器 P3 B0H P3口锁存器 IE A8H 中断允许控制寄存器

P2 A0H P2口锁存器 SBUF 99H串行口锁存器 SCON 98H串行口控制寄存器 P1 90H P1口锁存器 TH1 8DH定时器/计数器1(高8位) TH0 8CH 定时器/计数器1(低8位) TL1 8BH 定时器/计数器0(高8位) TL0 8AH 定时器/计数器0(低8位) TMOD 89H定时器/计数器方式控制寄存器 TCON 88H 定时器/计数器控制寄存器 DPH 83H 数据地址指针(高8位) DPL 82H 数据地址指针(低8位) SP 81H 堆栈指针 P0 80H P0口锁存器 PCON 87H电源控制寄存器 下面,我们介绍一下几个常用的SFR。 1、ACC---是累加器,通常用A表示。 这 是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在 ACC中的缘故吧。它的名字特殊,身份也特殊,稍后在中篇中我们将学到指令,可以发现,所有的运算类指令都离不开它。自身带有全零标志Z,若A=0则 Z=1;若A≠0则z=0。该标志常用作程序分枝转移的判断条件。 2、B--一个寄存器。 在做乘、除法时放乘数或除数,不做乘除法时,随你怎么用。 3、PSW-----程序状态字。这是一个很重要的东西,里面放了CPU工作时的很多状态,借此,我们可以了解CPU的当前状态,并作出相应的处理。它的各位功能请看下表: 下面我们逐一介绍各位的用途 CY:进位标志。8051中的运算器是一种8位的运算器,我们知道,8位运算器只

单片机寄存器汇总表图文稿

单片机寄存器汇总表 Company number【1089WT-1898YT-1W8CB-9UUT-92108】

51单片机寄存器功能一览表 21个特殊功能寄存器(52系列是26个)不连续地分布在128个字节的SFR存储空间中,地址空间为80H-FFH,在这片SFR空间中,包含有128个位地址空间,地址也是80H-FFH,但只有83个有效位地址,可对11个特殊功能寄存器的某些位作位寻址操作(这里介绍一个技巧:其地址能被8整除的都可以位寻址)。 在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SFR)。这样的特殊功能寄存器51单片机共有21个并且都是可寻址的列表如下(其中带*号的为52系列所增加的特殊功能寄存器):

分别说明如下: 1、ACC---是累加器,通常用A表示 这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,为什么给它这么一个名字呢或许是因为在运算器做运算时其中一个数一定是在ACC中的缘故吧。它的名字特殊,身份也特殊,稍后在中篇中我们将学到指令,可以发现,所有的运算类指令都离

不开它。自身带有全零标志Z,若A=0则Z=1;若A≠0则z=0。该标志常用作程序分枝转移的判断条件。 2、B--一个寄存器 在做乘、除法时放乘数或除数,不做乘除法时,随你怎么用。 3、PSW-----程序状态字。 这是一个很重要的东西,里面放了CPU工作时的很多状态,借此,我们可以了解CPU的当前状态,并作出相应的处理。它的各位功能请看下表: 下面我们逐一介绍各位的用途 CY:进位标志。 8051中的运算器是一种8位的运算器,我们知道,8位运算器只能表示到0-255,如果做加法的话,两数相加可能会超过255,这样最高位就会丢失,造成运算的错误,怎么办最高位就进到这里来。这样就没事了。有进、借位,CY=1;无进、借位,CY=0 AC:辅助进、借位(高半字节与低半字节间的进、借位)。 例:57H+3AH(01010111+00111010)

指令对标志寄存器的影响总结

指令类型助记符对标志寄存器的影响备注 ZF CF PF SF OF AF DF IF TF 数据传送类通用MOV 不影响标志位 交换XCHG 堆栈 操作 PUSH POP 地址 传送 LEA LDS LES 累加器 专用IN OUT XALT 标志 寄存器 LAHF SAHF 标志寄存器低八位的内容由AH的值决定CF,AF,ZF,SF,PF的值会被影响 PUSHF 不影响标志位 POPF 标志寄存器的内容由装入的具体值决定可能影响所有标志位 算术运算类加法 指令 ADD √√√√√√ ADC √√√√√√ INC √√√√√INC指令不影响CF AAA ?√???√?表示不确定或者未定义 DAA √√√√?√ 减法 指令 SUB √√√√√√ SBB √√√√√√ DEC √√√√√DEC指令不影响CF AAS ?√???√ DAS √√√√?√DAA指令不影响OF 乘法 指令 MUL ?√??√? IMUL ?√??√? AAM √?√√?? 除法 指令 DIV ??????√√此指令可能会产生中断,故影响IF,TF IDIV ??????√√同上 AAD √?√√?? 符号位 扩展 CBW 不影响标志位 CWD 不影响标志位 比较指令CMP 由计算结果确定标志位的值不会影响到DF,IF,TF 逻辑运算类单 操 作 数 逻 辑 指 求反NOT 不影响标志位 移位 SAL √√√√见 备 注 ?OF标志位只在移位次数是1时 有效,AF未定义SHL √√√√? SAR √√√√? SHR √√√√? 循环 移位 ROL √√? 循环移位指令影响OF和CF,ROR √√?

51单片机寄存器汇总表

51单片机寄存器功能一览表 21个特殊功能寄存器(52系列是26个)不连续地分布在128个字节的SFR存储空间中,地址空间为80H-FFH,在这片SFR空间中,包含有128个位地址空间,地址也是80H-FFH,但只有83个有效位地址,可对11个特殊功能寄存器的某些位作位寻址操作(这里介绍一个技巧:其地址能被8整除的都可以位寻址)。 在51单片机部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O 口,中断系统,以及一个部的时钟电路。在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SFR)。这样的特殊功能寄存器51单片机共有21个并且都是可寻址的列表如下(其中带*号的为52系列所增加的特殊功能寄存器):

分别说明如下: 1、ACC---是累加器,通常用A表示 这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在ACC中的缘故吧。它的名字特殊,身份也特殊,稍后在中篇中我们将学到指令,可以发现,所有的运算类指令都离不开它。自身带有全零标志Z,若A=0则Z=1;若A≠0则z=0。该标志常用作程序分枝转移的判断条件。 2、B--一个寄存器 在做乘、除法时放乘数或除数,不做乘除法时,随你怎么用。 3、PSW-----程序状态字。 这是一个很重要的东西,里面放了CPU工作时的很多状态,借此,我们可以了解CPU 的当前状态,并作出相应的处理。它的各位功能请看下表: 下面我们逐一介绍各位的用途 CY:进位标志。

Ia-32寄存器总结

EAX:累加寄存器 ECX:计数寄存器,常用于计数 EDX :数据寄存器,常用于数据传递 EBX :基址寄存器,常用于地址索引 ESP :ESP为堆栈指针,指向当前栈顶 EBP :EBP为帧指针,当前活动记录的顶部 ESI :变址寄存器,源地址指针,存储单元在段内的偏移量, EDI :变址寄存器目标地址指针 EIP :指令寄存器,存放当前指令的下一条指令的地址 ES:附加段寄存器 CS:代码段寄存器 SS:堆栈段寄存器 DS:数据段寄存器 FS:寄存器指向当前活动线程的TEB结构 000 指向SEH链指针 004 线程堆栈顶部 008 线程堆栈底部 00C SubSystemTib 010 FiberData 014 ArbitraryUserPointer 018 FS段寄存器在内存中的镜像地址 020 进程PID 024 线程ID 02C 指向线程局部存储指针 030 PEB结构地址(进程结构) 034 上个错误号 GS:全局寄存器 EFL:标志位寄存器,各标志位的含义如下图, DF:是控制标志位为方向标志,在串处理指令中控制处理信息的方向用。当DF为1时,每次操作后使变址寄存器SI和DI减小,这样就使串处理从高地址向低地址方向处理。当DF为0时相反. TF当TF被置为1时,CPU进入单步执行方式,即每执行一条指令,产生一个单步中断请求。这种方式主要用于程序的调试

ZF表示目的操作数结果为零 AF表示(AL为一个字节)相加进行到一半(低4位)有没有向另一半(高4位)进位,也可以表示是否借位(减法) PF表示为偶数 CF表示已经发生进位,也可以表示借位 操作标志位寄存器汇编指令 LAHF 标志寄存器传送,把标志装入AH. SAHF 标志寄存器传送,把AH内容装入标志寄存器. PUSHF 标志入栈. POPF 标志出栈. PUSHD 32位标志入栈. POPD 32位标志出栈. 浮点寄存器:(80位) ST0 ST1 ST2 ST3 ST4 ST5 ST6 ST7 FST :协处理器状态寄存器 FCW:浮点控制寄存器具体参考https://www.doczj.com/doc/658567345.html,/design/processor/manuals/253665.pdf MM0:多媒体指令寄存器 MM1 MM2 MM3 MM4 MM5 MM6 MM7 DR0 :调试寄存器 DR1 DR2

32位PowerPC构架通用寄存器分析及总结三

32位PowerPC构架通用寄存器分析及总结三 4.6SR(Segment Registers)寄存器 OEA定义了16个32位的SR寄存器,段寄存器SR可以使用mtsr/mfsr,mtsrin/mfsrin指令进程访问。 随着CR[0]位(我们称之为T位)的值的不同,CR寄存器有两种不同的格式。 当T位为1时格式如下: CR[1]位:系统模式保护位 CR[2]位:用户模式保护位 CR[3]位:不可执行保护位 CR[4:7]位:保留位 CR[8:31]位:VSID位,我们在4.5节页面地址映射中已经看到该位段的作用。 当T位为0时格式如下: CR[1]位:系统模式保护位 CR[2]位:用户模式保护位 CR[3]位:不可执行保护位 CR[3:11]位:Bus unit ID CR[12:31]位:Device-specific data for I/O controller 备注:这个位段,我现在不清楚,暂时附上datasheet原文,以后再修改O(∩_∩)O~ 4.7 DAR(Data Address Register)寄存器 存放访存指令产生的引发中断的有效地址,比较简单。 格式如下: 4.8 SPRG0–SPRG3寄存器 提供给操作系统使用,格式如下:

SPRG0:操作系统可能会加载一个独立的物理地址到该寄存器中,来标识一个内存区域是第一级的中断句柄专用的。 SPRG2:可以被第一级的中断来保存通用寄存器的内容,该内容可以作为内存中保存其它通用寄存器的基地址。 SPRG2和SPRG3可以在操作系统需要时使用! 备注:E600有8个SPRGs寄存器。 4.9 DSISR寄存器 用来决定DSI中断的中断源,格式如下: 4.10 SRR0(Machine Status Save/Restore Register 0)寄存器 当发生中断时,SRR0用来保持中断发生的那一刻MSR的状态,当中断返回结束执行rfi指令时,SRR0用来恢复MSR寄存器的值,它也可以用来保持系统调用之前的那条指令的有效地址,当系统中断结束时会执行rfi指令,汇编SPR0保持的地址赋值给NIA(Next Instruction Address)寄存器(也就是我们通常说的PC寄存器) 格式如下: 4.11 SRR1(Machine Status Save/Restore Register 1) 该寄存器同4.10 4.12 FPECR(Floating-Point Exception Cause Register)

相关主题
文本预览
相关文档 最新文档