我来解决:
#include
#define uint unsigned int
#define uchar unsigned char
uchar count;
void main()
{
EA=1;
ET0=1;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
while(1);
}
void timer0() interrupt 1 using 1
{
TR0=0;
count++;
if(count==40)
{
count=0;
P1=~P1;
}
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
}
不好意思 ,是C语言,不知道你要的是不是C语言,还是汇编。。。。。。。。。。
ORG 0000H
AJMP MAIN
0RG 0030H
MAIN :MOV A ,#0FFH
MOV P1,A
MOV A ,#0FEH
ACALL TIME
JIXU: RL A
MOV P1 ,A
ACALL TIME
AJMP JIXU
TIME :
MOV R3,256
D2: DJNZ R3,D2
MOV R3, 90
D1: DJNZ R3,D1
RET
END
要用到中断,每隔2MS产生中断再给输出取反。