各位大侠: 我请教大家一个问题,用到icl7135,我用51的t0作16位计数器用,计数值不会大到溢出,写了段程序,用1602显示,主程序如下: void main() { unsigned long i=0,x=0; TMOD=0x05; TH0=0; TL0=0; TR0=1; ET0=1; EA=1; init(); 1602初始化 init(); 1602初始化 while(1) { i=x; x=TH0*256+TL0; if(x==i) {TH0=0; TL0=0;} else { if(x<=12000) print1(0xc0,0x2e); else print1(0xc1,0x2f); } } }
我现在有几个概念还搞不清楚,1、当做16位计数器,如果不溢出,是不是不涉及中断,只是T0管脚上有个负跳变,th0+tl0的值加1,还是有个负跳变,中断一次,th0+tl0的值加1? 2、我想对脉冲计数,如果不是连续的脉冲,计数器就清零,重新开始计数,不知道c51怎么写,请教各位指点迷津? |