单片机。定时器⼀计数器实验。

2025-04-07 10:22:36
推荐回答(2个)
回答1:

#include sbit led=P1^0;
int a; //用于计数
void main ()
{
TMOD=0X01; //T0工作方式1
EA=1;
ET0=1;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
led=1;
while (1)
{
if (a>=20) //a=20时刚好1s
{
a=0;
led=~led;
}
}
}

void timer0 () interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
a++;
}

这个程序已经在实验板上实验过,能够实现其功能

回答2:

;每隔一秒,取反P1.0。
;汇编程序,不知道行不行:

ORG 0000H
SJMP START
ORG 000BH
MOV TH0, #6
DJNZ R7, E_T0
MOV R7, #125
CRL P1.0
E_T0:
RETI
START:
MOV TH0, #6
MOV R7, #125
MOV IE, #82H
SETB TR0
SJMP $
END

晶振频率使用 12MHz。