文档库 最新最全的文档下载
当前位置:文档库 › CC2500寄存器设置

CC2500寄存器设置

CC2500寄存器设置
CC2500寄存器设置

//========================================================

// CC2500寄存器中的数据

//========================================================

// 2.4GHz

// Product = CC2500

// Crystal accuracy = 40 ppm

// X-tal frequency = 26 MHz

// RF output power = 0 dBm

// RX filterbandwidth = 232.000000 kHz

// Deviation = 0.000000

// Return state: Return to RX state upon leaving either TX or RX

// Datarate = 10.000000 kbps

// Modulation = 2-FSK

// Manchester enable = (0) Manchester disabled

// RF Frequency = 2433.000000 MHz

// Channel spacing = 199.950000 kHz

// Channel number = 0

// Optimization = Sensitivity

// Sync mode = (3) 30/32 sync word bits detected

// Format of RX/TX data = (0) Normal mode, use FIFOs for RX and TX

// CRC operation = (1) CRC calculation in TX and CRC check in RX enabled

// Forward Error Correction = (0) FEC disabled

// Length configuration = (1) Variable length packets, packet length configured by the first received byte after sync word.

// Packetlength = 255

// Preamble count = (2) 4 bytes

// Append status = 1

// Address check = (0) No address check

// FIFO autoflush = 0

// Device address = 0

// GDO0 signal selection = ( 6) Asserts when sync word has been sent / received, and de-asserts at the end of the packet

// GDO2 signal selection = (11) Serial Clock

RF_REGISTER_TAB:

ADDAR PCL, R

//===

RETIA 0X04 ;//0x07 Packet automation control.

RETIA 0X05 ;//0x08 Packet automation control

RETIA 0X00 ;//0x09 Device address.

RETIA 0X00 ;// 0X0A Channel number.

RETIA 0X0B ;//0x0B Freq synthesizer control.

RETIA 0X00 ;//0x0C Freq synthesizer control.

RETIA 0x5D ;// 0X0D Freq control word, high byte

RETIA 0x93 ;// 0X0E Freq control word, mid byte.

RETIA 0xB1 ;// 0X0F Freq control word, low byte.

RETIA 0x78 ;//0x10 Modem configuration.

RETIA 0x93 ;//0x11 Modem configuration (DATARATE)

RETIA 0x83 ;//0x12 Modem configuration. BIT7:0 = Enable (better sensitivity)

// 1 = Disable (current optimized). Only for data rates ≤ 250 kBaud

// BIT6:4 = 0x111 MSK

// BIT3 = 0 禁止曼切斯特编码/译码

// BIT2:0 = 0X011 开启TX时的重复同步词汇发送和RX时的32 位同步词汇侦测

// (只有32 位中的30 位需要匹配):

RETIA 0x22 ;//0x13 Modem configuration. 禁止前导位纠错;前导4个字节;信道空间的2个指数

RETIA 0xF8 ;//0x14 Modem configuration. (channal)信道空间(初始为1)的8位尾数26000000/2^18*(256+0xF8)*2^2*(channal)=199.951171875khz

// 此信道的频率单位与基频相加后,就是运行的频率

RETIA 0x44 ;//0x15 Modem dev (when FSK mod en) 背离指数为0

RETIA 0x07 ;//0x16 MCSM2 至到数据包终止

RETIA 0x30 ;//0x17 MainRadio Cntrl State Machine 若RSSI 在门限之下,清理数据包指示,除非当前接收一个数据包

// 在数据包被接受后的下一个状态:空闲

// 在数据包已发送到(TX)后的下个状态:空闲

RETIA 0x18 ;//0x18 MainRadio Cntrl State Machine 当从空闲到TX 或RX时,进行自动校准

// 终止次数64次,禁止引脚通讯控制选项,XOSC_FORCE_OFF

RETIA 0x16 ;//0x19 Freq Offset Compens. Config 频率偏移补偿配置

RETIA 0x6C ;//0x1A Bit synchronization config. 位同步控制

RETIA 0x43 ;//0x1B AGC control. AGC控制寄存器

RETIA 0x40 ;//0x1C AGC control AGC控制寄存器

RETIA 0x91 ;//0x1D AGC control AGC控制寄存器

RETIA 0x87 ;//0X1E WOREVT1 High Byte Event0 Timeout

