若系统晶振频率为6MH,分析下列源程序,回答问题。 #include[reg51.h] sbit LED=P0^0; void main() { TMOD=0x00; TL1=0x03; TH1=0xFC; TR1=1; while(1) { while( !TF1); TF1=0; TL1=0x03; TH1=0xFC; LED=∽LED; } } (1) 程序中采用的哪个内部定时器/计数器?被设置成定时还是计数工作方式? (2) 定时或计数到采用的查询还是中断的工作方式? (3) 程序完成的功能。
(1)T1;定时 (2) 查询方式 (3) P0.0引脚上的灯状态250us取反一次
举一反三
- 若系统晶振频率为6MH,分析下列源程序,回答问题。 #include sbit LED=P1^0; void main() { TMOD=0x01; TL0=0x83; TH0=0xFF; IE=0x82 TR0=1; while(1); } void TIME0() interrupt 1 { TL0=0x83; TH0=0xFF; LED=∽LED; } (1) 程序中采用的T0还是T1定时器?选择的几位计数器? (2) 定时器定时的时间是多少? (3) 程序完成的功能
- T0采用方式(),()模式,T1采用方式(),()模式。 A: 1、定时、0、计数 B: 0、定时、1、计数 C: 1、计数、0、定时 D: 0、计数、1、定时
- 单片机的P2^0、2^1口分别接发光二极管LED1、LED2,读下列程序:#include<;reg51.h>;sbitLED1=P2^0;sbitLED2=P2^1;unsignedcharCountor1=0,Countor2=0;voidmain(void){TMOD|=0x10;TL1 = 0x00;//设置定时初值 定时50msTH1 = 0x4C;//设置定时初值TR1=1;ET1=1;EA=1;while(1);}voidTime1(void)interrupt3{TL1 = 0x00;//设置定时初值 定时50msTH1 = 0x4C;//设置定时初值Countor1++;Countor2++;if(Countor1==2){LED1=~LED1;Countor1=0;}if(Countor2==8){LED2=~LED2;Countor2=0;}}程序运行结果:
- 简易LED时钟程序例程中,定时器0用于走时,定时器1用于LED动态显示,那么定时器0和定时器1哪个定时更短? A: 定时器1 B: 定时器0
- 若要设置定时器0为方式0定时,定时器1为方式0计数,TMOD=( )。 A: 0x00 B: 0x40 C: 0x04 D: 0x80
内容
- 0
当计数器T1计数溢出时,是正确的。 A: TF1从0变成1 B: TF1从1变成0 C: TR1从0变成1 D: TR1从1变成0
- 1
设置T0为工作方式1,定时功能,GATE=0;T1为工作方式2,计数功能,GATE=0。工作方式控制寄存器TMOD应赋值()。
- 2
单片机的P34、P35、P36、P37口分别接发光二极管LED1、LED2、LED3、LED4,输出低电平点亮LED,读下列程序:#include<;reg51.h>;unsigned char count=0,num=0;void main(){TMOD|=0x01; // @11.0592MHzTL0=0xCD; //设置定时初值 2msTH0=0xF8; //设置定时初值TR0=1;ET0=1;EA=1;while(1);}void timer0_ISR(void) interrupt 1{TL0=0xCD; //设置定时初值TH0=0xF8; //设置定时初值if(++count >;= 250){count=0;P3=~(num <;<; 4);num++;if( num >;= 16 )num=0;}} A: 由四个LED灯组成的0-15的自动加法计数器; B: 定时500ms后加1; C: 定时1s后加1; D: 计数器加到15后清零,重新计数。
- 3
定时器/计数器1工作在定时方式2,定时/计数器0工作在定时方式1时,工作方式寄存器TMOD的值应设置为______ H。
- 4
如果采用晶振的频率为3MHz,定时器/计数器Tx(x=0,1)工作在方式0、1、2下,其方式0的最大定时时间为 ,方式1的最大定时时间为 ,方式2的最大定时时间为