PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) (http://www.picvietnam.com/forum/forumdisplay.php?f=12)
-   -   Giúp mình đoạn code này với (http://www.picvietnam.com/forum/showthread.php?t=32198)

quangtd00 04-05-2013 12:23 AM

Giúp mình đoạn code này với
 
#define h0 PIN_D0
#define h1 PIN_C3
#define h2 PIN_C4
#define h3 PIN_C5
#define v0 PIN_B3
#define v1 PIN_B2
#define v2 PIN_B1
#define v3 PIN_B0
int8 keypad_break = 1;
char const keys[4][4] = { // define button name
{'7','8','9','A'},
{'4','5','6','B'},
{'1','2','3','C'},
{'*','0','#','D'}
};

int8 Keypad(){
int8 col = 0;
output_high(v0);
output_high(v1);
output_high(v2);
output_high(v3);
while (col < 4)
{
if (keypad_break) return 0;
switch (col)
{
case 0: output_high(v3);
output_low(v0);
break;
case 1: output_high(v0);
output_low(v1);
break;
case 2: output_high(v1);
output_low(v2);
break;
case 3: output_high(v2);
output_low(v3);
break;
}
if ( !input(h0)) return keys[0][col];
if ( !input(h1)) return keys[1][col];
if ( !input(h2)) return keys[2][col];
if ( !input(h3)) return keys[3][col];
col++;
}
return 16;
}
--------------------------------------------------
Theo mình hiểu: V0 - V3 là các hàng; H0 - H3 là các cột. Ban đầu col ở bit 0.
Cho các hàng output_high
while từ 0 - 3;
case 0: cột h0 ở bit 0 TẠI SAO lại v3 high và V0 low thì nó nhận đc là có phím ấn, mình ko hiểu???
tiếp theo, if ( !input(h0)) return keys[0][col]; nghĩa là khi h0 bit 0 thì nhận đc giá trị phím.


Múi giờ GMT. Hiện tại là 01:50 AM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam