int main() { mJTAGPortEnable(0); mPORTASetPinsDigitalOut(BIT_0|BIT_1|BIT_2|BIT_3|BIT_4|BIT_5|BIT_6|BIT_7); mPORTAClearBits(BIT_0|BIT_1|BIT_2|BIT_3|BIT_4|BIT_5|BIT_6|BIT_7); INTCONSET=0x1000; INTEnableSystemMultiVectoredInt(); IEC0 =0; IFS0 = 0; INTCONCLR = 0x00000018; IEC0SET = 0x00088000; IPC3 = 0x1F000000; IPC4 = 0X17000000; lcdconfig(); while(1) { if(IFS0 & 0x8000==1) { lcddata('3'); PORTA=0X0F; } if(IFS0 & 0x80000==1) { lcddata('4'); PORTA=0XFF; } } }
void dis_data(char data_value) { char data_value1; data_value1=data_value&0xF0; lcddata(data_value1); data_value1=((data_value<<4)&0xF0); lcddata(data_value1); }
void manualmode() { menudisplay(); int j=0; lcdcmd(0xC0); while(str6[j]!='\0') { lcddata(str6[j]); j++; } while(PORTDbits.RD6==1&&PORTDbits.RD13==1); if(PORTDbits.RD13==0) { PORTA=0xff; delay(1000000); PORTA=0x00; } else if(PORTDbits.RD6==0) { lcdcmd(0x01); } delay(1000000000); }
void automode() { menudisplay(); int j=0; lcdcmd(0xC0); while(str5[j]!='\0') { lcddata(str5[j]); j++; } while(PORTDbits.RD13==1&&PORTDbits.RD7==1); if(PORTDbits.RD13==0) { PORTA=0xff; delay(1000000); } else if(PORTDbits.RD7==0) { manualmode(); } /* while(PORTDbits.RD6==1); if(PORTDbits.RD6==0) { i++; lcdcmd(0x01); }*/ }
void temps() //Function to display temp change { int j; j=0; menudisplay(); lcdcmd(0xC0); while(str3[j]!='\0') { lcddata(str3[j]); j++; } delay(10000000); while(PORTDbits.RD13==1&&PORTDbits.RD7==1&&PORTDbits.RD6==1); //Wait till any key press if(PORTDbits.RD7==0) { i++; lcdcmd(0x01); } else if(PORTDbits.RD13==0) { settemp(); delay(100000000); } else if(PORTDbits.RD6==0) { i--; lcdcmd(0x01); } }
void menudisplay() { int j; j=0; lcdini(); while(str4[j]!='\0') { lcddata(str4[j]); j++; } }
void main(void) { unsigned int HI, LO, TOTAL; unsigned char l, OV, OFR[16] = "Out Of Range..."; OV = 0; T0 = 1; TMOD = 0x05; TL0 = 0; TL1 = 0; lcdinit(); while(1) { do { start: TR0 = 1; MSDelay(145); LO = TL0; HI = TH0; HI = HI << 8; TOTAL = HI | LO; Unit[0] = 'H'; Unit[1] = 'z'; Unit[2] = ' '; Unit[3] = ' '; if(OV == 1) { TOTAL = TOTAL / 1000; TOTAL = TOTAL + 65; if(TOTAL > 125) { for(l=0; l<16; l++) lcddata(OFR[l]); for(l=0; l<16; l++) lcdcmd(0x10); goto start; } OV = 0; Unit[0] = 'K'; Unit[1] = 'H'; Unit[2] = 'z'; Unit[3] = ' '; } inttoLCD(TOTAL); TL0 = 0; TH0 = 0; } while(TF0 == 0); OV = 1; TR0 = 0; TF0 = 0; } }
void settemp() { int j,b,x,v; j=0; lcdcmd(0x01); lcdcmd(0x80); while(str7[j]!='\0') { lcddata(str7[j]); j++; } x = keypad(); lcdcmd(0xC0); lcddata(x+48); delay(1000000000); v = keypad(); lcdcmd(0xC1); lcddata(v+48); PORTA=0xff; }
unsigned int GetInput() { unsigned char L, cnt, Key[5]; unsigned int Entry = 0; cnt = 0; do { Re: Key[cnt] = KeypadRead(); L = Key[cnt]; if(L == '+' | L == '-') goto Re; if(L == '=') continue; lcddata(Key[cnt]); Key[cnt] = Key[cnt] - 48; cnt++; } while(L != '=' & cnt != 5); switch(cnt) { case(1): { Entry = Key[0]; break; } case(2): { Entry = (Key[0] * 10) + Key[1]; break; } case(3): { Entry = (Key[0] * 100) + (Key[1] * 10) + Key[2]; break; } case(4): { Entry = (Key[0] * 1000) + (Key[1] * 100) + (Key[2] * 10) + Key[3]; break; } case(5): { Entry = (Key[0] * 10000) + (Key[1] * 1000) + (Key[2] * 100) + (Key[3] * 10) + Key[4]; break; } } return Entry; }
void batteryv() //Function to display battery voltage { int j; j=0; menudisplay(); lcdcmd(0xC0); while(str2[j]!='\0') { lcddata(str2[j]); j++; } delay(10000000); while(PORTDbits.RD13==1&&PORTDbits.RD7==1&&PORTDbits.RD6==1); //Wait till any key press if(PORTDbits.RD7==0) { i++; lcdcmd(0x01); } else if(PORTDbits.RD13==0) { PORTA=0xff; delay(1000000); PORTA=0x00; while(PORTDbits.RD6==1); if(PORTDbits.RD6==0) { lcdcmd(0x01); } } else if(PORTDbits.RD6==0) { i--; lcdcmd(0x01); } }
void mode() //Function for mode selection { int j; j=0; menudisplay(); lcdcmd(0xC0); while(str1[j]!='\0') { lcddata(str1[j]); j++; } delay(10000000); while(PORTDbits.RD13==1&&PORTDbits.RD7==1); //Wait till any key press if(PORTDbits.RD7==0) { i++; lcdcmd(0x01); } else if(PORTDbits.RD13==0) { mode2(); } }
void main() { float Frequency, Percent, LowTime, HighTime, TotalDelayMilli, TotalDelayMicro; unsigned int ConvHH, ConvLH, ValueH, ConvHL, ConvLL, ValueL; unsigned char x, HighH, LowH, HighL, LowL; unsigned char Freq[17] = "Freq: Hz", DutyC[17] = "Duty Cycle: %"; unsigned char colloc; Status = 0; KEYPAD = 0xF0; // make higher bits of keypad port that is column bits input and low row bits outputs Clock = 0; lcdcmd(0x38); // 2 lines and 5X7 matrix lcdcmd(0x0C); // Display ON, Cursor Blinking = 0x0E But this command is Display ON, Cursor OFF lcdcmd(0x01); // Clear Display Screen lcdcmd(0x80); // Force Cursor to the beginning of the First Line lcdcmd(0x06); main:lcdcmd(0x01); for(x = 0; x<16; x++) lcddata(Freq[x]); lcdcmd(0xC0); for(x = 0; x<16; x++) lcddata(DutyC[x]); lcdcmd(0x80); for(x=0; x<6; x++) lcdcmd(0x16); lcdcmd(0x0E); Frequency = GetInput(); if(Frequency > 20000) goto main; lcdcmd(0x0C); lcdcmd(0xC0); for(x = 0; x<12; x++) lcdcmd(0x16); lcdcmd(0x0E); Percent = GetInput(); lcdcmd(0x0C); TotalDelayMilli = (1 / Frequency) * 1000; TotalDelayMicro = (TotalDelayMilli * 1000) - 45; //With correction of 45 HighTime = (TotalDelayMicro / 100) * Percent; LowTime = TotalDelayMicro - HighTime; ValueH = 65536 - HighTime; ConvLH = ValueH & 0x00FF; // Zeroing the Higher 8 bits to have Lower 8 bits LowH = ConvLH; // Storing in a 8 bit character ConvHH = ValueH & 0xFF00; // Masking the Lower 8 bits to have Higher 8 bits ConvHH = ConvHH >> 8; // Shifting right 8 bits to hit to the Lower Part to save it to a 8-bit character HighH = ConvHH; // Storing in a 8 bit character ValueL = 65536 - LowTime; ConvLL = ValueL & 0x00FF; // Zeroing the Higher 8 bits to have Lower 8 bits LowL = ConvLL; // Storing in a 8 bit character ConvHL = ValueL & 0xFF00; // Masking the Lower 8 bits to have Higher 8 bits ConvHL = ConvHL >> 8; // Shifting right 8 bits to hit to the Lower Part to save it to a 8-bit character HighL = ConvHL; Status = 1; while(1) //2 Machine Cycle { Clock = 1; //1 MC TimerH(HighH, LowH); Clock = 0; TimerL(HighL, LowL); colloc = KEYPAD; //2 MC colloc &= 0xF0; //2 MC if(colloc == 0xE0) //4 MC { MSDelay(5); colloc = KEYPAD; //read the columns colloc &= 0xF0; //mask unused bits if(colloc == 0xE0) { Status = 0; goto main; } } } } //main braces
void inttoLCD(unsigned int value) { unsigned int x, y, z, d[5]; char l; x = value / 10; // => 6553 d[0] = (value % 10) + 48; // => 6 (LSD) * d[1] = (x % 10) + 48; // => 3 * y = x / 10; // => 655 d[2] = (y % 10) + 48; // => 5 * z = y / 10; // => 65 d[3] = (z % 10) + 48; // => 5 * d[4] = (z / 10) + 48; // => 6 (MSD) * if(d[4] == 48 & d[3] == 48 & d[2] == 48 & d[1] == 48) { lcddata(d[0]); lcddata(' '); for(l=0; l<4; l++) lcddata(Unit[l]); for(l=0 ; l<11 ; l++) lcddata(' '); for(l=0 ; l<17 ; l++) lcdcmd(0x10); } if(d[4] == 48 & d[3] == 48 & d[2] == 48 & d[1] != 48) { for(l=1; l>=0; l--) lcddata(d[l]); lcddata(' '); for(l=0; l<4; l++) lcddata(Unit[l]); for(l=0 ; l<10 ; l++) lcddata(' '); for(l=0 ; l<17 ; l++) lcdcmd(0x10); } if(d[4] == 48 & d[3] == 48 & d[2] != 48) { for(l=2; l>=0; l--) lcddata(d[l]); lcddata(' '); for(l=0; l<4; l++) lcddata(Unit[l]); for(l=0 ; l<9 ; l++) lcddata(' '); for(l=0 ; l<17 ; l++) lcdcmd(0x10); } if(d[4] == 48 & d[3] != 48) { for(l=3; l>=0; l--) lcddata(d[l]); lcddata(' '); for(l=0; l<4; l++) lcddata(Unit[l]); for(l=0 ; l<8 ; l++) lcddata(' '); for(l=0 ; l<17 ; l++) lcdcmd(0x10); } if(d[4] != 48) { for(l=4; l>=0; l--) lcddata(d[l]); lcddata(' '); for(l=0; l<4; l++) lcddata(Unit[l]); for(l=0 ; l<7 ; l++) lcddata(' '); for(l=0 ; l<17 ; l++) lcdcmd(0x10); } }