RETIA 0x6B ;//0X1F WOREVT0 Low Byte Event0 Timeout

RETIA 0xF8 ;//0X20 WORCTRL Wake On Radio Control

RETIA 0x56 ;//0X21 Front end RX configuration. 前端rx配置

RETIA 0x10 ;//0X22 Front end RX configuration 前端TX配置,调整当前TX LO 缓冲(输入到PA)

RETIA 0xA9 ;//0x23 Frequency synthesizer cal 频率合成器校准配置和结果寄存器

RETIA 0x0A ;//0x24 Frequency synthesizer cal. FSCAL3

CHIP_CURR_CAL_EN FSCAL3

RETIA 0x00 ;//0X25 Frequency synthesizer calibration.

RETIA 0x11 ;//0X26 Frequency synthesizer calibration.(38)

;=========================================================

; 初始化德州仪器CC2500

//========================================================

INSTALL_CC2500:

/*让CC2500进入待机模式

*/

MOVIA CC2500_SIDLE ;让CC2500先工作起来,命令滤波

CALL HAND_SPI_WRITE

//====重启CC2500芯片 时序上的延时

BSR CSN ;关闭芯片的选择

CALL DELAY100US ;状态延时

BCR CSN ;开启芯片的选择

CALL DELAY100US ;状态延时

BSR CSN

CALL DELAY100US ;延时200微秒

CALL DELAY100US

BCR CSN ;选择CC2500

BTRSC SO //等待CC2500的电压调制器稳定

GOTO $-1

MOVIA CC2500_SRES //重启CC2500芯片

CALL HAND_SPI_WRITE

BSR CSN

BCR SCLK //关闭CC2500的选择

BCR SI

/*

设置CC2500的寄存器

*/

MOVIA 0X20 ;数据个数32

MOVAR COUNTER1

MOVIA 0X07

MOVAR TEMP1 ;地址的初始值

REGISTER_LOOP:

BCR CSN ;选择CC2500芯片

BTRSC SO ;等待SO腿输出低电平

GOTO $-1

BCR SCLK ;数据的时钟线变低,锁住数据线上的电平

MOVR TEMP1, A

ANDIA 0X7F ;写第一个数据,第7位必须为低电平表示写(时序图上是这样描述的)

MOVAR WRITE_VALUE ;写寄存器的初始值

CALL SPI_WRITE

MOVR TEMP1, A

ADDIA 0XF9 ;相当A-07H

CALL RF_REGISTER_TAB ;查表指令

MOVAR WRITE_VALUE ;写进寄存器的的数据

CALL SPI_WRITE

INCR TEMP1, R ;寄存器的地址加一

BCR SI

BSR CSN ;由于每次都是突发访问,根据芯片的说明,突发位的访问不管是读还是写,读必须通过设置CSN为高来终止芯片的选择

DECRSZ COUNTER1, R

GOTO REGISTER_LOOP ;循环写入32个数据

/*

设置CC2500的IOCFG2

*/

MOVIA 0X00 //寄存器0

MOVAR TEMP1

MOVIA 0X29 //数据0B

MOVAR TEMP2

CALL DOUBLE_DATA

NOP

NOP //空指令

/*

设置CC2500的IOCFG0 非温度检测,不反转,当同步词汇被送出/收到时声明,在数据包末端时反声明。对RX,当可选地址检测失败

或RX FIFO 溢出时,引脚被反声明。若TX FIFO 下溢,这个引脚将同样被反声明*/

//

MOVIA 0X02 //寄存器1

MOVAR TEMP1

MOVIA 0X06 //数据06

MOVAR TEMP2

CALL DOUBLE_DATA

NOP

NOP

/*

设置CC2500的TX字节

*/

MOVIA 0X03 //寄存器3

MOVAR TEMP1

MOVIA 0X07 //数据07

MOVAR TEMP2

CALL DOUBLE_DATA

NOP

NOP

/*

设置CC2500的长度 Packet length.

*/

MOVIA 0X06 //寄存器6

MOVAR TEMP1

MOVIA 0XFF //数据3D

MOVAR TEMP2

CALL DOUBLE_DATA

NOP

NOP

/*

设置CC2500的发射功率

*/

PATABLE_LOOP:

MOVIA 0X3E //寄存器3E PATABLE

