//程序用于控制LED渐亮和渐暗;通过改变占空比实现。 #include<reg52.h> void zkb(unsigned char a) //延时改变占空比 ;char为什么不能改成int???? {unsigned int b; while(a--) {for(b=0;b<1;b++); }} void jianlian() //渐亮函数 {unsigned int j=0,i=250; P0=0XFF; while(i--) { j++; j=~j; P0=0XFF; zkb(j); j=~j; P0=0x00; zkb(j); } } void jianan() //渐暗 {unsigned int j=0,i=250; P1=0x00; while(i--) {j++; j=~j; P1=0X00; zkb(j); j=~j; P1=0xff; zkb(j); }} void main() {while(1) {jianlian(); jianan(); }}
我的LED接在P0和P1口,当把zkb函数的形参改为 unsigned int a 后程序就不能正确运行,而当形参为 unsigned char a 的时候程序就能正常实现LED的渐亮和渐暗!
请问这是在哪里出了问题?!!
不胜感激高手指点!!!!! |