当前位置:首页 > 单片机 > 单片机
[导读]本文介绍了PIC12F508单片机用按键控制LED灯C语言程序。

本文介绍了PIC12F508单片机用按键控制LED灯C语言程序。

 #include

#include "main.h"

__CONFIG(MCLRDIS&WDTDIS&UNPROTECT&INTRC); //设置配置位(MCLR脚复位禁止,看门狗关,无代码保护,内部RC振荡)

uint count=0;

uchar Key_Flag=0;

void Delay_US(uchar delay)

{

while(delay--);

}

void Delay_Ms(uchar delay)

{

uchar i;

while(delay--)

{

for(i=0;i<165;i++);

}

}

void Delay_Sec(uchar delay)

{

uchar i;

for(i=0;i

{

Delay_Ms(251);

Delay_Ms(251);

Delay_Ms(251);

Delay_Ms(252);

}

}

void GPIO_Port_Init(void) /*********继电器/传感器端口初始化函数**********/

{

TRIS = 0x1c; //继电器和LED_RED设为输出 压力流量设为输入

OPTION = 0x00; //OPTION复位值为:0xFF

}

void Key_Scan(void) /*********按键扫描函数**********/

{

Key_Flag=0; //扫描键盘之前先将按键标志清零

if(Key==0)

{

Delay_Ms(10); //延时去抖

if(Key==0)

{

while(!Key); //等待K1键释放

Key_Flag=1;

}

}

}

void main()

{

Delay_Ms(200);

GPIO_Port_Init();

Delay_Sec(2);

Relay_Out=1;

while(1)

{

Key_Scan();

Red_Led=1;

if(Key_Flag==1)

{

while(1)

{

Red_Led=0;

Delay_Ms(200);

Red_Led=1;

Delay_Ms(200);

}

}

}

}

#ifndef __MAIN_H__

#define __MAIN_H__

#define uchar unsigned char

#define uint unsigned int

#define Relay_Out GP0

#define Red_Led GP1

#define Fluid_In GP2

#define Press_In GP3

#define Key GP4

void Delay_US(uchar delay);

void Delay_Ms(uchar delay);

void Delay_Sec(uint delay);

void GPIO_Port_Init(void);

void Key_Scan(void);

#endif

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