89C51单片机中PCON=0x80;是啥意思?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了89C51单片机中PCON=0x80;是啥意思?相关的知识,希望对你有一定的参考价值。

PCON是电源控制及波特率选择寄存器,单元地址是87H
其结构格式如下:
PCON电源管理寄存器结构   
PCON D7 D6 D5 D4 D3 D2 D1 D0   
位符号 SMOD - - - GF1 GF0 PD IDL   
SMOD是串行口波特率倍增位,当SMOD=1时,串行口波特率加倍。系统复位默认SMOD=0。 各位的定义: SMOD:该位与串口通信有关。
  SMOD=0; 串口方式1,2,3时,波特率正常。
  SMOD=1; 串口方式1,2,3时,波特率加倍。
  GF1,GF0:两个通用工作标志位,用户可以自由使用。
  PD:掉电模式设定位。   PD=0 单片机处于正常工作状态。   PD=1 单片机进入掉电(Power Down)模式 ,可由外部中断或硬件复位模式唤醒,进入掉电模式后,外部晶振停振,CPU、定时器、串行口全部停止工作,只有外部中断工作。
  IDL:空闲模式设定位。   IDL=0 单片机处于正常工作状态。   IDL=1 单片机进入空闲(Idle)模式,除CPU不工作外,其余仍继续工作,在空闲模式下可由任一个中断或硬件复位唤醒。
=============================================================
PCON=0x80的话就是将SMOD置1,使波特率加倍
参考技术A PCON是特殊功能寄存器
0X80是表示它的最高位为1,即SMOD(波特率)=1
波特率就是每秒钟传输的二进制位数。
SMOD=1就是相当于波特率乘以了2,加快了传输二进制的速度。
参考技术B PCON主要是电源管理,第七位那里好像是双倍波特率设置. 参考技术C 电源那块的吧。你看下pcon寄存器各位都什么含义就知道他表示什么意思了。

下面代码的C语言中while(x--)是啥意思

参考技术A while(x--);是一条空操作,x--是先判断再减1,所以当X为0时,不成立,但X要自减1,后面输出就是-1. 参考技术B 先可以看成是
while((x--)!=
0)
但是。不管进不进while里,它都会给x-1的;
如你的题:
开始是2。
先判断是否为0,(不管是不是都会执行)再减1,(是进入,不是退出)再看是否进入while循环。
当x=0时:先判断是否为0,(不管是不是都会执行)再减1变为-1,(是进入,不是退出)再看是否进入while循环,此时退出了。
总之一句话。--x是先减1,再执行其它部分。x--是先执行其他的部分,再减1。
参考技术C 首先了解下优先级与结合性
1.--为自减运算符,第二优先级,自右至左
2.x--这个表达式:先使用x的值,接着x=x-1;
整个表达式的值为x

while(x--)

循环体

首先
①判断x--这个表达式的值是否为0(即x的值),如果为0,不执行循环体
但仍然执行x=x-1;
例如:
int
x=0;
则不执行循环体,x最终值为-1
②如果x的初值不为0,判断x--这个表达式的值是否为0,(不论是否为0)x=x-1,
如果x--表达式的值不为0,在执行循环体.(真绕...看例子)
例如:
int
x=3;
while(x--)

printf("while\n");

printf("%d\n",x);
①3-->不为0-->x=x-1-->x=2
执行循环体
while
②2-->不为0-->x=x-1-->x=1
同上
③1-->不为0-->x=x-1-->x=0
同上
④注意
此时x=0,将不再执行循环体,但x=x-1;-->x=-1
(建议你逐步调试,很清晰)
参考技术D x--;
while语句先判断x的值再执行减1;
当判断为0时会再减1;
你试试--x;
第5个回答  2019-12-21 while()中是
逻辑判断
语句;
只有两种值,0
和!0;
0为假,!0为真;
while()中!0时进行循环;
所以这句话的意思是:
直到x自减到0,循环停止;

以上是关于89C51单片机中PCON=0x80;是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

单片机C语言

0x00~0xff是啥类型的编码,在单片机中如何具体使用

定义的变量的位域就是4是啥意思?

int $0x80是啥意思(汇编语言)

interrupt 3 using 3 是啥意思那 二个3 各是啥意思?

电子厂AP, RF, PD, INT是啥意思