We may earn an affiliate commission when you visit our partners.
Smart Logic Academy

Course Highlights:

Read more

Course Highlights:

  • Learn 8051 micro-controller programming in detail using Embedded C and Assembly Language.

  • The course focuses on learning through a hands-on approach and straight-to-the-point explanation

  • Get the source code and simulation files on every program discussed.

  • Join the group of 4700+ students. 

  • Get Certification of completion

  • Test what you learned by solving MCQs after the videos.

  • Extra Learning material is provided for an absolute beginner.

     Number System & Binary Logics

  • Interview Questions and Answers

  • Bonus lectures on the "Basics of Embedded C programming"

Learn software:

         Programming software                   - KEIL IDE

         Simulation Software                        - PROTEUS

         Program downloading software    - FLASH Magic

Learn 8051 microcontroller interfacing with

  •  LEDs

  • LCD

  •  7 segments

  •  Switches

  •  Relays

  • Buzzer

  •  DC motor

  • Stepper Motor

  •  Analog to Digital Converter (ADC 0809)

  •  Temperature Sensor LM35

  •  Bluetooth Module HC-05

Learn 8051 microcontroller programming of

  •   I/O Ports

  •   Timer

  •   Counter

  •   Serial Communication (UART)

  •   Interrupts

Project 1: Speed control of DC motor and LED dimming using Pulse Width Modulation (PWM) technique. 

Project 2: Wireless control of LEDs using a Smartphone. 

Note: use headphones/headset for better voice quality.

Course details:

This course is intended to give you complete details of the hardware and software requirements of 8051 microcontroller programming. This course will help you to understand the working of  I/O ports, timers, counter, interrupt and serial communication (UART) in the microcontroller. You will be able to program the 8051 microcontroller using assembly and embedded c language. The course will explain the interfacing of LED, switch, LCD, and 7 segments with 8051 microcontrollers. This course will also help you to understand the process of burning the program into 8051 microcontroller and related terms hence will make you ready to create your own application project using 8051 microcontrollers. In the end, of course, you will be doing two application projects on 8051, one is a generation of PWM wave to control the speed of the DC motor and the second is wireless control of the device using your smartphone and 8051.

The course makes it so easy to learn 8051 microcontroller programming, you will be building and testing out your own programs in no time. The course is delivered in such a way that anyone who takes the course will have absolutely no problem in understanding all the topics discussed. This course is packed full of practical step-by-step examples so that you are coding 8051 from day one. The same practical example is discussed in both Embedded C and Assembly language.

I believe that doing practically without knowing the theory is half learning. Hence, In this course, he will cover all necessary theories related to 8051 before the practical session starts. I know your time is precious and hence delivers information straight to the point. The complexity of projects will gradually increase hence it is advised to watch videos the way they are arranged. In this course, all the features of basic 8051 microcontrollers are discussed. The code used in this course can run on any advanced 8051 microcontroller device. The number of timers, serial, interrupts, I/O ports and crystal frequency may vary depending on the microcontroller.

If anyone wants to learn microcontroller or microprocessor programming, one should start with 8051 microcontrollers because they are easy to understand and program. Knowledge of 8051 microcontroller programming with assembly language and embedded C language will make you future and you can learn any complex microcontroller and microprocessor very quickly. 

Latest Updates:

19/07/2024: based on student demand added bonus lectures on the "Basics of Embedded C programming"

Enroll now

What's inside

Learning objectives

  • You will be able to program 8051 microcontroller using assembly language and embedded c language
  • Embedded c programming
  • Assembly language programming
  • Understand the basic 8051 architecture and pin description
  • How to use keil software
  • Working of assembler and compiler
  • Coding and debugging of embedded c language in keil software
  • Use of assembly language and working of different assembly language instrutions
  • Relation between embedded c, assembly and machine code
  • Memory organisation in 8051
  • Registers in 8051
  • Addressing modes in 8051
  • Assembler directives in 8051
  • Working of assembly language instruction set in 8051
  • Coding and debugging of assembly language in keil software
  • Accurate delay generation using assembly language
  • Input-output ports in 8051 microcontroller
  • Timer in 8051 microcontroller
  • Serial communication in 8051 microcontroller
  • Interrupt in 8051 microcontroller
  • How to use proteus software
  • Interfacing with led
  • Interfacing with switch
  • Interfacing with lcd display
  • Interfacing with 7 segment display
  • Interfacing with dc motor
  • Interfacing with relay
  • How to burn the content of .hex file into flash memory of microcontroller
  • Project : speed control of dc motor and led dimming using pulse width modulation (pwm)
  • Project : wireless control of leds using smartphone
  • Bit masking in embedded c
  • Bit extracting in embedded c
  • Bit monitoring in embedded c
  • Keil ide
  • Proteus simulation software
  • Flash magic software
  • Number systems
  • Binary logics
  • Interview questions and answers
  • Buzzer working and it's interfacing with 8051
  • Unipolar stepper motor interfacing with 8051
  • Bipolar stepper motor interfacing with 8051
  • Analog to digital converter (adc) interfacing with 8051
  • Temperature sensor lm35 interfacing with 8051
  • Show more
  • Show less

