微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > PIC12F508单片机用按键控制LED灯C语言程序

PIC12F508单片机用按键控制LED灯C语言程序

时间:11-29 来源:互联网 点击:
#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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top