设T0工作在方式1,定时时间为10ms,在P1.5输出周期为20ms的方波。设时钟晶振为12MHZ,计算初值,并编程实现功能。
t=(216—TO初值)*机器周期 10*10-3=(216—X)*12/12*106 TL0=(65536—10000)%256=0F0H TH0=(65536—10000)/256=0D8H TMOD=01H #include[reg52.h] #define uint unsigned int #define uchar unsigned char sbit led=P1^5; void main() { TMOD|=0X01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; while(1); } void timer0() interrupt1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; led=~led; }
举一反三
- 利用定时/计数器T0的方式1,产生10ms的定时,并使P1口引脚上输出周期为20ms的方波,采用中断方式,设系统的晶振频率为12MHz
- 设T0工作在方式0,定时时间为1ms,在P1.0输出,周期为2ms的方波,时钟晶振为6MHZ,请用查询方式或中断方式编程。
- 1.设晶振频率为12MHz。使用定时器T0定时,回答下列问题。 (1)定时时间为10ms时,通过计算说明计数寄存器初始值是多少? (2)利用定时器T0在P2_1口输出周期为20ms的方波,写出完整程序。
- 用T1方式0实现定时,在P1.1引脚输出周期为10MS的方波,系统晶振为12MHZ
- 时钟频率为12MHz ,选用T0定时功能,使用工作模式1。定时时间t=20ms,则初值为 A: 25536 B: 35536 C: 45536 D: 55536
内容
- 0
定时器T0采用工作方式1,现需要定时20ms,则寄存器初值TH0,TL0应该是多少?(设晶振频率为12MHz)
- 1
在晶振为12 MHz的单片机系统中,( ) 一次可定时10 ms。 A: 方式0 B: 方式1 C: 方式2 D: 方式3
- 2
使用定时器T0以方式2产生50us定时,在P1.0输出周期为100us的连续方波。已知晶振频率为12MHz,则计数器T0的计数初值为()。
- 3
若晶振频率fosc=12MHZ,若用51单片机的定时/计数器T0工作于方式1,计数30次,则计数器初值为(__),若T0工作于方式1,定时20ms,则计数器初值为 (__)。
- 4
中国大学MOOC: 使用定时器/计数器T0工作在定时、以方式2产生100微秒定时,在P1.0口输出周期位200微秒的连续方波。已知晶振频率为12MHz。TH0初值为 。TL0的初值为 。