#include<reg51.h> #include<math.h> typedef unsigned int u16; typedef unsigned char u8;
u16 i;
sbit Waveout1=P2^0; /*P2.0口输出方波*/ sbit Waveout2=P0^0; ?? ??? ??? ? ? ? ? ? ? ? ? ? ? ? ? u8 TIMER1_L,TIMER1_H;
void delay(u16 i) { ? ? while(i--); }
void main() { ? // ? ?TMOD=0X01;//选择定时器T1,工作方式1,仅用TR1打开启动 // ? ?ET1=1; ? ? ? ?//开定时器T1中断 // ? ?TR1=1; ? ? ? ?//启动定时器T1 // ? ?EA=1; ? ? ? ?//开总中断 //?? ? ?TIMER1_L=0xd8; ? ? ? ? ? ? ? ? ? ? ? ?//定时变量,定时器1初始时间高8位赋值,具体定时时间自己查资料 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?10000 ? ? ? ?? //?? ? ?TIMER1_H=0xff; ? ? ? ?? ?while(1) ?? ?{ ?? ?delay(50); ? ? Waveout1=!Waveout1;?? ? ?? ?delay(50); ?? ?Waveout2=!Waveout2;?? ? ?? ?} ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //方波初始频率 = 500Hz }
//定时器T1的中断服务函数 /*void T1_time() interrupt 3//定时器T1的中断序号为3 { ? ? ? ? TH1=TIMER1_H; ? ? ? ?//2^16=65536 ?2^8=256 ?TH0=0Xdc ? ? TL1=TIMER1_L; ? ? ? ? ?//取余 ? ? ? ? ? ? ? ? ? ? ? ? ?TL0=0x00 ? ? Waveout1=!Waveout1; ? ? ? ?//取反,产生方波 } */
|