
Explore the internet of things and its four-stage architecture—sensing, network, data processing, and application—driven by sensors, actuators, and cloud data, with security and trust at the core.
Explore the internet of things by examining its architecture, RFID and sensors, middleware, smartech, and IPv6, and assess security, privacy, standardization, and real-world applications.
Explore the hardware and software that power IoT, from Arduino to Raspberry Pi and sensors. See how devices communicate with MQTT, Zigbee, Bluetooth, and CoAP to form a connected system.
Explore the four building blocks of the internet of things—hardware, connectivity, software, and protocols—through Arduino and Raspberry Pi, and learn MQTT, Zigbee, BLE, and CoAP for real-time machine-to-machine communication.
Explore how hardware like PanStamp and Raspberry Pi power IoT platforms and distributed systems, from sensors and actuation to scalable testbeds and real-world deployments.
Build IoT from a single smart object to a citywide network and global system. Discover Netjets, sensors, actuators, and testing across micro, meso, and macro scales.
Explore how wireless embedded systems use modulation and carriers to transmit data, and why Wi-Fi, Bluetooth, Zigbee, and Sigfox trade speed for range and power.
Understand microcomputer systems as a microprocessor with program memory, data memory, and I/O. Explore the 8051 family, on-chip memory, flash, and versatile I/O for single-chip microcontrollers.
Examine the CPU, buses, and memory hierarchy that drive microcomputers, from RAM and caches to ROM-based storage. Compare microprocessors and microcontrollers, and note CISC, RISC, and PROM/EPROM/ROM distinctions.
Learn 8051 assembly fundamentals: accumulators A and B, data pointer, program counter, move and add instructions, addressing modes, stack operations, and bit addressable registers.
Explore arithmetic and logical instructions in 1851, including add, add with carry, subtract with borrow, and flags like carry, auxiliary carry, overflow, and parity, plus accumulator-based operations and addressing modes.
Demonstrates adding several 8-bit data values using the accumulator in hex and binary, highlighting the carry and auxiliary carry flags, and forming low and high bytes.
Learn to add two 16-bit numbers by performing the low-byte addition first, handling the carry, then adding the high bytes with carry using add with carry instructions.
Explore mul and div instructions for 8-bit operands using A and B, producing 16-bit product split into low and high bytes with overflow and carry flag behavior, inc and dec.
Explore 1851 logic operations, including and, or, xor and not, with accumulator and memory operands; master masking, complement, and rotates left/right through carry (rlc/rrl), plus nibble swap.
Explore compare and jump using the CJNE instruction and the carry flag to determine not equal outcomes. Learn addressing modes—immediate, direct, register indirect, indexed, absolute, long, and relative.
control eight leds on port one by toggling all outputs with a delay, using an accumulator and complement, and a nested inner/outer loop to generate timing.
Learn to drive LEDs with a microcontroller by using an accumulator, port one output, and a 0.1 second delay to rotate LED patterns in nested loops.
Drive a sequence of LEDs using a lookup table, reading patterns with a data pointer and index, applying delays to create a moving light effect.
Proteus implementation shows wiring eight LEDs to a port with a resistor-pack common pin to drive a ten-LED bar graph, runs a program that makes LEDs move and blink twice.
Learn how to interface a seven-segment display with an 8051 microcontroller using a 7447 bcd-to-seven-segment decoder in Proteus, writing assembly code to display 0–9 with a one-second delay.
Demonstrates wiring an 8051 microcontroller in assembly to drive a 7447 bcd-to-seven-segment decoder and a seven-segment display to count from 0 to 9 with a millisecond delay.
Demonstrates using an 8051 and a 7447 BCD-to-seven-segment decoder to display digits 0–9 on a seven-segment display in Multisim, with a millisecond delay loop and port wiring.
Display an eight-bit variable on three seven-segment displays with 8051 assembly by extracting digits via division by ten, translating with a lookup table, and driving ports 0, 2, and 3.
Drive a seven-segment display directly from an 8051 by using a lookup table placed in memory to convert bcd digits to seven-segment codes and output via port 0.
Connect seven-segment displays to the 8051 via a 7447 decoder, then write an 8051 assembly program to count from 99 down to 0 every second using the multisim simulator.
Develop an 8051 assembly solution for two traffic lights with seven-segment displays counting down the remaining seconds in a green-yellow-red cycle, using a 0f00 lookup table and a display subroutine.
an 8051 assembly project demonstrates driving two 7-segment displays through a 7447 decoder in Multisim, counting down from 99 to 00 with a configurable delay.
Configure the Keil C compiler for 8051 in Proteus 8 by downloading and installing the tool, creating a new project, and setting Keil as the default compiler.
Demonstrate an 8051 microcontroller project in C that drives a seven-segment display via a 7447 decoder on port two and controls eight LEDs on port one with delays in Proteus.
Learn 8051 C programming to display all divisors of a number on a seven-segment display by looping from 1 to n and printing divisors via ports.
Learn how to write an 8051 C program to drive a seven-segment display via 7447 on port 2 and control eight leds on port 1 with a delay loop.
Explore the 8051 simulator to map pins to LEDs, switches, LCD, keypad, and seven-segment displays, use equate to name pins, and write assembly to light LEDs when switches close.
Solves a quiz by implementing an 8051 assembly routine that reads switches on port 2 and displays 5, 6, 7, or 8 on the seven-segment displays via a decoder and lookup table.
Demonstrates counting button presses on a seven-segment display driven by 8051 microcontroller using a seven-segment decoder, with a while loop waiting for release to increment 0–9 and wrap to zero.
demonstrates driving a seven-segment display directly from an 8051 using a lookup table to show hex digits 0–f, with up and down buttons to cycle through values.
Show how to count button presses on a seven-segment display with C for the 8051, using port 2.0 input, a BCD to seven-segment decoder, and a release-based loop.
Drive a seven-segment display from an 8051 in C, with 16-entry lookup table for hex digits 0–F. Press two push buttons on port 2.0 and 2.1 to increment and decrement.
Demonstrate an 8051 memory dump in assembly, displaying address and content in hexadecimal on a two-digit seven-segment display via ports one and two, using a lookup table.
Demonstrates an 8051 assembly project that dumps the first 128 bytes of ROM memory to seven-segment displays, showing hex addresses and contents with a data pointer.
Explore the 8051 interrupt architecture, detailing IE and EA controls, IP prioritization, and interrupt vectors, plus how ISR, LJMP, and RETI enable deterministic real-time responses.
Explore 8051 timer and external interrupt setup, enablement through the interrupt enable register, and timer one ISR to generate a 50 hz square wave on port 1.3 with downloadable notes.
Explore 8051 timer fundamentals, control registers (tmod, tcon, sfrs), and four timer modes—13-, 16-bit, 8-bit auto-reload, and split—through practical code for precise time intervals, baud-rate generation, and square waves.
Learn how timer zero and timer one on the 1851 microcontroller function as 16-bit timers or counters, with high/low byte registers, timer control and mode registers, and interrupt support.
configure 8051 timer zero in mode 1 using a 12 mhz crystal, load high and low bytes, and start counting for a 50 hz square wave on port 1.0.
Compare polling versus interrupt methods for peripheral handling. Explain interrupt service routines, vectors, and stack-based return, and demonstrate timer-based delay calculations and testing on a microcontroller simulator.
Enable interrupts via the interrupt enable register and the global enable bit. Use timer interrupt vectors to jump to the interrupt service routine and handle timer one interrupts.
Display 0–9999 on a multiplexed seven-segment display with an 8051 assembly program driven by a timer interrupt, keeping the interrupt service routine short and updating digits in the main program.
The lecture explains how a four-digit multiplexed seven-segment display uses shared a-g segment lines and digit select switches. Activating one digit at a time shows the corresponding data.
Design a digital clock with a 4-digit multiplexed 7-segment display in Proteus, using a convert routine to split hours, minutes, and seconds, and a refresh-based timing loop for one-second delays.
Builds a digital clock using an 8051 timer, updates seconds, minutes, and hours, converts them into four digits, and displays them on a seven segment display.
Create a clock on the 8051 using timer interrupts. Timer one fires every 20 ms to update seconds, minutes, and hours, while timer zero refreshes the display and handles pushbuttons.
Program the 8051 timer and its interrupt service routine using C to display a four-digit number on a multiplexed seven-segment display, scanning digits with a decoder and timer-driven refresh (2019).
Program the 8051 in C to configure timer interrupts and multiplex a four-digit, seven-segment display using a decoder and driver transistors, and demonstrate displaying 2019 on the display.
Build a four-digit digital clock on 8051 in C, in Proteus, using two timers and a multiplexed seven-segment display driven by a 7447 decoder, with hour/minute adjustment buttons.
Explore how to drive a five by seven dot-matrix led by scanning columns and rows, using port 3 for control and port 1 for row data with transistors as switches.
Connect an eight-by-eight dot matrix display to the microcontroller with rows on port zero and columns on port two, using a resistor pack pull-up, and scan columns to display A.
Display a single character on an 8x8 dot-matrix led by fast column scanning, rotating column while using a lookup table of codes and sending data to ports with a delay.
Learn to display digits 0 to 9 on a 5x7 dot matrix using 8051 assembly, with a lookup table, data pointer, and a scan routine updating each digit every second.
Display digits 0-9 on an 8x8 dot-matrix LCD with an 8051, using a lookup table and port zero for columns and port two for rows.
Configure timer zero to generate 2 ms interrupts and scan the dot-matrix LED display via an ISR, using a buffer loaded from the digits lookup table and a one-second delay.
*New* Enroll in one course and receive a 100% free coupon to one of my other courses! Please contact me after registering in one of the courses and let me know which other course you prefer.
I can assure you that this is the most practical 8051 Course you will discover! It includes tens of real-world projects written in Assembly and C. Everything was discussed step by step with various examples, and you will learn where and when to apply the theoretical notions. There are several assignment tasks with solutions.
This course provides a complete and practice-oriented introduction to microcontrollers and embedded system design, guiding learners from fundamental concepts to real embedded applications. It is designed to help you understand not only how to program microcontrollers, but also how hardware and software interact at the system level.
You will begin by learning the core concepts of embedded systems, microcontroller architectures, and the role they play in real-world devices. The course carefully explains registers, memory organization, I/O ports, timers, interrupts, and peripheral interfaces, building a strong foundation that is essential for any embedded engineer.
As the course progresses, you will work with practical programming examples that demonstrate how to configure and control microcontroller hardware. Topics such as digital input/output, timing, delays, polling versus interrupts, and peripheral communication are presented step by step, with a strong emphasis on understanding what happens at the hardware level.
The course also focuses on embedded system design principles, including modular programming, efficient use of memory, and writing reliable and maintainable firmware. You will see how theoretical concepts translate into real embedded applications, preparing you to design, debug, and extend embedded systems with confidence.
By the end of this course, you will be able to:
Understand microcontroller architecture and internal components
Program and configure peripherals such as GPIO, timers, and interrupts
Design and implement basic embedded systems
Bridge the gap between low-level hardware and high-level application logic
This course is ideal for computer engineering, electrical engineering, and electronics students, as well as anyone interested in embedded systems, IoT, or hardware-software co-design. It builds a strong foundation for advanced embedded topics and real-world microcontroller-based projects.
I can assure you that this is the most practical 8051 Course you will discover! It includes tens of real-world projects written in Assembly and C. Everything was discussed step by step with various examples, and you will learn where and when to apply the theoretical notions. There are several assignment tasks with solutions.
Are you new to the microcontroller world? Great! Begin with the basics, and I'll teach you all you need to know. Do you have some experience with microcontrollers and want to learn more? Fantastic! You may pick and choose the modules you require.
The course is laboratory-based. Almost every lecture and component of the course directly leads to a hands-on laboratory assignment with a solution. The more you practice with 8051 hardware and software, the more proficient you will become.
I use lots and lots of examples. I take you step-by-step through the lessons – each time providing sample code and documentation to make sure you are supported through the course.
The course does not waste your time. From the very beginning, we jump right into your first project – Let's Get Started.
I am here to help. I am an educator with a singular focus on providing a meaningful experience for my students. And, while I cannot do the work for you, I am willing to work WITH you to help you succeed.
What you’ll learn
Program microcontrollers with the Assembly and C programming languages.
Use several common output devices such as LED, 7-Segment, 16-Segment, Dot-matrix LED, LED bargraph, and LCD
Use several common input devices such as keys, push-buttons, and keypads
Use Timer/Counter and Interrupt Service Routine to create advanced systems.
Use analog-to-digital converter peripherals
Use a liquid crystal display (LCD)
Use the 8051 to develop embedded systems
Are there any course requirements or prerequisites?
No.
Who this course is for:
This course is meant for individuals who are not familiar with microcontrollers, the 8051, and/or the Assembly and C programming languages.
For more experienced individuals, the course will also expedite the learning curve for the 8051 and different simulators such as Proteus, NI-Multisim, and Edsim51.
CONTENT
Introduction to the Microcontrollers
What is a Microcomputer?
Arithmetic and Logical Instructions
Introductıon to 8051 Assembly Language and Addressıng Modes
Arithmetic Instructions: ADD, ADDC
Addition Example: Add several 8-bit data
Addition Example: Add two 16-bit data
Mul, Div. Inc and Dec Instructions
Logical Instructions: ANL, ORL, XRL, NOT, RR, RL, RLC and RRL
Addressing Modes + CJNE Instruction
LED Projects
Control 8 LEDs On/Off at the same time
Glowing a LED in a rotating sequence
Turning LEDs On/Off in a preset sequence by using a lookup table
Implementation in Proteus
7Segmeny Display Projects
What is 7-Segment and how to connect it to 8051?
8051 Projects in Assembly: Display numbers 0-9 on a 7seg in Proteus using a 7447
8051 Projects in Assembly: Display 0 to 9 on a 7seg by using a 7447 Decoder
8051 Projects in Assembly: Display BCD numbers on 7Seg in Multisim Simulator
8051 Projects in Assembly: Display a variable on 7seg + Display Even number
8051 Projects in Assembly: Lookup Table-Connecting a 7-segment directly to 8051
8051 Projects in Assembly: Down counter from 99 to 0
8051 Projects in Assembly: Counting a hex digit every second on the 7seg
8051 Projects in Assembly: Traffic Lights with displays
8051 Project in Assembly: Display Number 00 to 99 on a 2-digit 7seg in Multisim
Configure Keil C compiler in Proteus 8
8051 Projects in C: LEDs and 7segment Controlling with 8051 with Proteus
8051 Projects in C: 7segment and Up/Down Push buttons
8051 Projects in C: Display all divisors of a number on 7segment Display
8051 Projects in C: LEDs and 7segment Controlling in Proteus
Keys & LEDs Projects
8051 Projects in Assembly: How to Program and Control LED and Switch in 8051
8051 Project in Assembly: Check the status of 4keys & display a number on 7seg
8051 Project in C: Display the number of times a push-button is pressed on 7seg
8051 Projects in C: 7segment and Two Push buttons + 7447 Decoder
8051 Projects in C: Display a Hex Number on a 7segment by using a Lookup-table
8051 Projects in C: Display the number of times a push-button is pressed on 7seg
8051 Projects in C: 2 Push Buttons and a 7segment by using Lookup Table
Memory Dump
8051 Projects in Assembly: RAM Memory Dump
8051 Projects in Assembly: Rom Memory Dump
Timers in 8051
8051 Timer Programming in Assembly with Examples
What is a Timer?
How to Configure Timer/Counter in 8051
Timer Configuration Examples - Part 1
Timer Configuration Examples - Part 2
Timer Programming - Interrupt Service Routine
8051 Project in Assembly: Display Numbers on Multiplexed 7segment by using a Timer
Multiplexed 7Segment Display & Digital Clock Projects
How Multiplexed 7 Segment Display work?
Display a fixed number on a 4-digit Multiplexed 7-segment in 8051 Assembly code
Design a Digital Clock using a 4-digit Multiplexed 7-segment display in Proteus
8051 Projects in Assembly: Digital Clock by using Timer - Part I
8051 Projects in Assembly: Digital Clock by using Timer - Part II
8051 Projects in C: Display a 4-digit Number on a Multiplexed 7-segment with a Timer
8051 Projects in C: Display a 4-digit Number on a Multiplexed 7-segment with a Timer
8051 Project in C: Digital Clock in Proteus Simulator
Dot Matrix LED Projects
How to connect a Dot-Matrix LED to 8051?
Display a single character on an 8*8 Dot-matrix LED display
Display a single character on 8*8 Dot-matrix LED display Part 2
8051 Projects in Assembly: Display Numbers 0 to 9 on a Dot-Matrix LED Display
8051 Projects in C: Display Numbers 0 to 9 on a Dot-Matrix LED Display
8051 Projects in C: Display numbers on a Dot-Matrix LED display by using a Timer
16-segment Display - Build a Moving Message Display
Introduction to 16-segment Display
8051 Projects in Assembly: How to display a character on a 16-segment display?
8051 Projects in Assembly: Display a Fixed String on 16-Segment Display
8051 Projects in Assembly: Display a String word by word on a 16-segment Display
8051 Projects in Assembly: Create a Moving Message on a 16-Segment Display
8051 Projects in C: Display A-Z Characters on 16-segment LED Display
8051 Projects in C: show a fixed String on a Multiplexed 16-segment Display
String Manipulations
8051 Projects in Assembly: String Manipulation-Reverse a string
8051 Projects in Assembly: Convert a String to Uppercase
8051 Projects in Assembly: String Manipulation-Uppercase to Lowercase
8051 Projects in Assembly: Compute the length of a string in the Edsim51 simulator
LCD Projects
Interfacing LCD to 8051
8051 Projects in Assembly: Interfacing LCD to 8051 - Display a string on LCD
Interfacing LCD to 8051 - Display a string on LCD by using a function
8051 Projects in C: Interfacing LCD to 8051
ADC
Analog to Digital converter
introduction to ADC0804 and ADC0808
Interfacing ADC0804 with 8051 Microcontroller
8051 Projects in C & Assembly: Digital Thermometer wıth ADC0804 and LM35
Assembly Project: Thermometer with Displaying Msg According to the Temperature
Scan 4 LM35 sensors, find their max, min, and average values, and display them on LCD
Keypad
How to scan a keypad?
Interfacing a 4*4 keypad to 8051 and scan it
8051 Projects in Assembly: Logical Calculator in NI Multisim
8051 Projects in Assembly: New Version of Logical Calculator in NI MultiSim
Interfacing LCD & Keypad to 8051 in MultiSim - Compare the magnitude of 2 numbers
8051 Projects in C: Build a Simple Calculator by using a keypad & LCD - Part 1
8051 Projects in C: Build a Simple Calculator by using a keypad & LCD - Part 2
8051 Projects in C: Password Checker Project with keypad and LCD