首要:单纯分享希望有助于刚入门的同行使用,如果可以希望模仿或者跟着敲一遍加强理解单纯套用是挺好但是底子好才是有利于自己的。继续看下面就是我的抠脚代码了:
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闪烁函数的写法是可以用在很多地方的,这个写法我也是借鉴我身边的一位大佬写其他功能的。