搜档网
当前位置:搜档网 › freescale 9S12单片机寄存器介绍

freescale 9S12单片机寄存器介绍

freescale 9S12单片机寄存器介绍
freescale 9S12单片机寄存器介绍

一、输入输出端口寄存器

I/O接口包括PORTA、B、E、K、T、S、M、P、H、J、AD。其中PORTA、B、E、K属于复用扩展总线接口,单片机在扩展方式下工作时,作为总线信号。

1、PORTT、S、M、P、H、J

I/O寄存器PTx

如果对应位数据方向寄存器DDRx为“0”,输入,读取该寄存器返回引脚值;“1”,输出,读取该寄存器返回I/O寄存器的内容。

数据方向寄存器DDRx

决定对应引脚为输出还是输入,“0”为输入,“1”为输出,复位后,默认为输入。

上拉/下拉使能寄存器PERx

选择使用内置上拉/下拉器件,“1”允许,“0”禁用。

中断使能寄存器PIEx

PORTP、H、J三个端口具有中断功能。“1”对应引脚允许中断,“0”禁止,复位后,所有端口中断关闭。

中断标志寄存器PIFx

PORTP、H、J三个端口具有中断功能。“1”对应引脚允许中断,“0”禁止,复位后,所有端口中断关闭。

2、PORTA、B、E、K

I/O寄存器Px

若某端口的引脚被定义为输出,写入I/O寄存器中的数值会从对应引脚输出;输入,通过I/O 寄存器读取对应引脚电平。

数据方向寄存器DDRx

决定对应引脚为输出还是输入,“0”为输入,“1”为输出,复位后,默认为输入。PORTE最低两位只能为输入。

上拉电阻控制寄存器PERx

第7、4、1、0位分别控制K、E、B、A端口,“1”允许使用对应端口的上拉电阻,“0”禁止,复位后,PK、PE端口使能,PB、PA禁止。

二、中断系统

中断控制寄存器INTCR

第7位IRQE,中断电平/边沿有效选择,0为低电平有效,1为下降沿有效;

第6位IRQEN,外部中断IRQ中断请求使能,0关闭,1允许。

三、PWM模块

PWM允许寄存器PWME

对应每一位PWMEx,1启动输出,0停止输出,读写任意时刻。

PWM预分频时钟选择寄存器PWMPRCLK

为Clock A和B选择独立的预分频因子,读写任意时刻。

Clock B对应6、5、4三位,Clock A对应2、1、0三位,分别可以实现2、4、8、16、32、64、128分频。

PWM比例因子寄存器A、B,PWMSCLA、PWMSCLB

Clock SA=Clock A/(2*PWMSCLA)

=$00时,默认值为256

PWM时钟选择寄存器PWMCLK

对应每一位是PCLKx,7、6、3、2通道:1选择Clock SB,0选择Clock B,5、4、1、0通道:1选择Clock SA,0选择Clock A。读写任意时刻。

PWM通道周期寄存器PWMPERx

寄存器中的数值改变后,并不立即生效,直到:

当前有效周期结束;

写计数寄存器(计数器复位到$00);

通道被禁止。

左对齐方式输出:PWMx周期=通道时钟周期*PWMPERx

居中对齐方式输出:PWMx周期=通道时钟周期*PWMERx*2

PWM通道占空比寄存器PWMDTYx

寄存器中的数值改变后,并不立即生效,直到:

当前有效周期结束;

写计数寄存器(计数器复位到$00);

通道被禁止。

极性为0时,占空比=(PWMPERx—PWMDTYx)/PWMPERx*100%

极性为1时,占空比=PWMDTYx/PWMPERx*100%

PWM极性寄存器PWMPOL

对应每一位是PPOLx,“1”,周期开始输出高电平,“0”,周期开始输出低电平,读写任意时刻。

PWM居中对齐允许寄存器PWMCAE

对应每一位CAEx,,1中心对齐,0左对齐。

仅当相应的通道被禁止输出时,才可以设置该寄存器。

PWM控制寄存器PWMCTL,bit7~bit2

读写任意时刻

CON67,“1”通道6、7联,通道6为高8位,通道7输出引脚作为16位P WM的输出,通道6的相应寄存器控制位无效;

CON45,“1”通道4、5联,通道4为高8位,通道5输出引脚作为16位P WM的输出,通道4的相应寄存器控制位无效;

CON23,“1”通道2、3联,通道2为高8位,通道3输出引脚作为16位P WM的输出,通道2的相应寄存器控制位无效;

CON01,“1”通道0、1联,通道0为高8位,通道1输出引脚作为16位P WM的输出,通道0的相应寄存器控制位无效;

PWM通道计数寄存器PWMCNTx

读写任意时刻

四、A/D转换模块(标明ATD0还是ATD1)

ATD控制寄存器2,ATDCTL2

中止当前A/D转换序列,但不会启动新的A/D转换序列。

从高位到低位:

ADPU:控制ATD电源开关,1打开,0关闭;

AFFC:ATD模块标志快速清除位,1表示对结果寄存器的访问将自动清除相应CCF标志位,0表示在访问结果寄存器之前读取状态寄存器1(ATDSTAT1),可以正常清除相应CCF标志位;AWAI:等待模式下ATD电源开关控制位,1表示单片机处于等待模式,A/D转换停止并关闭ATD电源,0表示单片机处于等待模式,A/D转换继续进行;

