P2SEL &= ~0x04;//设置P2_4为普通IO口
P2DIR |= 0x10; //设置P2_4为输出口
源代码如下:
/**************************************************
** 本程序只供学习使用,未经作者许可,不得用于其它任何用途
** 作者: 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 RELAY P2_4
#define SWITCH1 P1_2
uchar back_relay;
/****************************
延时函数
*****************************/
void Delayms(uint xms) //i=xms
{
uint i,j;
for(i=xms;i>0;i--)
for(j=600;j>0;j--);
}
/****************************
继电器初始化函数
*****************************/
void InitRelay(void)
{
P2SEL &= ~0x04;//设置P2_4为普通IO口
P2DIR |= 0x10; //设置P2_4为输出口
}
/****************************
按键初始化函数
*****************************/
void InitKey(void)
{
P1SEL &= ~0X04; //设置P1_2为普通IO口
P1DIR &= ~0X04; //按键在P1_2 口,设置为输入模式
P1INP &= ~0x04; //配置P1_2为输入模式
P2INP &= ~0x40; //p配置P1_2为上拉输入
}
void main(void)
{
InitRelay();
InitKey();
while(1)
{
if(back_relay){ //查询状态位
if(!SWITCH1){
Delayms(100);
if(!SWITCH1){
back_relay = 0;
RELAY = ~RELAY;
}
}
}
if(SWITCH1 )back_relay = 1;//查询状态位
}
}
`