已知8051单片机的时钟频率为12MHz,用T1定时。试编程由P1.0和P1.1引脚分别输出周期为2ms和500us的方波。

如题所述

第1个回答  2019-10-27
org
00h
sjmp
start
org
01bh
mov
th1,#1eh
mov
tl1,#0ch
cpl
p1.1
inc
r2
mov
a,r2
anl
a,#11b
jnz
exit
cpl
p1.0
exit:reti
start:
setb
ea
setb
et1
setb
tr1
sjmp
$
第2个回答  2008-11-24
unsigned char n;
sbit Gate1=P1^0;
sbit Gate2=P1^1;
main()
{
n=0;
TH1=0xff;
TL1=0x05; //定时器250us产生一次中断
MOD = 0x10; //定时器1工作于模式1,(用工作于模式2也可以,而且更 简便)
TR1=1; //使能定时器1
ET0=1; //开中断
EA=1; //开全局中断
while(1)
{;}
}

void Timer(void) interrupt 3
{
TH1=0xff;
TL1=0x05; //定时器250us产生一次中断
Gate2=!Gate2; //产生500us方波
n++;
if(n==4)
{
n=0;
Gate1=!Gate1; //产生2ms方波
}
}本回答被提问者和网友采纳