#include"reg52.h"
#include"intrins.h" //_crol_和_cror_移位函数的库函数,使用_crol_和_cror_移位函数必须要先声明库函数
#define uchar unsigned char
void Delay_1ms(unsigned int Time)
{
unsigned int x, y;
for(x = Time; x > 0; x--)
for(y = 120; y > 0; y--); //延时函数,老生常谈
}
void main(void)
{
uchar led1,led2;
led1=0xFE;
led2=0xFE;
while(1)
{
if(P1==0xFE) //定义按键K1,按键接P1^0口 1111 1110 接地变为低电平
{
Delay_1ms(50); //延时防抖动
while(P1==0xFE);
{
P2=led1; //P2口初始值
led1=_crol_(led1,1); //使用循环左移函数,一定要保持循环初始值有0。使用该函数使程序简单很多
Delay_1ms(50);
}
}
if(P1==0xFD) //定义按键K2,按键接P1^1口 1111 1101 接地变为低电平
{
Delay_1ms(50); //延时防抖动
while(P1==0xFD);
{
P2=led2; //P2口初始值
led2=_cror_(led2,1); //使用循环右移函数,一定要保持循环初始值有0。使用该函数使程序简单很多
Delay_1ms(50);
}
}
}
}
我的问题是,无法衔接左右移位,导致换向时混乱,请教一下改进方法,谢谢
你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答
本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。
因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。
我想达到的目的是一次按键移动一位,左右换向正常。您的回答我看了,您的方案没有很好地解决我这边的解决一次按键移动一位的。一次按键移动一位的难点在于,中途换向导致前一个方向的变量还在,从而导致换向的时候紊乱