流水灯单向右移控制程序如何实现

流水灯单向右移控制程序如何实现,第1张

//程序名:LLL22_4.C

//程序功能:流水灯控制左移 右移

//==============================================================

#include//头文件

L_M()//流水灯左移控制程序

R_M()//流水灯右移控制程序

//===============================================================

main() //主函数

{

while(1) //无限循环

{

L_M()//调用左移程序

R_M()//调用右移程序

}

}

//========左移控制程序==============================================

L_M() //左移主函数

{

unsigned char i,temp,a,b//声明无符号字符型变量A,TEMP I,B

unsigned int s//声明无符号整型变量S

temp=0xfe//左移初始值

P1=temp//P1输出信号点亮发光管

for( s=0s<30000s++)//延时程序

for (i=1i<8i++) //发光管移动的位数

{

a=temp<<扒弯i发光管左移i位

b=temp>>(8-i) //数据右移(8-I)位

P1=a|b //逻辑或运算,并输出到P1口

for(s=0s<30000s++)//延时程序

}

}

//================================================================

R_M()

{

unsigned char i,temp,a,b//声明无符号字符型变量A,TEMP I,B

unsigned int s//声明无符号整型变量S

temp=0x7f//左移初始值

P1=temp//P1输出信号点亮发光管

for(s=0s<30000s++)//延时程序信敏

for(i=1i<8i++) //发光管移动的位数

{ //发光管左移I位

a=temp>>春坦闷i

b=temp<<(8-i)//数据右移(8-I)位

P1=a|b//逻辑或运算,并输出到P1口

for(s=0s<30000s++)//延时程序

}

}

//=======================================================================

LED灯右移到最右边后向左移时是这样的:右移一位→第二个延时程序→第埋族一个延时程序→右移右移一位→第二个延时程序→第一个延时程序戚液迟,这样不断循环,循环到最左边,就开始了右移的程序。

这样左移的延迟大高李一点的!

51单片机

的左移右移,首先在开始要调用"intrins.h"的文件包,这个文件包含_cror_(右移),_crol_(左移);然后通过for语句来控制;

for(m=20m>0m--)

for(n=20n>0n--)

for(k=250k>0k--)

理解这三句,第一句是指:m=20m>0然后m--是真就执行:

for(n=20n>0n--)

for(k=250k>0k--)

这两句,m--一直减,减一陪咐次,里面就执行一次,这里是液宽20次。

流水灯的左右移,第一用"intrins.h"的文件包,第二要要会定义赋值芦埋纯变量,第三延时,这是关键。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12489726.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存