45 #define RS_HIGH() _LATB15 = 1
46 #define RS_LOW() _LATB15 = 0
47 #define CONFIG_RS() CONFIG_RB15_AS_DIG_OUTPUT()
49 #define RW_HIGH() _LATD5 = 1
50 #define RW_LOW() _LATD5 = 0
51 #define CONFIG_RW() CONFIG_RD5_AS_DIG_OUTPUT()
53 #define E_HIGH() _LATD4 = 1
54 #define E_LOW() _LATD4 = 0
55 #define CONFIG_E() CONFIG_RD4_AS_DIG_OUTPUT()
63 #define CONFIG_LCD4_AS_INPUT() CONFIG_RE4_AS_DIG_INPUT()
64 #define CONFIG_LCD5_AS_INPUT() CONFIG_RE5_AS_DIG_INPUT()
65 #define CONFIG_LCD6_AS_INPUT() CONFIG_RE6_AS_DIG_INPUT()
66 #define CONFIG_LCD7_AS_INPUT() CONFIG_RE7_AS_DIG_INPUT()
68 #define CONFIG_LCD4_AS_OUTPUT() CONFIG_RE4_AS_DIG_OUTPUT()
69 #define CONFIG_LCD5_AS_OUTPUT() CONFIG_RE5_AS_DIG_OUTPUT()
70 #define CONFIG_LCD6_AS_OUTPUT() CONFIG_RE6_AS_DIG_OUTPUT()
71 #define CONFIG_LCD7_AS_OUTPUT() CONFIG_RE7_AS_DIG_OUTPUT()
73 #define GET_BUSY_FLAG() LCD7I
83 CONFIG_LCD4_AS_OUTPUT();
84 CONFIG_LCD5_AS_OUTPUT();
85 CONFIG_LCD6_AS_OUTPUT();
86 CONFIG_LCD7_AS_OUTPUT();
90 void configBusAsInLCD(
void) {
91 CONFIG_LCD4_AS_INPUT();
92 CONFIG_LCD5_AS_INPUT();
93 CONFIG_LCD6_AS_INPUT();
94 CONFIG_LCD7_AS_INPUT();
99 void outputToBusLCD(
uint8_t u8_c) {
101 LCD5O = (u8_c >> 1)& 0x01;
102 LCD6O = (u8_c >> 2)& 0x01;
103 LCD7O = (u8_c >> 3)& 0x01;
107 void configControlLCD(
void) {
140 u8_wdtState = _SWDTEN;
146 u8_BusyFlag = GET_BUSY_FLAG();
150 }
while (u8_BusyFlag);
151 _SWDTEN = u8_wdtState;
156 if (u8_DataFlag) RS_HIGH();
158 outputToBusLCD(u8_Cmd >> 4);
161 outputToBusLCD(u8_Cmd);
169 writeLCD(0x28,0,0,0);
170 writeLCD(0x28,0,1,1);
171 writeLCD(0x06,0,0,1);
172 writeLCD(0x0C,0,0,1);
173 writeLCD(0x01,0,0,1);
178 void outStringLCD(
char *psz_s) {
180 writeLCD(*psz_s, 1, 1,1);
192 outStringLCD(
"******Hello, my name is Bob********");
193 writeLCD(0xC0,0,1,1);
194 outStringLCD(
"-----these lines are moving!-------");
196 writeLCD(0x18,0,1,1);