亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? keyscan119.c

?? pic6527 控制鎖程序包括keyscan 電機控制 eeprom等
?? C
?? 第 1 頁 / 共 2 頁
字號:


//**************************************************************/
    /*鍵盤源程序,源文件名KEYSCAN.c。使用MPLAB C18 編譯器。*/
    //使用PIC18F6527高性能單片機
//**************************************************************/
//#include <pic18fxx20.h>      /* head file*/
#include <p18f6527.h>      //PIC18F452 head file

/*********************DEFINE****************************/
//RA0低壓檢測報警,RA2 光耦OPEN,RA3 光耦CLOSE,RA4   光耦LOCK
//RA5   SW17   R,  RA1不知做什么
#define low_voltage      PORTAbits.RA0
#define pos_open         PORTAbits.RA2
#define pos_close         PORTAbits.RA3
#define pos_lock         PORTAbits.RA4
#define key_R            PORTAbits.RA5  

//RB0   SW3    OPEN/CLO,   RB1   SW2    D ,      RB3   SW4    N    
//RB4   指紋開關,         RB2   鍵盤開關 
//RB5   外部強行闖入 ,      RB6   仿真,RB7   仿真
#define key_open_close      PORTBbits.RB0
#define key_D            PORTBbits.RB1
#define key_N            PORTBbits.RB3
#define outkey_finger      PORTBbits.RB4
#define outkey_keyboard      PORTBbits.RB2
#define force_in         PORTBbits.RB5
//OUT      RC0   讓dsp重置 刪除已有指紋                    /reset 
//OUT      RC1   spi開始(猜測)                             spiss   
//OUT      RC2   外蓋打開 從sleep恢復                      /pwr_on
//IN/OUT   RC3   spi clock                                 sck
//IN      RC4   master in slave out                       miso
#define dsp_reset    	     	PORTCbits.RC0
#define dsp_spiss    	     	PORTCbits.RC1
#define dsp_pwr_on         		PORTCbits.RC2
#define dsp_sck            		PORTCbits.RC3
#define dsp_miso      	   		PORTCbits.RC4
#define dsp_mosi      	   		PORTCbits.RC5
//IN   RD0   成功標志                 錄入或登入成功標志     
//OUT   RD7   MOT-
#define dsp_succes         		PORTDbits.RD0
#define mot_down      	   		PORTDbits.RD7


#define confim_key      	   	9
//RE0   VCC_IO   接通  與VCC_6V              高有效
//RE7   VCC_IO2  接通  與VCC_6V              高有效
//RE2   KID電源  接通  與VCC_6V      
//RE1   MOT+
//RE3   BUZZ聲音控制 沒有用到
//RE4   鍵盤面板燈
//RE5   鍵盤藍色燈
//RE6   下拉了  沒有用

#define    vcc_io            	PORTEbits.RE0
#define    vcc_io2           	PORTEbits.RE7
#define    vcc_kid           	PORTEbits.RE2
#define    mot_up             	PORTEbits.RE1
//#define    buzz2              PORTEbits.RE3
#define    keyboard_red      	PORTEbits.RE5
#define    keyboard_blue      	PORTEbits.RE4

//RG0   buzz聲音控制,RG1 指紋RED, RG2 指紋BLUE
#define    buzz            		PORTGbits.RG0
#define    finger_red       	PORTGbits.RG1
#define    finger_blue     		PORTGbits.RG2
//*********************DEFINE*********************//

void initialize_io(void);                  			//初始化i/o口
void initialize(void); 								//初始化其他寄存器
void initialize_eeprom(void);						//初始化eeprom
void delay(int delaytime);               			//延時
char key_scan(void);                  				//鍵盤掃描
char keyserve(void);                  				//鍵盤辨別
char epprom_read(int epprom_r_addr);      			//讀epprom
void epprom_write(int epprom_w_addr,int epprom_w_data);      //寫epprom
void sound_buzzer(int sound);            			//發聲
void key_stop(void);								//判斷鍵盤是否松開
void mot_move_open(void);							//驅動電機開門
void mot_move_close(void);							//驅動電機關門
char password_confirm(void);						//密碼驗證
char password_input(void);							//密碼輸入
void sleep_prepare(void);							//sleep準備,低功耗設置
void finger_confirm(void);							//指紋確認
void finger_input(void);							//指紋輸入
void finger_del(void);								//指紋刪除
void force_in_alarm(void);

