?? keypad.c
字號(hào):
#include <STC89C516.H>#include "Rc632cv.h"#include "reader.h"#if 0static unsigned char keydly=0; //延時(shí)記數(shù)//=0xff 無(wú)鍵unsigned char get_key(){ unsigned char data ch,k; P2 = 0x0F; ch = P2 & 0x0F; //檢測(cè)按鍵按下 while(1) { if (ch != 0x0F) { keydly ++; } else { return 0xff; } if (keydly > 100) { break; } } //讀鍵值 while(1) { P2 = ~0x40; ch = P2 & 0x0F; if (ch != 0x0F) { ch |= 0x10; break; } P2 = ~0x20; ch = P2 & 0x0F; if (ch != 0x0F) { ch |= 0x20; break; } P2 = ~0x10; ch = P2 & 0x0F; if (ch != 0x0F) { ch |= 0x30; break; } return 0xff; } // 等待按鍵彈起來(lái) P2 = 0x0F; k = P2 & 0x0F; keydly=0; while(1) { if (k == 0x0F) { keydly ++; } else { return 0xff; } if (keydly > 250) { break; } } if (ch == 0x1E) ch = 0xa; else if (ch == 0x2E) ch = 0; else if (ch == 0x3E) ch = 0xb; else if (ch == 0x37) ch = 1; else if (ch == 0x27) ch = 2; else if (ch == 0x17) ch = 3; else if (ch == 0x3B) ch = 4; else if (ch == 0x2B) ch = 5; else if (ch == 0x1B) ch = 6; else if (ch == 0x3D) ch = 7; else if (ch == 0x2D) ch = 8; else if (ch == 0x1D) ch = 9; else ch = 0xff; return ch;} unsigned char getkey(){ unsigned char code keycode[16]={'0','1','2','3', '4','5','6','7', '8','9','#','*', '0','0','0','0' }; unsigned char data k; k=get_key(); if(k==0xff) { return 0; } k=keycode[k]; return k;}#elsebit flag_keyon; //有鍵未釋放static unsigned char keydly=0; //延時(shí)記數(shù)unsigned char get_key(void){ unsigned char ch; unsigned char L1,L2; #if (MCTYPE==CV5100) L1=5; L2=5; #else L1=20; L2=8; #endif P2 = 0x0F; ch = P2 & 0x0F; if (flag_keyon) { if (ch != 0x0F) keydly = 0; else keydly++; if (keydly >L1) { flag_keyon = 0; keydly = 0; } return 0xff; } if (ch == 0x0F) { keydly = 0; return 0xff; } keydly++; if (keydly < L2) return 0xff; flag_keyon = 1; keydly = 0; while(1) { P2 = ~0x40; ch = P2 & 0x0F; if (ch != 0x0F) { ch |= 0x10; break; } P2 = ~0x20; ch = P2 & 0x0F; if (ch != 0x0F) { ch |= 0x20; break; } P2 = ~0x10; ch = P2 & 0x0F; if (ch != 0x0F) { ch |= 0x30; break; } } if (ch == 0x1E) ch = 0xb; else if (ch == 0x2E) ch = 0; else if (ch == 0x3E) ch = 0xa; else if (ch == 0x37) ch = 1; else if (ch == 0x27) ch = 2; else if (ch == 0x17) ch = 3; else if (ch == 0x3B) ch = 4; else if (ch == 0x2B) ch = 5; else if (ch == 0x1B) ch = 6; else if (ch == 0x3D) ch = 7; else if (ch == 0x2D) ch = 8; else if (ch == 0x1D) ch = 9; else ch = 0xff; return ch; }unsigned char getkey(){ unsigned char ch; unsigned char code keycode[16]={'0','1','2','3', '4','5','6','7', '8','9','*','#', 0, 0, 0, 0 }; ch=get_key(); if(ch==0xff) { return 0; } ch=keycode[ch]; return ch; }#endif
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -