
Begin with 8051/1851 assembly language programming, exploring microcontroller basics, microcontroller vs microprocessor distinctions, internal block diagrams, and hands-on coding with the ASCAME IDE and development board.
Differentiate microprocessor and microcontroller: a microprocessor is a general CPU needing external RAM, ROM and peripherals to form a system, while a microcontroller integrates these peripherals on a single chip.
Explore variants of microcontrollers and learn criteria for choosing one, focusing on computational ability, available development environments, and market availability, while preparing to program the 8051 architecture in assembly language.
Explains the 8051 microcontroller architecture, detailing the CPU, crystal oscillator, interrupt control unit, program memory and RAM, plus four bit-addressable ports, a bus, serial ports, and timers.
Explore the 8051 architecture and external memory role versus internal program memory, and examine RAM, data memory, and registers to understand how external memory supports microcontrollers lacking onboard program storage.
Learn hexadecimal notation for the 8051 microcontroller, including four bits per hex digit, two hex digits per byte, and how to convert between decimal, binary, and hex.
Master the basics of hex arithmetic by adding hex numbers and handling carries, recognizing digits up to F (15) and the difference between hexadecimal and decimal representations.
Explore the internal structure of the 128-byte special function registers, their bit-addressable locations, and how the accumulator and external memory locations support arithmetic operations and addressable access.
Explore how 8051 assembly language sits between high-level languages and machine code, and follow the flow from editing source code to assembling, linking, and producing object and hex outputs.
Explore the structure of an 8051 assembly program, including labels, mnemonics, operands, and comments, and learn to parse instructions using the instruction set and datasheet.
Classify instructions by type and size in 8051 assembly, distinguishing data transfer, data processing, and data control instructions, and by size to explain clock cycles and machine cycles.
Master the 8051 addressing modes by examining immediate, direct, and register access, clarifying when data comes from a value versus a memory address.
Explore how 8051 assembly distinguishes instructions from assembler directives, how origin directives and 16-bit addresses map program memory, and why object code is produced only for instructions.
Explore how the program counter points to the next instruction in 16-bit program memory, increments with each fetch, and handles jumps to drive the fetch-decode-execute cycle in an 8051 microcontroller.
Set up a Keil IDE project for 8051 development, create a source group for assembly code, then build, translate to object code, and debug with the simulator and memory windows.
Demonstrates single-byte addition in 8051 assembly by storing 20 and 30 in registers, using the accumulator for the addition, and transferring the 50 result to another register, with debugger insights.
Master the program status word in 8051 architecture by understanding how the PSW, a special function register, stores status flags including the carry flag and updates with operations.
Explore the 8051 program status word, including carry, auxiliary carry, and overflow flags, parity, and how the PSW selects register banks via the decoder.
Visualize overflow in addition on the 8051 by tracking the accumulator and hexadecimal values, and observe how the result copies to a register without mutating the original value.
Explore how the 8051 stack and stack pointer manage temporary data in data memory and program memory. Understand last-in, first-out behavior and how items are added and removed from top.
Explore 8051 assembly push and pop instructions, push values onto the stack, visualize the stack pointer, and pop values back into registers through a hands-on debugging demonstration.
Mastering 8051 assembly teaches how to perform 16-bit addition on an 8-bit microcontroller by partitioning double-byte data into two single bytes, adding them, and handling carries.
Explore subtraction with borrow in 8051 assembly, analyze negative results via two's complement, and review sample code illustrating subtraction concepts.
Explore single bit instructions in 8051 assembly, covering flag set and clear operations, and contrast with the increment instruction that updates register values.
Explore bit logical instructions in 8051 assembly, covering and, or, not operations on single-bit operands, bit addressable locations, and result effects on flags like overflow.
Learn how 8051 assembly uses jump and call instructions to implement loops and conditional branches, using labels as targets and the accumulator to decide jump when equal to zero.
Explore the 8051 DJNZ instruction by building gentle loops with a register, label targets, and decrement-and-jump logic, illustrated through multiplication by repeated addition.
Learn how to implement multiplication in 8051 assembly by repeatedly adding the multiplicand to an accumulator within a loop using a label, decrement, and jump until zero.
Learn an 8051 assembly algorithm to sum the first five natural numbers using an accumulator and two registers, looping with decrement and jump if not zero.
Demonstrate summing the first n natural numbers in 8051 assembly via an addition loop that uses a register for the total and a loop counter until zero.
Explore 8051 branching by distinguishing unconditional and conditional branches and comparing absolute, long, and short jumps. Learn how two-kilobyte proximity shapes calls versus long calls within program memory.
Learn how the 8051 ports are bit-addressable, and program individual bits to outputs, setting all eight pins high or low to visualize results.
Blink the 8051 ports using a looping instruction and an unconditional jump to create an infinite blink cycle, with careful input initialization and output verification.
Learn bit addressability in 8051 ports by using single-bit instructions to set and clear individual bits, access any bit separately, and implement looped control with conditional jumps.
Explore 8051 timers and counters, using crystal oscillator frequency division to generate precise delays and understand clock pulses, registers, and microsecond timing in assembly language programming.
Master 8051 assembly language programming by configuring timers. Learn to use timer mode register to select four modes (0–3), and timer control register to start and stop 16-bit timers.
Learn how to program 8051 timers to generate precise delays by loading initial counts into timer 0 or timer 1, monitoring the overflow flag, and stopping at overflow.
Explore programming the 8051 timers in detail, including auto reload mode, 8-bit and 16-bit counts, initial load and overflow-driven reloads, and configuring timer zero and timer one.
Outline a scalable embedded system solution in 8051 assembly by modeling input from a temperature sensor and displaying results on an LCD using a skeleton code architecture.
In this course, we will delve into the realm of assembly language programming, focusing on the utilization of instructions for programming 8051 Family Microcontrollers. It's important to note that no physical hardware is required, as all the exercises will be performed within simulation software.
Throughout this course, we will:
Explore the distinctions between Microprocessors and Microcontrollers.
Investigate the various variants of Microcontrollers available.
Discuss the criteria for selecting the appropriate Microcontroller for specific applications.
Dive into the internal architecture of the 8051 Microcontroller.
Gain proficiency in working with Hexadecimal numbers.
Understand the concepts of Program Memory and Data Memory.
Learn about Bit Addressability and its application to registers.
Differentiate between a Program Counter and a Stack Pointer.
Familiarize ourselves with the Keil Integrated Development Environment (IDE).
Master the art of Single Byte Addition.
Extend our knowledge to Double Byte Addition.
Comprehend the significance of the Program Status Word (PSW) Flags.
Grasp the concept of Overflow in addition operations.
Recognize the importance of the stack in program execution.
Implement assembly language programs, including:
Program 1: Calculating the Sum of the first five natural numbers.
Program 2: Achieving Multiplication through repeated addition.
Gain proficiency in programming Input/Output (I/O) Ports.
Implement Logical instructions for data manipulation.
Understand the Single Bit Instructions for precise control.
This course is tailored for beginners who are venturing into the world of embedded systems and wish to explore it in-depth. Rest assured, the content is presented from the ground up, making it accessible to complete novices. Additionally, we have provided an instruction set for your reference to facilitate your learning journey.