ETRIGLE:外部触发电平/边沿控制位,和ETRIGP配合使用;

ETRIGP:外部触发极性控制位,00下降沿,01上升沿,10低电平,11高电平;ETRIGE:外部触发模式使能位,1表示允许ATD通道7引脚的外部触发,允许在外部触发信

号到来同时进行采样和转换,0禁止外部触发;

ASCIE:ATD转换序列完成中断标志使能位,1表示当标志位ASCIF=1时,允许ATD序列转换完成后引发中断,0表示禁止中断;

ASCIF:ATD转换序列完成中断标志,ASCIE=1,ASCIF标志等同于SCF标志,写入无效,1表示转换序列完成中断挂起,0表示没有ATD中断发生。

ATD控制寄存器3,ATDCTL3

中止当前A/D转换序列,但不会启动新的A/D转换序列。

从高位到低位:

Bit7=0;

S8C、S4C、S2C、S1C:A/D转换序列长度定义位,0000~1111对应8、1~7;

FIFO:结果寄存器先进先出模式选择位,1表示先进先出,0表示非先进先出;

FRZ1、FRE0:冻结模式的背景调试使能控制位,00继续转换,01未定义,10完成当前转换然后暂停,11立即暂停;

ATD控制寄存器4,ATDCTL4

中止当前A/D转换序列,但不会启动新的A/D转换序列。

从高位到低位:

SRES8:A/D转换精度选择位,1表示8位精度,0表示10位精度;

SMP1、SMP0:采样时间选择位,A/D采样时间包括两个阶段:第一阶段是2个A/D转换时钟周期,采样后通过放大器存储到存储节点,第二阶段为了直接把外部模拟信号连接到存储节点上,实现最终高精度的转换,这两位用来选择第二阶段的采样时间,00~11对应2、4、8、16个A/D转换时钟周期;

PRS4、PRS3、PRS2、PRS1、PRS0:A TD时钟预分频因子选择位,ATDclock=BusClock/(PRS+1)*0.5,最大ATD转换时钟频率为总线周期的1/2,复位后值为5。

ATD控制寄存器5,ATDCTL5

中止当前A/D转换序列,并启动新的A/D转换序列。

从高位到低位:

DJM:结果寄存器数据对齐方式选择位,1表示右对齐,0表示左对齐;

DSGN:结果寄存器数据有无符号选择位,1表示有符号数,只能左对齐,0表示无符号数;SCAN:连续转换序列模式选择位,1表示连续转换序列模式(扫描模式),0表示单词转换序列模式;

MULT:多通道采样模式选择位,0表示单通道采样,通道选择代码:ATDCTL5中的CC、CB、CA,1表示多通道采样,通道数目:ATDCTL3中的S8C、S4C、S2C、S1C;

Bit3=0;

CC、CB、CA:模拟量输入通道选择代码位。

ATD状态寄存器0,ATDSTAT0

SCF:转换序列完成标志位,一次转换序列完成,置位,清零的情况:手动置1,写ATDCTL5,AFFC=1;

Bit6=0;

ETORF:外部触发溢出标志位,1表示发生外部触发溢出错误,0表示未发生,清零的情况:手动置1,写ATDCTL2、ATDCTL3、ATDCTL4,写ATDCTL5;

FIFOR:先入先出溢出标志位,置位,清零的情况:手动置1,启动一个新的转换序列(写ATDCTL5或者外部触发);

Bit3=0;

CC2、CC1、CC0:转换计数器,只读。

ATD测试寄存器1,ATDTEST1

Bit0 SC:特殊通道转换位,1表示允许,0表示禁止

ATD状态寄存器1,ATDSTAT1,只读

CCFx:转换完成标志位,完成转换序列中的某个A/D转换时,置位,转换序列中第1个对应CCF0,转换结果存放在ATDDR0中;

AFFC=0时,读取ATDSTAT1寄存器,然后读取结果寄存器ATDDRx;AFFC=1时,读取结果寄存器ATDDRx。

ATD输入使能寄存器ATDDIEN

IENx:控制从模拟输入引脚(ANx)到PTADx数字寄存器的数字输入缓冲,1表示允许,0表示禁止,为1时,ANx引脚可以也只可作为普通输入口使用。

端口数据寄存器PORTAD

PTADx:A/D转换通道x的数字输入,IENx=1,读取该位返回ANx引脚的逻辑电平值;IENx=0,读取该位返回1,复位时都为1。.

ATD转换结果寄存器ATDDRxH/ATDDRxL

存放方式:左对齐和右对齐(DJM),有无符号数(DSGN)

10位精度,左对齐方式下,转换结果10位数据使用高字节的8位和低字节的高2位存放,结果数据最高位存放在高字节的bit7(bit9 MSB),最低为存放在低字节的bit6,读取是可使用双字节访问方式;

8位精度,左对齐方式下,转换结果8位数据使用高字节的8位存放,结果数据最高位存放在高字节的bit7(bit7 MSB),读取时刻只访问高字节;

