Sunteți pe pagina 1din 5

8 CANDIDATE QUIZ BUZZER USING 8051 MICROCONTROLLER

DESCRIPTION
The quiz buzzer systems are widely used in school, colleges and TV programs. The team which presses the buzzer earliest is entitled to give the answer. At times it becomes very difficult to identify which team has pressed the button when two teams press the buzzer within a very small time gap. In such cases the decision can be biased due to human intervention. The quiz buzzer presented here takes care of the aforesaid problem. This quiz buzzer disables the other inputs as soon as the first buzzer is pressed. This quiz buzzer can be used for a maximum of eight teams. It is build around 8051 microcontroller (AT89C51). This quiz buzzer system has eight input pins corresponding to eight teams. The output is displayed on a seven segment display (interfaced with microcontroller), which shows the number corresponding to the team which has pressed the button first. A buzzer is also sounded for a small duration to give an acoustic alarm. The connections of the seven segment, input pins and output pins is shown in the circuit diagram.There are a total of nine input pins. Eight pins of port P1 of the microcontroller are corresponding to eight inputs and one stop pin for resetting the buzzer system. On the output side a seven segment is connected to display the corresponding output number. There is also a provision for sounding a buzzer for a small duration.When the system starts, the seven segment does not displays any output. The microcontroller keeps scanning the input pins. As soon as any one of the inputs is pressed, the buzzer sounds for a small duration. The seven segment displays the number corresponding to the input pressed. Now even if any other input pin is pressed, there will be no effect on the system till the time the stop pin is pressed to reset the system.

CIRCUIT DIAGRAM

COMPONENTS
Transistor BC548: BC548 is general purpose silicon, NPN, bipolar junction transistor. It is used for amplification and switching purposes. The current gain may vary between 110 and 800. The maximum DC current gain is 800 Seven Segment Display: A seven segment display is the most basic electronic display device that can display digits from 0-9. They find wide application in devices that display numeric information like digital clocks, radio, microwave ovens, electronic mete etc. Piezo Buzzer: The piezo buzzer produces sound based on reverse of the piezoelectric effect. The generation of pressure variation or strain by the application of electric potential across a piezoelectric material is the underlying principle. AT89C51 Microcontroller: AT89C51 is an 8-bit microcontroller and belongs to Atmel's 8051 family. AT89C51 has 4KB of Flash programmable and erasable read only memory (PEROM) and 128 bytes of RAM.

PROGRAM CODING
#include<reg51.h> unsigned int digi_val[10]={0x40,0xF9,0x24,0x30,0x19,0x12,0x02,0xF8,0x00,0x10}; // Hex value corresponding to the digits 0 to 9 sbit output_on_pin = P3^0; sbit stop_pin = P3^1; sbit buzzer_pin=P0^0; int flag; void delay() { int i,j; for(i=0;i<200;i++) for(j=0;j<1275;j++); } void display(unsigned int current_dig) // Function to display the resultant digit on the seven segment and sound the buzzer. { P2=digi_val[current_dig]; output_on_pin = 1; buzzer_pin=0; delay(); buzzer_pin=1; while(stop_pin != 0); } void buzzer() //Function to monitor the input switches { flag = 0; while(1) { while (P1 == 0xFF); while (P1 == 0xFE) //Check if switch 1 is pressed { flag = 1; display(1); } while (P1 == 0xFD) //Check if switch 2 is pressed { flag = 2; display(2); } while (P1 == 0xFB ) //Check if switch 3 is pressed { flag = 3; display(3); // Time delay function // Enable pin to enable the seven segment.

// Stop pin to reset the buzzer. // Buzzer pin to sound the buzzer.

} while (P1 == 0xF7 ) { flag = 4; display(4); } while (P1 == 0xEF ) { flag = 5; display(5); } while (P1 == 0xDF) { flag = 6; display(6); } while (P1 == 0xBF ) { flag = 7; display(7); } while (P1 == 0x7F ) { flag = 8; display(8); } P1 = 0xFF; stop_pin = 1; output_on_pin = 0; } } void main() { output_on_pin=0; stop_pin = 1; P1 = 0xFF; buzzer(); }

//Check if switch 4 is pressed

//Check if switch 5 is pressed

//Check if switch 6 is pressed

//Check if switch 7 is pressed

//Check if switch 8 is pressed

S-ar putea să vă placă și