8051单片机时钟频率为6MHZ,由T1定时,试编程从P1.0输出周期为40ms的方波。

如题所述

第1个回答  2019-10-07
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方波
}
}
第2个回答  2019-05-16
;晶振频率为6MHz,使用定时器1以方式0产生周期为40ms的等宽正方波连续脉冲,并由P1.0输出。
ORG
0000H
SETB
TR1
LOOP:
CPL
P1.0
MOV
R2,
#5
REPEAT:
MOV
TL1,
#(8192
-
2000)
MOD
32
MOV
TH1,
#(8192
-
2000)
/
32
JNB
TF1,
$
CLR
TF1
DJNZ
R2,
REPEAT
SJMP
LOOP
END