Skip to content

Solutions for a series of microprocessor labs using the 8086/8088 processor, STM32 microcontroller, and ARM Cortex-M4 architecture

License

Notifications You must be signed in to change notification settings

negarhonarvar/Microprocessor-Laboratory

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Microprocessor Lab Series

This Repository contains solutions for a series of microprocessor labs using the 8086/8088 processor, STM32 microcontroller, and ARM Cortex-M4 architecture. The goal of these labs is to provide hands-on experience with assembly language programming, memory management, interfacing with external devices, and using simulators for debugging.

Table of Contents

Lab 1 Assembly program design for 8086/8088: Writing, debugging, and executing an assembly program to calculate the difference between the squares of two numbers, implementing insertion sort, and handling system interrupts.
Lab 2 - A Introduction to 8086/8088 memory management: Understanding 8-bit and 16-bit memory operations, assembly programming to read from and write to specific memory addresses, and familiarizing with the 74138 decoder.
Lab 2 - B Designing an 8086-based system to interface with I/O devices using assembly language. The system captures user input, processes it, and displays results on the output device using the 8255 chip.
Lab 3 - A Working with the 8253 Timer in 8086: Implementing a system that controls LEDs with start/stop buttons and setting timers using the 8253 Timer chip.
Lab 3 - B Using the 8259 Interrupt Controller: Developing an 8086-based system that handles external interrupts to control the speed of LED blinking using buttons.
Lab 4 - A Introduction to ARM Cortex-M4 programming: Using Keil MDK to write and debug assembly programs on ARM, focusing on the architecture and system registers.
Lab 4 - B GPIO programming on STM32F401: Configuring GPIO pins for input/output, connecting to 7-segment displays, and writing a C program to control the display of values on the 7-segment display.
Lab 5 - A LCD Interfacing with STM32F401: Connecting an alphanumeric LCD display to the STM32 board and programming it to display messages and monitor pulse frequency.
Lab 5 - B External interrupts and GPIO on STM32: Configuring external interrupts on GPIO pins and writing a program that reacts to button presses by toggling LED states and adjusting PWM signals.
Lab 6 - A Implementing timers on STM32: Writing a program that uses a timer to display elapsed time on an LCD and resets the time on button press. GPIO interrupt handling is also demonstrated.
Lab 6 - B Using the STM32 Timer and GPIO interrupts: A program that adjusts PWM duty cycles based on button inputs, showing the effect on connected LEDs.

Objective of Each Lab

  • Lab 1: Focuses on basic assembly programming for the 8086 processor, introducing concepts such as register operations, addressing modes, and system interrupts.
  • Lab 2: Delves into memory management and interfacing I/O devices with 8086, including the use of decoders and the 8255 programmable peripheral interface.
  • Lab 3: Explores the use of hardware timers (8253) and interrupt controllers (8259) with 8086, focusing on controlling external devices like LEDs.
  • Lab 4: Introduces the ARM Cortex-M4 architecture, working with assembly programming and GPIO interfacing on the STM32F401.
  • Lab 5: Covers interfacing an LCD with the STM32 microcontroller, alongside generating and controlling PWM signals.
  • Lab 6: Demonstrates the use of timers and external interrupts on STM32, combining them with LCD displays and PWM control for real-time applications.

Each lab builds on core concepts of microprocessor and microcontroller programming, preparing students for real-world embedded systems development.

About

Solutions for a series of microprocessor labs using the 8086/8088 processor, STM32 microcontroller, and ARM Cortex-M4 architecture

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published