已知89C51单片机的fos=12MHz用T1的工作模式1定时试采用中断方式编程实现由P1.3引脚上产生一个25Hz的方波.

已知89C51单片机的fos=12MHz,用T1的工作模式1定时. 试采用中断方式编程实现由P1.3引脚上产生一个25Hz的方波.TMOD及IE寄存器结构如下:

第1个回答  2018-09-03
#include<reg51.h>
#define uchar unsigned char
uchar cnt;
sbit p13=P1^3;
void t0isr() interrupt 1
{
TH0=(65536-20000)/256;
TL0=(65536-20000)%256;
p13=~p13;
}
main()
{
TMOD=0x01;
TH0=(65536-20000)/256;
TL0=(65536-20000)%256;
TR0=1;
ET0=1;
EA=1;
while(1);
}

第2个回答  2018-08-31
主程序中:
TMOD=0X10;
ET1=1;

EA=1;
TH1=(65536-20000)/256;//定时20ms
TlL1=(65536-20000)%256;
TR0=1;
while(1);
中断程序:
void timer1(void) interrupt 3
{
TH1=(65536-20000)/256;
TlL1=(65536-20000)%256;
P1^3=! P1^3;
}追问

可以用单片机的指令(就是类似mov TMOD,#10H)帮忙回答一下吗

本回答被提问者和网友采纳