void interrupt_handler_high(void);					//高級中斷
void interrupt_handler_low(void);


//全局變量設置

char current_key;						//當前得到按下去的key
int current_epprom;						//當前從epprom中得到的參數
int current_password[9];				//當前password
int sleep_cycle=0;						//設置睡眠時間
int password_confirm_times=0;			//設置錯誤次數
char sound_enable=1;					//

///* Set configuration bits for use with ICD2 / PICDEM2 PLUS Demo Board:*/
//#pragma romdata CONFIG
//_CONFIG_DECL(_CONFIG1H_DEFAULT,// & HS,
//_CONFIG2L_DEFAULT,
//_CONFIG2H_DEFAULT ,//& _WDT_OFF_2H,
//_CONFIG3H_DEFAULT,
//_CONFIG4L_DEFAULT ,//& _LVP_OFF_4L,
//_CONFIG5L_DEFAULT,
//_CONFIG5H_DEFAULT,
//_CONFIG6L_DEFAULT,
//_CONFIG6H_DEFAULT,
//_CONFIG7L_DEFAULT,
//_CONFIG7H_DEFAULT);
//#pragma romdata



//high_vector_section  AT  0x8,
#pragma code high_vector_section=0x8
void high_vector (void)
{
_asm
GOTO interrupt_handler_high
_endasm
}
#pragma code

//low_vector_section AT 0x18
#pragma code low_vector_section=0x18
void
low_vector (void)
{
_asm
GOTO interrupt_handler_low
_endasm
}
#pragma code


void main(void)
{

	initialize ();
	initialize_io ();
	initialize_eeprom();

	INTCONbits.GIE=1;				//高優先級中斷允許
	INTCONbits.PEIE=1;				//低優先級中斷允許


while(1)

;
}


char  key_scan(void)  //掃描鍵盤輸入的一個字符,返回值
{
/*  RF4   COL0  input
   RF5   COL1
   RF6   COL2
   RF7   COL3
   RF3   ROW0  output
   RF1   ROW1
   RF2   ROW2
*/
int i,j;
   PORTFbits.RF1 = 1;
   PORTFbits.RF2 = 1;
   PORTFbits.RF3 = 1;

//   for(i=0;i<10000000;i++)
	while(outkey_keyboard)
   {
     	 if(PORTFbits.RF4||PORTFbits.RF5||
      	   PORTFbits.RF6||PORTFbits.RF7)
		{		  
			delay(10000);
	         if(PORTFbits.RF4||PORTFbits.RF5||
	            PORTFbits.RF6||PORTFbits.RF7)
	        {
				current_key=keyserve();
			   	PORTFbits.RF1 = 0;
			   	PORTFbits.RF2 = 0;
			   	PORTFbits.RF3 = 0;
	  		 return(1);
			}
			else
			{
			delay(100);
		   	PORTFbits.RF1 = 0;
		   	PORTFbits.RF2 = 0;
		   	PORTFbits.RF3 = 0;
			}

		}
		else
		delay(100);

   }
   return(0);
}


