nhauruou
17-03-2011, 07:35 PM
em đang thực hiện quét phím 3x4 để xuất ra led nhưng trong proteus em nhấn phím nó không phản ứng gì hết hu hu. em sử dụng thư viện kbd.c có sẵn trong CCS.
code của em nè
#include <16f877a.h>
#device *=16 ADC=8
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=20000000)
#include <KBD.C>
#int_PSP
#define use_portb_kbd TRUE
PSP_isr()
{
}
void main()
{
char k;
set_tris_b(0x0f);
port_b_pullups(TRUE);
kbd_init(); // Khoi tao gia tri ban dau cho ham doc ban phim
enable_interrupts(INT_PSP);
enable_interrupts(global);
while(1)
{
k=kbd_getc(); // Goi ham doc ban phim, day la ham duoc dinh nghia trong file kbd.c
switch(k)
{
case '0': set_tris_d(0xff);
case '1': set_tris_d(0x01);
case '2': set_tris_d(0x02);
case '3': set_tris_d(0x03);
case '4': set_tris_d(0x04);
case '5': set_tris_d(0x05);
case '6': set_tris_d(0x06);
case '7': set_tris_d(0x07);
case '8': set_tris_d(0x08);
case '9': set_tris_d(0x09);
case '*': set_tris_d(0x0f);
case '#': set_tris_d(0xf0);
}
}
}
code của em nè
#include <16f877a.h>
#device *=16 ADC=8
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=20000000)
#include <KBD.C>
#int_PSP
#define use_portb_kbd TRUE
PSP_isr()
{
}
void main()
{
char k;
set_tris_b(0x0f);
port_b_pullups(TRUE);
kbd_init(); // Khoi tao gia tri ban dau cho ham doc ban phim
enable_interrupts(INT_PSP);
enable_interrupts(global);
while(1)
{
k=kbd_getc(); // Goi ham doc ban phim, day la ham duoc dinh nghia trong file kbd.c
switch(k)
{
case '0': set_tris_d(0xff);
case '1': set_tris_d(0x01);
case '2': set_tris_d(0x02);
case '3': set_tris_d(0x03);
case '4': set_tris_d(0x04);
case '5': set_tris_d(0x05);
case '6': set_tris_d(0x06);
case '7': set_tris_d(0x07);
case '8': set_tris_d(0x08);
case '9': set_tris_d(0x09);
case '*': set_tris_d(0x0f);
case '#': set_tris_d(0xf0);
}
}
}