深圳市炜烨兴电子有限公司|LCD在线|智能串口液晶
注册| 登录| 通行证 生产液晶显示模块哪家强?Wayeah LCM!专业的液晶显示模块研发、生产厂家!

首页 新闻 字符型| 图形型| 定制型| 智能型| 技术应用 留言反馈 联系方式 |

当前位置扩展应用 >> 8031寄存器/地址功能

8031寄存器/地址功能

8031寄存器 (引用地址:http://www.daxia.com/bibis/lookgood_4374.shtml)

1.寄存器的作用
8031的寄存器数目非常多,将近256个,总体成线性分布。有些是通用寄存器,有些是专用
寄存器,还有些介于这两者之间,依靠程序的实际使用情况确定。

下面按顺序介绍

字节索引:0~1F
一般表示(助记符):R0~R7
在有些书中称为工作寄存器,这是一个4X8的数组,第一下标在程序状态寄存器PSW中的工作
寄存器选择位RS1,RS0中指定,第二下标就是 跟在字母R和面的数字<这样理解应该比较形
象,呵呵,说法新颖吧>。

字节索引:20~2F
这总数为16个字节的寄存器又可以按位使用,又称为 位寄存器<以下凡标出位索引的均为位
寄存器>,共计16*8位,
位索引:0~7F

字节索引:30~7F
通用寄存器,用户可以任意定义其用途。

字节索引:80
一般表示(助记符):P0
该地址是端口P0的映射,因而对该地址操作也就是对P0操作。同时,这1个字节可以按位操
作,(即该端口可以按位操作)
位索引:80~87


字节索引:81
一般表示(助记符):SP
堆栈指针。8031的堆栈指针与8086不同的是:入栈时指针增加,出栈时指针减少,特别提醒
学过汇编 的弟兄不要搞错!并且,堆栈是在寄存器中生成的,不象计算机是在内存中。
书中讲到:8031复位后,SP的默认值 为07H<这一句还好>,“所以堆栈是由08H单元开始
的”。<为什么是08?而不是07?>
这个问题,要搞清指针的指向:SP指向堆栈内 当前数据的指针。
假设初始SP=7,我们把一个值入栈,那么SP=8,此时的数据存在于字节索引为8的寄存器中,
所以,堆栈是从08H开始的。
本质就是:入栈时,堆栈指针首先增加,然后将数据存入指针指向处。

字节索引:82
一般表示(助记符):DPL
访问片外数据设备的指针低8位。
字节索引:83
一般表示(助记符):DPH
访问片外数据设备的指针高8位。
<说明>DPH和DPL可以复合构成16位数据地址,用于对外接的64k数据设备<外接数据设备不一
定占完64k,这是最大值>寻址。

字节索引:87
一般表示(助记符):PCON
这是一个控制单片机工作方式的寄存器,使CPU进入比较特殊的工作状态,满足特殊需要。
此处不详述,请参考相关书籍。

字节索引:88
一般表示(助记符):TCON
定时器、中断控制寄存器。控制定时器的启停,标志定时器的溢出和中断情况。
位索引:88~8F
下面按位分析其作用
88:IT0外部中断0触发方式选择位。

0:外部中断为电平出发方式。
在此方式下,CPU在每个机器周期检测[/INT1],检测到低电平认为有中断申
请,IE0置位,否则IE0复位;
CPU响应中断后,不能自动清除IE0,只能由引脚电平来控制,所以在中断返回
前必须硬件撤消[/INT1],否则导致多次中断。

1:外部中断为边沿出发方式。
在此方式下,CPU至少需要12个时钟周期检测两次[INT1],判断下降边沿,故中
断申请必须保持12个时钟周期以上;
检测到有效中断申请,IE0置位,并且该标志在CPU响应中断时自动清除。
89:IE0外部中断0请求标志。
8A:IT1外部中断1触发方式选择位。
8B:IE1外部中断1请求标志。
8C:TR0定时器0运行控制位。
由软件清0关闭定时器0,即TR0=0,关闭定时器;
当GATE=0且TR0=1,启动定时器。
当GATE=1且TR0=1,启动定时器,此时,定时器受外部信号/INT0<[P3.2]>控制启
停,可用作测量脉冲宽度,分辨率:时钟周期*12。
8D:TF0定时器0溢出标志。
当定时器计数溢出时,由硬件使TF0置位,并且申请中断。
中断方式下,进入中断服务程序后,硬件自动将该位复位;
查询方式下,需要软件清0。
8E:TR1定时器1运行控制位。
8F:TF1定时器1溢出标志。

字节索引:89
一般表示(助记符):TMOD
定时器方式寄存器。
TMOD.0~3:定时器0

TMOD.3=GATE,门控位。

TMOD.2=C/T,定时器方式、计数器方式选择位。

/T:定时器方式,以CPU时钟/12作为计数脉冲,定时时间=时钟周期
*12*(计数极限-计数初值);

C:计数器方式,以P3.4脚输入的信号T0作为计数脉冲。

TMOD.1,0=0,1,2,3

0:是一个13位的定时/计数器,16位的计数值寄存器只使用13位,
其中TL的高3位未用。
当TL0的低5位溢出时,向TH0进位;
当TH0溢出时,向TF0进位,即产生中断申请。
计数溢出后,计数值寄存器为0,如需重新开始计数需要重新装入
计数初值。

1:是一个16位的定时/计数器,16位的计数值寄存器全部参与计
数,其他同TMOD.1,0=0。
计数溢出后,计数值寄存器为0,如需重新开始计数需要重新装入
计数初值。

2:自动重置初值的8位定时/计数器;
TL0用作8位的计数值寄存器;
TH0用于保持计数初值;
当TL0计数溢出,硬件完成TH0到TL0的初值装入;
这种方式不需要软件的初值装入工作,定时精度相当高,经常用于
串行口波特率发生器。

3:这种方式只适用于定时器T0。此时,T0分裂成2个8位计数器,

TL0:一个8位的定时/计数器
使用原T0的控制位、引脚和中断源
C/T,GATE,TR0,TF0,T0[P3.4],/INT0[P3.2],

TH0:一个8位的定时器
占用原T1的控制位和中断源TR1,TF1,
其启动和关闭只受TR1的控制,只能用作内部定时功
能;
无论如何,方式3为定时器0增加了一个8位内部定时
器。

T1在这种方式下,没有自己的控制位和中断源TR1,TF1,
计数溢出直接送到串行口波特率发生器中;
但是,仍有C/M位和外部计数脉冲输入脚T1[P3.5];
当T0工作于模式3时,T1的计数值寄存器仍可设置为
0~2;
由于没有自己的中断,通常把T1设置为方式2,作为波
特率发生器;
若要停止T1,可以采用设置T1的方式字为3的方法。
TMOD.4~7:定时器1
参考定时器0

字节索引:8A
一般表示(助记符):TL0
计数器0计数值寄存器低8位。
字节索引:8B
一般表示(助记符):TL1
计数器1计数值寄存器低8位。
字节索引:8C
一般表示(助记符):TH0
计数器0计数值寄存器高8位。
字节索引:8D
一般表示(助记符):TH1
计数器1计数值寄存器高8位。


字节索引:90
一般表示(助记符):P1
该地址是端口P1的映射,因而对该地址操作也就是对P1操作。同时,这1个字节可以按位操
作,(即该端口可以按位操作)
位索引:90~97

字节索引:98
一般表示(助记符):SCON
8031串行通信方式控制寄存器
位索引:98~9F
下面按位分析其作用
9F,9E:0,1,2,3串行方式选择位
0:8位数据位,没有起始位和停止位,先传输低位
1:1个起始位,8个数据位,1个停止位组成10位帧
2:1个起始位,8个数据位,1个可编程位<可用作校验>,1个停止位组成11位帧
3:1个起始位,8个数据位,1个可编程位<可用作校验>,1个停止位组成11位帧
9D:0,1允许接收第9位,
在方式0中,本位置0,
在方式1中,若本位为1,当接收到有效的停止位时,RI才置1,
在方式2和3中,用于多机通信控制。当本位为1时,RI是否置位由第9位控制。
9C:Ren接收允许位,由软件控制
9B:发送数据第9位的值,可以用作校验或多机通信
9A:接收数据第9位的值,可以用作校验或多机通信
99:TI发送中断标志位。
在方式0中,发送完8位数据后,由硬件置位
在其它方式中,发送完停止位由硬件置位
TI=1时,可申请中断
在任何方式下,清除TI必须由软件完成
98:RI
在方式0中,接收完8位数据后,由硬件置位
在其它方式中,接收到停止位由硬件置位
RI=1时,可申请中断
在任何方式下,清除RI必须由软件完成


字节索引:99
一般表示(助记符):SBUF
串行数据缓冲器,收发合用。

字节索引:A0
一般表示(助记符):P2
该地址是端口P2的映射,因而对该地址操作也就是对P2操作。同时,这1个字节可以按位操
作,(即该端口可以按位操作)
位索引:A0~A7

字节索引:A8
一般表示(助记符):IE
中断屏蔽<允许的反义词>标志。
位索引:A8~AC,AF
下面按位分析其作用
A8:EX0外部中断源0中断允许位;
A9:ET0计数器/定时器0中断允许位;
AA:EX1外部中断源1中断允许位;
AB:ET1计数器/定时器1中断允许位;
AC:ES串行口中断允许位;
AF:EA中断总允许位,当EA=1时,中断允许,由各自屏蔽码确定,当EA=0时,禁止所有中断。

字节索引:B0
一般表示(助记符):P3
该地址是端口P3的映射,因而对该地址操作也就是对P3操作。同时,这1个字节可以按位操
作,(即该端口可以按位操作)
位索引:B0~B7
同时,端口P3的8个引脚还可以指定其特殊用途
P3.0:RxD串行口输入<必须通过编程实现>
P3.1:TxD串行口输出<必须通过编程实现>
P3.2:/INT0外部中断0输入<靠打开对应的中断屏蔽实现外部中断>
P3.3:/INT1外部中断0输入<靠打开对应的中断屏蔽实现外部中断>
P3.4:T0计数器0的外部输入<C/M=1><定时器方式下无效>
P3.5:T1计数器1的外部输入<C/M=1><定时器方式下无效>
P3.6:/WR片外数据存储器写选通控制输出<执行操作片外数据存储器指令时自动有效>
P3.7:/RD片外数据存储器读选通控制输出<执行操作片外数据存储器指令时自动有效>
因此,当特定的条件不满足时,P3可以当作普通的寄存器<字节索引:B0>或位寄存器<位索
引:B0~B7>

字节索引:B8
一般表示(助记符):IP
中断优先级寄存器,每种中断源有两种优先级,分别为高优先级和低优先级。
位索引:B8~BC
下面按位分析其作用
B8:PX0外部中断源0:低;1:高
B9:PT0计数器/定时器中断0:低;1:高
BA:PX1外部中断源0:低;1:高
BB:PT1计数器/定时器中断0:低;1:高
BC:PS串行口中断0:低;1:高
处于同一优先级的中断按自然优先级,即上序。

字节索引:D0
一般表示(助记符):PSW
程序运行状态寄存器。
位索引:D0~D7
下面按位分析其作用
D0:P累加器A<ACC>中的位累加和;
D1:F1用户标志,自由使用;
D2:OV有符号数运算溢出标志;
D4,D3:RS1,RS0参考<工作寄存器><字节索引0~1F>的叙述,工作寄存器数组第一下标;
D5:F0用户标志,自由使用;
D6:AC半字节进位标志,在进行加减法运算中,低半字节如果向高半字节有进(借)位,则
置1,常用于BCD码调整;
D7:CY进位标志,在进行加减法运算中,最高位如果有进(借)位,则置1;在进行位运算
时,CY是位累加器。

字节索引:E0
一般表示(助记符):A
累加寄存器,通常用于算数运算和逻辑运算。
位索引:E0~E7

字节索引:F0
一般表示(助记符):B
程序运行状态寄存器。
位索引:F0~F7

2.使用中要注意的问题
首先,这些寄存器的功能无须记忆,但须了解大体功能<呵呵,是不是说得有点晚?>。提供
本表仅供参考,以备查阅<很有收藏价值!>。
寄存器的位寻址范围是字节寻址的子集,但是可以通过位操作指令单独操作位寄存器字节中
的每一位.
加电时,寄存器的值SP=7其余全部为0
本篇重点难点在于定时器的控制。<和串行通道有关>
如果按照上一篇的最小系统连接的电路,那么,由于P2和P0端口被地址线和数据线占用,所
以不能用作IO端口;
当P3当作特殊用途时,只有P1口是普通I/O
[来源:bibis.daxia.com] [作者:DieHeart@daxia.com] [日期:11-05-05] [热度:]

评论

© 2004-2015 Wayeah LCM All rights reserved.

Powered by: KingCMS 5.1.0.0812

|2009旧版 | 联系方式 | 付款方式 | 淘宝店|