char keyserve(void)
{

   	char keyserve_key;
   	PORTFbits.RF1 = 0;
   	PORTFbits.RF2 = 0;         
   	PORTFbits.RF3 = 1;

   	if(PORTFbits.RF4 == 1)
	{
	   	keyserve_key=1;
		key_stop();
	}
   	else if(PORTFbits.RF5 == 1)
   	{
	   	keyserve_key=4;
		key_stop();
	}
   	else if(PORTFbits.RF6 == 1)
	{
	   	keyserve_key=7;
		key_stop();
	}
   	else if(PORTFbits.RF7 == 1)
	{
	   	keyserve_key=10;
		key_stop();
	}                     //error;


   
   	PORTFbits.RF1 = 1;         
   	PORTFbits.RF2 = 0;
	PORTFbits.RF3 = 0;
   	if(PORTFbits.RF4 == 1)
	{
   	keyserve_key=2;
	key_stop();
	}
   	else if(PORTFbits.RF5 == 1)
	{
   	keyserve_key=5;
	key_stop();
	}
   	else if(PORTFbits.RF6 == 1)
	{
   	keyserve_key=8;
	key_stop();
	}
   	else if(PORTFbits.RF7 == 1)
	{
   	keyserve_key=0;
	key_stop();
	}

   	PORTFbits.RF1 = 0;
   	PORTFbits.RF2 = 1;         
   	PORTFbits.RF3 = 0;

   	if(PORTFbits.RF4 == 1)
	{
   	keyserve_key=3;
	key_stop();
	}
   	if(PORTFbits.RF5 == 1)
	{
   	keyserve_key=6;
	key_stop();
	}
   	if(PORTFbits.RF6 == 1)
	{
   	keyserve_key=9;
	key_stop();
	}
   	if(PORTFbits.RF7 == 1)
	{
   	keyserve_key=20;
	key_stop();
	}


return(keyserve_key);
}

void key_stop()
{
   while(1)
   {
      if(PORTFbits.RF4||PORTFbits.RF5||
         PORTFbits.RF6||PORTFbits.RF7)
		  delay(100);
	else
		{
		  delay(10000);
         if(PORTFbits.RF4||PORTFbits.RF5||
            PORTFbits.RF6||PORTFbits.RF7)
		delay(100);
		else
         break;
		}    

}

}




char epprom_read(int epprom_r_addr)
{


   EEADRH = 0;                  //Upper bits of Data Memory Address to write
   EEADR = epprom_r_addr;         //Lower bits of Data Memory Address to write

   EECON1bits.EEPGD = 0;          //Point to DATA memory
   EECON1bits.CFGS = 0;          //   Access EEPROM
   EECON1bits.RD = 1;;          //EEPROM Read
   return(EEDATA);
}


void epprom_write(int epprom_w_addr,int epprom_w_data)
{
   EEADRH = 0;                     //Upper bits of Data Memory Address to write

   EEADR =  epprom_w_addr;          //Lower bits of Data Memory Address to write
   EEDATA = epprom_w_data;          //Data Memory Value to write

   EECON1bits.EEPGD = 0;             //Point to DATA memory
   EECON1bits.CFGS = 0;             //   Access EEPROM
   EECON1bits.WREN = 1;             // Enable writes
   	
   INTCONbits.GIE = 0;             // Disable Interrupts
	INTCONbits.PEIE=0;
   EECON2 = 0x55;                   //Write 55h
   EECON2 = 0xAA;                   //Write 0AAh

   EECON1bits.WR = 1 ;             	//Set WR bit to begin write
   INTCONbits.GIE = 1;             	//Enable Interrupts
	INTCONbits.PEIE=1;
      while (!PIR2bits.EEIF) 		// WRITE step #8
      ;
      PIR2bits.EEIF = 0;		 	// WRITE step #9 
   EECON1bits.WREN = 0;             //Disable writes on write complete (EEIF set)
}


void sound_buzzer(int sound)
{
  unsigned char fre_repeat,s_max,s_min;
  int i,j;
//同一頻率重復次數,最高頻率,最低頻率,循環變量i,j

	vcc_io2 = 1;				//buzz and dsp
  fre_repeat= sound;                              //同一頻率循環4次
  s_max=0x93;                                //聲音最高頻率
  s_min=0x47;                                //聲音最低頻率
	if(sound==0)
	sound=1;
	if(sound_enable)
  for(i=s_max-s_min;i>0;i--)                 //輸出最高頻率與最低頻率內的每一個頻率的聲音
     {
         for(j=fre_repeat;j>0;j--)           //每個聲音循環4次
            {
                buzz=1;                       //輸出聲音
                delay(s_min+i);     		   //延長一段時間
                buzz=0;                       //關閉聲音
                delay(s_min+i);      		  //延長一段時間
             }
      }
}


