📄 int0.c
字号:
#include <c8051f020.h> /*SFR定义*/
sbit led=P3^7;
void PORT_Init()
{ XBR0 = 0x04; //urat0 配置到p0.0 p0.1
XBR1=0x04; //int0 配置到p0.2
P3MDOUT=0Xff;
P0MDOUT=0Xff;
XBR2=0X40;
}
void SYSCLK_Init()
{
unsigned int i;
OSCXCN=0X67; //0X67=0110,0111
for(i=0;i<256;i++); //等待>1ms
while(!(OSCXCN&0X80)); //等待XTLVLD变为1
OSCICN=0X88; //时钟失效监测器,选择外部时钟源作为系统时钟
}
void UART0_Init()
{
SCON0=0x50; //串口方式1
TMOD=0X20; //选用定时器1作为波特率发生器
TH1=0xF4; //波特率为4800
TL1=0xF4;
TF1=0;
TR1=1; //定时器启动
PCON=0X00; //波特率不乘2
TI0=1;
}
void main (void) {
WDTCN = 0xde; /*关看门狗*/
WDTCN = 0xad;
SYSCLK_Init();
PORT_Init();
UART0_Init();
EX0=1; // 外部中断允许
IT0=1; // 下降沿触发
PX0=1; // 优先级最高
EA=1; // 全局中断允许
while (1) { }
}
void fint0 (void) interrupt 0
{
led=!led;// led状态取反
SBUF0=0Xff;//向上位机发送ff
while(TI0==0);
TI0=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -