试编写程序,采用单片机定时器T0工作方式1下,从P1.0输出周期为2ms的方波信号,已知单片机的晶振为6MHZ。

如题所述

第1个回答  2012-01-04
ORG 0000H
AJMP START1

ORG 000BH ;T0中断入口
NOP
NOP
JMP MT0

ORG 0100H

START1:

MOV SP,#60H
MOV TL0,#18H
MOV TH0,#0FCH
MOV TMOD,#01H ;置计数器模式
MOV IE,#8BH ;EA,ET0,ET1
SETB TR0 ;启动定时器
NOP
NOP
START2:
AJMP START2

MT0:
PUSH ACC
PUSH PSW
NOP
NOP
MOV 0C1H,#00111101B ;喂狗
MOV A,TL0
ADD A,#18H
MOV TL0,A
MOV TH0,#0FCH
CPL P1.0
POP PSW
POP ACC
RETI
END本回答被提问者采纳
第2个回答  2012-01-03
#include <reg51.h>

void InitTimer0(void)
{
TMOD = 0x01;
TH0 = 0x0FE;
TL0 = 0x0C;
EA = 1;
ET0 = 1;
TR0 = 1;
}

void main(void)
{
InitTimer0();
while(1);
}

void Timer0Interrupt(void) interrupt 1
{
TH0 = 0x0FE;
TL0 = 0x0C;
P1.0=~P1.0;
}追问

能不能用汇编语言来解答呀。顺便问下:楼下的解法正确?