#include<reg52.h> #define uchar unsigned char #define uint unsigned int sbit beef=P1^0; void init(); void delay(uchar t); void delayMS(uchar t); uchar a; void main() { uchar i; init(); while(1) { for(i=0;i<200;i++) { delayMS(10);//延时10毫秒 a=i; // 给定时器低八位赋值,i逐渐增大,a逐渐增大,定时器所装初值增大,计数溢出空间减小,从而时间变短,频率增大。 } for(i=200;i>0;i--) { delayMS(10);//延时10毫秒 a=i; // 给定时器低八位赋值,i逐渐减小,a逐渐减小,定时器所装初值减小,计数溢出空间增大,从而时间变长,频率减小。 } } } void init() //初始化函数 { a=0; TMOD=0x01; EA=1; ET0=1; TR0=1; } void delay(uchar t)//延时函数 { while(--t); } void delayMS(uchar t)//延时函数,以毫秒计 { while(t--) { delay(245); delay(245); } } void timer0() interrupt 1//定时器0中断函数 { TH0=0xfe; TL0=a;//a设为全局变量 beef=!beef;//给喇叭一个方波 }