|
key.h 文件內(nèi)容是:大家可以復(fù)制代碼 然后另存為下載到硬盤(pán)- /*把我一直珍藏的程序全部拿出來(lái),給大家共享,這也讓我想起來(lái),我剛學(xué)的時(shí)候,搜集資料是那么辛苦,而且找不到完整的資料,我將把我整理的和自己制作的H文件共享出來(lái),只要修改定義端口,便可以隨意的調(diào)用,以后我還會(huì)慢慢完善我的C資料,也希望大家給我指出程序的漏洞和缺點(diǎn),已達(dá)到相互學(xué)習(xí)目地。*/
- #ifndef __key_H__
- #define __key_H__
- /************************返回值是字符****************************/
- #define port_k P1//單片機(jī)數(shù)據(jù)端口的定義
- #define uint unsigned int
- #define uchar unsigned char
- uchar a;
- uchar b;
- uchar c;
- uchar key_v;
- uchar key_val;
- void delay_key(uint n)
- {
- uint i;
- for(i=0;i<n;i++);
- }
- uchar key(void)
- {
- key_v=0;
- port_k=0x0f;
- a=port_k;
- delay_key(50);
- port_k=0xf0;
- b=port_k;
- delay_key(50);
- c=a+b;
- if(c!=0xff)
- {
- port_k=0x0f;
- a=port_k;
- port_k=0xf0;
- b=port_k;
- key_v=a+b;
- while(c!=0xff)
- {
- port_k=0x0f;
- a=port_k;
- port_k=0xf0;
- b=port_k;
- c=a+b;
- }
- }
- switch(key_v)
- {
- case 0xee:key_val='0';return(key_val);break;//0
- case 0xde:key_val='1';return(key_val);break;//1
- case 0xbe:key_val='2';return(key_val);break;//2
- case 0x7e:key_val='3';return(key_val);break;//3
- case 0xed:key_val='4';return(key_val);break;//4
- case 0xdd:key_val='5';return(key_val);break;//5
- case 0xbd:key_val='6';return(key_val);break;//6
- case 0x7d:key_val='7';return(key_val);break;//7
- case 0xeb:key_val='8';return(key_val);break;//8
- case 0xdb:key_val='9';return(key_val);break;//9
- case 0xbb:key_val='A';return(key_val);break;//a
- case 0x7b:key_val='B';return(key_val);break;//b
- case 0xe7:key_val='C';return(key_val);break;//c
- case 0xd7:key_val='D';return(key_val);break;//d
- case 0xb7:key_val='E';return(key_val);break;//e
- case 0x77:key_val='F';return(key_val);break;//f
- default:key_val=0;return(key_val);
- }
- }
- #endif
復(fù)制代碼
|
|