手册


代码

#define _MAIN_C
#include "config.h"
#include "STC8G_H_GPIO.h"
#include "main.h"
#define D1 P03
#define D2 P02
#define D3 P01
#define D4 P00
#define KEY1 P36
#define KEY2 P37
#define K P44
/**
* GPIO口初始化
*/
void GPIO_config(void)
{
P0_MODE_IO_PU(GPIO_Pin_0); // P0.0为准双向口
P3_MODE_IO_PU(GPIO_Pin_2); // P3.2为准双向口
P_SW2 &= 0x80; // 将EAXFR位置1,以访问在XDATA区域的扩展SFR
P3_PULL_UP_ENABLE(GPIO_Pin_2); // 使能P3.2端口内部的4.1K上拉电阻
P_SW2 &= 0x7F; // 静止访问XFR
}
/**
* 外部中断0初始化
*/
void INT0_Init()
{
IE0 = 0; // 将INT0中断请求标志位清零
EX0 = 1;
IT0 = 1; // 使能INT0下降沿中断
// IT0 = 0; // 使能INT0上升沿河下降沿中断
}
void main()
{
GPIO_config();
INT0_Init();
EA = 1;
while (1)
{
;
}
}
void INT0_Isr() interrupt 0
{
D4 = ~D4;
}
- 将P3.2设置为准双向口,使能P3.2口的4.1K上拉电阻。
- 使用杜邦线,将J9的S4接在J23的P3.2上。
- S4,未按下时,由于上拉电阻,P3.2口高电平;按下S4,P3.2口下降沿,进入中断服务程序;松开S4,P3.2口高电平。