📄 beep.c
字号:
///////////////////////////////////////////
///////用定时器实现闪灯///////////////////
//////////////////////////////////////////
#include <c8051f310.h>
#define SYSCLK 24500000
#define std 256-8*(SYSCLK/120000)
sbit out=P0^0;
////////////////////////////
///////设定内部时钟////////
//////////////////////////
void internal_Crystal(void)
{OSCICN=0x83; //内部振荡器启用,不分频最高频率
CLKSEL=0x00; //使用内部振荡器
}
/////////////////////
///////初始化定时器///
//////////////////////
void timer0_init(void)
{
CKCON=0x00; //使用系统时钟不分频
//TMOD&=~0x0f;
TMOD=0x02; //16位定时方式
TL0= std;
TH0=std; //定时250us
ET0=1;
TR0=0;
}
////////////////////////////////
///////定时器中断函数///////////
/////////////////////////////////
void timer0_isr(void) interrupt 1
{//static unsigned int count;
unsigned char count1,count2;
unsigned int count;
bit flag;
TF0=0;
//TL0+=std;
//TH0=std>>8;
count++;
if(count==4000)
{count=0;
if(flag==0)
flag=~flag;
}
if(flag==0)
{count1++;
if(count1==3)
{count1=0;
out=~out;
}
}
else
{count2++;
if(count2==4)
{count2=0;
out=~out;
}
}
}
void main(void)
{PCA0MD&=~0x40; //关闭看门狗
internal_Crystal();
//P2MDOUT=0xff;
XBR1=0x40; //启用交叉
timer0_init();
TR0=1;
EA=1;
while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -