#include "reg51.h"
#define FOSC 12000000L
#define FREQ1 100
#define FREQ2 10
#define TXXX (65536-FOSC/12 /2/FREQ1) // FREQ Hz timer calculation method in 12T mode
/* define SFR */
sbit F1_OUT = P1^0; // f1 Out
sbit F2_OUT = P1^1; // f2 Out
unsigned char f2_count=0;
/* Timer0 interrupt routine */
void tm0_isr() interrupt 1 using 1
{
F1_OUT = !F1_OUT;
TL0 += TXXX; //reload timer1 low byte
TH0 = TXXX >> 8; //reload timer1 high byte
if(++f2_count==FREQ1/FREQ2) {
F2_OUT = !F2_OUT;
f2_count=0;
}
}
//-----------------------------------------------
/* main program */
void main()
{
TMOD = 0x01; //set timer0 as mode1 (16-bit)
TL0 = TXXX; //initial timer0 low byte
TH0 = TXXX >> 8; //initial timer0 high byte
TR0 = 1; //timer0 start running
ET0 = 1; //enable timer0 interrupt
EA = 1; //open global interrupt switch
while (1); //loop
}
追问这完全不对额。。和题目都好像好不对号儿。。。
追答完全对上的呀,波形仿真都是对的,见前面的图