Code snippet
#include<xc.h> #include<plib/delays.h> #include "Config.h" #ifndef _XTAL_FREQ #define _XTAL_FREQ 20000000 #endif void delay_ms(unsigned char t); void cmd(int a); void data(char b); char key(void); int main() { char a; TRISD=0; TRISA=0; TRISB=0xF0; cmd(0X38); cmd(0X80); cmd(0X01); cmd(0X06); cmd(0X0E); while(1) { a=key(); data(a); } } char key() { int e; while(1) { LATB = 0XF7; e = LATB&0xF0; switch(e) { case 0x70: while(LATBbits.LATB3==0); return('1'); case 0xB0: while(LATBbits.LATB2==0); return('2'); case 0xD0: while(LATBbits.LATB1==0); return('3'); case 0xE0: while(LATBbits.LATB0==0); return('A'); } } } void cmd(int a) { LATD = a; LATA = 0x01; delay_ms(500); LATA = 0x00; } void data(char b) { LATD = b; LATA = 0x05; delay_ms(500); LATA= 0x04; } void delay_ms(unsigned char t) { int i; for(i=0;i<=t;i++) Delay1KTCYx(5); }
Previous TopicNext Topic