#include<htc.h> #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;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