自学笔记:关于LED流水灯,LED闪烁程序中涉及函数

涉及主要两个问题:如何实现流水?如何实现闪烁?

针对问题解决方法:平移函数以及延时函数。

1,平移函数

平移函数所在的头文件:intrins.h

右平移:_cror_(变量,平移位数)

左平移:_crol_(变量,平移位数)

2,延时函数

void delay(u16 i) //延时函数

{

while(i--);

}

3,完整程序

#include"reg52.h" //51单片机头文件,库函数

#include"intrins.h" //左移右移函数的头文件

typedef unsigned char u8; //重定义,使用typedef 将unsigned char定义为u8

typedef unsigned int u16; //用加分号

#define led P2 //定义全局变量,不用加分号

void delay(u16 i) //延时函数

{

while(i--);

}

void main() //主函数

{

u16 i=0; //定义 整数i

led=0xfe; //1111 1110前四位高位,后四位低位

delay(50000); //延时450ms,每个系统可能不一样,可以通过计算得出

while(1) //无限循环

{

for(i=0;i<7;i++) //平移一下,延迟一下。

{

led=_crol_(led,1); //左移值,左移数;

delay(50000); //延时450ms

} //最后0111 1111

for(i=0;i<7;i++)

{

led=_cror_(led,1); //右移值,右移数;

delay(50000); //延时450ms

} //最后1111 1110

}

}

4,仿真

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值