Cho em có thắc mắc về cái keypad như trong hình ạ ..Anh chị giải đáp giúp em với
Attachments
-
41.4 KB Views: 29
void main(void) {
ANSEL = 0;
ANSELH = 0;
lcd_init();
TRISC = 0x00;
PORTC = 0xF0; //11110000
unsigned char m_button[16]={0x87,0x8b,0x8d,0x8e,0x47,0x4b,0x4d,0x4e,0x27,0x2b,0x2d,0x2e,0x17,0x1b,0x1d,0x1e};
unsigned char m_ledshow[16]={'1','2','3','A','4','5','6','B','7','8','9','C','*','0','#','D'};
while (1)
{
lcd_clear();
//Ma tran phim
int i;
for (i=0;i<=16;i++)
{
if (PORTC==m_button[i])
lcd_putc(m_ledshow[i]);
}
//End Ma tran phim
}
}
Trong hình của bạn R, C là gì vậy?mà hình như bấm 1 cái là R va C mỗi cái 2.5V
Không biết em mắc thế này đúng chưa ạ
Trở kéo lên là trở nối với VCC, kéo xuống là nối GND. Tại sao phải dùng trở kéo lên hay kéo xuống? Vì nếu bạn không dùng thì vđk sẽ không biết tín hiệu đang ở mức cao hay mức thấp hay thế chân đó không ổn định khi đọc giá trị về => dùng trở kéo.Cho em hỏi "điện trở kéo lên" hay "điện trở kéo xuống" là gì và dùng để làm gì thế ạ? Cái trở kéo lên/xuống đó có tác dụng gì với module keypad này?
Mạch keypad của em, em nối dây vào board để test phím, mới đưa tay vào chưa nhấn là LED đã nhảy lung tung rồi, có phải nó bị nhiễu không ạ? Khắc phục như thế nào vậy? :|
Code của bạn chỉ mới là so sánh giá trị đọc về và cũng chưa đúng.em cho nó gắn và VCC và code này không biết có đúng không ạ =.=~ mọi người chỉ em với
Code:void main(void) { ANSEL = 0; ANSELH = 0; lcd_init(); TRISC = 0x00; PORTC = 0xF0; //11110000 unsigned char m_button[16]={0x87,0x8b,0x8d,0x8e,0x47,0x4b,0x4d,0x4e,0x27,0x2b,0x2d,0x2e,0x17,0x1b,0x1d,0x1e}; unsigned char m_ledshow[16]={'1','2','3','A','4','5','6','B','7','8','9','C','*','0','#','D'}; while (1) { lcd_clear(); //Ma tran phim int i; for (i=0;i<=16;i++) { if (PORTC==m_button[i]) lcd_putc(m_ledshow[i]); } //End Ma tran phim } }
for (i=0;i<=16;i++)
TRISC = 0xF0; // 4 bit cao dùng để chọn hàng, 4 bit thấp đọc trị trả về
void main(void) {
ANSEL = 0;
ANSELH = 0;
lcd_init();
TRISC = 0x00;
unsigned char m_button[16]={10000111,10001011,10001101,10001110,01000111,01001011,01001101,01001110,00100111,00101011,00101101,00101110,00010111,00011011,00011101,00011110};
unsigned char m_ledshow[16]={'1','2','3','A','4','5','6','B','7','8','9','C','*','0','#','D'};
while (1)
{
lcd_clear();
//Ma tran phim
int i,j;
for(i=0;i<=3;i++)
{
for (j=1;j<=4;j++)
{
__delay_ms(200);
if (PORTC=(4*i+j))
lcd_putc(m_ledshow[(4*i+j)]);
}
}
//End Ma tran phim
}
}
TRISC = 0x00;
anh Nhật đỉnh thiệt, có "hàng" mà dìm, tới giờ mới thảDưới dây là Link chứa rất nhiều Tips cho MCU PIC.......cái này rất cho ích cho chúng ta......các bạn cũng nên một lần xem qua ha......sẽ biết đuợc nhiều điều lắm.........À trong tài liệu này nó cũng có Tip cho key pad 1 dây đó....tìm phần đó mà đọc qua ha.......
Thân!
Thằng này có tài liệu hay mà dìm hàng kinh quá. Thanks phát nào!Dưới dây là Link chứa rất nhiều Tips cho MCU PIC.......cái này rất cho ích cho chúng ta......các bạn cũng nên một lần xem qua ha......sẽ biết đuợc nhiều điều lắm.........À trong tài liệu này nó cũng có Tip cho key pad 1 dây đó....tìm phần đó mà đọc qua ha.......
Thân!