LED闪烁函数脱离寄存器,可灵活搬移

首要:单纯分享希望有助于刚入门的同行使用,如果可以希望模仿或者跟着敲一遍加强理解单纯套用是挺好但是底子好才是有利于自己的。继续看下面就是我的抠脚代码了:

1.对使用到的变量定义初始化:

bit    LED_assignment = 1;//之前的忘记了这里得补充一个就LED_assignment可以一开始初始化为0或者在使用这个函数的时候在赋值0给变量LED_assignment。
bit Pin_Flip;
unsigned char xdata leddat;
unsigned char Flip_dat;

2.LED闪烁函数

bit Number_LED_sounds(unsigned char leds,unsigned char *temp)    //LED闪烁函数        
{
    if(LED_assignment == 1)        
    {
        leddat = 0;
        return 0;
    }
    else
    if(leds)
    {
        Pin_Flip = ~ Pin_Flip;        //加入这个是为了赋值,不然如果只是*temp = ~Pin_Flip;会出现一直为1,因为Pin_Flip初始值为0,Pin_Flip的值不改变那取反一直为1
        *temp = Pin_Flip;
        leddat++;
        if(leddat == leds)        
        {
            LED_assignment = 1;
            *temp = 0;
        }
        return 1;
    }
}

3.对LED闪烁函数的使用,我是放在定时器里面搞一个200ms的定时,因为LED闪烁函数是bit开头所以是有返回值的,这时需要在定时写:

if(Number_LED_sounds(4,&Flip_dat))              //判断是否成立成立就赋值给PC1
                PC1= Flip_dat;                                // 4  这里灯闪烁两次

4.其实也可以使用成控制LED长亮长灭,只不过使用这个就感觉有点画蛇添足了,写法:

if(Number_LED_sounds(4,&Flip_dat))              //判断是否成立成立就赋值给PC1
                PC1= 1;                                             //亮

else

                PC1 = 0;                                        //LED灭

到这里就结束了,之所以发这个是因为一个是可以控制灯的闪烁数次,第二好搬运可以在多个工程去使用,直接赋值粘贴到使用时把LED对应的引脚寄存器填上去就行,不用每次写新的工程就重新写一遍逻辑建立属于自己功能函数库才好,而且LED闪烁函数的写法是可以用在很多地方的,这个写法我也是借鉴我身边的一位大佬写其他功能的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值