/*发光管右转移例*/
#include<reg52.h> //头文件
#include <intrins.h> //头文件,调用的是右转移函数
#define uint unsigned int //宏定义
#define uchar unsigned char
uchar temp,num,num1; //定义三个变量
sbit beep=P2^3; //定义位
void delay(uint); //子程序声名
void main() //主函数
{
temp=0xfe; //给TEMP放入0xfe
while(1) //while 大循环
{
for(num1=0;num1<3;num1++) //for循环
{
for(num=0;num<8;num++)
{
P1=temp; //把0xfe放到P1口
beep=0; //P2.3口输出低电平
delay(100); //调用延时子程序
temp=_crol_(temp,1); //调用右移函数
P1=0xff; //把0xff放到P1口
beep=1; //P2.3输出高电平
delay(100); //调用延时子程序
}
}
for(num1=0;num1<3;num1++) //for循环
{
for(num=0;num<8;num++)
{
P1=temp; //把0xfe放到P1口
beep=0; //P2.3输出低电平
delay(100); //调用延时子程序
temp=_crol_(temp,1); //调用右移函数
P1=0xff; //把0xff放到P1口
beep=1; //P2.3输出高电平
delay(100); //调用延时子程序
}
}
while(1);//程序停在这里
}
}
void delay(uint z) //延时子程序函数体
{
uint x,y; //定义两个变量
for(x=z;x>0;x--) //for循环
for(y=110;y>0;y--);
}
/* _cror_ 是C51库函数里面的右转移函数,temp=_crol_(temp,1);temp是之前定义的变量,_crol_是函数名,
小括号内的temp是一个变量,后面的1是循环几位设置,目前是循环1位,如果循环3位那么就写3 */