若单片机的晶振频率为6MHZ,利用定时/计数器T0编程实现P1.1引脚输出周期为4ms的方波。 回答以下各个问题?

(1)采用工作模式1,确定工作方式控制寄存器TMOD的值;(1分)

(2)计算计数初值; (1分)

(3)利用中断编程实现。(12分)

控制寄存器 TMOD=0x01
周期4ms,半波是2ms 即2000 us 一个计数脉冲是2us,因此需定时1000个脉冲
初值是(65536-1000)
高8 位是(65536-1000)/256
低8 位是(65536-1000)%256。
主程序:
void main()
{
TMOD=0X01;
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
ET0=1;EA=1;
TR0=1;
while(1);
}
中断程序:
void timer0( ) interrupt 1
{
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
P1^1=!P1^1;
}
温馨提示:答案为网友推荐,仅供参考