MOVAR TEMP1

MOVIA 0XFF

MOVAR TEMP2

CALL DOUBLE_DATA1

NOP

NOP

/*

设置CC2500的命令

*/

MOVIA CC2500_SCAL ;启动CC2500

CALL HAND_SPI_WRITE

MOVIA CC2500_SFRX

CALL HAND_SPI_WRITE //清零接收FIFO寄存器

MOVIA CC2500_SFTX

CALL HAND_SPI_WRITE //清零发送FIFO寄存器

CALL DELAY10MS

CALL DELAY10MS

//亮LED灯表示连接CC2500成功等待发射数据出去

READ_M_LOOP:

MOVIA 0X30

MOVAR WRITE_VALUE

CALL READ_REGISTER

MOVR READ_VALUE, A //读芯片的状态判断是否为80H,若为这个数据则表示芯片连接成功

XORIA 0X80

BTRSS Z

GOTO READ_M_LOOP

MOVIA CC2500_SIDLE //让CC2500进入空闲状态

CALL HAND_SPI_WRITE

BCR LED_PIN //芯片握手成功点亮LED灯

RETURN

汇编教程控制寄存器和系统地址寄存器

80386控制寄存器和系统地址寄存器如下表所示。它们用于控制工作方式,控制分段管理机制及分页管理机制的实施。 控制寄存器CRx BIT31 BIT30—BIT12 BIT11—BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 CR0 PG 0000000000000000 ET TS EM MP PE CR1 保留 CR2 页故障线性地址 CR3 页目录表物理页码000000000000 BIT47—BIT16 BIT15—BIT 全局描述符表寄存器GDTR 基地址界限中断描述符表寄存器IDTR 基地址界限 BIT15—BIT0 局部描述符表寄存器LDTR 选择子任务状态段寄存器TR 选择子BIT31—BIT0 BIT31—BIT0 BIT11—BIT0 基地址界限属性 基地址界限属性 <一>控制寄存器 从上表可见,80386有四个32位的控制寄存器,分别命名位CR0、CR1、CR2和CR3。但CR1被保留,供今后开发的处理器使用,在80386中不能使用CR1,否则会引起无效指令操作异常。CR0包括指示处理器工作方式的控制位,包含启用和禁止分页管理机制的控制位,包含控制浮点协处理器操作的控制位。CR2及CR3由分页管理机制使用。CR0中的位5—位3 0及CR3中的位0至位11是保留位,这些位不能是随意值,必须为0。 控制寄存器CR0的低16位等同于80286的机器状态字MSW。 1.保护控制位 控制寄存器CR0中的位0用PE标记,位31用PG标记,这两个位控制分段和分页管理机制的操作,所以把它们称为保护控制位。PE控制分段管理机制。PE=0,处理器运行于实模式;PE=1,处理器运行于保护方式。PG控制分页管理机制。PG=0,禁用分页管理机制,此时分段管理机制产生的线性地址直接作为物理地址使用;PG=1,启用分页管理机制,此时线性地址经分页管理机制转换位物理地址。关于分页管理机制的具体介绍在后面的文章中进行。 下表列出了通过使用PE和PG位选择的处理器工作方式。由于只有在保护方式下才可启用分页机制,所以尽管两个位分别为0和1共可以有四种组合,但只有三种组合方式有效。

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中是停止位。

计算机组成原理寄存器实验

成绩:计算机原理实验室实验报告 课程:计算机组成原理 姓名:李文周 专业:计算机科学与技术 学号:132054237 日期:2015.12 太原工业学院 计算机工程系

实验二:寄存器实验 实验环境PC机+Win7+74LS373+proteus仿真器实验日期2015.12一.实验内容 (1)基本内容 1.理解CPU运算器中寄存器的作用 2.设计并验证4位算数逻辑单元的功能 (2)扩展要求 1.实现更多的寄存器(至少8个)

二.理论分析或算法分析 74ls373是常用的地址锁存器芯片,它实质是一个是带三态缓冲输出的8D 触发器,在单片机系统中为了扩展外部存储器,通常需要一块74ls373芯片。74ls373工作原理简述: (1).1脚是输出使能(OE),是低电平有效,当1脚是高电平时,不管输入3、4、7、8、13、14、17、18如何,也不管11脚(锁存控制端,G)如何,输出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部呈现高阻状态(或者叫浮空状态); (2).当1脚是低电平时,只要11脚(锁存控制端,G)上出现一个下降沿,输出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)立即呈现输入脚3、4、7、8、13、14、17、18的状态.锁存端LE由高变低时,输出端8位信息被锁存,直到LE 端再次有效。当三态门使能信号OE为低电平时,三态门导通,允许Q0~Q7输出,OE为高电平时,输出悬空。