void mot_move_open()
{
	//判斷是否打開到位
	int i;
	if(pos_open == 0&&pos_lock==0)			 	//沒有到位
	{
		for(i=0;i<10;i++)
		{
			if(pos_open == 0 )
			{
				vcc_kid=1;					//kid 電源打開
				mot_down=1;					//反轉
				mot_up = 0;					//正轉
				sound_buzzer(4);			
				delay(100000);				//需要調整的時間
			}		
		}
		if(pos_open == 0)					//沒有到位報警
		{
		for(i=0;i<3;i++)
		sound_buzzer(10);		
		}



	}
		sound_buzzer(2);
		sound_buzzer(1);
		mot_down=0;					//反轉
		mot_up=0;					//正轉
		vcc_kid=0;

}

void mot_move_close()
{
	//判斷是否到位
	int i;
	if(pos_close == 0&&pos_lock==0)			 	//沒有到位
	{
		for(i=0;i<10;i++)
		{
			if(pos_close == 0 )
			{
				vcc_kid=1;					//kid 電源打開
				mot_down=0;					//反轉
				mot_up = 1;					//正轉
				sound_buzzer(4);
				delay(100000);
			}
		}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品无码三级在线观看视频| 欧美一区二区黄| 日韩视频一区二区在线观看| 欧美经典一区二区三区| 亚洲愉拍自拍另类高清精品| 亚洲欧美另类图片小说| 久久精品999| 欧美在线观看视频在线| 欧美国产激情一区二区三区蜜月 | 欧美绝品在线观看成人午夜影视| 制服丝袜av成人在线看| 中文字幕亚洲一区二区av在线| 蜜臀av一区二区| 欧美日韩免费一区二区三区| 国产精品美女久久久久久2018| 日韩成人一区二区| 在线一区二区三区做爰视频网站| 久久久久久麻豆| 美女视频一区二区三区| 欧美吻胸吃奶大尺度电影| 亚洲欧洲99久久| 国产成人免费视| xf在线a精品一区二区视频网站| 亚洲欧美色综合| 99免费精品在线观看| 久久蜜桃一区二区| 激情偷乱视频一区二区三区| 欧美精品丝袜中出| 亚洲一区二区三区精品在线| www.欧美色图| 国产精品美女久久久久久久网站| 国产久卡久卡久卡久卡视频精品| 欧美变态tickling挠脚心| 婷婷丁香久久五月婷婷| 欧美无砖专区一中文字| 五月婷婷久久丁香| 欧美性大战久久| 亚洲va国产天堂va久久en| 91国产免费看| 亚瑟在线精品视频| 欧美日韩视频在线观看一区二区三区| 悠悠色在线精品| 欧美午夜宅男影院| 日韩福利电影在线| 欧美精品一区男女天堂| 久草这里只有精品视频| 久久综合九色综合欧美亚洲| 国产一区二区成人久久免费影院| 久久久久久久久久看片| 韩国午夜理伦三级不卡影院| 久久色.com| 丁香一区二区三区| 亚洲欧美偷拍另类a∨色屁股| 欧亚一区二区三区| 日韩av一区二| 国产女同互慰高潮91漫画| 9i看片成人免费高清| 亚洲一线二线三线视频| 日韩午夜在线观看| 高清在线不卡av| 亚洲乱码中文字幕| 在线播放一区二区三区| 玖玖九九国产精品| 国产精品久久久久9999吃药| 日本精品视频一区二区三区| 日本午夜一区二区| 国产精品久久精品日日| 欧美嫩在线观看| 国产精品99久久久久| 亚洲美女在线国产| 日韩三级电影网址| 91猫先生在线| 精品在线免费观看| 一区二区三区四区av| 欧美成人一区二区三区在线观看| 国产a视频精品免费观看| 亚洲一区二区视频在线观看| 日韩精品一区二区三区四区| 99精品视频在线观看免费| 午夜久久久久久| 国产精品动漫网站| 日韩欧美国产精品| 91麻豆视频网站| 黄色小说综合网站| 亚洲大片一区二区三区| 国产精品视频你懂的| 777xxx欧美| 色94色欧美sute亚洲线路一久| 激情久久久久久久久久久久久久久久| 亚洲欧美日韩国产手机在线| 欧美不卡一区二区三区四区| 欧美在线你懂得| caoporm超碰国产精品| 九色综合狠狠综合久久| 亚瑟在线精品视频| 亚洲免费三区一区二区| 久久久久99精品一区| 3d动漫精品啪啪1区2区免费| 91免费视频观看| 成人午夜精品一区二区三区| 蜜桃av一区二区| 首页亚洲欧美制服丝腿| 亚洲国产综合色| 亚洲人成网站在线| 国产精品久久久久9999吃药| 国产日韩欧美综合一区| 精品国产一区二区三区久久久蜜月 | 亚洲精品国产成人久久av盗摄| 精品国产123| 5月丁香婷婷综合| 欧美亚男人的天堂| 91福利在线看| 欧美综合亚洲图片综合区| 色综合久久综合网97色综合| 成人在线视频一区| 丁香桃色午夜亚洲一区二区三区| 蜜桃视频一区二区三区在线观看| 午夜久久电影网| 日韩精品久久理论片| 日韩精品一区第一页| 五月激情综合色| 五月天视频一区| 久久国内精品视频| 精品一区二区国语对白| 国模少妇一区二区三区| 国产一区啦啦啦在线观看| 激情综合色综合久久综合| 久久精品国产精品亚洲红杏| 久久国产乱子精品免费女| 国产一区亚洲一区| 不卡一卡二卡三乱码免费网站| 国产91丝袜在线观看| 波多野结衣91| 欧美日韩一区久久| 日韩三区在线观看| 久久久99久久精品欧美| 国产视频一区不卡| 亚洲久本草在线中文字幕| 亚洲午夜精品一区二区三区他趣| 亚洲国产欧美日韩另类综合 | 亚洲少妇30p| 亚洲成人免费观看| 国产一区二区三区免费观看| 波多野结衣在线一区| 欧美伊人久久久久久久久影院 | 国产精品亚洲午夜一区二区三区| 国产91精品久久久久久久网曝门 | 国产精品538一区二区在线| 盗摄精品av一区二区三区| 91国模大尺度私拍在线视频| 制服丝袜国产精品| 欧美韩国日本不卡| 亚洲成人黄色小说| 国产传媒欧美日韩成人| 欧美伊人精品成人久久综合97| 337p亚洲精品色噜噜狠狠| 久久精品亚洲一区二区三区浴池| 夜色激情一区二区| 国产在线精品一区二区不卡了| 色婷婷久久综合| 精品国产伦一区二区三区观看方式 | 夜夜嗨av一区二区三区网页 | 亚洲日本在线a| 免费成人在线观看视频| 成人午夜视频网站| 欧美人体做爰大胆视频| 久久综合色播五月| 亚洲一区视频在线观看视频| 国产成人在线色| 91精品国产福利在线观看| 欧美激情在线观看视频免费| 亚洲成人av一区| 99国产欧美久久久精品| 精品久久久久久久久久久久久久久久久 | 国产精品18久久久久久久网站| 日本伦理一区二区| 国产日本欧洲亚洲| 日日夜夜一区二区| 91麻豆免费看片| 亚洲国产精品av| 激情小说亚洲一区| 欧美精品日韩精品| 一级日本不卡的影视| 高清不卡一区二区| 久久欧美一区二区| 麻豆成人久久精品二区三区红| 在线看日本不卡| 亚洲人成人一区二区在线观看| 成人午夜视频网站| 国产婷婷精品av在线| 极品少妇xxxx精品少妇| 欧美日本精品一区二区三区| 亚洲视频一区二区在线观看| 国产激情一区二区三区| 精品999在线播放| 老司机午夜精品99久久| 日韩三级免费观看| 久久99精品国产麻豆婷婷洗澡| 精品视频色一区| 图片区小说区国产精品视频|