PIC12F508单片机用按键控制LED灯C语言程序
#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
PIC12F508单片机按键控制LED 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)