标题:
关于单片机io口溢出问题
[打印本页]
作者:
hnnnj
时间:
2019-11-17 13:15
标题:
关于单片机io口溢出问题
令P0=0xff;之后,P0=++P0,那么P0等于多少,溢出的去哪了?
作者:
Y_G_G
时间:
2019-11-18 08:27
如果是一直累加:0>255>0>255,如此循环
如果是一直累减:255>0>255>0,如此循环
只能说是到了过了255就产生一次溢出,但数据不是水,没有溢出到哪里的说法
如果编译器编译成加法指令(ADD)指令,溢出就会使标志位C置位1
如果编译器编译成累加(INC)或者累减指令(DEC)指令,溢出不会影响标志位,它就像跑马灯一样循环
作者:
笨笨兔
时间:
2019-11-18 10:33
IO口溢出?
IO能溢出?
说法奇特!
作者:
yzwzfyz
时间:
2019-11-18 11:02
总共就8位,你非要问第9位的事!
作者:
bh2030693
时间:
2019-11-18 11:24
首先要分解开输入和输出寄存器。
P0 = 0xff;是输出寄存器赋值。
假设P0没有外接任何东西(上拉)
,默认是开漏状态,这时候P0端口是0x00电平。
P0 = ++P0; 分解开来:
先执行 ++P0 :是输出寄存器(0x80) = 0xff + 1 = 0x00;
再执行 P0 = P0:P0输出寄存器(0x80) = 输入寄存器(0x80)的数据(管脚实际电压0x00,
不是输出寄存器的0x00
);
最终 P0 = 0x00;
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1