源代码如下:
/**************************************************
** 本程序只供学习使用,未经作者许可,不得用于其它任何用途
** 作者: shizhe
** 创始时间:2014-05-08
** 修改人:shizhe
** 修改时间:2014-05-08
** 修改人:shizhe
** 修改时间:2014-05-08
** 描述:
** 触摸按键功能操作…
** 版权所有,盗版必究。
** Copyright(C) 联控智能 2014-2020
** All rights reserved
*************************************************/
#include
#define uint unsigned int
#define uchar unsigned char
#define LED1 P0_5
#define LED2 P1_0
#define LED3 P1_1
#define TOUCH P2_3
uchar ch;
uchar sw_back;
/****************************
延时函数
*****************************/
void Delayms(uint xms) //i=xms
{
uint i,j;
for(i=xms;i>0;i--)
for(j=600;j>0;j--);
}
/****************************
LED初始化函数
*****************************/
void InitLed(void)
{
P1SEL &= ~0x03; //P1_0,P1_1定为普通IO口
P1DIR |= 0x03; //P1_0,P1_1定义为输出
P0SEL &= ~0x20; //P0_5定为普通IO口
P0DIR |= 0x20; //P0_5定义为输出
LED1 = 0; //LED1灯熄灭
LED2 = 0; //LED2灯熄灭
LED3 = 0; //LED3灯熄灭
}
/****************************
按键初始化函数
*****************************/
void InitKey()
{
P2SEL &= ~0X02; //设置P2_3为普通IO口
P2DIR &= ~0X08; //设置P2_3为输入模式
P2INP &= ~0X08; //配置P2_3为上拉输入
}
void main()
{
InitLed();
InitKey();
while(1)
{
if(sw_back != 0x00){
if(TOUCH == 0x00){
Delayms(100);
if(TOUCH == 0x00){
sw_back = 0x00;
ch++;
if(ch > 3) ch = 1;
}
// while(!SWITCH1);
}
}
if(TOUCH) sw_back = 0x01;
switch(ch)
{
case 0x01:
LED1 = 1; //LED1灯熄灭
LED2 = 0; //LED2灯熄灭
LED3 = 0; //LED3灯熄灭
break;
case 0x02:
LED1 = 0; //LED1灯熄灭
LED2 = 1; //LED2灯熄灭
LED3 = 0; //LED3灯熄灭
break;
case 0x03:
LED1 = 0; //LED1灯熄灭
LED2 = 0; //LED2灯熄灭
LED3 = 1; //LED3灯熄灭
break;
default:
break;
}
}
}