Design and Implementation of a Digital Kabaddi Scoreboard Using AT89S52 Microcontroller
Mini-Project Report
Submitted by: Malavika
              M.Harshavardhan B231060EC
              M.Mohan Sandeep B231066EC
Department of Electronics and Communication Engineering
National Institute of Technology, Calicut
Date of Submission: March 26, 2025
1. INTRODUCTION
Kabaddi is a fast-paced sport requiring real-time scorekeeping for efficient game management.
Traditional manual scoreboards are prone to human errors, leading to misinterpretation of match
outcomes. This project aims to design a Digital Kabaddi Scoreboard using the AT89S52
microcontroller, where scores and player counts automatically update based on button inputs for
different scoring events.
Key Features of the Scoreboard:
• 7-segment displays to show:
o Team scores (0-99)
o Active player count (0-7)
• Automatic rule enforcement, including:
o Player elimination upon an opponent's score
o Bonus points when an opponent has 6 or 7 players
o All Out rule, where all players are restored after elimination
• Debouncing technique for smooth button response
• Proteus simulation to test the design before hardware implementation
 2. MATERIALS REQUIRED
 Component                    Specification/Quantity         Purpose
 AT89S52 Microcontroller      1                              Controls scoreboard logic
 7-Segment Display (Common                                   Displays team scores and player
                           4 (2 per team)
 Anode)                                                      counts
 7447 BCD-to-7-Segment                                       Converts BCD output to drive 7-
                              2
 Decoder                                                     segment displays
 Push Buttons                 5                              Inputs for score, bonus, and reset
                              10kΩ (pull-down), 330Ω (for
 Resistors                                                   Used for circuit stability
                              LEDs)
 Capacitors                     10µF, 0.1µF                     Used for debouncing and filtering
                                                                Provides clock signal for
 Crystal Oscillator             11.0592 MHz
                                                                microcontroller
                                                                Provides necessary voltage for the
 Power Supply                   5V DC
                                                                circuit
 Breadboard / PCB               1                               Used for circuit assembly
 Connecting Wires               As required                     Used for circuit connections
3. OBJECTIVES
3.1 Technical Objectives
• Develop a real-time digital scoreboard using AT89S52.
• Implement automatic scoring logic based on Kabaddi rules.
• Display scores and player counts using 7-segment displays.
• Ensure smooth button response via software debouncing.
• Validate functionality using Proteus simulation before deployment.
3.2 Practical Objectives
• Improve game management with an error-free automatic scoreboard.
• Reduce reliance on manual scorekeeping, minimizing human errors.
• Provide hands-on embedded systems experience through real-world application.
4. BACKGROUND
4.1 The Game of Kabaddi
Kabaddi is a team sport played between two teams of seven players each. The objective is to tag
opponents and return safely without being tackled. The following rules affect the scoreboard:
• Each successful raid earns 1 point, and an opponent player is eliminated.
• When a team loses all its players, the opponent gets 2 extra points (All Out), and the eliminated
team is restored to 7 players.
• Bonus points are awarded when the opponent has 6 or 7 players, but these do not reduce the
opponent’s player count.
4.2 AT89S52 Microcontroller
The AT89S52 is an 8-bit microcontroller with 40 pins, commonly used in embedded applications. It
features:
• 4 I/O ports (P0-P3)
• On-chip RAM and ROM
• Timer and counter functionalities
• Serial communication support
This microcontroller is ideal for our scoreboard due to its multiple I/O pins and ease of interfacing
with 7-segment displays and push buttons.
5. METHODOLOGY
5.1 System Overview
The system consists of:
• AT89S52 Microcontroller → Processes inputs and updates displays.
• Push Buttons → Inputs for scoring, bonus points, and reset.
• 7-Segment Displays (Common Anode) → Shows scores and player counts.
• 7447 BCD-to-7-Segment Decoder → Converts BCD data to drive the display.
5.2 Circuit Connections
Microcontroller Pin Connected To               Function
P3.0                 Score_TeamA Button        Increases Team A's score
P3.1                 Bonus_TeamA Button        Adds a bonus point for Team A
P3.2                 Score_TeamB Button        Increases Team B's score
P3.3                 Bonus_TeamB Button        Adds a bonus point for Team B
P3.4                 Reset Button              Resets the scores and players
P2                   7447 IC (Score Displays) Sends BCD data for scores
P1                   7447 IC (Player Displays) Sends BCD data for players
5.3 Software Implementation
The program is written in Embedded C and compiled using Keil C.
#include <reg51.h>
sbit Score_TeamA = P3^0;
sbit Bonus_TeamA = P3^1;
sbit Score_TeamB = P3^2;
sbit Bonus_TeamB = P3^3;
sbit Reset_Button = P3^4;
unsigned char scoreA = 0, scoreB = 0;
unsigned char playersA = 7, playersB = 7;
void UpdateDisplay() {
  P2 = ((scoreA / 10) << 4) | (scoreA % 10);
  P0 = ((scoreB / 10) << 4) | (scoreB % 10);
  P1 = ((playersA & 0x0F) << 4) | (playersB & 0x0F);
}
void Delay(unsigned int time) {
    unsigned int i, j;
    for(i = 0; i < time; i++)
        for(j = 0; j < 1275; j++);
void ResetGame() {
    scoreA = 0;
    scoreB = 0;
    playersA = 7;
    playersB = 7;
    UpdateDisplay();
void TeamAScores() {
    if (scoreA < 99) scoreA++;
    if (playersB > 0) playersB--;
    if (playersB == 0) {
        scoreA += 2;
        playersB = 7;
    UpdateDisplay();
void TeamABonus() {
    if (playersB == 6 || playersB == 7) {
        if (scoreA < 99) scoreA++;
        UpdateDisplay();
    }
}
void TeamBScores() {
    if (scoreB < 99) scoreB++;
    if (playersA > 0) playersA--;
    if (playersA == 0) {
        scoreB += 2;
        playersA = 7;
    UpdateDisplay();
void TeamBBonus() {
    if (playersA == 6 || playersA == 7) {
        if (scoreB < 99) scoreB++;
        UpdateDisplay();
void main() {
    P2 = 0x00;
    P0 = 0x00;
    P1 = 0x00;
    while(1) {
        if (Reset_Button == 0) {
          Delay(50);
          if (Reset_Button == 0) {
              ResetGame();
              while (Reset_Button == 0);
          }
}
if (Score_TeamA == 0) {
    Delay(50);
    if (Score_TeamA == 0) {
        TeamAScores();
        while (Score_TeamA == 0);
if (Bonus_TeamA == 0) {
    Delay(50);
    if (Bonus_TeamA == 0) {
        TeamABonus();
        while (Bonus_TeamA == 0);
if (Score_TeamB == 0) {
    Delay(50);
    if (Score_TeamB == 0) {
        TeamBScores();
        while (Score_TeamB == 0);
if (Bonus_TeamB == 0) {
    Delay(50);
    if (Bonus_TeamB == 0) {
        TeamBBonus();
        while (Bonus_TeamB == 0);
            }
6. RESULTS AND DISCUSSION
The system accurately updated scores and player counts based on button inputs. The 7-segment
displays correctly reflected the game status, ensuring smooth and reliable functionality. The All Out
and bonus point rules were successfully implemented. Testing validated that the scoreboard
functioned without errors, demonstrating high accuracy in scorekeeping.
7. OBSERVATION
The digital scoreboard responded efficiently to inputs, with no noticeable delays. The debouncing
technique effectively prevented false triggers. The Proteus simulation closely matched real-world
performance.