用for语句控制蜂鸣器 上面的电路图中p1.7接的是蜂鸣器 #include//包含单片机寄存器的头文件 sbit sound=P1^7; //将sound位定义为P3.7 /**************************************** 函数功能:延时形成1600Hz音频 ****************************************/ void delay1600(void) { unsigned char n; for(n=0;n ; } /**************************************** 函数功能:延时形成800Hz音频 ****************************************/ void delay800(void) { unsigned char n; for(n=0;n ; } /**************************************** 函数功能:主函数 ****************************************/ void main(void) { unsigned int i; while(1) { for(i=0;i { sound=0; //P3.7输出低电平 delay1600(); sound=1; //P3.7输出高电平 delay1600(); } for(i=0;i { sound=0; //P3.7输出低电平 delay800(); sound=1; //P3.7输出高电平 delay800(); } } } 用while语句控制LED 电路中是p0口接的流水灯! #include//包含单片机寄存器的头文件 /**************************************** 函数功能:延时约60ms (3*100*200=60000μs) ****************************************/ void delay60ms(void) { unsigned char m,n; for(m=0;m for(n=0;n ; } /**************************************** 函数功能:主函数 ****************************************/ void main(void) { unsigned char i; while(1) //无限循环 { i=0; //将i初始化为0 while(i { P0=i; //将i送P0口显示 delay60ms(); //延时 i++; //i自增1 } } } 用do-while语句控制P0口8位LED流水点亮 电路中是p0口接的流水灯! #include//包含单片机寄存器的头文件 /**************************************** 函数功能:延时约60ms (3*100*200=60000μs) ****************************************/ void delay60ms(void) { unsigned char m,n; for(m=0;m for(n=0;n ; } /**************************************** 函数功能:主函数 ****************************************/ void main(void) { do { P0=0xfe; //第一个LED亮 delay60ms(); P0=0xfd; //第二个LED亮 delay60ms(); P0=0xfb; //第三个LED亮 delay60ms(); P0=0xf7; //第四个LED亮 delay60ms(); P0=0xef; //第五个LED亮 delay60ms(); P0=0xdf; //第六个LED亮 delay60ms(); delay60ms(); P0=0xbf; //第七个LED亮 delay60ms(); P0=0x7f; //第八个LED亮 delay60ms(); }while(1); //无限循环,使8位LED循环流水点亮 }
|