1.头文件 button.h
/*
1、建立工程 Button 进行option设置
2、button.h
button.c(main函数)
*/
#ifndef _BUTTON_H_
#define _BUTTON_H_
# include <iocc2530.h>
//宏定义
#define LED1 P1_0
#define LED2 P1_1
#define LED3 P1_2
#define LED4 P0_0
#define KEY1 P0_7 //普通IO口
#define uchar unsigned char
#define uint unsigned int
//函数声明
void Delayms(uint);
void InitLed(void);
void KeyInit(void);
uchar KeyScan();
#endif
#include "button.h"
void Delayms(uint ms)
{
int i;
for (i=0;i<250*ms;i++);
}
void InitLed(void)
{
P1SEL = 0x00;//将端口1设为通用IO端口
P1DIR = 0x07;//将端口1的方向指向0x07 即按键
P0SEL = 0x00;//将端口0设为通用IO端口
P0DIR = 0x01;//output
LED1= 1; //灭
LED2= 1; //灭
LED3= 1; //灭
LED4= 1; //灭
}
void KeyInit()
{
P0SEL &= ~0x80; //设置P07为 普通IO口
P0DIR &= ~0x80; //设置为输入模式
//P0INP &= ~0x80;
}
uchar KeyScan()
{
if(!KEY1)//低电平
{
Delayms(10);
if(!KEY1) //松开检测(未松手)
{
while(!KEY1);
return 1;
}
}
return 0;
}
int main()
{
InitLed();
KeyInit();
while(1)
{
if(KeyScan())
{
LED1=!LED1;
LED2=!LED2;
LED3=!LED3;
LED4=!LED4;
}
}
}
这篇博客详细介绍了如何通过编程控制四盏灯的开关,主要涉及硬件接口的使用和软件逻辑的设计。首先,文章引入了必要的头文件button.h,并在option设置中配置了工程Button。接着,重点讲解了在button.c文件中的main函数实现,该函数包含了对按键输入的处理和灯的状态控制。
2670

被折叠的 条评论
为什么被折叠?