L——低电平;H——高电平;X——不定态;Q0——建立稳态前Q的电平;G——输入端,与8031ALE连高电平:畅通无阻低电平:关门锁存。图中OE——使能端,接地。当G=“1”时,74LS373输出端1Q—8Q与输入端1D—8D相同;当G 为下降沿时,将输入数据锁存。 三.实现方法(含实现思路、程序流程图、实验电路图和源程序列表等)

51串口控制寄存器

SCON是MCS-51单片机的一个可位寻址的专用寄存器,用于串行数据通信的控制。单元地址为98H,位地址为98H~9FH。寄存器的内容及位地址表示如下: 各位的说明如下: 1) SM0 、SM1——串行口工作方式选择位 其状态组合和对应工作方式为: SM0 SM1工作方式 0 0 方式0 0 1 方式1 1 0 方式2 1 1 方式3 2) SM2——允许方式2、3的多机通信控制位 在方式2和3中,若SM2=1且接收到的第九位数据(RB8)为1,才将接收到的前8 位数据送入接收SBUF中,并置位RI产生中断请求;否则丢弃前8位数据。若SM2 =0,则不论第九位数据(RB8)为1还是为0,都将前8位送入接收SBUF中,并产 生中断请求。 方式0时,SM2必须置0。

3) REN——允许接收位 REN=0 禁止接收数据 REN=1 允许接收数据 4) TB8——发送数据位8 在方式2、3时,TB8的内容是要发送的第9位数据,其值由用户通过软件来设置。5) RB8——接收数据位8 在方式2、3时,RB8是接收的第9位数据。 在方式1时,RB8是接收的停止位 在方式0时,不使用RB8 6) TI——发送中断标志位 在方式0时,发送完第8位数据后,该位由硬件置位 在其它方式下,于发送停止位之后,由硬件置位。 因此,TI=1表示帧发送结束,其状态既可供软件查询使用,也可请求中断。 TI由软件清“0”。 7) RI——接收中断标志位 在方式0时,接收完第8位数据后,该位由硬件置位。 在其它方式下,于接收到停止位之时,该位由硬件置位。 因此,RI=1表示帧接收结束,其状态既可供软件查询使用,也可请求中断。 RI由软件清“0”。

单片机总结

一、中断 (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引脚下降沿有效。

寄存器的原理及应用

课题9:寄存器的原理及应用 课型:讲授 教学目的: 掌握数码寄存器和移位寄存器的逻辑功能 教学重点:掌握中规模四位双向移位寄存器的逻辑功能 教学难点:掌握中规模四位双向移位寄存器的逻辑功能 复习、提问: 写出RS触发器、JK触发器、D触发器、T触发器、T`触发器的逻辑 功能、特性方程。 教学过程: 寄存器被广泛应用于数字系统和计算机中,它由触发器组成,是一种用来暂时存放二进制数码的逻辑部件。一个触发器可以存放一位二进制代码,因此n 位代码寄存器应由n个触发器组成。有些寄存器由门电路构成控制电路,以保证信号的接收和清除。 寄存器存放数据的方式有并行和串行两种。并行方式是数码从各对应输入端同时输入到寄存器中,串行方式是数码从一个输入端逐位输入到寄存器中。 寄存器取出数据的方式也有并行输出和串行输出两种。并行输出方式中,被取出的数码同时出现在各位的输出端。串行输出方式中,被取出的数码在一个输出端逐位出现。 寄存器分为数码寄存器和移位寄存器。 一、数码寄存器 数码寄存器具有存储二进制代码,并可输出所存二进制代码的功能。按接收数码的方式可分为:单拍式和双拍式。 单拍式:接收数据后直接把触发器置为相应的数据,不考虑初态。 双拍式:接收数据之前,先用复"0"脉冲把所有的触发器恢复为"0",第二拍把触发器置为接收的数据。 1、双拍工作方式的数码寄存器 双拍工作方式是指接收数码时,先清零,再接收数码。

分析下图四位数码寄存器逻辑图。它的核心部分是4个D 触发器。其工作过程: (1) 清零。CR=0,异步清零。即有:Q 3n+1Q 2n+1Q 1n+!Q 0n+1=0000 (2) 送数。CR=1时,CP 上升沿送数 Q 3n+1Q 2n+1Q 1n+!Q 0n+1=D 3D 2D 1 D 0 (3) 保持。在CR=1、CP 上升沿以外时间,寄存器内容将保持不变。实 现了数码寄存的功能。 2、单拍工作方式的数据寄存器 单拍工作方式是指只需一个接收脉冲就可以完成接收数码的工作方式。集成数码寄存器几乎都采用单拍工作方式。 数码寄存器要求所存的代码与输入代码相同,故由D 触发器构成。 分析下图D 触发器组成的4位数据寄存器的逻辑功能。 无论寄存器中原来的内容是什么,只要送数在控制时钟脉冲CP 上升沿到来时,加在并行数据输入端的数据D 0~D 3,就立即被送入进寄存器中,即有:Q 3n+1Q 2n+1Q 1n+!Q 0n+1=D 3D 2D 1D 0。 二、移位寄存器 移位寄存器具有数码寄存和移位两个功能,在移位脉冲的作用下,数码如向左移一位,则称为左移,反之称为右移。 移位寄存器具有单向移位功能的称为单向移位寄存器,即可向左移也可向右移的称为双向移位寄存器。 1、单向移位寄存器 (1)、右移寄存器

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

移位寄存器的工作原理

移位寄存器的工作原理是什么? 把若干个触发器串接起来,就可以构成一个移位寄存器。由4个边沿D 触发器构成的4位移位寄存器逻辑电路如图8.8.1所示。数据从串行输入端D1输入。左边触发器的输出作为右邻触发器的数据输入。假设移位寄存器的初始状态为0000,现将数码D3D2D1D0(1101)从高位(D3)至低位依次送到D1端,经过第一个时钟脉冲后,Q0=D3。由于跟随数码D3后面的数码是D2,则经过第二个时钟脉冲后,触发器FF0的状态移入触发器FF1,而FF0变为新的状态,即Q1=D3,Q0=D2。依此类推,可得4位右向移位寄存器的状态, 如表8.8.1所示。 由表可知,输入数码依次地由低位触发器移到高位触发器,作右向移动。经过4个时钟脉冲后,4个触发器的输出状态Q3Q2Q1Q0与输入数码D3D2D1D0相对应。为了加深理解,在图8.8.2中画出了数码1101(相当于D3=1,D2=1,D1=0 ,D0=1)在寄存器中移位的波形,经过了4个时钟脉冲后,1101出现在寄存器的输出端Q 3Q2Q1Q0。这样,就可将串行输入(从D1端输入)的数码转换为并行输出(从Q3、Q2、Q1、Q0端输出)的数码。这种转换方式特别适用于将接收到的串行输入信号转换为并行输出信号,以便于打印或由计 算机处理。 在图8.8.3中还画出了第5到第8个时钟脉冲作用下,输入数码在寄存器中移位的波形(如图8.8.2所示)。由图可见,在第8个时钟脉冲作用后,数码从Q3端已全部移出寄存器。这说明存入该寄存器中的数码也可以从Q端串行输出。根据需要,可用更多的触发器组成多位移位寄存器。

除了用边沿D 触发器外,还可用其他类型的触发器来组成移位寄存器,例如,用主从JK 触发器来组成移位寄存器,其级间连接方式如图8.8.3所示。根据JK触发器的特征方程,由图8.8.3可得: FF2和FF3的接法与FF1完全相似,所以各JK 触发器均以D 触发器的功能工作,图8.8.3和图8.8.1所 示电路具有相同的功能。 双向移位寄存器: 若将图8.8.1所示电路中各触发器间的连接顺序调换一下,让右边触发器的输出作为左邻触发器的数据输入,则可构成左向移位寄存器。若再增添一些控制门,则可构成既能右移(由低位向高位)、又能左移(由高位至低位)的双向移位寄存器。图8.8.4是双向移位寄存器的一种方案,它是利用边沿D 触发器组成的,每个触发器的数据输入端D 同与或非门组成的转换控制门相连,移位方向取决于移位控制端S的状态。 当S=1时,D0=DSR,D1=Q0,即FF0的D0端与右移串行输入端DSR接通,FF1的D1端与Q0接通,在时钟脉冲CP 作用下,由DSR端输入的数据将作右向移位;反之,当S=0时,D0=Q1 ,D1=Q2,在时钟脉冲CP作用下,Q2、Q1的状态将作左向移位。同理,可以分析其他两位触发器间的移位情况。由此

单片机各寄存器汇总

符号 地址功能介绍 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位计数器

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

单片机涉及寄存器知识点汇总 第六章两个串口寄存器 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:四种工作方式

控制寄存器和系统地址寄存器

二.控制寄存器和系统地址寄存器 80386控制寄存器和系统地址寄存器如下表所示。它们用于控制工作方式,控制分段管理机制及分页管理机制的实施。 控制寄存器CRx BIT31 BIT30—BIT12 BIT11—BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 CR0 PG 0000000000000000 ET TS EM MP PE CR1 保留 CR2 页故障线性地址 CR3 页目录表物理页码000000000000 BIT47—BIT16 BIT15—BIT0 全局描述符表寄存器GDTR 基地址界限中断描述符表寄存器IDTR 基地址界限 BIT15—BIT0 局部描述符表寄存器LDTR 选择子 任务状态段寄存器TR 选择子BIT31—BIT0 BIT31—BIT0 BIT11—BIT0 基地址界限属性 基地址界限属性 <一>控制寄存器 从上表可见,80386有四个32位的控制寄存器,分别命名位CR0、CR1、CR2和CR3。但CR1被保留,供今后开发的处理器使用,在80386中不能使用CR1,否则会引起无效指令操作异常。CR0包括指示处理器工作方式的控制位,包含启用和禁止分页管理机制的控制位,包含控制浮点协处理器操作的控制位。CR2及CR3由分页管理机制使用。CR0中的位5—位30及CR3中的位0至位11是保留位,这些位不能是随意值,必须为0。 控制寄存器CR0的低16位等同于80286的机器状态字MSW。 1.保护控制位 控制寄存器CR0中的位0用PE标记,位31用PG标记,这两个位控制分段和分页管理机制的操作,所以把它们称为保护控制位。PE控制分段管理机制。PE=0,处理器运行于实模式;PE=1,处理器运行于保护方式。PG控制分页管理机制。PG=0,禁用分页管理机制,此时分段管理机制产生的线性地址直接作为物理地址使用;PG=1,启用分页管理机制,此时线性地址经分页管理机制转换位物理地址。关于分页管理机制的具体介绍在后面的文章中进行。 下表列出了通过使用PE和PG位选择的处理器工作方式。由于只有在保护方式下才可启用分页机制,所以尽管两个位分别为0和1共可以有四种组合,但只有三种组合方式有效。PE=0且PG=1是无效组合,因此,用PG为1且PE为0的值装入CR0寄存器将引起通用保护异常。 需要注意的是,PG位的改变将使系统启用或禁用分页机制,因而只有当所执行的程序的代码和至少有一部分数据在线性地址空间和物理地址空间具有相同的地址的情况下,才能改变PG位。

寄存器与7种寻址方式

一、寄存器 总共有14个16位寄存器,8个8位寄存器 通用寄存器: 数据寄存器: AH(8位) AL(8位) AX(16位) (AX和AL又称累加器) BH(8位) BL(8位) BX(16位) (BX又称基址寄存器,唯一作为存储器指针使用寄存器) CH(8位) CL(8位) CX(16位) (CX用于字符串操作,控制循环的次数,CL 用于移位) DH(8位) DL(8位) DX(16位) (DX一般用来做32位的乘除法时存放被除数或者保留余数) 指针寄存器: SP 堆栈指针(存放栈顶地址) BP 基址指针(存放堆栈基址偏移) 变址寄存器:主要用于存放某个存储单元地址的偏移,或某组存储单元开始地址的偏移, 即作为存储器(短)指针使用。作为通用寄存器,它们可以保存16位算术逻辑运算中的操 作数和运算结果,有时运算结果就是需要的存储单元地址的偏移. SI 源地址(源变址寄存器) DI 目的地址(目的变址寄存器) 控制寄存器: IP 指令指针 FLAG 标志寄存器 ①进位标志CF,记录运算时最高有效位产生的进位值。

②符号标志SF,记录运算结果的符号。结果为负时置1,否则置0。 ③零标志ZF,运算结果为0时ZF位置1,否则置0。 ④溢出标志OF,在运算过程中,如操作数超出了机器可表示数的范围称为溢出。溢出时OF位置1,否则置0。 ⑤辅助进位标志AF,记录运算时第3位(半个字节)产生的进位值。 ⑥奇偶标志PF,用来为机器中传送信息时可能产生的代码出错情况提供检验条件。当结果操作数中1的个数为偶数时置1,否则置0。 段寄存器 CS 代码段IP DS 数据段 SS 堆栈段SP BP ES 附加段 二、七种寻址方式: 1、立即寻址方式: 操作数就包含在指令中。作为指令的一部分,跟在操作码后存放在代码段。 这种操作数成为立即数。立即数可以是8位的,也可以是16位的。 例如: 指令: MOV AX,1234H 则: AX = 1234H 2、寄存器寻址方式: 操作数在CPU内部的寄存器中,指令指定寄存器号。 对于16位操作数,寄存器可以是:AX、BX、CX、DX、SI、DI、SP和BP等。对于8位操作数,寄存器可以是AL 、AH、BL、BH、CL、CH、DL、DH。 这种寻址方式由于操作数就在寄存器中,不需要访问存储器来取得操作数 因而可以取得较高的运算数度。

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:辅助进、借位(高半字节与低半字节间的进、借位)。

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

/************************************************************ * 特殊功能寄存器地址和控制位 ************************************************************/ /*中断使能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发送中断模式使能 */ /************************************************************

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

段寄存器的工作原理

一、段寄存器的产生 段寄存器的产生源于Intel 8086 CPU体系结构中数据总线与地址总线的宽度不一致。 数据总线的宽度,也即是ALU(算数逻辑单元)的宽度,平常说一个CPU是“16位”或者“32位”指的就是这个。8086CPU的数据总线是16位。 地址总线的宽度不一定要与ALU的宽度相同。因为ALU的宽度是固定的,它受限于当时的工艺水平,当时只能制造出16位的ALU;但地址总线不一样,它可以设计得更宽。地址总线的宽度如果与ALU相同当然是不错的办法,这样CPU的结构比较均衡,寻址可以在单个指令周期内完成,效率最高;而且从软件的解决来看,一个变量地址的长度可以用整型或者长整型来表示会比较方便。 但是,地址总线的宽度还要受制于需求,因为地址总线的宽度决定了系统可寻址的范围,即可以支持多少内存。如果地址总线太窄的话,可寻址范围会很小。如果地址总线设计为16位的话,可寻址空间是2^16=64KB,这在当时被认为是不够的;Intel最终决定要让8086的地址空间为1M,也就是20位地址总线。 地址总线宽度大于数据总线会带来一些麻烦,ALU无法在单个指令周期里完成对地址数据的运算。有一些容易想到的可行的办法,比如定义一个新的寄存器专门用于存放地址的高4位,但这样增加了计算的复杂性,程序员要增加成倍的汇编代码来操作地址数据而且无法保持兼容性。 Intel想到了一个折中的办法:把内存分段,并设计了4个段寄存器,CS,DS,ES和SS,分别用于指令、数据、其它和堆栈。把内存分为很多段,每一段有一个段基址,当然段基址也是一个20位的内存地址。不过段寄存器仍然是16位的,它的内容代表了段基址的高16位,这个16位的地址后面再加上4个0就构成20位的段基址。而原来的16位地址只是段内的偏移量。这样,一个完整的物理内存地址就由两部分组成,高16位的段基址和低16位的段内偏移量,当然它们有12位是重叠的,它们两部分相加在一起,才构成完整的物理地址。 Base b15 ~ b12 b11 ~ b0 Offset o15 ~ o4 o3 ~ o0 Address a19 ~ a0 这种寻址模式也就是“实地址模式”。在8086中,段寄存器还只是一个单纯的16位寄存器,而且操作寄存器的指令也不是特权指令。通过设置段寄存器和段内偏移,程序就可以访问整个

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

单片机寄存器汇总表 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)

相关文档