10位精度,右对齐方式下,转换结果10位数据使用高字节的低2位和低字节的8位存放,结果数据最高位存放在高字节的bit1(bit9 MSB),最低为存放在低字节的bit0,读取是可使用双字节访问方式;

8位精度,右对齐方式下,转换结果8位数据使用低字节的8位存放,结果数据最高位存放在高字节的bit7(bit7 MSB),读取时刻只访问低字节。

五、ECT模块

16位自由运行计数器时钟源TIMCLK:PCLK,PACLK,PACLK/256,PACLK/65536,PCLK由总线时钟经过一个7位的预分频器得到,分频系数由TSCR2的PR2~PR0决定;

脉冲累加器时钟信号:内部时钟PACLK=ECLK/64;

模数递减计数器MDC时钟源:总线时钟经过4位预分频器提供。

1、自由运行计数器及定时器基本寄存器

定时器系统控制寄存器1,TSCR1

TEN:定时器允许位,1允许,0禁止主定时器;

TSWAI:等待模式下定时器模块停止位,1禁止,0允许;

TSFRZ:冻结模式下定时器和模数计数器停止位,1禁止,0允许;

TFFCA:快速清除定时器所有标志位,1=TFLG1清除CnF,TFLG2清除TOF,PACN3和PACN2清除PAFLG的PAOVF和PAIF,PACN1和PACN0清除PBFLG的PBOVF;0=定时器普通清除方式;

Bit3~bit0=0。

定时器系统控制寄存器2,TSCR2

TOI:定时器溢出中断允许位,1允许,0禁止;

Bit6~bit4=0;

TCRE:定时器计数器复位允许,1允许(若通道7输出比较成功,TCNT自动复位到$0000),0禁止;

PR2、PR1、PR0:定时器预分频器选择位,000~111分别对应1、2、4、8、16、32、64、128。定时器计数寄存器TCNT

16位主定时器是一个递增计数器,不停地对时钟信号TIMCLK进行计数,寄存器TCNT的内容即为计数结果。

主定时器中断标志寄存器2,TFLG2

TOF:主定时器溢出标志,溢出时1,允许中断(TOI=1),则引发溢出中断。

Bit6~bit0=0。

2、ECT模块的输入捕捉功能及寄存器设置

定时器输入捕捉/输出比较选择寄存器TIOS

IOSx:输入捕捉或输出比较通道配置位,1用作输出比较,0用作输入捕捉。

定时器IC/OC寄存器0~7,TC0~TC7

每个IC/OC通道都有一个16位的寄存器。对于IC通道,TCn用于锁存自由运行定时器/计数器的计数值,对于OC通道,TCn用于存放比较值。

定时器输入捕捉保持寄存器0~3,TC0H~TC3H(16位)

TCnH寄存器被用来锁存带缓冲的IC通道的输入捕捉寄存器TC0~TC3的值。

定时器控制寄存器3和4,TCTL3、TCTL4

设置对应通道的输入捕捉极性,EDGnB、EDGnA这8对控制位:输入捕捉边沿控制位:00,捕捉禁止,第n通道的IC功能与输入引脚断开,01上升沿捕捉,10下降沿捕捉,11在任何边沿捕捉;

TCTL4的4对控制位还用来设置8位脉冲累加器PAC0~PAC3;

对于16位脉冲累加器PACB,TCTL4的控制位EDG0B和EDG0A将决定触发的边沿。

延迟计数器控制寄存器DLYCT

Bit7~bit2=0;

DLY1、DLY0:延迟计数器选择位,00禁止延迟(被旁通);01,256个M时钟周期;10,512个M时钟周期;11,1024个M时钟周期。

输入控制覆盖寄存器ICOVW

NOVWx:输入捕捉覆盖允许位,1=不允许,0=当发生新的输入捕捉或锁存动作时,相应的捕捉寄存器或保持寄存器中的内容可以被覆盖。

输入控制系统控制寄存器ICSYS

SHxy(SH37、SH26、SH15、SH04):输入捕捉通道共享动作控制位,1=输入通道x的动作在通道y上产生同样的效果,通道x的边沿检测器和延迟电路同时作用于x、y通道;0=正常操作;

TFMOD:定时器标志置位模式位,1=队列模式下(BUFEN=1&LATQ=0),仅当相应的保持寄存器出现锁存时,TFLG1的C3F~C0F置位,0=端口引脚PTn出现有效输入捕捉跳变时,TFLG1置位。

PACMX:8位脉冲累加计数器最大计数值控制位,1=等于$FF时,饱和,0=正常计数。BUFEN:IC缓冲器允许位,1=输入捕捉保持寄存器和脉冲累加器保持寄存器允许,0=禁止。LATQ:输入控制锁存或队列模式允许位,1=锁存模式,0=队列模式。

定时器中断允许寄存器TIE

C7I~C0I:输入捕捉/输出比较“x”中断允许位,1允许,0禁止

主定时器中断标志寄存器TFLG1

C7F~C0F:输入捕捉/输出比较通道“n”标志位,1=出现有效动作,0=未出现有效动作。3、ECT模块的输出比较功能及寄存器设置

定时器控制寄存器1和2,TCTL1和TCTL2

OMn:输出模式,OLn:输出电平,8对控制位,00=定时器与输出引脚逻辑断开,01=翻转OCn引脚输出电平,10=OCn引脚输出为低电平,11= OCn引脚输出为高电平。

定时器强制输出比较寄存器CFORC

FOC7~FOC0:1=强制输出比较,且立即在引脚PTn上产生预订的输出比较动作,0=禁止。输出比较7屏蔽寄存器OC7M

OC7Mn:1=通道n端口引脚输出受TC7输出比较事件控制,0=不受控制。

输出比较7数据寄存器OC7D

OC7Mn=1,OC7D中的对应位将被传送到定时器端口数据寄存器PORTT中。

定时器溢出触发寄存器1,TTOV

TOVx:1=允许,0=禁止,TOVx=1时,触发出书优先于强制输出,但对通道7无效。

4、ECT模块的脉冲累加器功能及寄存器设置

16位脉冲累加器A控制寄存器PACTL

Bit7=0;

PAEN:脉冲累加器A系统允许位,1允许,0禁止;PEAN与TEN无关;

PAMOD:脉冲累加器模式位,只有PEAN=1时才起作用,1=门控时间累加模式(仅限于16位脉冲累加器A),0=事件计数模式;

PEDGE:脉冲累加器边沿控制位,只有PEAN=1时才起作用;

PAMOD=0,1=对PT7引脚输入信号的上升沿计数,0=下降沿;

PAMOD=1,1=PT7引脚输入的低电平时时钟ECLK/64送到脉冲累加器,在随后的上升沿,置位PAIF标志,0= PT7引脚输入的高电平时时钟ECLK/64送到脉冲累加器,在随后的下降沿,置位PAIF标志。

CLK1、CLK0:时钟选择位,用来选择TIMCLK,00=PCLK,01=PACLK,10=PACLK/256,11=PACLK/65536。

PAVOI:脉冲累加器A溢出中断允许位,1=允许,0=禁止。

PAI:脉冲累加器输入中断允许位,1=允许,0=禁止。

16位脉冲累加器B控制寄存器PBCTL

Bit7=0;

PBEN:脉冲累加器B系统允许位,1允许,0禁止;

Bit5~bit2=0;

PBOVI:脉冲累加器B溢出中断允许位,1允许,0禁止;

Bit0=0。

输入控制脉冲累加器寄存器ICPAR

确定是否允许8位脉冲累加器PAC3~PAC0工作,只有PAEN=0时,才允许8位脉冲累加器PAC3和PAC2单独使用,只有PBEN=0时,才允许PAC1和PAC0单独使用。

Bit7~bit4=0;

PAxEN:8位脉冲累加器x允许位,1允许,0禁止。

脉冲累加器计数寄存器3和2,PACN3/PACN2

反映8位脉冲累加器PAC3、PAC2或16位脉冲累加器A的计数结果,PACN3从FF到00溢出时,PAFLG中的中断标志PAOVF置位。

脉冲累加器计数寄存器1和0,PACN1/PACN0

反映8位脉冲累加器PAC1、PAC0或16位脉冲累加器B的计数结果,PACN1从FF到00溢出时,PBFLG中的中断标志PBOVF置位。

脉冲累加器A标志寄存器PAFLG

Bit7~bit2=0;

PAOVF:脉冲累加器A溢出标志位;

PAIF:脉冲累加器输入边沿标志位,挡在PT7引脚检测到选择的边沿时,置位。

脉冲累加器B标志寄存器PBFLG

Bit7~bit2,bit0=0;

PBVOF:脉冲累加器B溢出标志位。

8位脉冲累加器保持寄存器PA3H~PA0H

PAxEN=1时,用来锁存相应脉冲累加器中的值。

5、ECT模块的模数递减计数器功能及寄存器设置

16位模数递减计数器控制寄存器MCCTL

MCZI:模数计数器下溢中断允许位,1允许,0禁止;

MODMC:模数模式允许位,1循环计数方式,0单次计数方式;在修改MODMC之前,应该清除MCEN位使模数计数器复位到$FFFF;

RDMCL:读模数递减计数器装载值控制位,1=读模数计数寄存器将返回加载寄存器的内容,0=返回计数寄存器当前的值;

ICLAT:输入捕捉强制锁存动作控制位,向该位写0无效,读该位总是返回0;

FLMC:将加载寄存器内容强制加载到模数计数器计数寄存器控制位,只有MCEN=1时才有效,向该位写0无效,读该位总是返回0;

MCEN:模数递减计数器允许位,1允许,0禁止;

MCPR1、MCPR0:模数计数器预分频选择位,只有当加载寄存器的内容装填到模数计数器计数寄存器时,新选择的预分频因子才有效,00=1,01=4,10=8,11=16;

模数递减计数器计数寄存器MCCNT16位

RDMCL=0,返回计数寄存器的当前值,RDMCL=1,返回加载寄存器中的内容;

对MCCNT的写操作要求在MODMC=1时进行,

16位模数递减计数器标志寄存器MCFLG

MCZF:模数计数器向下溢出标志位;

Bit6~bit4=0;

POLF3~POLF0:第一次输入捕捉极性状态位,1=上升沿引发,0=下降沿引发。

六、SCI串口

SCIBDH:

SCIBDL:

SBR12-0:波特率设置位,代表BR 的值,波特率的计算公式为:

当BR 被设置为0 时,波特率发生器被禁止。

SCICR1:

LOOPS:循环选择位,设置为1 表示允许循环操作,设置为0 表示普通状态。SCISWAI:等待模式下SCI 停止位,设置为1 表示等待模式下SCI 被禁止,设置为0表示仍被允许。

RSRC:接收源选择位,当LOOPS 被设置为1 时,RSRC 设置为1 表示接收输入端与发送端外部连接,设置为0 表示接收输入端与发送端内部连接。

下表是LOOPS 与RSRC 两位的状态表:

M:数据格式模式位,设置为1 表示有1 位起始位,9 位数据位,1 位停止位,设置为0 表示有1 位起始位,8 位数据位,1 位停止位。

WAKE:唤醒条件位,设置为1 表示由Address mark 唤醒,设置为0 表示由Idle line 唤醒。ILT:空闲线模式位,置1 表示空闲计数从停止位开始,置0 表示空闲计数从起始位开始。PE:奇偶校验选择位,置1 表示允许插入奇偶校验位,置0 禁止。

PT:奇偶校验形式位,置1 表示为奇校验,置0 表示为偶校验。

SCICR2:

TIE:传输中断选择位,置1 表示允许中断,置0 表示禁止中断。

TCIE:传输完成中断选择位,置1 表示允许中断,置0 表示禁止中断。

RIE:接收寄存器满中断选择位,置1 表示允许中断,置0 表示禁止中断。

ILIE:空闲线中断选择位,置1 表示允许中断,置0 表示禁止中断。

TE:传输发送允许位,置1 表示允许传输发送,置0 表示禁止。

RE:接收允许位,置1 表示允许接收,置0 表示禁止。

RWU:接收唤醒位,设置为1 表示普通操作,设置为0 表示允许唤醒操作且在此期间禁止接收中断请求,实验时设置为1 即可。

SBK:发送断点位,置1 表示发送断点特征,置0 表示不发送。

SCISR1:

TDRE:发送数据寄存器空标志位,状态为1 表示数据已送到发送寄存器中,状态为0表示发送寄存器为空.

TC:发送完成位,状态为1 表示没有发送进程,状态为0 表示正在发送。

RDRF:接收数据寄存器满标志位,状态为1 表示接收寄存器中数据可用,状态为0 表示数

据寄存器中没有数据。

IDLE:空闲线标志位,状态为1 表示接收端空闲,状态为0 表示接收端正在活动。

OR:Overrun 位,状态为1 表示有过运行情况发生,状态为0 表示没有。实验中用不到。NF:噪声标志位,状态为1 表示数据中有噪声,状态为0 表示没有。

FE:,帧错误标志位,状态为1 表示有帧错误发生,状态为0 表示没有。

PF:奇偶错误标志位,状态为1 表示有错误发生,状态为0 表示没有。

SCISR2:

BRK13:中断传输特征长度位,置1 表示13 或14 位的长度,置0 表示10 或11 位的长度。TXDIR:单方向状态下TxD 引脚方向位,置1 表示TxD 作为输出端,置0 表示作为输入端。RAF:接收器活动标志位,状态为1 表示有接收进程,状态为0 表示没有接收进程。SCIDRH:

SCIDRL:

这两个寄存器是数据寄存器,R 表示接收,T 表示发送,T8,R8 的有效与否与SCICR1里的M 有关,当M 置1 时有效,M 置0 则无效。

注意:(其他特殊情况除外)

1、尺寸和公差按照ASME Y14.5M(1994)标准阐述。希望供应商理解并遵从标准中所描述的公差,并应用到此次绘图中。

2、材料:CRS C1008 1/8H

光亮镀锡,最小厚度2.5um,可接受的预镀层材料厚度:0.300mm

3、最大允许毛刺:0.05mm

4、整个表面平坦度不超过0.20

5、部分无需制造润滑

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

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

单片机总结

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

汇编寄存器功能详解

