wulin 发表于 2019-2-17 20:36 看了你的例程,我在我的程序LED()驱动函数里面加了一个参数y,在main函数的for循环里面调用了这个带参数的驱动函数LED(y),就美妙的跑起来了,跪谢大佬用心给我仿真,祝新年快乐!万事大吉! ![]() |
顶顶顶!还有没有其它好方法实现啊,这种引脚分散的怎么用数组来操作哦? |
你的大循环没写 |
你这样写LED驱动函数不行,改成这样就可以了。![]() #include<reg51.h> #define uint unsigned int #define uchar unsigned char sbit LED1 = P3^5; sbit LED2 = P1^7; sbit LED3 = P1^6; sbit LED4 = P1^5; sbit LED5 = P1^4; sbit LED6 = P1^3; sbit LED7 = P3^7; sbit LED8 = P0^0; sbit LED9 = P1^2; sbit LED10 = P1^0; sbit LED11 = P3^2; sbit LED12 = P1^1; //全局变量// uint y; //定义LED数组// uint leddata[]={0xfffe,0xfffd,0xfffb,0xfff7,0xffef,0xffdf,0xffbf,0xff7f,0xfeff,0xfdff,0xfbff,0xf7ff}; //延时函数// delay(uint t) { uint i,j; for(i=t;i>0;i--) for(j=112;j>0;j--); } //LED驱动函数// void LED(uint i)//写入12位数据 { LED1=i&0x01;i>>=1; LED2=i&0x01;i>>=1; LED3=i&0x01;i>>=1; LED4=i&0x01;i>>=1; LED5=i&0x01;i>>=1; LED6=i&0x01;i>>=1; LED7=i&0x01;i>>=1; LED8=i&0x01;i>>=1; LED9=i&0x01;i>>=1; LED10=i&0x01;i>>=1; LED11=i&0x01;i>>=1; LED12=i&0x01; } void main() { uchar j=0; while(1) { y=leddata[j]; LED(y); j++; j%=12; delay(500); } } |