You are on page 1of 5

#include<8051.h> #include<intrpt.h> #include<conio.h> #include<stdio.h> #include<delay.h> #include<e2prom16.h> #include<lcd4bit.h> #define DTMF_PORT P1 #define DTMF_READY P3_BITS.

B2 #define TIMER0_INT ET0 #define DELAY1 (65536 - 50000) #define RESET_KEY P2_BITS.B7 void interrupt dtmf_isr(void); void interrupt timer0_isr(void); void on_ack(void); void off_ack(void); const char msg_1[] = {"***WELCOME TO***"}; const char msg_2[] = {" MOBILE VOTING. "}; const char msg_3[] = {" TOTAL VOTE "}; const char msg_4[] = {"CANDIDATE-1 VOTE"}; const char msg_5[] = {"CANDIDATE-2 VOTE"}; const char msg_6[] = {"CANDIDATE-3 VOTE"}; const char msg_7[] = {"CANDIDATE-4 VOTE"}; const char msg_8[] = {"NEW VOTER ONLINE"}; const char msg_9[] = {"Please Wait....."}; const char msg_10[] = {" Invalid Vote "}; const char msg_11[] = {"Ask to Try Again"}; const char msg_12[] = {" VOTE CASTED "}; const char msg_13[] = {" SUCCESSFULLY "}; const char msg_14[] = {"SYSTEM RESET IN "}; const char msg_15[] = {"PROCESS PLS WAIT"}; unsigned char dtmf_data,dtmf_sts,page_add,data_add,data_status; unsigned char VoteTotal,VoteC1,VoteC2,VoteC3,VoteC4; unsigned char Data1,Data2,Data3,Data4,Data5,DataCounter; unsigned int Timer; void main() { P0 = 0xff; P1 = 0xff; P2 = 0xff; P3 = 0xff; VoteTotal = 0; VoteC1 = 0; VoteC2 = 0; VoteC3 = 0; VoteC4 = 0; ACK_SIGNAL = OFF; DTMF_READY = ON; DTMF_PORT = 0xff; DTMF_INT = 0; ET0 = 0; ET1 = 0; TR0 = 0; do { if(!RESET_KEY) { Timer = 50; while((Timer > 0) && (!RESET_KEY)); if(Timer == 0)

{ wr_lcd_cmd(LINE1); wr_lcd_data(msg_14[]); wr_lcd_cmd(LINE2); wr_lcd_data(msg_15[]); for(data_add = 0;data_add < 255;data_add++) { write_eprom(0x00,data_add,0x00); } } } if(!TOTAL_KEY) { VoteC1 = 0; VoteC2 = 0; VoteC3 = 0; VoteC4 = 0; VoteTotal = 0; for(data_add = 0;data_add < 100;data_add++) { data_status = read_eprom(0x00,data_add); if(data_status == 1) { VoteC1++; VoteTotal++; } else if(data_status == 2) { VoteC2++; VoteTotal++; } else if(data_status == 3) { VoteC3++; VoteTotal++; } else if(data_status == 4) { VoteC4++; VoteTotal++; } } wr_lcd_cmd(LINE1); wr_lcd_data("C1 = "); wr_lcd_data(VoteC1); wr_lcd_data(", C2 = "); wr_lcd_data(VoteC2); wr_lcd_cmd(LINE2); wr_lcd_data("C3 = "); wr_lcd_data(VoteC3); wr_lcd_data(", C4 = "); wr_lcd_data(VoteC4); Timer = 100; while(Timer); wr_lcd_cmd(LINE1); wr_lcd_data(msg_3[mi]); wr_lcd_cmd(LINE2);

wr_lcd_data(VoteTotal); Timer = 50; while(Timer); } if(dtmf_sts == 1) { dtmf_sts = 0; } } while((Timer > 0) && (dtmf_sts == 0)); if(Timer > 0) { if(dtmf_sts == 1) { dtmf_sts = 0; Data4 = dtmf_data; DataCounter++; } } while((Timer > 0) && (dtmf_sts == 0)); if(Timer > 0) { if(dtmf_sts == 1) { dtmf_sts = 0; Data5 = dtmf_data; DataCounter++; } } if(DataCounter == 5) { if((Data1 == 12) && (Data5 == 12)) { if((Data4 > 0) && (Data4 < 5)) { if(Data2 == 10) { Data2 - = 10; } data_add = Data2 * 10; data_add += Data3; if((data_add > 0) && (data_add < 100)) { data_status = read_eprom(0x00,data_add); if(data_status == 0) { write_eprom(0x00,data_add,Data4); DataCounter = 0; } } } } } if((DataCounter > 0) && (DataCounter <= 5)) { wr_lcd_cmd(LINE1); wr_lcd_data(msg_10[]); wr_lcd_cmd(LINE2); wr_lcd_data(msg_11[]); DataCounter = 0;

BUZZER = BUZZER_ON; off_ack(); off_ack(); off_ack(); off_ack(); off_ack(); off_ack(); off_ack(); off_ack(); off_ack(); off_ack(); off_ack(); off_ack(); off_ack(); off_ack(); off_ack(); off_ack(); BUZZER = BUZZER_OFF; } else { wr_lcd_cmd(LINE1); wr_lcd_data(msg_12[]); wr_lcd_cmd(LINE2); wr_lcd_data(msg_13[]); off_ack(); Timer = 50; while(Timer); } } wr_lcd_cmd(LINE1); wr_lcd_data(msg_1[]); wr_lcd_cmd(LINE2); wr_lcd_data(msg_2[]); }while(1); } void interrupt timer0_isr(void) { if(Timer > 0) { Timer--; } TL0 = DELAY1 & 0x0f; TH0 = DELAY1/256; } void interrupt dtmf_isr(void) { dtmf_data = DTMF_PORT; dtmf_data = dtmf_data & 0x0f; } void on_ack(void) { unsigned char i,j; for(i=0;i<255;i++) for(j=0;j<50;j++); for(i=0;i<255;i++) { for(j=0;j<70;j++); ACK_SIGNAL = ~ACK_SIGNAL; }

ACK_SIGNAL = OFF; } void off_ack(void) { unsigned char i,j; for(i=0;i<255;i++) for(j=0;j<50;j++); for(i=0;i<255;i++) { for(j=0;j<70;j++); ACK_SIGNAL = ~ACK_SIGNAL; } ACK_SIGNAL = OFF; for(i=0;i<255;i++) for(j=0;j<50;j++); for(i=0;i<255;i++) { for(j=0;j<70;j++); ACK_SIGNAL = ~ACK_SIGNAL; } ACK_SIGNAL = OFF; }

You might also like