数据寄存器(AX、BX、CX、DX) 1.寄存器AX通常称为累加器(Accumulator),用累加器进行的操作可能需要更少时间。累加器可用于乘、 除、输入/输出等操作,它们的使用频率很高; 2.寄存器BX称为基地址寄存器(Base Register)。它可作为存储器指针来使用; 3.寄存器CX称为计数寄存器(Count Register)。在循环和字符串操作时,要用它来控制循环次数;在位 操作中,当移多位时,要用CL来指明移位的位数; 4.寄存器DX称为数据寄存器(Data Register)。在进行乘、除运算时,它可作为默认的操作数参与运算, 也可用于存放I/O的端口地址; 变址寄存器(SI、DI) 寄存器SI和DI称为变址寄存器(Index Register),它们主要用于存放存储单元在段内的偏移量,用它们可实现多种存储器操作数的寻址方式,为以不同的地址形式访问存储单元提供方便 指针寄存器(BP、SP) 寄存器BP和SP称为指针寄存器(Pointer Register),主要用于存放堆栈内存储单元的偏移量,用它们可实现多种存储器操作数的寻址方式,为以不同的地址形式访问存储单元提供方便。指针寄存器不可分割成8位寄存器。作为通用寄存器,也可存储算术逻辑运算的操作数和运算结果。 它们主要用于访问堆栈内的存储单元,并且规定: BP为基指针(Base Pointer)寄存器,用它可直接存取堆栈中的数据; SP为堆栈指针(Stack Pointer)寄存器,用它只可访问栈顶 段寄存器(CS、DS、ES、SS、FS、GS) 段寄存器是根据内存分段的管理模式而设置的。内存单元的物理地址由段寄存器的值和一个偏移量组合而成的,这样可用两个较少位数的值组合成一个可访问较大物理空间的内存地址 CS 代码段寄存器(Code Segment Register),其值为代码段的段值 DS 数据段寄存器(Data Segment Register),其值为数据段的段值; ES 附加段寄存器(Extra Segment Register),其值为附加数据段的段值 SS 堆栈段寄存器(Stack Segment Register),其值为堆栈段的段值; FS 附加段寄存器(Extra Segment Register),其值为附加数据段的段值 GS 附加段寄存器(Extra Segment Register),其值为附加数据段的段值 在16位CPU系统中,它只有4个段寄存器,所以,在此环境下开发的程序最多可同时访问4个段; 在32位CPU系统中,它共有6个段寄存器,所以,在此环境下开发的程序最多可同时访问6个段. 指令指针寄存器 指令指针EIP、IP(Instruction Pointer)是存放下次将要执行的指令在代码段的偏移量。在具有预取指令功能的系统中,下次要执行的指令通常已被预取到指令队列中,除非发生转移情况。所以,在理解它们的功能时,不考虑存在指令队列的情况。 16位标志寄存器 9个标志位,它们主要用来反映CPU的状态和运算结果的特征。 1.进位标志CF(Carry Flag) 进位标志CF主要用来反映运算是否产生进位或借位。如果运算结果的 最高位产生了一个进位或借位,那么,其值为1,否则其值为0。 2.奇偶标志PF(Parity Flag)奇偶标志PF用于反映运算结果中“1”的个数的奇偶性。如果“1”的个数为 偶数,则PF的值为1,否则其值为0 3.辅助进位标志AF(Auxiliary Carry Flag) 在发生下列情况时,辅助进位标志AF的值被置为1,否 则其值为0:

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

飞思卡尔单片机寄存器及汇编指令详解

附录I:寄存器地址列表 直接页面寄存器总结

高页面寄存器总结

非易失寄存器总结 注:直接页面寄存器表地址的低字节用粗体显示,直接寻址对其访问时,仅写地址低字节即可。第2列中寄存器名用粗体显示以区别右边的位名。有0的单元格表示未用到的位总是读为0,有破折号的单元格表示未用或者保留,对其读不定。

附录II 指令接与寻址方式 HCS08指令集概括 运算符 () = 括号种表示寄存器或存储器位置的内容 ← = 用……加载(读: “得到”) & = 布尔与 | = 布尔或 ⊕= 布尔异或 ×= 乘 ÷ = 除 : = 串联 + = 加 - = 求反(二进制补码) CPU registers A =>累加器 CCR =>条件代码寄存器 H =>索引寄存器,高8位 X => 索引寄存器,低8位 PC =>程序计数器 PCH =>程序计数器,高8位 PCL =>程序计数器,低8位 SP =>堆栈指针 存储器和寻址 M =>一个存储区位置或者绝对值数据,视寻址模式而定 M:M + 0x0001 => 两个连续存储位置的16位值.高8位位于M的地址,低8位位于更高的连续地址. 条件代码寄存器(CCR)位 V => 二进制补码溢出指示,第7位 H => 半进位,第4位 I => 中断屏蔽,第 3位 N => 求反指示器, 第2位 Z => 置零指示器, 第1位 C => 进/借, 第0位 (进位第 7位 ) CCR工作性符号 – => 位不受影响 0 = > 位强制为0 1 = > 位强制为1

= >根据运算结果设置或清除位 U = > 运算后没有定义 机器编码符号 dd =>一个直接寻址0x0000–0x00FF的低8位(高字节假设为0x00) ee => 16位偏移量的高8位 ff => 16位偏移量的低8位 ii => 立即数的一个字节 jj => 16位立即数值的高位字节 kk => 16位立即数值的低位字节 hh => 16位扩展寻址的高位字节 ll => 16位扩展寻址的低位字节 rr => 相对偏移量 n —任何表达范围在0–7之间的一个有符号数的标号或表达式 opr8i —任何一个表达8位立即值的标号或表达式 opr16 —任何一个表达16位立即值的标号或表达式 opr8a —任何一个表达一个8位值的标号或表达式.指令对待这个8位值为直接页面64K 字节地址空间(0x00xx)中地址的低8位. opr16a —任何一个表达16位值的标号或表达式.指令对待这个值为直接页面64K字节地址空间. oprx8 —任何一个表达8位无符号值的标号或表达式,用于索引寻址. oprx16 —任何一个16位值的标号或表达式.因为HCS08有一个16位地址总线,这可以为一个有符号或者无符号值. rel —任何指引在当前指令目标代码最后一个字节之后–128 to +127个字节之内的标号或表达式.汇编器会计算包括当前指令目标代码在内的8位有符号偏移量. 寻址方式 隐含寻址(Inherent)如CLRA,只有操作码,无操作数,需要操作的数据一般为CPU寄存器,因此不需要再去找操作数了。(INH) 立即寻址 (Immediate)如LDA #$0A,“$”表示16进制,此时操作数位于FLASH空间,与程序一起存放。(IMM) 直接寻址 (Direct)如 LDA $88,只能访问$0000-$00FF的存储器空间,指令短速度快; (DIR) 扩展寻址 (Extended)如果操作数地址超出了$00FF,自动为扩展寻址;(EXT) 相对寻址(Relative)如BRA LOOP,指令中一般给出8位有符号数表示的偏移量。(REL) 变址寻址 (Indexed) 采用[H:X]或SP作为指针的间接寻址方式。( IX )( IX1 )( IX2 ) 变址寻址 (Indexed) 1〉无偏移量:CLR ,X 简写(IX) 2〉无偏移量,指令完成后指针加1(H:X = H:X + 0x0001) ,简写(IX+)只用于指令MOV和CBEQ指令中;

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

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

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

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

