We may earn an affiliate commission when you visit our partners.
Manisha Satone

Course on 8051 Architecture, Assembly and ‘C’ language Programming

Students are going to study :

  • Introduction to Microcontroller and Microprocessor

o Difference between Microprocessor and Microcontroller

o Harvard and Von Neumann Architecture

o RISC and CISC machines

o General Memory organization

o How do Microcontroller execute program?

  • Architecture of 8051

o Block diagram explanation

o Registers

o Internal memory organisation

o External Memory Interfacing

  • Assembly Language Programming

Read more

Course on 8051 Architecture, Assembly and ‘C’ language Programming

Students are going to study :

  • Introduction to Microcontroller and Microprocessor

o Difference between Microprocessor and Microcontroller

o Harvard and Von Neumann Architecture

o RISC and CISC machines

o General Memory organization

o How do Microcontroller execute program?

  • Architecture of 8051

o Block diagram explanation

o Registers

o Internal memory organisation

o External Memory Interfacing

  • Assembly Language Programming

o Addressing Modes

o Assembly Instructions

o Assembly Language programs

  • Ports Structure

  • Introduction to Keil software

  • Interfacing of LED to 8051 (Program in assembly and embedded C)

  • Interfacing of Push button switch (Program in assembly and embedded C)

  • Interfacing of LCD (Program in assembly and embedded C)

  • Interfacing of hex key pad (Program in assembly and embedded C)

  • Timers and counters of 8051

o Modes of timers

o Delay generation using timers

o Counting external events using counter

o Writing programs using timer/counter (Program in assembly and embedded C)

  • Interrupts of 8051

o Interrupt structure

o Timer delay generation using interrupt (Program in assembly and embedded C)

  • UART block

o Serial communication Modes

o Serial data transmission (Program in assembly and embedded C)

o Serial Data Reception (Program in assembly and embedded C)

o Serial data Transmission/Reception using interrupt (Program in assembly and embedded C)

  • Sensors and Actuators Interfacing (Program in assembly and embedded C)

o Temperature sensor interfacing

o PIR sensor Interfacing

o DC motor interfacing

o Stepper Motor Interfacing

o Servo Motor interfacing

  • Project 1 (Hardware and Program in embedded C)

  • Project 2(Hardware and Program in embedded C)

Enroll now

What's inside

Learning objectives

  • Students will learn architecture , assembly language and embedded c language programming of 8051.
  • Students will learn to use keil software for assembly and 'c' programming.
  • Students will be able to develop embedded systems using 8051.

Syllabus

After this lecture students will understand Difference between Microcontroller and Microprocessor and different architectures. They will also study how microcontroller/Microprocessor executes program.
Read more

After the Lecture Students will be able to understand

  • Concept of Microprocessor and Microcontroller

  • Difference between Microprocessor and Microcontroller

  • Difference between Harvard and Von-Neumann Architecture

  • Difference between CISC and RISC Machines

Binary to Hex and Hex to Binary Conversion
General Memory Organization
Steps for instruction execution
How Microcontroller/Microprocessor Executes Instructions ?
After this lecture students will understand architecture of 8051 in detail.

After this lecture students will be able to understand

  • Architecture of 8051 microcontroller

  • Registers of 8051 Microcontroller

  • Features of 8051 Microcontroller

  • Different versions and Manufacturers of 8051 Microcontroller

In this lecture students will study format of PSW register and function of its each bit.

After this lecture students will understand internal RAM memory organization of 8051.

Internal-External Memory Organization
INTERNAL EXTERNAL RAM/ROM MEMORY
SFR Registers
Reset Circuit of 8051
Pin Diagram of 8051
Ports of 8051
PORT 1: Internal Structure
PORT 0, PORT 2, PORT 3 : Internal Structure
Students will learn assembly language instructions and writing of assembly language program.
Addressing Modes : Part 1
Addressing Modes : Part 2
Addressing Modes : Part 3
Addressing Modes : Part 4
Data Transfer Instructions : Part 1
Data Transfer Instructions ( PUSH and POP) : Part 2
Data Transfer Instructions (Data Exchange Instruction) : Part 3
Arithmetic Instructions (Addition): Part 1
Arithmetic Instructions (Subtraction) : Part 2
Arithmetic Instructions (Multiplication and Division): Part 3
Arithmetic Instructions (Increment and Decrement): Part 4
Data Exchange Instruction
Clear and Complement Accumulator
Logical Instructions
Bit Oriented Instructions
Rotate and Swap Instructions
Branch Instructions (Jump)
CJNE Instructions
DJNZ, JZ, JNZ Instructions
Call and RET Instructions
Assembly Language Programs

After this lecture students will be able to write and debug assembly language program using Keil software.

After this lecture students will be able to

  • Write assembly language program to count number of 1's in any 8 bit number

  • Write assembly language program to check parity of data

ALP: Memory Block Transfer
ALP:Finding Largest from Given Numbers
ALP: Hex to BCD Conversion
Introduction to EdSim Simulator
Simulation of Celcius to Fahrenheit/ Fahrenheit to celcius using EdSim51
LED Interfacing
ALP: LED Flashing
Demo:LED Flashing
Embedded C Program to Flash LEDs, Compilation and Simulation using Keil
Proteus Software: Simulation of LED Flashing
Timer/Counter Modes and Programming
Timer/Counter Registers
Mode 1 of Timer
ALP: Delay Generation using Timer
Embedded C Program to Flash LED using timer delay
Mode 2 of Timer
Mode 0 and Mode 3 of Timer
Interrupts of 8051
Introduction of 8051 Interrupts
ALP:LED Flashing using Timer Interrupt
Tools for Development of Embedded System
Software and Hardware Tools for Embedded System
Display Interfacing
Seven Segment Display interfacing with 8051: Assembly
Embedded C Program and Simulation using Proteus : Seven segment display
Basics of LCD Interfacing
Basics of LCD (PPT Explanation)
16 x 2 LCD Features and Pin Diagram
LCD Interfacing Flowchart
ALP:LCD Interfacing
LCD Flowchart and Assembly Language Program (PPT Explanation)
Embedded C Program for LCD : simulation using keil and Execution on 8051 board
Interfacing of Keys to 8051
Key Interfacing
4x4 Matrix Keyboard Interfacing
Serial Communication
Serial Communication : UART Block of 8051
ALP: Serial Communication
Receiver program and simulation using Keil
DAC Interfacing
Interfacing of DAC with 8051
Square and Staircase Signal Generation using DAC
Ramp and Triangular Signal Generation using DAC
Sine Wave Generation using DAC
ADC Interfacing
Sensors and Actuators Interfacing
Data aquaization system and Frequency counter
Interfacing of Temperature sensor
Interfacing of Relay, Buzzer and PIR sensor
Interfacing of Stepper Motor and Opto Isolator
Interfacing of DC motor, Assembly and embedded C program
Power Saving Modes
Power Down and Idle Mode of 8051

Save this course

Save 8051 Architecture, Assembly and 'C' Programming 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 Architecture, Assembly and 'C' Programming with these activities:
Review Digital Logic Fundamentals
Reviewing digital logic fundamentals will provide a solid foundation for understanding the 8051 architecture and its operations.
Browse courses on Boolean Algebra
Show steps
  • Study Boolean algebra and logic gates.
  • Practice simplifying logic circuits using Karnaugh maps.
  • Review the operation of flip-flops and registers.
Read 'The 8051 Microcontroller and Embedded Systems' by Muhammad Ali Mazidi
Reading this book will provide a deeper understanding of the 8051 microcontroller and its applications in embedded systems.
Show steps
  • Read the chapters on 8051 architecture and assembly language.
  • Work through the example programs in the book.
  • Experiment with different programming techniques.
Assembly Language Programming Exercises
Practicing assembly language programming exercises will reinforce your understanding of the 8051 instruction set and programming techniques.
Show steps
  • Write programs to perform basic arithmetic operations.
  • Write programs to manipulate data in memory.
  • Write programs to control the 8051's peripherals.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Create a Simple LED Blinking Project
Building a simple LED blinking project will provide hands-on experience with interfacing hardware to the 8051 and writing embedded C code.
Show steps
  • Connect an LED to one of the 8051's output pins.
  • Write an embedded C program to toggle the LED on and off.
  • Compile and upload the program to the 8051.
Follow Online Tutorials on LCD Interfacing
Following online tutorials on LCD interfacing will help you learn how to display information on an LCD screen using the 8051.
Show steps
  • Find tutorials on LCD interfacing with the 8051.
  • Follow the steps in the tutorials to connect an LCD to the 8051.
  • Write code to display text and numbers on the LCD.
Develop a Temperature Monitoring System
Developing a temperature monitoring system will allow you to apply your knowledge of the 8051 to a real-world application.
Show steps
  • Interface a temperature sensor to the 8051.
  • Write code to read the temperature sensor data.
  • Display the temperature on an LCD screen.
  • Implement alarm functionality when temperature exceeds threshold.
Explore 'Embedded Systems Architecture' by Tammy Noergaard
Exploring this book will broaden your understanding of embedded systems architecture and design principles.
Show steps
  • Read the chapters on embedded system design and architecture.
  • Study the examples of different embedded systems.
  • Consider how the concepts apply to the 8051 microcontroller.

Career center

Learners who complete 8051 Architecture, Assembly and 'C' Programming 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. The study of 8051 architecture, assembly, and 'C' language programming is directly applicable to this role. This course helps build a foundation in microcontroller programming and interfacing, essential skills for programming embedded systems. Expertise with Keil software can accelerate development cycles. Through assembly and 'C' language programming, alongside hands-on experience interfacing LEDs, sensors, and motors, this course may be useful.
Firmware Engineer
A Firmware Engineer develops and tests low-level software that controls hardware devices. The course's focus on 8051 architecture and assembly programming provides a solid foundation for understanding how to write efficient and effective firmware. This engineer routinely works closely with microcontrollers and microprocessors. This course helps build familiarity with programming at this level. This course may be useful to learn about embedded C programming, as well as how to interface various sensors and actuators with a microcontroller.
Automation Engineer
An Automation Engineer designs and implements automated systems to improve efficiency and reduce human intervention. This course helps those interested in automation, because it provides essential knowledge of microcontroller programming and interfacing. Automation engineers often work. The study of assembly and 'C' language programming will be helpful in working with programmable logic controllers and other embedded systems used in automation. This course may be useful due to its focus on hardware interfacing and control.
Robotics Engineer
A Robotics Engineer designs, builds, and programs robots and automated systems. This course may prove useful to understand microcontroller programming, which is a vital component of robotics. This course helps those who want to work with embedded 'C' language programming, interfacing sensors, and controlling motors, all of which are crucial skills in robotics. The hands-on experience with Keil software for simulation and testing may also accelerate robotics development projects. This course may be useful in hardware interfacing.
Mechatronics Engineer
A Mechatronics Engineer integrates mechanical, electrical, and computer engineering principles to design and develop automated systems. This course may be useful for Mechatronics Engineers who need to understand microcontroller programming and interfacing. The course may be useful in learning assembly and 'C' language programming for programming embedded systems, as well as interfacing sensors, actuators, and other hardware components. This may be used to design and develop complex mechatronic systems.
Internet of Things Engineer
An Internet of Things Engineer designs and develops connected devices and systems that communicate over the internet. The knowledge of microcontroller programming and embedded systems acquired from this course helps in building IoT devices. Embedded C knowledge may be particularly useful for programming IoT devices. Furthermore, the hands-on experience interfacing sensors and actuators helps in building the hardware components of IoT systems. This course may be useful to work with UART and serial communication. Students may be able to program transmission and reception using interrupts.
Control Systems Engineer
Control Systems Engineers design and implement systems that control the behavior of other devices or processes. Since microcontrollers are often at the heart of control systems, learning about 8051 architecture may be useful. Understanding assembly and 'C' language programming helps in developing the software that runs on these microcontrollers and allows the engineer to control external devices and processes. The course may be useful in understanding concepts like timers, counters, and interrupts are crucial for implementing real-time control systems. The course may be useful in sensor and actuator interfacing.
Computer Engineer
A Computer Engineer designs, develops, and tests computer systems and components. The study of 8051 architecture, assembly, and 'C' language programming may be useful for Computer Engineers who work with embedded systems. This course may provide a foundation in microcontroller programming and hardware interfacing. It could also be useful to learn the concepts of memory organization, serial communication, and interrupt handling. All of this may be helpful in designing and developing computer systems that integrate hardware and software.
Electrical Engineer
An Electrical Engineer designs, develops, and tests electrical equipment and systems. This course may be useful for Electrical Engineers who work with embedded systems or need to understand the interaction between hardware and software. Gaining an understanding of microcontroller architecture, assembly, and 'C' programming helps provide valuable context. The course may be useful to Electrical Engineers by teaching memory organization and interfacing techniques. Learning UART may also be useful, as serial communication is often used for communication between hardware components.
Hardware Engineer
A Hardware Engineer designs, develops, and tests computer hardware and related components. A course covering 8051 architecture, assembly, and C programming may be helpful for Hardware Engineers who work with embedded systems or need to understand the interaction between hardware and software. This course may be useful to understand microcontroller architecture, memory organization, and interfacing techniques. The course may also be useful in serial communication, which is often used for communication between hardware components.
Applications Engineer
An Applications Engineer provides technical support and expertise to customers using a company's products or services. This course may be useful for Applications Engineers who support products involving embedded systems or microcontrollers. This may be useful in understanding microcontroller programming, hardware interfacing, and how code interacts with hardware. With the aid of the course, these engineers may be able to assist customers better, troubleshoot technical issues, and develop application notes. The course may be useful in learning about serial data transmission.
Product Development Engineer
A Product Development Engineer is involved in the entire lifecycle of a product, from conception to launch. This course may be useful in the product development process, especially when the product involves embedded systems. This course may be useful in understanding microcontroller programming, hardware interfacing, and software development of a product. Being familiar with low-level programming and hardware interaction helps in making informed decisions about system design and optimization. This course may be useful in learning to interface sensors and actuators.
Technical Support Engineer
A Technical Support Engineer provides technical assistance to customers who are experiencing problems with hardware or software. This course may be useful for Technical Support Engineers who work with products that use embedded systems or microcontrollers. The study of microcontroller architecture, assembly, and 'C' language programming may be useful in understanding the underlying technology of these systems. The course may be useful in troubleshooting issues, answering customer questions, and providing solutions. The course teaches about microcontroller execution of programs.
Test Engineer
A Test Engineer designs and implements tests to ensure the quality and reliability of products and systems. This course may be useful for Test Engineers working with embedded systems. An understanding of microcontroller architecture, assembly, and 'C' language programming can help in designing effective tests. It may also be useful to design and develop testing tools and procedures, and diagnose issues. The course may be useful in learning about interfacing various components and serial communication.
Research and Development Engineer
A Research and Development Engineer conducts research and develops new technologies and products. This course may be useful for R and D Engineers working on projects involving embedded systems, microcontrollers, or low-level programming. This course may be useful in gaining foundational knowledge for experimenting with new hardware and software solutions. With the aid of the course, this engineer may also be able to create prototypes, conduct experiments, and analyze results. The course may be useful in learning about general memory organization.

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 Architecture, Assembly and 'C' Programming.
Comprehensive guide to the 8051 microcontroller, covering its architecture, programming, and applications. It provides detailed explanations and numerous examples, making it an excellent resource for both beginners and experienced users. The book is particularly helpful for understanding the intricacies of assembly language programming and embedded C programming on the 8051. It is commonly used as a textbook in academic institutions.
Provides a broader perspective on embedded systems architecture, covering various aspects such as hardware design, software development, and system integration. While not specific to the 8051, it offers valuable insights into the design principles and trade-offs involved in embedded systems development. This book is more valuable as additional reading to provide a broader context to 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