LZ的问题确实没说明白,不过,就当你是P1口的左移了;
#include"reg52h"
#define uchar unsigned char
#define uint unsigned int
void Delay(uint delay_time)
{
uchar i;
for(;delay_time;delay_time--)
for(i=0;i<200;i++);
}
void main()
{
uchar LED_play;
while(1)
{
P1=1<<LED_play;
Delay(20);
LED_play=++LED_play%8;
}
}
# include "reg51h" // 包含头文件
#define uchar unsigned char
void delay02s(void) // 延时02s子程序
{
unsigned char i,j,k;
for ( i=2;i>0;i-- )
for (j=200;j>0;j-- )
for (k=250;k>0;k-- );
}
void main (void) // 主函数
{
uchar i,j;
while (1) // 死循环
{
j=0x01; // j初始化为0x01,左移初始值
for(i=0;i<8;i++) // for循环语句,完成8个循环
{
P1= ~ j; // 对变量j 中的值按位取反后,从P1口输出
delay02s( ); // 延时02s
j= j<<1; // 左移1位
}
j=0x80; // 设置右移初始值j为0x80
for (i=0;i<8;i++)
{
P1= ~ j;
delay02s( );
j= j>>1; // 右移1位
}
}
}
左移一位相当于乘2,右移一位相当于除2,异或一次相当于加密,再异或一次(用原来的数)就得到了原先的数,相当于解密。
按位或
可把指定的位设为1
按位异或
可把指定的位变反
按位与
可把指定的位清0
按位左移
按位右移
乘除运算
按位左移、按位右移
可以代替2的乘除法
按位的左移和右移要看是否越界的问题一般用于整数的处理
以上就是关于求51单片机驱动P10单元板左移程序C语言全部的内容,包括:求51单片机驱动P10单元板左移程序C语言、C语言和单片机中的左移右移、C程序中,左移"<<"、右移">>" 的具体用法是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)