SOIP
SOIP
on
EMBEDDED SYSTEMS
Submitted by
ANAPARTHI GNANA KUSUMA (23501A0406)
GARLAPATI LALITHA VASAVI (23501A0437)
GOLLA SUJANA SRI (23501A0439)
GUDURU RESHMA SRI (23501A0442)
KUNDETI CHAITANYA SAI (23501A463)
DEPARTMENT OF
I
CERTIFICATE
Signature Signature
II
DECLARATION
The project has been carried out under the guidance of Mr. B. Mahidhar,
Executive Technical, APSSDC. We further declare that this report has
not been submitted previously, either in whole or in part, for the award of
any degree, diploma, or certificate by any other institution.
Team Members
III
ACKNOWLEDGEMENTS
Place: ____________
Date: ____________
IV
ABSTRACT
The system uses an IR sensor to detect helmet usage and an MQ-3 alcohol
sensor to detect the presence of alcohol in the rider's breath. These sensor
outputs are processed by the AT89C51 microcontroller, which makes the
ignition decision based on predefined conditions. If both safety conditions
are satisfied, the controller activates a relay to enable the ignition and turns
on the green LED. If either condition is not met, the relay remains OFF, the
red LED glows, and a buzzer alerts the rider.
V
TABLE OF CONTENTS
[Link]. TITLE [Link].
1 INTRODUCTION
1.1 Introduction
1.2 Project introduction 1-4
1.3 Objectives of the project
1.4 Motivation of the project
1.5 Need for the project
2 LITERATURE REVIEW
2.1 Embedded Systems
2.2 Road Safety Systems and Intelligent Transportation
Technologies
2.3 AT89C51 Microcontroller
2.4 16×2 LCD Display 5-30
2.5 Relay and Relay Driver Circuit
2.6 Crystal Oscillator and Reset Circuit
2.7 Push Button Switches as Digital Input Devices
2.8 Dc Motor and Ignition Control System
2.9 Keil µvision4 Development Environment
2.10 Proteus 8 Professional
6 REFERENCES 56
VI
LIST OF FIGURES
VII
[Link]
1.1 Introduction
Road transportation has become one of the most essential modes of travel in modern
society. With the increasing number of vehicles on the road, ensuring rider safety has
become a major concern. Despite the availability of traffic regulations and safety
equipment, accidents involving two-wheelers continue to increase due to negligence
and unsafe riding practices.
Although governments have implemented strict traffic rules and awareness programs
to encourage safe riding, violations still occur frequently. Manual monitoring and
enforcement alone are often insufficient to prevent such incidents. Therefore, there is a
growing need for intelligent safety systems that can automatically ensure compliance
with essential safety measures before a vehicle is allowed to operate.
Embedded systems have emerged as an effective solution for developing smart safety
applications in the automotive sector. By integrating microcontrollers with electronic
sensing and control techniques, it is possible to automate safety checks, reduce human
errors, and improve overall road safety. These systems provide fast, reliable, and
efficient operation while requiring minimal user intervention.
1
1.2 PROJECT INTRODUCTION
HELMET AND ALCOHOL DETECTION WITH IGNITION CONTROL
The Helmet and Alcohol Detection with Ignition Control system is an embedded
system designed to improve the safety of two-wheeler riders by ensuring that the
vehicle ignition is enabled only when predefined safety conditions are met. The primary
objective of this system is to encourage responsible riding practices and reduce
accidents caused by riding without a helmet or under the influence of alcohol.
The system is built around the AT89C51 microcontroller, which acts as the central
processing unit. It continuously monitors two input conditions representing helmet
detection and alcohol detection. In this simulation-based implementation, these
conditions are represented using push-button switches in Proteus instead of physical
sensors. Based on the status of these inputs, the microcontroller controls the ignition
relay, DC motor, LCD display, LEDs, and buzzer.
When the rider is wearing a helmet and no alcohol is detected, the microcontroller
activates the relay, allowing the DC motor (representing the vehicle ignition) to operate.
The system also turns ON the green LED and displays "SAFE TO RIDE" and
"IGNITION ON" on the LCD. If either the helmet is not worn or alcohol is detected,
the relay remains deactivated, the ignition is disabled, the red LED and buzzer are
activated, and the LCD displays an appropriate warning message indicating the unsafe
condition.
The embedded program for this project is developed using Embedded C in Keil
µVision4, and the circuit is designed and simulated using Proteus 8 Professional. The
generated HEX file is loaded into Proteus to verify the operation of the complete system
under different conditions.
2
1.3 OBJECTIVES OF THE PROJECT
The main objectives of the Helmet and Alcohol Detection with Ignition Control project
are:
1. To improve rider safety by allowing the vehicle ignition to operate only when
the required safety conditions are satisfied.
6. To control the vehicle ignition through a relay and DC motor based on the input
conditions.
7. To provide visual indications using green and red LEDs to inform the rider
about the system status.
10. To develop and simulate the complete system using Keil µVision4 for
Embedded C programming and Proteus 8 Professional for circuit design and
simulation.
11. To understand the practical application of embedded systems in automotive
safety and vehicle ignition control.
12. To provide a scalable design that can be upgraded in the future by replacing the
simulated switches with actual helmet detection and alcohol sensors for real-
time implementation.
3
1.4 MOTIVATION OF THE PROJECT
Road safety has become a major concern due to the increasing number of accidents
involving two-wheelers. A large percentage of these accidents occur because riders
neglect basic safety measures such as wearing helmets and avoiding alcohol before
riding. Such negligence often results in serious injuries and loss of life. Although traffic
regulations mandate the use of helmets and prohibit drunk driving, ensuring compliance
through manual monitoring alone is difficult.
The motivation behind this project is to explore how embedded systems can be used to
promote safer riding practices by introducing an automated ignition control mechanism.
The idea is to demonstrate how technology can help reduce human errors and encourage
riders to follow essential safety rules before operating a vehicle.
In addition to addressing a real-world safety problem, this project provides practical
exposure to microcontroller programming, circuit design, LCD interfacing, relay
control, and embedded system simulation. It also helps in understanding how embedded
systems can be applied to develop intelligent and reliable automotive safety solutions.
An automated vehicle safety system can help overcome these limitations by verifying
essential safety conditions before allowing the vehicle ignition to operate. Such a
system encourages responsible riding behaviour and improves overall road safety by
reducing dependence on manual supervision.
This project demonstrates the use of an embedded system to automate ignition control
based on predefined safety conditions. Although the current implementation is
developed as a simulation, it provides a strong foundation for future real-time
applications using actual helmet detection and alcohol sensing devices. It also serves as
a learning platform for understanding embedded system design, automation, and
automotive safety technologies.
4
2. LITERATURE REVIEW
2.1 Embedded Systems
An embedded system is a specialized computing system designed to perform one or
more dedicated functions within a larger mechanical or electrical system. Unlike
general-purpose computers, which are designed to execute a wide variety of
applications, embedded systems are developed to carry out specific tasks with high
efficiency, reliability, and accuracy. These systems combine both hardware and
software components to achieve real-time operation while consuming minimal power
and resources.
The rapid advancement of electronics and semiconductor technology has led to the
widespread adoption of embedded systems across various industries, including
automotive, healthcare, consumer electronics, industrial automation, aerospace,
telecommunications, and smart home applications. Today, embedded systems are
considered the backbone of modern electronic devices because they provide intelligent
control and automation while reducing human intervention.
Embedded systems can be classified into several categories based on their complexity
and application requirements. Standalone embedded systems operate independently
and perform dedicated functions without requiring a host computer. Real-time
embedded systems are designed to produce outputs within strict timing constraints.
Networked embedded systems communicate with other devices through wired or
wireless communication networks, while mobile embedded systems are optimized for
portable electronic devices with low power consumption.
The advantages of embedded systems include compact size, low power consumption,
high reliability, fast response, cost-effectiveness, and ease of integration with electronic
devices. Since these systems are designed for specific applications, they require less
memory and computational resources than general-purpose computers, making them
suitable for large-scale deployment in consumer and industrial products.
5
In the automotive sector, embedded systems play a significant role in enhancing vehicle
performance, safety, and comfort. They are used in applications such as electronic fuel
injection, anti-lock braking systems (ABS), airbag deployment, cruise control, engine
management, climate control, parking assistance, and intelligent driver assistance
systems. These technologies have transformed conventional vehicles into smart
systems capable of making autonomous decisions based on real-time input data.
The continuous growth of the Internet of Things (IoT), Artificial Intelligence (AI), and
smart transportation systems has further increased the importance of embedded
systems. Modern vehicles now integrate multiple embedded controllers that
communicate with one another to improve operational efficiency and passenger safety.
As technology continues to evolve, embedded systems will remain one of the most
important fields in electronics and communication engineering, enabling the
development of intelligent, reliable, and automated solutions for a wide range of real-
world applications.
6
2.2 ROAD SAFETY SYSTEMS AND INTELLIGENT
TRANSPORTATION TECHNOLOGIES
Road transportation is one of the most widely used modes of travel across the world.
Every day, millions of people depend on roads for commuting, business, education, and
the transportation of goods. While transportation plays a vital role in economic and
social development, the increasing number of vehicles on the road has also led to a
significant rise in road accidents. According to global road safety reports, road traffic
accidents are among the leading causes of death and serious injuries, particularly among
young adults. Two-wheeler riders are especially vulnerable because they have limited
physical protection compared to occupants of four-wheeled vehicles.
The major causes of road accidents include over speeding , distracted driving, violation
of traffic rules, poor road conditions, mechanical failures, riding without protective
equipment, and driving under the influence of alcohol or drugs. Among these factors,
failure to wear a helmet and alcohol consumption before riding are considered two of
the most critical causes of fatal motorcycle accidents. These issues highlight the
importance of implementing effective road safety measures that can protect riders and
reduce the number of preventable accidents.
Road safety systems are developed to minimize these risks by improving vehicle safety,
assisting drivers, and encouraging responsible road behaviour. These systems combine
engineering principles, electronic technologies, traffic regulations, and public
awareness programs to create a safer transportation environment. Governments across
the world have introduced compulsory helmet laws, alcohol testing regulations, speed
limits, and strict penalties for traffic violations. However, despite these efforts,
accidents continue to occur due to human negligence and the lack of continuous
monitoring.
One of the major developments in this field is the Intelligent Transportation System
(ITS). ITS is an integrated application of information technology, communication
systems, and electronics to improve the safety, efficiency, and sustainability of
transportation networks. These systems collect real-time information from vehicles and
road infrastructure, process the data, and provide appropriate responses to enhance
traffic management and road safety.
Modern vehicles are equipped with several intelligent safety technologies such as Anti-
lock Braking Systems (ABS), Electronic Stability Control (ESC), Traction Control
7
Systems (TCS), Airbag Control Units, Adaptive Cruise Control (ACC), Lane Departure
Warning Systems, and Collision Avoidance Systems. These technologies continuously
monitor vehicle performance and assist the driver during critical situations. In recent
years, advanced driver assistance systems (ADAS) have further improved vehicle
safety by integrating cameras, radar, ultrasonic sensors, and artificial intelligence.
Although advanced safety technologies are widely available in premium vehicles, they
are often expensive and difficult to implement in low-cost motorcycles. Therefore,
researchers continue to develop simple, economical, and reliable embedded safety
systems that can improve rider safety while remaining affordable. Such developments
play an important role in reducing road accidents and promoting safer transportation
practices.
8
2.3 AT89C51 MICROCONTROLLER
2.3.1 Introduction
The AT89C51 is an 8-bit microcontroller developed by Atmel (now part of Microchip
Technology) and belongs to the popular 8051 family of microcontrollers. Since its
introduction, the AT89C51 has been widely used in embedded system applications due
to its simple architecture, reliable performance, low cost, and ease of programming. It
is commonly used in educational institutions, industrial automation, home appliances,
consumer electronics, automotive control systems, and communication devices.
The AT89C51 provides 32 programmable Input/Output (I/O) pins, arranged into four
8-bit ports: Port 0 (P0), Port 1 (P1), Port 2 (P2), and Port 3 (P3). These ports enable the
microcontroller to communicate with external devices such as LCD displays, switches,
LEDs, buzzers, relays, and motors. Each port can be configured either as an input or an
output depending on the application requirements.
9
The microcontroller also includes several built-in peripherals that enhance its
functionality. These include two 16-bit timers/counters, a full-duplex serial
communication interface (UART), five interrupt sources, and an on-chip oscillator
circuit. These features simplify hardware design and reduce the need for additional
external components.
To operate correctly, the AT89C51 requires an external 11.0592 MHz crystal oscillator
connected to its oscillator pins (XTAL1 and XTAL2). The crystal generates the clock
signal that synchronizes all internal operations of the microcontroller. A reset circuit,
consisting of a push button, resistor, and capacitor, is also provided to initialize the
microcontroller whenever power is applied or when a manual reset is required.
• On-chip Oscillator.
• Operates at 5 V DC.
10
2.3.3 Applications of AT89C51
The AT89C51 is widely used in:
11
2.4 16 × 2 LCD DISPLAY
2.4.1 Introduction
A Liquid Crystal Display (LCD) is one of the most widely used electronic display
devices in embedded systems. It is designed to display text, numbers, symbols, and
simple characters in a clear and energy-efficient manner. Compared to traditional
display technologies such as Light Emitting Diodes (LEDs) or Cathode Ray Tube
(CRT) displays, LCDs consume very little power while providing good visibility and
readability. Due to these advantages, LCD modules are extensively used in industrial
control systems, consumer electronics, medical instruments, communication devices,
and educational embedded system projects.
Among the various types of LCD modules, the 16×2 alphanumeric LCD is one of the
most popular because of its simple interfacing and ability to display two lines of sixteen
characters each. It is commonly used to provide users with real-time information such
as system status, warning messages, sensor readings, menu options, and operating
conditions. The LCD improves user interaction by presenting information in a clear and
organized format.
The working principle of an LCD is based on the optical properties of liquid crystal
molecules. These molecules do not emit light on their own but control the passage of
light when an electric field is applied. The display consists of a layer of liquid crystals
placed between two polarized glass plates. When voltage is applied, the orientation of
the liquid crystal molecules changes, allowing specific segments or characters to
become visible. Most embedded system LCD modules also include a backlight, making
the displayed characters visible under low-light conditions.
A standard 16×2 LCD module contains 16 pins, each performing a specific function.
The power supply pins (VSS and VDD) provide the operating voltage, while the VEE
pin is used to adjust the display contrast through a potentiometer. Three control pins—
Register Select (RS), Read/Write (R/W), and Enable (EN)—are responsible for
selecting commands or data, determining the direction of data transfer, and enabling
communication with the microcontroller. The remaining eight pins (D0–D7) form the
data bus through which commands and character data are transmitted.
LCD modules can operate in either 8-bit mode or 4-bit mode. In 8-bit mode, all eight
data lines are used, enabling faster communication but requiring more microcontroller
pins. In contrast, 4-bit mode uses only four data lines, reducing the number of required
connections while slightly increasing the communication time. The choice between
these modes depends on the application's hardware requirements and the availability of
input/output pins.
Communication between the microcontroller and the LCD is performed using a set of
predefined commands. These commands control operations such as display
initialization, cursor positioning, clearing the display, enabling or disabling the cursor,
12
and writing characters to specific locations on the screen. Proper initialization is
essential before displaying any information, ensuring that the LCD operates in the
desired mode.
The 16×2 LCD has become a standard display device in embedded system development
because it is inexpensive, reliable, easy to interface, and supported by almost all popular
microcontrollers. It allows developers to monitor system operation during testing and
provides users with meaningful information without requiring complex graphical
interfaces.
13
2.4.4 Advantages of LCD Displays
The LCD provides several advantages over other display technologies:
14
2.5 Relay and Relay Driver Circuit
2.5.1 Introduction
A relay is an electrically operated switching device used to control high-power
electrical loads using a low-power control signal. It provides electrical isolation
between the control circuit and the load circuit, making it one of the most widely used
components in industrial automation, automotive electronics, power systems, and
embedded control applications. In embedded systems, a microcontroller alone cannot
directly drive high-current devices such as motors, pumps, lamps, or solenoid valves
because its output pins can supply only a limited amount of current. Therefore, a relay
driver circuit is used as an interface between the microcontroller and the high-power
load.
Relays are generally classified according to the number of poles and throws. One of the
most commonly used types in embedded systems is the Single Pole Double Throw
(SPDT) relay, which provides three switching terminals: Common (COM), Normally
Open (NO), and Normally Closed (NC). The COM terminal is the movable contact
that switches between the NO and NC terminals depending on the energization of the
relay coil.
In many embedded applications, the relay coil requires a current much higher than the
output capability of the microcontroller. Therefore, a relay driver circuit is used to
amplify the control signal. The driver circuit usually consists of an NPN transistor,
such as the BC547, which acts as an electronic switch. When the microcontroller
outputs a HIGH signal, the transistor enters saturation and allows current to flow
through the relay coil, energizing the relay. When the output becomes LOW, the
transistor turns OFF, interrupting the current through the coil and de-energizing the
relay.
One important component used in every relay driver circuit is the flyback diode,
commonly a 1N4007 diode. When the relay coil is switched OFF, the collapsing
magnetic field generates a high reverse voltage known as back electromotive force
(Back EMF). This voltage can damage the transistor and even the microcontroller. The
flyback diode is connected across the relay coil in reverse bias and safely dissipates this
reverse voltage, thereby protecting the driver circuit from electrical damage.
15
In automotive and industrial applications, relays are widely used for controlling ignition
systems, lighting circuits, fuel pumps, cooling fans, horns, and various high-current
electrical devices. They provide reliable switching, excellent electrical isolation, and
long operational life while allowing low-voltage electronic circuits to safely control
high-power loads.
• Relay coil
• 5 V power supply
FIG 2.5 RELAY TERMINALS
The transistor amplifies the current supplied by the microcontroller, while the diode
protects the circuit from reverse voltage generated by the relay coil.
Common (COM)
The COM terminal is the movable contact that switches between the NO and NC
terminals.
The NO terminal remains disconnected from COM when the relay coil is OFF. When
the relay is energized, COM connects to NO, allowing current to flow to the load.
16
The NC terminal remains connected to COM when the relay is OFF. Once the relay is
energized, this connection is broken.
• Industrial automation
• Home automation
• Robotics
17
one of the most important interfacing components in automation and control
applications.
The AT89C51 microcontroller does not have an internal clock generator; therefore, it
requires an external crystal oscillator
connected between the XTAL1 and XTAL2
pins. In most embedded applications, an
11.0592 MHz quartz crystal is used because it
provides stable clock generation and supports
accurate serial communication. This frequency
is particularly suitable for UART-based
communication since it allows standard baud
rates such as 9600 bps, 4800 bps, and 19200 FIG 2.6 CRYSTAL
bps to be generated with minimum timing error.
A quartz crystal operates on the piezoelectric effect. When an electric field is applied
across the crystal, it vibrates at its natural resonant frequency. These vibrations are
converted into a stable electrical signal, which serves as the clock source for the
microcontroller. Compared to RC oscillators, quartz crystal oscillators provide
significantly higher accuracy, frequency stability, and reliability.
To ensure stable oscillation, two 33 pF ceramic capacitors are connected between the
crystal terminals and ground. These capacitors form part of the oscillator circuit and
help maintain proper resonance while reducing electrical noise. Together, the crystal
and capacitors generate a continuous clock signal that synchronizes all internal
operations of the AT89C51.
The frequency of the crystal directly affects the execution speed of the microcontroller.
A higher frequency allows the processor to execute instructions more quickly, whereas
a lower frequency reduces processing speed but may decrease power consumption. The
11.0592 MHz crystal offers an excellent balance between performance, timing
accuracy, and compatibility with standard embedded applications.
The crystal oscillator plays a vital role in maintaining reliable operation of the
embedded system. Any instability in the clock signal can lead to incorrect program
execution, communication errors, and unpredictable system behaviour. Therefore,
18
selecting an appropriate crystal frequency and correctly connecting the oscillator circuit
are essential aspects of embedded hardware design.
The reset circuit used with the AT89C51 generally consists of:
• 10 µF Electrolytic Capacitor
• 10 kΩ Resistor
When power is switched ON, the capacitor initially behaves like a short circuit,
producing a HIGH pulse at the RESET pin. This pulse keeps the microcontroller in the
reset state for a short duration, allowing the power supply and oscillator to stabilize. As
the capacitor charges through the resistor, the RESET pin gradually returns to LOW,
and the microcontroller begins normal program execution.
The push-button switch enables manual resetting of the system. Whenever the button
is pressed, the RESET pin is driven HIGH, forcing the microcontroller to restart. This
feature is particularly useful during program testing, debugging, and simulation because
it allows the system to be reinitialized without disconnecting the power supply.
A properly designed reset circuit ensures reliable system startup and prevents
unpredictable behaviour caused by unstable supply voltage during power-on
conditions. Without an effective reset circuit, the microcontroller may begin executing
incorrect instructions, leading to system malfunction or communication errors.
Together, these two circuits improve system reliability, ensure proper initialization,
simplify debugging, and contribute to the overall stability of embedded applications
19
2.6.4 Advantages
• Provides a stable and accurate clock signal.
2.6.5 Applications
Crystal oscillator and reset circuits are used in:
• Microcontroller-based systems
• Industrial automation
• Consumer electronics
• Communication equipment
• Robotics
20
2.7 PUSH BUTTON SWITCHES AS DIGITAL INPUT DEVICES
2.7.1 Introduction
A push button switch is one of the simplest and most commonly used input devices in
electronic and embedded systems. It is a manually operated electromechanical switch
that is used to open or close an electrical circuit by applying physical pressure. Push
buttons are widely used in industrial control panels, consumer electronics, household
appliances, automation systems, educational kits, and microcontroller-based
applications. Due to their simple construction, ease of operation, low cost, and high
reliability, push buttons are considered ideal input devices for both hardware
implementation and simulation.
In embedded systems, push buttons serve as digital input devices that allow users to
provide commands or simulate external events. When connected to a microcontroller,
a push button changes the logic level of an input pin from LOW (0) to HIGH (1) or
vice versa. The microcontroller continuously monitors these logic levels and executes
the corresponding program instructions. This simple method enables users to interact
with the system without requiring complex input hardware.
Push buttons are particularly useful during the development and testing phase of
embedded projects. Instead of using actual sensors or external modules, developers
often use push buttons to simulate different operating conditions. This approach
simplifies circuit design, reduces project cost, and allows the program logic to be tested
before integrating real hardware. Once the software has been verified, the push buttons
can easily be replaced with appropriate sensors without changing the basic program
structure.
Push buttons are available in different forms, including Normally Open (NO) and
Normally Closed (NC) types. A Normally Open push button remains disconnected
when it is not pressed. When the button is pressed, the contacts close, allowing current
to flow through the circuit. In contrast, a Normally Closed push button remains
connected in its normal state and opens the circuit only when it is pressed. Among these
two types, the Normally Open push button is most commonly used in embedded system
applications.
To ensure stable digital input, push buttons are generally connected with pull-up or
pull-down resistors. These resistors prevent the input pin from remaining in an
undefined or floating state when the button is not pressed. A floating input may
randomly change between HIGH and LOW due to electrical noise, resulting in
unpredictable system behaviour. Proper use of pull-up or pull-down resistors ensures
that the microcontroller always receives a well-defined logic level.
One practical issue associated with mechanical push buttons is switch bouncing. When
a button is pressed or released, the internal contacts may vibrate for a few milliseconds
before settling into a stable position. This produces multiple rapid transitions that can
21
be interpreted as several button presses by the microcontroller. To overcome this
problem, software or hardware debouncing techniques are used. In software
debouncing, the microcontroller introduces a short delay after detecting a button press,
allowing the signal to stabilize before processing the input.
Push buttons continue to play an important role in embedded system education and
product development because they provide a simple and effective method for testing
digital input logic. They are extensively used in simulation software such as Proteus,
where different system conditions can be verified without requiring physical sensors or
complex external hardware.
• Compact size.
• Reliable switching performance.
2.7.3 Advantages
Push-button switches offer several advantages in embedded applications:
• Easy to operate.
• Low power consumption.
22
2.7.4 Applications
Push-button switches are commonly used in:
• Home appliances.
• Computer keyboards.
• Electronic toys.
• Laboratory experiments.
• Simulation-based projects.
• Automation systems.
23
2.8 DC MOTOR AND IGNITION CONTROL SYSTEM
2.8.1 Introduction
A Direct Current (DC) motor is an electromechanical device that converts electrical
energy into mechanical energy. It operates on the principle that a current-carrying
conductor placed in a magnetic field experiences a mechanical force, causing the motor
shaft to rotate. DC motors are widely used in automobiles, robotics, industrial
automation, conveyor systems, cooling fans, pumps, electric vehicles, and embedded
system applications due to their simple construction, easy speed control, and reliable
performance.
In embedded systems, DC motors are controlled using microcontrollers to automate
various mechanical operations. Since a microcontroller cannot directly supply the
current required by a motor, an interfacing circuit such as a relay or motor driver is
used. This allows the microcontroller to safely control the motor while protecting its
output pins from excessive current.
An ignition control system is responsible for allowing or preventing the operation of
a vehicle. In conventional vehicles, ignition is controlled manually using a key or push-
button start system. Modern vehicles, however, use electronic control units (ECUs) to
monitor safety conditions before enabling ignition. This improves vehicle security and
reduces the possibility of unsafe operation.
The DC motor is often used in simulation software such as Proteus to represent the
vehicle engine or ignition system. By controlling the motor through a relay, developers
can easily observe whether the embedded program correctly enables or disables the
ignition under different operating conditions.
24
2.8.3 Features
• Operates using DC supply.
• Simple construction.
• Smooth operation.
• Reliable performance. FIG 2.8 DC MOTOR IN PROTEUS
2.8.4 Advantages
• Simple to control.
• Low maintenance.
• High efficiency.
• Compact size.
• Cost-effective.
• Reliable operation.
2.8.5 Applications
• Electric vehicles.
• Conveyor systems.
• Industrial automation.
• Robotics.
• Home appliances.
• Laboratory experiments.
• Educational projects.
25
2.8.6 Importance in Embedded Systems
DC motors are widely used as output devices in embedded systems to perform
mechanical operations automatically. They demonstrate how electronic control signals
generated by a microcontroller can be converted into physical motion through
appropriate interfacing circuits such as relays or motor drivers.
26
2.9 KEIL µVISION4 DEVELOPMENT ENVIRONMENT
2.9.1 Introduction
Keil µVision4 is one of the most popular Integrated Development Environments (IDE)
used for programming 8051, ARM, and other microcontrollers. It provides a complete
platform for writing, editing, compiling, debugging, and testing Embedded C programs.
The software includes an editor, compiler, assembler, linker, debugger, and project
management tools within a single environment.
Features
• Embedded C compiler.
• Syntax highlighting.
• Error detection.
• Debugging tools.
• Project management.
• Fast compilation.
Advantages
• Easy to learn.
27
Applications
• Embedded software development.
• Educational laboratories.
• Industrial automation.
• Automotive electronics.
• Consumer electronics.
• Research and development.
28
2.10 PROTEUS 8 PROFESSIONAL
2.10.1 Introduction
Proteus 8 Professional is an advanced Electronic Design Automation (EDA) software
used for schematic capture, PCB design, and microcontroller simulation. It enables
engineers and students to design electronic circuits, test embedded programs, and verify
hardware functionality before constructing physical circuits.
Features
• Circuit schematic design.
• Microcontroller simulation.
• Real-time simulation.
Advantages
• Easy circuit design.
29
Applications
• Embedded system simulation.
• PCB design.
• Academic laboratories.
• Research projects.
30
[Link] DESIGN AND IMPLEMENTATION
3.1 INTRODUCTION TO SYSTEM DESIGN
The Helmet and Alcohol Detection with Ignition Control system is designed as an
embedded safety application that monitors predefined input conditions and controls the
vehicle ignition accordingly. The system combines hardware and software components
to perform real-time decision-making and provide visual and audible indications to the
user.
In the proposed design, the AT89C51 microcontroller acts as the central controller of
the system. It continuously reads the status of two push-button switches that simulate
helmet detection and alcohol detection. Based on the input conditions, the
microcontroller controls the relay, DC motor, LEDs, buzzer, and LCD display. The relay
is used to enable or disable the ignition motor, while the LCD provides status messages
such as “SAFE TO RIDE”, “WEAR HELMET”, and “ALCOHOL DETECTED”. The
green LED indicates a safe condition, whereas the red LED and buzzer indicate unsafe
conditions.
The hardware section of the system includes the AT89C51 microcontroller, 16×2 LCD
display, crystal oscillator, reset circuit, push-button switches, BC547 transistor, relay,
flyback diode, LEDs, buzzer, and DC motor. The crystal oscillator provides the clock
signal required for microcontroller operation, and the reset circuit ensures proper
initialization of the system during power-up.
The software for the project is developed using Embedded C in Keil µVision4. The
program implements the decision-making logic for ignition control and generates the
corresponding outputs. After compilation, a HEX file is generated and loaded into the
AT89C51 model in Proteus 8 Professional for simulation and testing.
31
3.2 System Overview
The proposed Helmet and Alcohol Detection with Ignition Control system is
designed as a microcontroller-based embedded application that demonstrates automatic
vehicle ignition control based on predefined safety conditions. The system has been
implemented using the AT89C51 microcontroller as the main processing unit and
simulated using Proteus 8 Professional. The program controlling the system is
developed in Embedded C using Keil µVision4.
The overall system consists of two push-button switches that are used to simulate the
helmet detection and alcohol detection conditions. These switches provide digital input
signals to the AT89C51 microcontroller. Instead of using physical helmet and alcohol
sensors, push buttons are employed during simulation to verify the program logic and
demonstrate the working of the proposed system. This approach simplifies testing while
maintaining the same decision-making process that would be used with actual sensors.
After power is supplied, the microcontroller initializes all peripherals, including the
LCD display, LEDs, buzzer, and relay control circuit. The LCD first becomes ready to
display system messages, while the microcontroller continuously monitors the status of
both push-button inputs.
The system operates according to three different operating conditions. When the helmet
switch is not activated, the microcontroller identifies that the rider is not wearing a
helmet. It immediately disables the relay, preventing the ignition motor from operating.
Simultaneously, the red LED glows, the buzzer sounds, and the LCD displays the
warning message "WEAR HELMET" followed by "IGNITION OFF". This
condition indicates that the vehicle is not allowed to start.
If the helmet condition is satisfied but the alcohol detection switch indicates an unsafe
condition, the microcontroller again disables the relay and prevents the motor from
running. In this case, the LCD displays "ALCOHOL DETECTED", while the red
LED and buzzer remain activated to alert the rider. This operating condition
demonstrates that the ignition system remains locked whenever alcohol is detected.
When the helmet condition is satisfied and alcohol is not detected, the microcontroller
considers the rider safe to operate the vehicle. It activates the relay through the BC547
transistor driver circuit, allowing current to reach the DC motor that represents the
vehicle ignition. At the same time, the green LED turns ON, the buzzer remains OFF,
and the LCD displays "SAFE TO RIDE" followed by "IGNITION ON". This
indicates that all safety conditions have been satisfied and the vehicle is permitted to
start.
The relay driver circuit provides electrical isolation between the low-power
microcontroller and the DC motor. The BC547 transistor supplies sufficient current to
energize the relay coil, while the 1N4007 diode protects the transistor from the reverse
voltage generated by the relay coil during switching operations. The DC motor is
connected through the relay contacts and represents the ignition system of the vehicle.
32
The LCD display provides continuous visual feedback regarding the current operating
condition of the system. The green LED indicates safe operation, whereas the red LED
and buzzer provide warning indications whenever any unsafe condition is detected.
These output devices improve user awareness and make the operation of the system
easy to understand during simulation.
The complete system has been successfully verified in the Proteus simulation
environment. Different combinations of the push-button inputs were tested to observe
the response of the LCD, LEDs, buzzer, relay, and DC motor. The observed results
confirm that the embedded program correctly controls the ignition system according to
the input conditions, demonstrating the effectiveness of the proposed design.
Operating Conditions
WEAR HELMET /
OFF OFF OFF ON ON OFF OFF
IGNITION OFF
SAFE TO RIDE /
ON OFF ON OFF OFF ON ON
IGNITION ON
33
3.3 Hardware Design
The hardware design of the proposed system integrates various electronic components
to implement the ignition control mechanism. The entire system is built around the
AT89C51 microcontroller, which acts as the central processing unit and coordinates the
operation of all input and output devices. The hardware has been designed to
demonstrate the functionality of helmet and alcohol detection using simple push-button
switches while controlling the ignition through a relay-operated DC motor.
The system operates on a regulated 5 V DC power supply, which provides the necessary
operating voltage for the microcontroller, LCD display, LEDs, relay driver, and other
peripheral devices. The clock required by the AT89C51 is generated using an 11.0592
MHz crystal oscillator along with two 33 pF capacitors, ensuring stable execution of
the Embedded C program.
The hardware design ensures proper isolation between the low-power control circuit
and the higher-current motor circuit. This arrangement protects the microcontroller
while allowing reliable operation of the ignition control mechanism. The overall
hardware is compact, economical, and suitable for embedded system demonstration and
educational applications.
34
COMPLETE HARDWARE DESIGN OF THE PROPOSED SYSTEM
35
3.4 Working Principle
The proposed Helmet and Alcohol Detection with Ignition Control system operates
by continuously monitoring two digital input switches that simulate the helmet
detection and alcohol detection conditions. The AT89C51 microcontroller serves as the
central controller and makes decisions based on the status of these input switches.
According to the programmed logic, it controls the relay, DC motor, LCD display,
LEDs, and buzzer to ensure safe vehicle operation.
When the system is powered ON, a regulated 5 V DC supply energizes the complete
circuit. The AT89C51 microcontroller initializes all peripherals, including the LCD
display, input ports, and output devices. After initialization, the LCD becomes ready to
display system status messages, and the microcontroller enters an infinite loop where it
continuously monitors the input conditions.
The first input checked by the microcontroller is the helmet switch connected to Port
P1.0. This switch simulates whether the rider is wearing a helmet. If the helmet switch
indicates that the helmet is not worn, the microcontroller immediately disables the
ignition system by turning OFF the relay. Since the relay is de-energized, the DC motor
representing the vehicle ignition remains OFF. At the same time, the red LED glows,
the buzzer is activated, and the LCD displays the message "WEAR HELMET"
followed by "IGNITION OFF". This condition prevents the vehicle from operating
until the helmet requirement is satisfied.
If the helmet condition is satisfied, the microcontroller proceeds to check the alcohol
switch connected to Port P1.1. This switch simulates the alcohol detection condition.
When the alcohol switch indicates that alcohol has been detected, the microcontroller
again disables the relay, preventing the ignition motor from running. The LCD displays
"ALCOHOL DETECTED", while the red LED and buzzer remain activated to warn
the rider. This operating condition demonstrates that the ignition system remains locked
whenever an unsafe condition is detected.
When the helmet switch indicates that the rider is wearing a helmet and the alcohol
switch indicates that alcohol is not detected, the microcontroller considers the rider
safe to operate the vehicle. It sends a HIGH signal to the relay driver circuit, which
energizes the relay through the BC547 transistor. As the relay contacts close, power is
supplied to the DC motor, allowing it to rotate and represent the vehicle ignition being
ON. Simultaneously, the green LED glows, the buzzer remains OFF, and the LCD
displays "SAFE TO RIDE" followed by "IGNITION ON".
Throughout the operation, the microcontroller continuously scans the input switches.
Whenever the status of either switch changes, the controller immediately updates the
output devices without requiring a system restart. This enables the system to respond
in real time to different operating conditions.
The relay driver circuit plays a vital role in controlling the ignition system. Since the
relay coil requires more current than the AT89C51 can provide, the BC547 transistor
36
acts as a current amplifier. A 1N4007 flyback diode is connected across the relay coil
to protect the transistor from the reverse voltage generated when the relay is switched
OFF.
The LCD display provides continuous visual information to the user, while the LEDs
and buzzer offer immediate visual and audible indications of the system status. The
combined operation of these components ensures that the simulated vehicle ignition is
enabled only when all safety conditions are satisfied.
The complete system has been verified using Proteus 8 Professional, where different
combinations of the helmet and alcohol switches were tested. The observed simulation
results confirm that the microcontroller successfully controls the relay, DC motor, LCD
display, LEDs, and buzzer according to the programmed logic, demonstrating the
effective implementation of the proposed ignition control system.
6. If alcohol is detected:
37
o Start the DC motor.
38
3.5 SOFTWARE DESIGN
3.5.1 Introduction
The software design of the proposed system focuses on developing a control program
that enables the AT89C51 microcontroller to monitor the input conditions and control
the output devices accordingly. The program was developed using Embedded C
language in the Keil µVision4 Integrated Development Environment (IDE). After
successful compilation, the generated HEX file was loaded into the AT89C51
microcontroller in Proteus 8 Professional to verify the operation of the complete
system through simulation.
The software continuously reads the status of the helmet and alcohol push-button
switches and executes the programmed decision-making logic. Based on the input
conditions, it controls the relay, DC motor, LCD display, LEDs, and buzzer. The
program operates continuously in an infinite loop, allowing the system to respond
immediately whenever the input status changes.
The software was designed with the following objectives:
The software follows a simple and modular approach. Separate functions are created
for LCD initialization, command transmission, data display, delay generation, and
status message display. This modular design improves program readability, simplifies
debugging, and makes future modifications easier.
Software Purpose
Keil µVision4 Writing, compiling, debugging, and generating the HEX file
39
3.5.3 Program Logic
The program begins by initializing the LCD display and configuring the required input
and output ports of the AT89C51 microcontroller. Once initialization is completed, the
controller continuously checks the status of the helmet and alcohol push-button
switches.
• If the helmet condition is satisfied but alcohol is detected, the relay remains
OFF, the motor remains stopped, the warning indicators are activated, and the
LCD displays "ALCOHOL DETECTED."
• If the helmet is worn and alcohol is not detected, the relay is energized, allowing
the motor to operate. The green LED glows, the buzzer is deactivated, and the
LCD displays "SAFE TO RIDE" and "IGNITION ON."
40
3.5.5 Algorithm
Step 1: Start the system.
Step 8: Otherwise:
41
3.6 FLOWCHART OF THE PROPOSED SYSTEM
START
Helmet Worn?
NO YES
Read Alcohol Switch
Relay OFF
Motor OFF
LCD Warning
YES NO
Figure 3.6: Flowchart of the Proposed Helmet and Alcohol Detection with Ignition Control System.
42
3.7 Program Development
3.7.1 Introduction
The software for the proposed Helmet and Alcohol Detection with Ignition Control
system was developed using Embedded C programming language in the Keil
µVision4 Integrated Development Environment (IDE). The primary objective of the
software is to continuously monitor the status of the helmet and alcohol input switches
and control the ignition system based on the programmed safety conditions.
The Embedded C program was designed using a modular approach, where different
functions were created for LCD initialization, LCD command transmission, data
display, delay generation, and status message display. This modular programming
technique improves code readability, simplifies debugging, and makes future
modifications easier.
After writing the program, it was compiled using the Keil C compiler. During
compilation, syntax and logical errors were identified and corrected. Once the program
compiled successfully, a HEX file was generated. This HEX file was then loaded into
the AT89C51 microcontroller in Proteus 8 Professional for simulation and
verification of the proposed system.
• Display Functions
43
3.7.3 Description of Program Modules
1. Delay Function
The delay function generates the required time delay for proper communication
between the AT89C51 microcontroller and the LCD display. It also provides sufficient
time for the relay and output devices to respond correctly before executing the next
instruction.
This function sends command instructions to the LCD display. It is responsible for
operations such as clearing the display, moving the cursor, selecting display lines, and
configuring the LCD during initialization.
The LCD data function transmits individual characters to the LCD. It enables the
display of letters, numbers, and symbols by sending ASCII data through the data bus.
Instead of displaying characters one by one, this function displays complete messages
on the LCD by repeatedly calling the LCD data function. It is used to display messages
such as:
• SAFE TO RIDE
• IGNITION ON
• WEAR HELMET
• ALCOHOL DETECTED
Before displaying any information, the LCD must be initialized. This function
configures the LCD for 16×2 operation, clears the display memory, sets the cursor
mode, and prepares the display for normal operation.
44
6. Display Functions
Separate display functions are created for different operating conditions. Each function
updates the LCD with the appropriate message according to the current system status.
These include:
• displayHelmet()
• displayAlcohol()
• displaySafe()
Using separate display functions reduces program complexity and improves readability.
The main() function acts as the heart of the software. It first initializes the LCD and
configures all required ports. After initialization, the program continuously checks the
status of the helmet and alcohol input switches.
Based on the input conditions, the controller performs the following operations:
This process continues indefinitely inside the infinite loop to provide continuous
monitoring of the system. Z
45
3.8 Source Code void lcd_init()
{
#include <REG51.H>
lcd_cmd(0x38);
#define LCD P0
lcd_cmd(0x0C);
sbit RS = P3^0;
lcd_cmd(0x06);
sbit RW = P3^1;
lcd_cmd(0x01);
sbit EN = P3^2;
delay(10);
sbit HELMET = P1^0;
}
sbit ALCOHOL = P1^1;
void displayHelmet()
sbit GREEN = P2^0;
{
sbit RED = P2^1;
lcd_cmd(0x01);
sbit BUZZER = P2^2;
lcd_string("WEAR HELMET");
sbit RELAY = P2^3;
lcd_cmd(0xC0);
unsigned char previous_state = 255;
lcd_string("IGNITION OFF");
void delay(unsigned int ms)
}
{
void displayAlcohol()
unsigned int i,j;
{
for(i=0;i<ms;i++)
lcd_cmd(0x01);
for(j=0;j<1275;j++);
lcd_string("ALCOHOL");
}
lcd_cmd(0xC0);
void lcd_cmd(unsigned char cmd)
lcd_string("DETECTED");
{
}
LCD = cmd;
void displaySafe()
RS = 0;
{
RW = 0;
lcd_cmd(0x01);
EN = 1;
lcd_string("SAFE TO RIDE");
delay(2);
lcd_cmd(0xC0);
EN = 0;
lcd_string("IGNITION ON");
if(cmd==0x01)
}
delay(5);
46
void lcd_data(unsigned char dat)
{
void main()
{ displayAlcohol();
lcd_init();
GREEN=0; previous_state=1;
RED=0; }
BUZZER=0; }
RELAY=0;
delay(50); else
while(1) {
{ if(previous_state!=2)
delay(5); {
GREEN=1;
if(HELMET==0) RED=0;
{ BUZZER=0;
if(previous_state!=0) RELAY=1;
{
GREEN=0; displaySafe();
RED=1;
BUZZER=1; previous_state=2;
RELAY=0; }
displayHelmet(); }
previous_state=0;
} delay(10);
} }
else if(ALCOHOL==0) }
{
if(previous_state!=1)
GREEN=0;
Figure 3.8: Embedded C Program for Helmet and
RED=1; Alcohol Detection with Ignition Control
BUZZER=1;
RELAY=0; 47
[Link] AND DISCUSSION
4.1 Introduction
The proposed Helmet and Alcohol Detection with Ignition Control system was
successfully implemented and verified using Proteus 8 Professional. The control
program was written in Embedded C using Keil µVision4, and the generated HEX file
was loaded into the AT89C51 microcontroller for simulation. Various input conditions
were tested using push-button switches to verify the operation of the LCD display,
LEDs, buzzer, relay, and DC motor. The simulation results confirmed that the system
responded correctly to each operating condition according to the programmed logic.
48
Case 1: Helmet Not Worn
Observation
When the helmet push button indicates that the rider is not wearing a helmet, the
microcontroller immediately disables the ignition system. The relay remains de-
energized, preventing power from reaching the DC motor. The LCD displays
"WEAR HELMET" on the first line and "IGNITION OFF" on the second line.
The red LED glows and the buzzer is activated to alert the rider.
Result
The ignition system remained disabled until the helmet condition was satisfied,
confirming the correct implementation of the safety logic
49
Case 2: Alcohol Detected
Observation
When the helmet condition is satisfied but the alcohol switch indicates an unsafe
condition, the microcontroller prevents the ignition from operating. The relay remains
OFF, the DC motor does not rotate, the red LED glows, and the buzzer sounds
continuously. The LCD displays the message "ALCOHOL DETECTED."
Result
The system correctly prevented ignition whenever alcohol was detected, demonstrating
proper implementation of the programmed safety condition.
50
Case 3: Safe to Ride
Observation
When the helmet switch indicates that the rider is wearing a helmet and the alcohol
switch indicates that alcohol is not detected, the microcontroller energizes the relay.
The relay connects the power supply to the DC motor, allowing it to rotate. The green
LED glows, the buzzer remains OFF, and the LCD displays "SAFE TO RIDE"
followed by "IGNITION ON."
Result
The system successfully enabled the ignition only when all safety conditions were
satisfied.
51
4.3 Result Analysis
The simulation results demonstrate that the proposed system operates according to the
designed control logic. The AT89C51 microcontroller continuously monitors the input
conditions and updates the output devices without delay. The LCD display provides
clear information regarding the current operating status, while the LEDs and buzzer
provide visual and audible indications of safe and unsafe conditions.
The relay driver circuit effectively controls the ignition motor without directly loading
the microcontroller output pins. Throughout the simulation, the relay responded
correctly to the control signals generated by the AT89C51, and the DC motor accurately
represented the ignition state.
The use of push-button switches successfully simulated the helmet and alcohol
detection conditions, allowing the complete software logic to be tested without physical
sensors. The system remained stable during repeated switching operations, indicating
reliable program execution and correct hardware interfacing.
4.4 Discussion
The results obtained from the Proteus simulation confirm that the proposed system
performs as intended. The AT89C51 microcontroller correctly interprets the status of
the helmet and alcohol input switches and controls the relay, LCD, LEDs, buzzer, and
DC motor according to the programmed safety conditions.
The LCD messages accurately reflect the operating status of the system, enabling the
user to understand whether the ignition is enabled or disabled. The relay successfully
controls the DC motor, which simulates the vehicle ignition. The warning indicators
effectively notify the user whenever an unsafe condition is detected.
Although push-button switches were used instead of actual helmet and alcohol sensors,
the implemented logic accurately represents how the system would function with real
sensors. This makes the project suitable for educational purposes and provides a strong
foundation for future hardware upgrades.
The simulation results demonstrate that the proposed embedded system is reliable, easy
to implement, and capable of improving vehicle safety by preventing unauthorized or
unsafe ignition conditions.
52
[Link] AND FUTURE SCOPE
5.1 Introduction
This chapter presents the overall conclusion of the proposed Helmet and Alcohol
Detection with Ignition Control system. It summarizes the outcomes achieved during
the implementation and simulation of the project. The chapter also discusses the
limitations of the current prototype and suggests possible enhancements that can be
incorporated in future versions to improve the functionality and practical usability of
the system.
• Provides clear visual and audible indications using the LCD, LEDs, and buzzer.
• Modular software structure makes the program easy to modify and maintain.
5.3 Limitations
Despite its successful implementation, the current system has certain limitations:
• Push-button switches are used instead of actual helmet and alcohol sensors.
• The system does not communicate with external devices or cloud platforms.
53
5.4 Future Scope
The proposed system can be further enhanced by incorporating modern technologies
and additional safety features. Some possible future improvements include:
• Use a fingerprint or RFID module for rider authentication before enabling the
ignition.
• Implement IoT technology to store ride information and safety data on a cloud
platform.
5.5 Conclusion
The Helmet and Alcohol Detection with Ignition Control system was successfully
designed, implemented, and verified using the AT89C51 microcontroller, Embedded
C, Keil µVision4, and Proteus 8 Professional. The project demonstrates how an
embedded system can be used to improve vehicle safety by controlling the ignition
based on predefined safety conditions.
In the developed prototype, push-button switches were used to simulate helmet
detection and alcohol detection. The AT89C51 microcontroller continuously monitored
these inputs and executed the programmed decision-making logic. Depending on the
input conditions, the controller successfully operated the relay, DC motor, LCD
display, LEDs, and buzzer. The LCD displayed appropriate messages, the LEDs
provided visual indications, and the buzzer generated audible alerts whenever an unsafe
condition was detected.
The simulation results confirmed that the ignition remained disabled whenever the
helmet condition was not satisfied or alcohol was detected. When both safety conditions
were met, the relay was energized, allowing the DC motor to operate and indicating
54
that the ignition was enabled. The observed outputs matched the expected behaviour
under all test cases, demonstrating the correctness of both the hardware design and the
Embedded C program.
Although the project uses push-button switches instead of actual sensors, it successfully
demonstrates the working principle of an intelligent ignition control system. The project
serves as a simple, reliable, and low-cost educational model for understanding
embedded system design, hardware interfacing, and microcontroller programming.
Overall, the objectives of the project were successfully achieved, and the proposed
system provides a strong foundation for implementing more advanced vehicle safety
applications.
55
5.6 Final Remarks
The proposed Helmet and Alcohol Detection with Ignition Control system
demonstrates the practical application of embedded systems in improving road safety.
By combining a microcontroller with simple input and output devices, the project
successfully controls the ignition based on predefined safety conditions. Although
implemented as a simulation using push-button switches, the system provides a clear
proof of concept and can be extended into a real-time vehicle safety solution by
integrating appropriate sensors and communication technologies.
56
REFERENCES
This section lists the books, software manuals, datasheets, and online resources used
during the project.
Books
1. Muhammad Ali Mazidi, Janice Gillispie Mazidi, and Rolin D. McKinlay, The
8051 Microcontroller and Embedded Systems, 2nd Edition, Pearson Education,
2008.
2. Kenneth J. Ayala, The 8051 Microcontroller, 3rd Edition, Cengage Learning.
Software References
Datasheets
7. AT89C51 Microcontroller Datasheet.
57