单片机各寄存器汇总

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

51单片机寄存器地址查询

适合初学好东西一起分享 中断使能寄存器IE 中断总开关EA=1;启动有中断EA=0;关闭所有中断 保留 TF2中断开关ET2=1;启动ET2=0;关 闭(8052) 串行口中断开关ES=1启动串口ES=0 关闭串口 TF1中断开关ET1=1;启动ET1=0;关闭 INT1中断开关EX1=1; 启动EX1=0;关闭 TF0中断开关ET0=1;启动ET0=0;关闭 INT0中断开关EX0=1; 启动EX0=0;关闭 中断优先级寄存器IP EA — ET2 ES ET1 EX1 ET0 EX0 IE 寄存器 IP.7 IP .6 IP .5 IP .4 IP .3 IP .2 IP .1 IP .0 IP 寄存器 — — PT2 PS PT1 PX1 PT0 PX0 保留 保留 TF2中断先级 PT2=1;TF2为高优先级(8052) 串行口中断优先级PS1=1;为高优先级 TF1中断先级PT1=1;TF1为高优先级 INT1中断优先级PX1=1;为最高优先 级 TF0中断先级PT0=1;TF1为高优先级 INT0中断优先级PX0=1;为最高优先 级 定时器/计数器控制寄存器TCON Timer1中断标志CPU 设置 Timer1启 动开关TR1=1;启动Timer1 TR1=0;关闭Timer1 Timer0中断标志CPU 设置 Timer0启动开关TR0=1;启动Timer1 TR0=0;关闭Timer0 INT1中断标志CPU 设置 INT1信号种类IT1=1;负边沿触发IT1=0;低电平触发 INT0中断标志CPU 设置 INT0信号种类IT0=1;负边沿触发IT0=0;低电平触发 定时器/计数器功能 外部中断功能 定时器/计数器方式寄存器TMOD

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:进位标志。

ASCII码表&部分汇编标志寄存器操作指令

ASCII值控制字 符 ASCII 值 控制字 符 ASCII 值 控制字 符 ASCII 值 控制字 符 0 NUT 32 (space) 64 @ 96 、 1 SOH 33 !65 A 97 a 2 STX 34 ”66 B 98 b 3 ETX 35 # 67 C 99 c 4 EOT 36 $ 68 D 100 d 5 ENQ 37 % 69 E 101 e 6 ACK 38 & 70 F 102 f 7 BEL 39 , 71 G 103 g 8 BS 40 ( 72 H 104 h 9 HT 41 ) 73 I 105 i 10 LF 42 * 74 J 106 j 11 VT 43 + 75 K 107 k 12 FF 44 , 76 L 108 l 13 CR 45 - 77 M 109 m 14 SO 46 . 78 N 110 n 15 SI 47 / 79 O 111 o 16 DLE 48 0 80 P 112 p 17 DCI 49 1 81 Q 113 q 18 DC2 50 2 82 R 114 r 19 DC3 51 3 83 X 115 s 20 DC4 52 4 84 T 116 t 21 NAK 53 5 85 U 117 u 22 SYN 54 6 86 V 118 v 23 TB 55 7 87 W 119 w 24 CAN 56 8 88 X 120 x 25 EM 57 9 89 Y 121 y 26 SUB 58 : 90 Z 122 z 27 ESC 59 ; 91 [ 123 { 28 FS 60 < 92 / 124 | 29 GS 61 = 93 ] 125 } 30 RS 62 > 94 ^ 126 ~ 31 US 63 ? 95 —127 DEL

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单片机特殊功能寄存器功能一览表】 Posted on 2011-03-26 15:07 香格里拉\(^o^)/阅读(688) 评论(0)编辑收藏 【转】【51单片机寄存器功能一览表】 21个特殊功能寄存器(52系列是26个)不连续地分布在128个字节的SF R存储空间中,地址空间为80H-FFH,在这片SF R空间中,包含有128个位地址空间,地址也是80H-FFH,但只有83个有效位地址,可对11个特殊功能寄存器的某些位作位寻址操作(这里介绍一个技巧:其地址能被8整除的都可以位寻址)。 在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有R OM,用来存放程序,有R AM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能 寄存器(SF R)。这样的特殊功能寄存器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:辅助进、借位(高半字节与低半字节间的进、借位)。

