我用51单片机想做一个平时在空闲模式,每隔一秒唤醒一次向上位机传一次数据的程序,可是没办法让它醒了就接着睡,在中断里他一睡就不醒了那倒是我程序错了?求解答:void main(){ uchar buff[4]; dula=0; wela=0; init_com(); PCON=0x01; while(1) { tempchange(); }}void T1_time() interrupt 1{ uchar buff[4]; TH0=(65536-45872)/256;//重装初值 TL0=(65536-45872)%256; numt0++; if(numt0==20) //如果到了20次,说明1秒时间到 { numt0=0; //然后把num清0重新再计20次 get_temp(); sprintf(buff,"%3f",f_temp); comm(buff); SBUF = ' '; //发送数据 while(!TI); //等待发送完成标志为1 TI =0; PCON=0x01; } }
这里没有在每个中断里都进入空闲模式,因为在他一睡就不醒了,在刚醒的时候要是不让他睡,让他在1s后睡,但是他还是不再醒来。。。
此帖出自
小平头技术问答
一周热门 更多>