#pragma //#include<at89x51.h> #include<reg51.h> #include<stdio.h> sbit v_input=P0^0;
unsigned char time,vol,n; unsigned int total; void int_t0(void) interrupt 1 { TL0=24;TH0=0xfb; if(v_input) { v_input=0; v_input=1; printf("OK"); } }
void main(void) { SCON=0X50; TMOD|=0X20; TH1=0XF3; TR1=1; TI=1; TR0=1; ET0=1; EA=1; while(1) { } }
仿真表明定时器0的中断服务程序中, if(v_input) { v_input=0; v_input=1; printf("OK"); }
if语句后面的复合语句只能在第一次进入中断时能执行 以后再进入中断,就不能执行了 查看P0口,上下两行不一致
谁分析下!
|