汇编语言学习笔记之通用寄存器

汇编语言学习笔记之通用寄存器 从昨天开始,正式拉开了学习汇编语言的序幕,对于汇编语言的一些特点以及数据的表示及类型做了一番了解,由于这些东西每一种语言里都要介绍,而且一时半会也真弄不太明白它们的具体使用,也就粗略的看了一下,留待在今后的学习中结合实例加以体会吧。 而通用寄存器应该说是CPU内部重要的数据存储资源,学习汇编语言必须要掌握清它们的功能。因此汇编语言学习的第一篇学习笔记就从通用寄存器开始了。以下内容摘自汇编教程中。 寄存器是CPU内部重要的数据存储资源,是汇编程序员能直接使用的硬件资源之一。由于寄存器的存取速度比内存快,所以,在用汇编语言编写程序时,要尽可能充分利用寄存器的存储功能。 寄存器一般用来保存程序的中间结果,为随后的指令快速提供操作数,从而避免把中间结果存入内存,再读取内存的操作。在高级语言(如:C/C++语言)中,也有定义变量为寄存器类型的,这就是提高寄存器利用率的一种可行的方法。 另外,由于寄存器的个数和容量都有限,不可能把所有中间结果都存储在寄存器中,所以,要对寄存器进行适当的调度。根据指令的要求,如何安排适当的寄存器,避免操作数过多的传送操作是一项细致而又周密的工作。有关“寄存器的分配策略”在后续课程《编译原理》中会有详细的介绍。 由于16位/32位CPU是微机CPU的两个重要代表,所以,在此只介绍它们内部寄存器的名称及其主要功能。 1、16位寄存器组 16位CPU所含有的寄存器有: 4个数据寄存器(AX、BX、CX和DX), 2个变址和指针寄存器(SI和DI), 2个指针寄存器(SP和BP) 4个段寄存器(ES、CS、SS和DS), 1个指令指针寄存器(IP), 1个标志寄存器(Flags) 2、32位寄存器组 32位CPU除了包含了先前CPU的所有寄存器,并把通用寄存器、指令指针和标志寄存器从16位扩充成32位之外,还增加了2个16位的段寄存器:FS 和GS。 32位CPU所含有的寄存器有: 4个数据寄存器(EAX、EBX、ECX和EDX), 2个变址和指针寄存器(ESI和EDI), 2个指针寄存器(ESP和EBP) 6个段寄存器(ES、CS、SS、DS、FS和GS),

MCS-51单片机的(SFR)特殊功能寄存器详细解析

MCS-51单片机的特殊功能寄存器 从图中我们可以看出,在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。在一个51单片机的内部包含了这么多的东西。 对图进行进一步的分析,我们已知,对并行I/O口的读写只要将数据送入到相应I/O 口的锁存器就可以了,那么对于定时/计数器,串行I/O口等怎么用呢?在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SFR)。事实上,我们已接触过P1这个特殊功能寄存器了,还有哪些呢?看下表

下面,我们介绍一下几个常用的SFR。 1、ACC---是累加器,通常用A表示。 这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在ACC中的缘故吧。它的名字特殊,身份也特殊,稍后在中篇中我们将学到指令,可以发现,所有的运算类指令都离不开它。自身带有全零标志Z,若A=0则Z=1;若A≠0则z=0。该标志常用作程序分枝转移的判断条件。 2、B--一个寄存器。 在做乘、除法时放乘数或除数,不做乘除法时,随你怎么用。

3指针寄存器 (1)程序计数器PC 指明即将执行的下一条指令的地址,16位,寻址64KB范围, 复位时PC = 0000H (2)堆栈指针SP 指明栈顶元素的地址,8位,可软件设置初值,复位时SP = 07H (3)数据指针DPTR @R0、@R1、@DPTR;指明访问的数据存储器的单元地址,16位,寻址范围64KB。DPTR = DPH + DPL。可以用它来访问外部数据存储器中的任一单元,如果不用,也可以作为通用寄存器来用,由我们自已决定如何使用。分成DPL(低8位)和DPH(高8位)两个寄存器。用来存放16位地址值,以便用间接寻址或变址寻址的方式对片外数据RAM或程序存储器作64K字节范围内的数据操作 4、PSW-----程序状态字。 这是一个很重要的东西,里面放了CPU工作时的很多状态,借此,我们可以了解CPU 的当前状态,并作出相应的处理。它的各位功能请看下表: CY:进位标志。8051中的运算器是一种8位的运算器,我们知道,8位运算器只能表示到0-255,如果做加法的话,两数相加可能会超过255,这样最高位就会丢失,造成运算的错误,怎么办?最高位就进到这里来。这样就没事了。有进、借位,CY=1;无进、借位,CY=0 例:78H+97H(01111000+10010111) AC:辅助进、借位(高半字节与低半字节间的进、借位)。 例:57H+3AH(01010111+00111010) 下面我们逐一介绍各位的用途 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。 5、P0、P1、P2、P3------这个我们已经知道,是四个并行输入/输出口的寄存器。它里面的内容对应着管脚的输出。

相关主题