#include<reg51.h> #define uchar unsigned char #define uint unsigned int void leds_move(); void leds_error(); void leds_snake(); void delay(uint t) { uint i,j; for(i=0;i<t;i++) { for(j=0;j<121;j++) {;} } } #ifndef true #define true 1 #endif #define task_1 1 #define task_2 2 void main() { uchar system_status=true; uchar system_task=task_2; while(1) { if(system_status==true) { if(system_task==task_1) { leds_move(); } else if(system_task==task_2) { leds_snake(); } } else { leds_error(); } } } void leds_move() { static uchar leds=0x55; P0=leds; delay(100); leds=~leds; } void leds_error() { static uchar leds=0x00; P0=leds; delay(100); leds=~leds; } void leds_snake() { static uchar leds=0xf0; if(leds>0x80) { P0=leds; delay(100); leds=(leds<<1)+1; } else { P0=leds; delay(100); leds=leds<<1; } }
为什么变量leds不声明为static变量的时候程序不能按照预定的跑呢~? 请大家帮忙解答一下哈~ 先谢过了~~~~ |