已知8051单片机

已知8051单片机的时钟频率=12MHZ,用T0定时方式1,使用插查询方式,编程有p1.1引脚输出周期为4ms的方波,要求给出定时初值的计算步骤

你好,根据题中信息可得,12MHz晶振的机器周期就是12/12M=1us,要能在P1.1输出4ms的方波就很简单了,你要求求初值,那么:
----------使用定时器0的工作方式1,TMOD=0x01; ,然后工作方式1是16位的定时器,最大定时值为65.536ms,要定时4ms就很容易,TH0=(65536-2000)/256;
TL0=(65536-2000)%256; ,2000这个值是每一个机器周期就会自增1,自增2000次就是2000us=2ms,然后再中断服务函数里边写P1^1=~P1^1就可以了,这个意思是每触发一次中断,P1.1口的输出值就取反。这样就做到了输出一个4ms的方波。

不懂的地方可以随时回复我。
希望我的回答能帮助到你。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-10
要产生周期为4毫秒的方波,假设占空比为50%,那么定时器溢出值时间应该为2毫秒,当晶振为12M时,定时器初值为65536-2000.程序如下:
#include<reg51.h>
sbit p11=P1^1;
main()
{
TMOD=0x01;
TH0=(65536-2000)/256;
TL0=(65536-2000)%256;
TR0=1;
while(1)
{
while(TF0==0);
TF0=0;
TH0=(65536-2000)/256;
TL0=(65536-2000)%256;
p11=~p11;
}
}