标题: 初学者不太懂,单片机流水灯p2++什么意思啊? [打印本页]

作者: dsfdwf    时间: 2020-8-27 13:50
标题: 初学者不太懂,单片机流水灯p2++什么意思啊?
单片机流水灯p2++什么意思啊

为什么按下独立键盘后8个灯全亮啊,能告诉我运算过程吗?


作者: lovezjf234    时间: 2020-8-27 15:42
写P2++的人本身就不知道怎么去控制P2通道上的信号,P2++也没啥意思,就是单位+1。
作者: 塞北江南    时间: 2020-8-27 15:53
资料不够全,可以将代码都放上来,
作者: 山水间    时间: 2020-8-27 15:59
p2++的意思在这里是p2端口的寄存器值每按一下P3.1上的独立按键就加一,至于按一下独立按键灯全亮,你的程序不完整,也没有电路图,不好回答呢。我猜测LED应该是连接在P2口上,按一下独立按键P2+1,P2的值刚好是0xff(我猜测是共阴)。
作者: Conlin不喝饮料    时间: 2020-8-27 19:30
你这代码不全啊。
作者: hantu    时间: 2020-8-27 19:40
P2++就是P2=P2+1
作者: mengzhixinheng    时间: 2020-8-28 09:57
逻辑都有问题,有什么好追究的呢!!!
作者: 1255230    时间: 2020-8-30 00:47
跟a++是一个意思,代表这个数每循环一次就加一
作者: Xiyo    时间: 2020-9-2 15:43
循环一次P2单位加一,也就是说到了这步就要P2=P2+1,你这代码前面也不全,不知道P2的初值。
作者: 梁廷明    时间: 2020-9-4 17:11
P2+1,P2的寄存器数值加1
作者: TTQ001    时间: 2020-9-5 10:24
就是P2自加1
作者: jinsheng7533967    时间: 2020-9-5 12:03
本帖最后由 jinsheng7533967 于 2020-9-5 12:31 编辑

你程序本身就有问题,不要说你按键按下了P2的8个灯全亮,你就是没按也是全亮!因为51单片机你初始化时
P1,P2,P3高电平
另外你的按键是没有起到作用的,也就是说P2更本没有++
下面是正确代码与仿真

#include <REG52.H>
#define uint  unsigned int
#define uchar unsigned char
sbit k1=P3^1;
void delay (uint xms)
{
   uint i,j;
   for(i=xms;i>0;i--)
                   for(j=112;j>0;j--);
}
void main()
{
     P2 = 0;;
while(1)
{
   if(k1 == 0)
   {
    delay(10);
    if(k1 == 0)
    {
         while(k1 == 0);
  P2++;
    }
   }
}
}
开关控制流水流.rar (17.32 KB, 下载次数: 10)






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1