Advanced Level     Skills: 8051, LCD, I2C, EEPROM, OptoCoupler, Keypad    


Electronic Voting Machine with Managed Control Unit

EVM is capable of saving considerable printing stationery and transport of large volumes of electoral material. It is easy to transport, store, and maintain. It completely rules out the chance of invalid votes. Its use results in reduction of polling time, resulting in fewer problems in electoral preparations, law and order, candidates' expenditure, etc. and easy and accurate counting without any mischief at the counting centre. It is also eco friendly.

Our EVM consists mainly of two units - (a) Control Unit (CU) and (b) Ballot Unit (BU) with cable for connecting it with Control unit. Both the units consists of one microcontroller (8052) each. The CU consists of one LCD, one hex keypad and a couple of switches, while BU consists of a candidate panel, a votecast panel and a buzzer, etc.

This project is based on assembly language programming. The software platform used in this project are Keil uVision3 and SPIPGM37.

Important Information:
Please Read this carefully as explained to me by author

i forgot to mention one thing missing in report n coding as well.
actually, in main function of control unit program as soon as controller
enters in it check the value of variable named "status" that resides in
EEPROM. If status is 1 then voting start else no voting.

if the EEPROM is new or fresh, status will have some garbage value
or 0xFF. which can be a problem on first startup.

So a small program is written to clear that status byte.

After you finish making the hardware. You have to do the following things:

1. Load cufirst.hex file in your controller.
2. Run your circuit.
3. Wait for 2-3 seconds.
4. Load voting.hex which is the real control unit program.
5. Run it.


What's New?
1. Schematic updated
2. Added proteus simulation if you want to try it before building it

Please use forum if you have any problem.


1.56 MB





(Required; Min length 5)
(Required; will not be displayed)


Tue Oct 06 2015, 08:22 AM
HI you looking for ideas or you have solution
Fri Oct 02 2015, 03:39 PM
poojitha: projects on wireless communication between two microcontrollers
Thu Oct 01 2015, 04:38 PM
hey! i wanted to simulate my circit using proteus. i have a sugar cube relay in my circuit....but i dont know which one is that in the device libraries of the software. any help? thankyou.
Tue Sep 29 2015, 09:40 PM
@Michal, that rocket is too heavy for itself and trust is not enough unless afterburners are fed with fuel properly.
Sat Sep 26 2015, 08:19 PM
Hello, its possible to make a amateur rocket with this engine, or something simillar, which be able to flight?
Thu Sep 24 2015, 10:38 AM
Ir Switch sir.
Wed Sep 23 2015, 01:10 AM
@engr1931 which project ?
Tue Sep 22 2015, 11:57 AM
Hello sir, is it ok to use 12.000MHz oscillator in IRswitch, because the requirement written in the post is 11.059MHz. And i use PIC1018 as an Ir receiver
Mon Sep 21 2015, 04:15 PM
Hello sir, your blog is kind of helpful for us especially students. May I know do you have the coding for decimal to binary using proteus 8. My mini project is about to convert decimal to binary just like a calculator. The output is LCD. A bit confusing is the decimal to binary coding on proteus 8. pls help thanks.
Sun Sep 20 2015, 09:08 PM
Have you searched our Embedded GSM Development and GSM and CDMA Discussion forums ?



Tue Oct 06 2015, 01:02 PM
Fri Oct 02 2015, 03:28 PM
Sat Sep 26 2015, 01:26 AM
Fri Sep 25 2015, 10:57 AM
Wed Sep 23 2015, 08:13 PM
Wed Sep 16 2015, 04:55 AM
Mon Sep 14 2015, 03:06 PM
Fri Sep 11 2015, 06:03 AM


Guests: 31, Members: 0 ...

most ever online: 182184
(Members: , Guests: 182184) on 06 Aug 2010: 05:37 AM

Members: 37698
Newest member: praveenraoms
Forum Activity
praveenraoms Avatar
Posted By praveenraoms
Tue Oct 06 2015, 01:06 PM
hi i want to know the code to access the geographi...
sachinmm Avatar
Posted By sachinmm
Wed Sep 30 2015, 08:54 AM
how to used polling method in this?? my code is co...
ajay_bhargav Avatar
Posted By ajay_bhargav
Tue Sep 29 2015, 09:39 PM
__irq is just compiler directive to wrap IRQ routi...
ajay_bhargav Avatar
Posted By ajay_bhargav
Tue Sep 29 2015, 09:36 PM
The comment does say the time values as per the th...
ajay_bhargav Avatar
Posted By ajay_bhargav
Tue Sep 29 2015, 09:33 PM
are you testing this on Proteus? or MplabX simulat...
ajay_bhargav Avatar
Posted By ajay_bhargav
Tue Sep 29 2015, 09:31 PM
[Topic moved to ARM Development Forum]
ajay_bhargav Avatar
Posted By ajay_bhargav
Tue Sep 29 2015, 09:29 PM
start with reading datasheet. SPI interface on LPC...
ajay_bhargav Avatar
Posted By ajay_bhargav
Tue Sep 29 2015, 09:27 PM
I am not sure you've solved it or not but "USARTRe...
ExperimenterUK Avatar
Posted By ExperimenterUK
Tue Sep 29 2015, 06:31 PM
i am confused in "__irq" it is uesd??sachin...
sachinmm Avatar
Posted By sachinmm
Tue Sep 29 2015, 11:11 AM
my I2C.c file=>>/*********************************...