Mình có một code về bàn phím 4*4 nhờ mọi người giúp!
mạch đây
code này mình nạp vào mạch thì chạy đc, nhưng bị lỗi ở phím hiến số 9! vào cái nó hiên j ngay số 9! Tuy nhiên mô phỏng protues lại ko chạy!
Code này mình cũng thấy rất khó hiểu, ai có thể giúp mình với
mạch đây
Code:
#include <16F877A.h> #include <def_877a.h> #device *=16 adc=10 #FUSES NOWDT #FUSES HS #FUSES NOPUT #FUSES NOPROTECT #FUSES NODEBUG #FUSES NOBROWNOUT #FUSES NOLVP #FUSES NOCPD #FUSES NOWRT #use delay(clock=20000000) #include <lcd_lib_4bit.c> void quetphim_hienthi() { PORTB = 0b111111110 ; if (RB4==0) { delay_ms(50); while(RB4==0) continue ; delay_ms(20); lcd_putcmd(0x01); LCD_PutChar('0') ; } ; if (RB5==0) { delay_ms(50); while(RB5==0) continue ; delay_ms(20); lcd_putcmd(0x01); LCD_PutChar('3') ; } ; if (RB6==0) { delay_ms(50); while(RB6==0) continue ; delay_ms(20); lcd_putcmd(0x01); LCD_PutChar('6') ; } ; if (RB7==0) { delay_ms(50); while(RB6==0) continue ; delay_ms(20); lcd_putcmd(0x01); LCD_PutChar('9') ; } ; PORTB = 0b111111101 ; if (RB4==0) { delay_ms(50); while(RB4==0) continue ; delay_ms(20); lcd_putcmd(0x01); LCD_PutChar('1') ; } ; if (RB5==0) { delay_ms(50); while(RB5==0) continue ; delay_ms(20); lcd_putcmd(0x01); LCD_PutChar('4'); } ; if (RB6==0) { delay_ms(50); while(RB6==0) continue ; delay_ms(20); lcd_putcmd(0x01); LCD_PutChar('7'); } ; PORTB = 0b111111011 ; if (RB4==0) { delay_ms(50); while(RB4==0) continue ; delay_ms(20); lcd_putcmd(0x01); LCD_PutChar('2') ; } ; if (RB5==0) { delay_ms(50); while(RB5==0) continue ; delay_ms(20); lcd_putcmd(0x01); LCD_PutChar('5') ; } ; if (RB6==0) { delay_ms(50); while(RB6==0) continue ; delay_ms(20);lcd_putcmd(0x01); LCD_PutChar('8') ; } ; } #int_RB void ngat_RB(void) {quetphim_hienthi();} void main(void) { TRISD=0x00; RD2=0; set_tris_B(0xF0); lcd_Init(); lcd_putcmd(0x01); enable_interrupts(global); enable_interrupts(int_RB); ext_int_edge(H_to_L); while(1) {PORTB = 0xF0 ;} }
Code này mình cũng thấy rất khó hiểu, ai có thể giúp mình với
Comment