Syllabus

Introduction

Course description and motivation.

This video explains the basic difference between  microcontroller and microprocessor.

Where to use microcontroller ?

where to use microprocessor ?

Read more

Intel MCS 8051 microcontroller features.

Explains building blocks of 8051 microcontroller ?

Explain the operations of CPU, RAM, ROM and peripherals etc.

Explains the use of each pin in 8051 microcontroller.

Minimum connection required in 8051 microcontroller to work.

Explains the relation between crystal and operating frequency

explains what is mean by machine cycles?

8051 Input/ Output Ports

Explains the need of pull up register and pull down register

Explains the working of Port P1 with internal port structure.

How to configure ports as input or output pin

Binary Logics and number system

Number System:

Decimal Number System

Binary Number System

Hexadecimal Number System

Logic Low and High

Gate working

AND

OR

Inverter

XOR

NAND

NOR

Embedded C programming

Procedure to install Keil software.

Proteus installation

Explains the working of C51 compiler

Learn about basic embedded c programming structure

8051 Data Types
8051 Logical and Bit-wise operators

Introduction to Keil software.

Explains the coding and debugging in Keil software

Led blinking code in embedded C language


Explanation: Why value is 113 for a 1-millisecond generation?

Answer:

Download the gif image file from this link. https://drive.google.com/open?...

In this, I have shown how you can see the " for loop " conversion into assembly language by C51 compiler of Keil software.

1 FOR LOOP iteration is made up of following instructions in assembly language

INC = 1 MC

CJNE = 2 MC

MOV = 1 MC

XRL = 1 MC

ORL =1 MC

JNZ = 2 MC

hence it takes 8 MC for the execution of 1 "for loop"

Note: 1MC = 1 machine cycle

for execution of 1 " for loop" iteration it takes approximately 8 machine cycles and you know that if my crystal oscillation frequency is 11.0592 MHz then 1mc = 1.085 us. so for execution of 1 iteration of for loop takes approximately 8 x 1.085 us = 8.68 us. therefor for 1 ms it will take (1ms / 8.68 us) = 115 iterations since outer "for loop" also takes some machine cycles to execute I took the approximate value as 113 iterations.


You will find answers to questions like how to burn .hex file? what is ISP? what is bootloader?

This video will help you to find answers to the following questions.

1. What is program burning?

2. How to dump code in .hex file into microcontroller flash memory?

3. What is Bootloader?

4. What is ISP?

5. What is microcontroller burner or programmer?

6. What is flash magic?

8. Tools required for burning process?

7.Step by step process of burning the program into the 8051 microcontroller?

Assembly Language Programming

You will learn the similarity in assembly language and Embedded C language coding.

Explains the working of A51 assembler

You will learn mnemonics, opcode and operand

You will learn RAM and ROM memory organisation, register banks, bit addressable memory, scratch pad area, stack memory and stack pointer

You will learn different registers in 8051.

A, B, R0-R7, DPTR, PC, SP, PSW etc

Construct of Assembly language,  significance of symbols  '@', '#', ';' .

  Addressing modes

• Immediate

• Registe

• Direct

• Register indirect

• Indexed

You will learn working of ACALL, LCALL, AJMP, LJMP, SJMP, RET and DJNZ.

You will also how to obtain details of any assembly language instruction using Keil Software

8051 Instruction set in detail.

For even more detail visit: http://www.keil.com/support/man/docs/is51/is51_acall.htm

or   Keil software -> Help -> uvision help -> expand 8051 Instruction set

Learn  Assembler directives:

•ORG

•END

•EQU

•DB

How to write code in Assembly language

Explains the basic calculations need to do to generate exact delay

Write code to display character on LCD

Explains how LCD work

Display "Embedded Lab" on LCD srceen

working of timers 0 and 1.
Working of Timer in mode1
Working of Timer in mode2 and mode3

Program Timer 0 in mode1 to generate delay using embedded C language

Program Timer 0 in mode 1 to generate delay using assembly language

Counters in 8051 Microcontroller

Explains the working of counter.

Programming the counter in 8051 microcontroller using Embedded c
Programming the counter in 8051 microcontroller using assembly language

