历史上的今天
今天是:2024年11月26日(星期二)
2019年11月26日 | PIC单片机状态寄存器中的C(进位/借位位标志)
2019-11-26 来源:eefocus
查阅PIC单片机芯片手册,关于进位/借位位的说明为:
C:进位/借位位。
1 = 结果的最高位发生了进位
0 = 结果的最高位未发生进位
同时有一条标注:借位的极性是相反的。
通过以上说明,可以将C的分析分为两种情况:
1、加法:
最高位发生了进位:C = 1;
最高位未发生进位:C = 0;
2、减法:
最高位发生了借位:C = 0;
最高位未发生借位:C = 1;
为了加深理解,在MPLAB中写入一段代码,通过观测STATUS寄存器的值来测试以上分析:
1 ;测试SUBWF、ADDWF指令与状态寄存器C标志位的关系
2
3 LIST P=16F684
4 include "P16F684.INC"
5
6 Sub_Register_Small EQU 20H
7 Sub_Register_Large EQU 21H
8 Add_Register EQU 22H
9 Small_Status EQU 23H
10 Large_Status EQU 24H
11 Add_Status EQU 25H
12
13 ;被减数 < 减数
14 MOVLW 54H
15 MOVWF Sub_Register_Small
16 MOVLW 66H
17 SUBWF Sub_Register_Small, F
18
19 SWAPF STATUS, W ;保存状态寄存器值
20 MOVWF Small_Status
21 SWAPF Small_Status, F
22
23 ;被减数 > 减数
24 MOVLW 77H
25 MOVWF Sub_Register_Large
26 MOVLW 66H
27 SUBWF Sub_Register_Large, F
28
29 SWAPF STATUS, W ;保存状态寄存器值
30 MOVWF Large_Status
31 SWAPF Large_Status, F
32
33 ;加法进位
34 MOVLW 77H
35 MOVWF Add_Register
36 MOVLW 0BBH
37 ADDWF Add_Register, F
38
39 SWAPF STATUS, W ;保存状态寄存器值
40 MOVWF Add_Status
41 SWAPF Add_Status, F
42
43 END
启用仿真后,查看内存23H、24H、25H(保存的是以上三种操作后的STATUS)的值,结果如下:

Small_Status : 00011000B,对应C=0(最高位发生了借位)
Large_Status : 00011011B,对应C=1(最高位未发生借位)
Add_Status : 00011011B,对应C=1(最高位发生了进位)
为了简单便于记忆,可以把C的进/借位规则记为:加柴(1)做煎(减)蛋(0)!
上一篇:PIC单片机开发技巧汇总
下一篇:PIC单片机基础2
史海拾趣
|
(3)倒车雷达方案------——LED 数码管、LCD 液晶、语音、可视摄像、无线等方案 2.3 车载GPS + 可视倒车雷达产品(有线、无线、语音) ?? 利用GPS 显示屏显示摄像头图像、距离、探头状态; ?? 轰鸣器报警、语音报警提示; ?? 标准复合视频接口,GPS 中添加视频输入自动识别功能,倒车时自动切换到雷达功能; ?? 无线方 ...… 查看全部问答> |
|
设计开发需求: 现有8个语音通信工作单元,各工作单元之间通过有线方式连接。每个工作单元配有一副耳机麦克及一个切换(半双工)“发送”与“收听”的控制按钮。各工作单元之间最大距离小于1000米。具体要求如下: 1、每个工作单元均可收听到来自 ...… 查看全部问答> |
|
EVC下: typedef struct { TCHAR id1[200]; TCHAR id2[200]; TCHAR id3[200]; TCHAR id4[ ...… 查看全部问答> |
|
#include #define uchar unsigned char #define uint unsigned int #define DataDir P1DIR #define DataPort P1OUT //#define Busy 0x80 #define CtrlDir & ...… 查看全部问答> |
|
引言:一般而言,arm 和 fpga的交叉调试,可能会花掉整个项目60-70%的调试时间,所以我们应该了解如何调试,这对整个项目来说非常重要,让我们来一起了解一下Altera SOC的全芯片调试,感受一下由此给我们的开发和调试带来的便利性 $(\'flv_Hii ...… 查看全部问答> |




