DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 207|回复: 0
打印 上一主题 下一主题

PIC16C5X单片机的状态寄存器

[复制链接]
跳转到指定楼层
楼主
发表于 2011-4-30 16:15:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
4.状态寄存器f3
该寄存器包含有ALU的算术状态位,RESET状态位、大于512字节程序存储器的页面预选位。

状态寄存器f3可以用作目标寄存器。某些标志位通过相应的写来设定,而另外一些位是不能通过指令来改变的。TO、PD位是不可写的。因此一条指令对状态寄存器执行的结果会有所不同。例如CLR f3被除了TO和PD位之外的所有位清“0”,并把“Z”位置“1”,所以得到的状态寄存器内容为“000UU100”,其中,U表示不变化。

建议用BCF、BSF或MOVWF指令来改变状态寄存器的内容,这些指令只改变相应的位,而不影响其它状态位。

其它影响状态位的指令可参考指令系统的说明。

状态寄存器包含8位数据位,其中低5位是状态标志位,高3位中的最高位PA2未用。PA0和PA1是存储器页面选择位,其结构如下表所示。



表1 状态寄存器的结构

PA2
PA1
PA0
TO
PD
Z
DC
C

D7
D6
D5
D4
D3
D2
D1
D0


下面我们介绍各位的意义。

[1].C(D0):进位/借位标志位。在执行ADDWF和SUBWF指令时,最高位产生进位或借位时,C=“1”,在减法采用补码运算。

[2].DC(D1):辅助进位位。当执行ADDWF和SUBWF指令时,低4位产生进位或借位时,DC=“1”。

[3].Z(D2):零标志位。当算术操作结果为0时,Z="1"。

[4].PD(D3):低功耗标志位。上电或执行CLR WDT指令时,PD=“1”。执行SLEEP指令时,PD=“0”。

[5].TO(D4):WDT溢出标志位。当上电或执行CLR WDT、SLEEP指令时,TO=“1”,WDT溢出时,TO=“0”。

[6].PA0,PA1(D5,6):程序存储器页面选择位。对于PIC16C56单片机,PA0是程序存储器页面选择位。PA1是通用读写位。在PA=0时,选择0页面,即000H-1FFH。PA0=1时,选中1页,地址为200H-3FFH。

对于PIC16C57/58单片机,PA0、PA1是程序存储器页面选择位。它们的值从00-11H分别选中0-3页,即地址为000-1FFH、200H-3FFH、400H-5FFH、600H-7FFH。

[7].PA2(D7):通用读写位,未使用。

在复位时,PA2,PA1,PA0被清“0”,上电或执行CLR WDT指令时,TO、PD都被置“1”,这两位的变化如表2所示。上电复位时,Z、DC、C标志位状态不定。在其它复位情况下(如WDT溢出)Z、DC、C状态不变。上电复位TO、PD的状态见表3。[/td]
[tr][/tr]


表2 事件对TO、PD标志位的影响

事件
TO
PD
说明

上电
1
1
不影响PD标志位

WDT超时溢出
0
X

SLEEP指令
1
0

CLR WDT指令
1
1



表3 复位后TO、PD标志位的状态

TO
PD
复位原因

0
0
WDT超时溢出使SLEEP唤醒

0
1
WDT超时溢出(不在SLEEP状态时)

1
0
MCLR加低电平使SLEEP唤醒

1
1
上电时

X
X
MCLR加低电平


ADDWF指令后,进位位C=1表示产生进位,执行SUBWF指令后,进位位C=0表示借位,执行ADDWF或SUBWF指令也将影响辅助进位位DC状态。DC表示低半字节到高半字节的进位和借位。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-8-28 07:44 , 耗时 0.080514 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表