Count number of times switch pressed and display count number on LCD.

Serial communication in 8051 microcontroller

Explains the working of serial in mode1

Explains how to transmit and receive data using serial communication 

Programming Serial in 8051 microcontroller using assembly language
Interrupt in 8051 microcontroller
Working of Interrupt in 8051 microcontroller

Explains INT0 external interrupt  in level triggered mode

Selection of correct programming language for embedded System

Explains INT0 external interrupt  in edge triggered mode

7 segment display interfacing

Explains working of the common cathode and common anode types of 7 segment display

Common cathode type of 7 segment is used

Assembly Language code to display numbers 0 to 9 on 7 segment
Learn Unipolar stepper motor and Bipolar stepper motor interfacing with 8051
Stepper motor introduction
Unipolar Stepper motor - Wave drive
Unipolar Stepper motor - Full drive
Unipolar Stepper motor - Half drive
Bipolar Stepper motor
Relay, DC motor and Buzzer
Working of Relay and it's interfacing with 8051 microcontroller
Working of DC motor and it's interfacing with 8051 microcontroller

Working of Buzzer and it's interface with 8051

Analog to Digital Converter
ADC Introduction
Pin DIagram, Interfacing and Working
Assembly and C language Programming
Projects

Video explains the use of PWM in motor speed control and LED dimmer

Video explains how you can control remote device using Bluetooth HC-05 Module, This project can be extended to projects like home automation, mobile controlled robot etc.

Send data wirelessly from mobile to microcontroller to turn on and off the LEDs.

you will learn interface of Bluetooth Module HC-05 with 8051 micro-controller, installation of a mobile app to control LED on-off.



Learn bit masking operations

Learn bit extraction operations

Learn bit monitoring operations

Interview Questions and Answers

These questions and answers will help you to prepare for Internship and Job interview.

Bonus Lectures: Basics of Embedded C programming
What is an embedded System ?
Programming in Embedded system
Difference between C and Embedded C
Working of Embedded C compiler
Variables in Embedded C
Control Structure in Embedded C
Function in Embedded C
Constants in Embedded C
Number system
Data Types in Embedded C
Arithmetic operations in Embedded C
Embedded C program structure
Bitwise Operators in Embedded C
Bit masking in Embedded C
Bit Extracting in Embedded C

Save this course

Save 8051 Microcontroller - Embedded C and Assembly Language to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in 8051 Microcontroller - Embedded C and Assembly Language with these activities:
Review Number Systems and Binary Logic
Solidify your understanding of number systems and binary logic. This will provide a strong foundation for understanding how the 8051 microcontroller operates at a low level.
Browse courses on Number Systems
Show steps
  • Review decimal, binary, and hexadecimal number systems.
  • Practice converting between different number systems.
  • Study the basic logic gates (AND, OR, NOT, XOR, NAND, NOR).
Create a Simple LED Blinking Program
Solidify your understanding of basic I/O operations. This hands-on activity will help you get familiar with the development environment and the microcontroller's hardware.
Show steps
  • Set up the Keil IDE and create a new project.
  • Write the code to blink an LED connected to one of the microcontroller's pins.
  • Compile the code and simulate it in Proteus.
  • Burn the code to the microcontroller and test it on real hardware.
Read 'The 8051 Microcontroller and Embedded Systems' by Muhammad Ali Mazidi
Gain a deeper understanding of the 8051 microcontroller architecture and programming. This book provides a comprehensive overview of the 8051 and its applications.
Show steps
  • Try the exercises at the end of each chapter.
  • Read the chapters related to the topics covered in the course.
  • Work through the examples provided in the book.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Practice Assembly Language Programming
Reinforce your assembly language programming skills. This will help you understand the low-level operations of the 8051 microcontroller.
Show steps
  • Write assembly code for basic tasks like data transfer and arithmetic operations.
  • Debug your code using a simulator like Keil or Proteus.
  • Experiment with different addressing modes.
Create a Cheat Sheet of 8051 Assembly Instructions
Improve your recall of assembly instructions. This will be a useful reference when working on projects.
Show steps
  • Categorize the assembly instructions by function (data transfer, arithmetic, logic, etc.).
  • Include a brief description of each instruction and its syntax.
  • Organize the cheat sheet for easy reference.
Explore 'Embedded Systems Architecture' by Tammy Noergaard
Expand your understanding of embedded systems architecture. This book provides a broader context for the 8051 microcontroller and its role in embedded systems.
Show steps
  • Read the chapters related to embedded system design principles.
  • Focus on the sections discussing microcontroller architectures and memory management.
  • Consider how the concepts apply to the 8051 microcontroller.
Develop a Temperature Monitoring System
Apply your knowledge to a practical project. This project will integrate multiple concepts learned in the course, such as ADC, LCD interfacing, and serial communication.
Show steps
  • Interface a temperature sensor (LM35) with the 8051 microcontroller.
  • Read the temperature value using the ADC.
  • Display the temperature on an LCD screen.
  • Send the temperature data to a computer via serial communication.

Career center

Learners who complete 8051 Microcontroller - Embedded C and Assembly Language will develop knowledge and skills that may be useful to these careers:
Embedded Systems Engineer
An Embedded Systems Engineer designs, develops, and tests embedded systems, which are computer systems with a dedicated function within a larger mechanical or electrical system. This course emphasizing 8051 microcontroller programming using Embedded C and Assembly language directly applies to the tasks involved in programming and interfacing with hardware. The course covers essential topics such as I/O ports, timers, serial communication, and interrupts, which are fundamental concepts for any embedded systems project. Working through hands-on examples, especially the projects involving DC motor speed control and wireless LED control, helps build a strong foundation for designing and implementing real-world embedded solutions. The course may also be useful to those looking to learn the intricacies of hardware-software interaction within embedded environments.
Firmware Engineer
A Firmware Engineer is responsible for developing the low-level software that controls hardware devices. The coursework focused on 8051 microcontroller programming with both Embedded C and Assembly language is highly relevant. This course explores programming I/O ports, timers, counters, and serial communication, and understanding these elements is essential for writing efficient and reliable firmware. The practical projects, such as controlling a DC motor with PWM and wireless LED control, provide concrete examples of how to implement firmware solutions for common embedded applications. The course further gives insights into debugging and flashing, which are crucial for firmware deployment. A Firmware Engineer may find additional benefit from the course's coverage of interfacing various components, such as LEDs, LCDs, and sensors.
Robotics Engineer
A Robotics Engineer designs, builds, and programs robots and automated systems. The focus of this course on 8051 microcontroller programming in Embedded C and Assembly language can be valuable for controlling robot hardware. A robotics engineer must deeply understand microcontroller architecture, interfacing sensors and actuators. Throughout the course, learners gain practical experience with I/O ports, timers, serial communication, and interrupts, which are fundamental to robot control systems. The project on DC motor speed control using PWM directly applies to robot motor control, and the wireless LED control project introduces communication protocols often used in robotics. This course can help to manage the intricacies of low-level robot programming, and potentially control advanced robotic systems.
Internet of Things Device Developer
An Internet of Things Device Developer creates and programs devices that connect to the internet and interact with the physical world. The knowledge of 8051 microcontroller programming with Embedded C and Assembly language learned in this course directly translates to the skills needed for IoT device development. A key aspect of IoT is interfacing sensors and actuators, and the course covers exactly how to do this with various components like LEDs, LCDs, temperature sensors, and Bluetooth modules. Understanding serial communication, timers, and interrupts is essential for efficient IoT device operation. The wireless LED control project provides hands-on experience with a simple IoT application, serving as a stepping stone to more complex IoT solutions. The course may be useful for those looking to specialize in the embedded programming aspects of IoT.
Automation Engineer
An Automation Engineer designs and implements automated systems for various industries. The emphasis of this course on 8051 microcontroller programming using Embedded C and Assembly language is directly applicable to the programming and control of automated machinery. The course provides a solid understanding of microcontroller fundamentals, including I/O ports, timers, serial communication, and interrupts. Practical experience is gained through interfacing with components like LEDs, switches, and motors, which are all commonly used in automation systems. The motor speed control project using PWM is particularly relevant, as PWM is a widely used technique for controlling motors in automated equipment. The course can also help to learn the basics of creating automated systems.
Hardware Engineer
A Hardware Engineer designs, develops, and tests computer hardware and related components. While this role is broad, the focus of this course on 8051 microcontroller programming with Embedded C provides a valuable understanding of how software interacts with hardware. The course focuses on the basics of microcontroller architecture, pin descriptions, and memory organization, which are all relevant to hardware design. A Hardware Engineer benefits from understanding how software is used to control and interface with the hardware they design. The interfacing projects, covering LEDs, LCDs, and sensors, provide practical insights into hardware-software integration. The theoretical knowledge of number systems will aid in understanding of how microcontrollers work. A hardware engineer may find this course useful in bridging the gap between hardware design and software implementation.
Control Systems Engineer
A Control Systems Engineer designs and implements systems that control the behavior of dynamic systems. The knowledge of 8051 microcontroller programming in Embedded C and Assembly language taught in this course is applicable to the implementation of control algorithms on embedded platforms. The course focus on timers, interrupts, and serial communication can be valuable for implementing real-time control loops. Interfacing with sensors and actuators, which is covered in the course through projects involving components like temperature sensors and DC motors, is crucial for control system applications. The course may also benefit anyone seeking to implement embedded control systems.
Mechatronics Engineer
A Mechatronics Engineer integrates mechanical, electrical, and computer engineering principles to design and develop automated and electromechanical systems. This course, concentrating on 8051 microcontroller programming in Embedded C and Assembly language, plays a role in controlling the electronic components within mechatronic systems. The course helps to understand microcontroller architecture, interfacing with sensors and actuators, and implementing control algorithms. The hands-on projects, such as motor control using PWM and interfacing with various sensors, provide practical experience relevant to mechatronics applications. Anyone looking to design integrated electromechanical systems may find this course useful.
Electrical Engineer
An Electrical Engineer designs, develops, and tests electrical equipment and systems. Although the role is broad, this course, focusing on 8051 microcontroller programming with Embedded C and Assembly language, offers insight into the embedded systems that are often integrated into electrical devices. An Electrical Engineer may find some benefit in learning the basics of microcontroller interfacing, I/O control, and communication protocols. The hands-on projects involving LEDs, motors, and sensors provide practical context for how software interacts with electrical hardware. The course may be useful in gaining an understanding of embedded systems design.
Applications Engineer
An Applications Engineer works with customers to understand their needs and develop solutions using a company's products. This course, with its focus on 8051 microcontroller programming with Embedded C and Assembly language, may be useful for creating embedded solutions. The course emphasis on microcontroller interfacing, I/O control, and communication protocols can be valuable for tailoring applications to specific customer requirements. This may be useful in developing and implementing embedded applications.
Test Engineer
A Test Engineer develops and executes test plans to ensure the quality and reliability of products. The focus of this course on 8051 microcontroller programming in Embedded C and Assembly language may be useful in testing embedded systems and devices. The course can aid to understand how software interacts with hardware, which is valuable for designing effective test cases. Familiarity with microcontroller architecture, I/O ports, and communication protocols, all covered in the course, helps create thorough tests. The course may be of use for Test Engineers working with embedded systems.
Technical Support Engineer
A Technical Support Engineer provides assistance to customers experiencing technical issues with products. This course, focusing on 8051 microcontroller programming with Embedded C and Assembly Language, may be useful for supporting embedded systems and devices. If the support involves diagnostics, the course aids in understanding microcontroller functionality, and debugging software. The knowledge of I/O ports and communication protocols, covered in the course, also enables more effective troubleshooting. A technical support engineer dealing with embedded systems may value this course.
PCB Designer
A Printed Circuit Board Designer creates the physical layouts for electronic circuits. While this course focuses on the programming side of embedded systems, understanding microcontroller functionality, as taught through 8051 programming in Embedded C and Assembly language, can inform PCB design decisions. Knowledge of I/O port configurations, power requirements, and communication interfaces, covered in the course, aids in designing PCBs that properly support the microcontroller and its peripherals. The course may be useful by helping PCB designers better understand the requirements of embedded systems.
Product Manager
A Product Manager oversees the development and marketing of a product. This course, even though it focuses on 8051 microcontroller programming with Embedded C and Assembly language, may be useful for product managers working with embedded systems or IoT devices. The course can give insight into the capabilities and limitations of microcontrollers, which informs product planning and feature development. The knowledge of interfacing and control, will help in making better product decisions. It may be useful for a product manager to be familiar with the basics of embedded system design.
Process Engineer
A Process Engineer optimizes industrial processes to improve efficiency and reduce costs. This course, while primarily focused on 8051 microcontroller programming in Embedded C and Assembly language, may be useful for Process Engineers working with automated systems controlled by microcontrollers. A process engineer may gain an understanding of microcontroller functionality, I/O control, and data acquisition. The practical projects, such as motor control and sensor interfacing, provide context for how microcontrollers are used in industrial automation. A process engineer who works with automated systems may find that this course helps achieve optimal performance from automated systems.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in 8051 Microcontroller - Embedded C and Assembly Language.
Comprehensive guide to the 8051 microcontroller. It covers both hardware and software aspects in detail. It is commonly used as a textbook in academic institutions and provides a deeper understanding of the 8051 architecture and programming techniques, complementing the course material.
Provides a broader perspective on embedded systems architecture. While not specific to the 8051, it offers valuable insights into the design and implementation of embedded systems in general. It is more valuable as additional reading to expand your knowledge beyond the specific microcontroller covered in the course.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser