******************************************************************/
#include "iostm8s208mb.h"//主控芯片的头文件
/************************常用数据类型定义*************************/
#define u8 uint8_t
#define u16 uint16_t
#define u32 uint32_t
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned long uint32_t;
/*************************端口/引脚定义区域***********************/
#define KEY PB_IDR_IDR0//连接至KEY引脚
#define LED PI_ODR_ODR0//连接至LED引脚
/**************************函数声明区域***************************/
void delay(u16 Count);//延时函数声明
/**************************主函数区域*****************************/
void main(void)
{
PB_DDR_DDR0=0; //配置PB0端口为输入模式
PB_CR1_C10=1; //配置PB0端口为弱上拉输入模式
PB_CR2_C20=1; //使能PB0端口外部中断
PI_DDR_DDR0=1; //配置PI0端口为输出模式
PI_CR1_C10=1; //配置PI0端口为推挽输出模式
PI_CR2_C20=0; //配置PI0端口低斜率输出
LED=1; //上电后让PI0引脚输出高电平
while(1) //死循环
{
if(KEY==0)//KEY按键按下
{
delay(5);//延时法去除按键抖动
if(KEY==0)//KEY确实按下了
{
LED=!LED;//LED状态取反操作
}
while(!KEY);//KEY按键松手检测
}
}
}
/****************************************************************/
//延时函数delay(),有形参Count用于控制延时函数执行次数,无返回值
/****************************************************************/
void delay(u16 Count)
{
u8 i,j;
while (Count--)//Count形参控制延时次数
{
for(i=0;i<50;i++)
for(j=0;j<20;j++);
}
}