#include "reg51.h"
#define FOSC 12000000L
#define FREQ 20000
#define T1XX (65536-FOSC/12 /2/FREQ)+1 // 20000Hz timer calculation method in 12T mode
/* define SFR */
sbit TEST_FREQ = P1^1; // Out
/* Timer1 interrupt routine */
void tm1_isr() interrupt 3 using 1
{
TEST_FREQ = ! TEST_FREQ;
TL1 += T1XX; //reload timer1 low byte
TH1 = T1XX >> 8; //reload timer1 high byte
}
//-----------------------------------------------
/* main program */
void main()
{
TMOD = 0x10; //set timer1 as mode1 (16-bit)
TL1 = T1XX; //initial timer1 low byte
TH1 = T1XX >> 8; //initial timer1 high byte
TEST_FREQ=1;
TR1 = 1; //timer1 start running
ET1 = 1; //enable timer1 interrupt
EA = 1; //open global interrupt switch
while (1); //loop
}
不错 很好 的
追答好不好与我无关,我也是抄来的,嘿嘿
不指定就说明 任何都可以
追答;
ORG 0000H
MOV TMOD, #2
MOV TH0, 231
SETB TR0
LP:
JNB TF0, $
CLR TF0
CPL P1.1
JMP LP
END