//实例31:用数组作函数参数控制流水花样
#include<reg51.h>
/*************************************************
函数功能:延时约150ms
*************************************************/
void delay(void)
{
unsigned char m,n;
for(m=0;m<200;m++)
for(n=0;n<250;n++)
;
}
/*************************************************
函数功能:流水点亮P0 口8 位LED
*************************************************/
void led_flow(unsigned char a[8])//<======================括号里面的8有什么用,什么我把里面的8改成空格,流水灯的效果没有区别??
{
unsigned char i;
for(i=0;i<8;i++)
{
P1=a[i];
delay();
}
}
/*************************************************
函数功能:主函数
*************************************************/
void main(void)
{
while(1)
{
unsigned char code
Tab[ ]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};
//流水灯控制码
led_flow(Tab);
}
}
问题在上面的注释里,个人是个C新手,希望热心人帮一把,先谢谢啦.
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
unsigned char a[Tab]告诉KEIL这是实参数了,这个模型的大小已确定,可以根据大小分配了。
void led_flow(unsigned char a[8]) // 8的作用其实有点象注释;
在你明白只要做8次动作的前提下,完全可以定义为void led_flow(unsigned char *a)
我做了多次实验,也觉得它像一个注释,当时看见它是的括号里,所以以为它会对整个程序起重要作用,试着改了很多不同的数,结果流水灯效果没变,才发贴问个明白.
现在明白了,谢谢你们.
一周热门 更多>