| #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; ? ? ? ?//取反,产生方波
 }
 */
 |