首先,非常感谢版主和各位高手在上一次问题上的指点。
现在,又有一个问题:我想实现红灯渐暗的同时蓝灯渐亮,而不是红灯完全熄灭了蓝灯再渐亮。要怎样改动呢?
#include <reg51.h>
void pwmkeyr(void); void pwmkeyg(void); void pwmkeyb(void);
void delay (void); sbit ledr=P2^0; //红灯 sbit ledb=P2^2; //蓝灯
void main(void) { while(1) { pwmkeyr(); pwmkeyb(); } }
void pwmkeyr(void) //红灯渐亮渐灭 { long i ,j ,m; for (j=0;j<100;j++) { for(i=0;i<j;i++) {delay(); ledr=0; } m=100-j; for(i=0;i<m;i++) {delay(); ledr=1; } } for (j=100;j>0;j--) { for(i=0;i<j;i++) {delay() ; ledr=0; } m=100-j; for(i=0;i<m;i++) {delay() ; ledr=1; } } }
void pwmkeyb(void) //蓝灯渐亮渐灭 { long i ,j ,m; for (j=0;j<100;j++) { for(i=0;i<j;i++) {delay(); ledb=0; } m=100-j; for(i=0;i<m;i++) {delay(); ledb=1; } } for (j=100;j>0;j--) { for(i=0;i<j;i++) {delay() ; ledb=0; } m=100-j; for(i=0;i<m;i++) {delay() ; ledb=1; } } }
void delay() //延时函数 { long e; for( e=50;e>0 ;e--) ;}
|