1. 单片机算术指令中,C7、C6是什么意思还有位7是第7位的意思吗
单片机算术指令中c是进位标志,在单片机中有一个寄存器PSW(D0H)是用来寄存标志的,不同的位定义不同的功能,
以51系列说一下:
PSW-----程序状态字(寄存器)。
这是一个很重要的东西,里面放了CPU工作时的很多状态,借此,我们可以了解CPU的当前状态,并作出相应的处理。它的各位功能请看下表:
D7 D6 D5 D4 D3 D2 D1 D0
CY AC F0 RS1 RS0 OV P
下面我们逐一介绍各位的用途
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。
希望对你有帮助!
2. 单片机中位定义和宏定义的区别 优缺点
位定义:定义一个名称代替一个引脚,例如:JDQ=P1^1;
宏定义的话,就是这样,A=JDQ;
宏定义的优点在于,当需要修改时会很方便。
比如在开头宏定义了A=JDQ.当需要修改时,并不用去一个一个改,只要在宏定义里改一下就可以。
位定义和宏定义功能不同。
3. 单片机特殊功能寄存器和位定义怎么编写程序
用C语言来对单片机编程,有的单片机也有那么几条很特殊的独有的编程语句,51单片机就有,先介绍两条。
第一条语句是: sfr P0 = 0x80;
SFR这个关键字,是51单片机特有的,他的作用是定义一个单片机特殊功能寄存器(special function register)。51单片机内部有很多个小模块,每个模块有8个开关。每个模块呢,都有一个房间和唯一的房间号。那么P0就是一个功能模块,就住在了0x80这个房间里,我们就是通过设置P0的内部这个模块的8个开关,来让单片机的P0这8个IO口输出高电平或者低电平的。
第二条语句是: sbit LED = P0^0;
这个sbit,就是对刚才所说的SFR里边的8个开关其中的一个进行定义。经过上边第二条语句后,以后只要在程序里写LED,就代表了P0.0口(“^”这个符号在数字键6上边),注意这个P必须大写,也就是说我们给P0.0又取了一个更形象的名字叫做LED。
了解了这两个语句后,我们来大概看一下单片机的特殊功能寄存器。注意,每个型号的单片机都会配有生产厂商所写的数据手册(Datasheet),所以我们来看一下STC89C52RC的数据手册,从21页到24页,全部是对特殊功能寄存器的介绍以及地址映射列表。我们在使用这个寄存器之前,必须对这个寄存器的地址进行说明。是不是花花绿绿的太多了,记不住啊,这个没关系的,不需要你记住,了解一下,后边大部分我会慢慢给大家解释,少部分需要用到的时候,自己过来查手册就可以了,做技术不是为了应付考试,你可以随时翻阅手册查找你需要的资料。
4. C51单片机入门编程问题
1、你不要想它怎么关联的,它就是一种固定的写法,语法就这样。你只能这样写,也当你写成这样的时候,编译器会认得出来它代表什么的,写成其它的话,编译就会报错了。所以不要再纠结这个问题。语法这样定的,遵守就行了。
2、0xfe不是什么地址,就是个简单的赋值,OutData就是等于0xfe。
OutData要是指一个端口的话,最前面是要有宏定义的,比如
#define OutData P0
上面表示用OutData这个词代替P0。
为什么要么定义,而不直接用P0就好了,你去查一下宏定义的好处就知道为什么会有这种用法了~
5. 51单片机模块化编程怎么位定义
模块不太了解,对于位的话.
就是bit和sbit,就搞定位定义了.