The repository is home to the coding assignments of the 2017 Microcomputers Lab course @ Electrical & Computer Engineering - National Technical University of Athens.
8086/85 programs have been coded, debugged and tested using the appropriate 8086/85 emulators. AVR programs have been coded, debugged and tested on actual AVR Microcomputers.
Simple milliseconds timer, presenting time in binary form using LED lights as output.
Manipulating the on/off time interval of LED lights through switches.
Simple interrupts counter, MSB switch dependent, using LED lights as output.
A plain LED train simulator, where train direction is interrupt dependent.
Displaying the ASCII value of a pressed key, using 7 segment displays.
Taking switch-based binary input, and displaying its corresponding decimal value, using 7 segment displays.
On demand clockwise or counterclockwise rolling of a string message, printed on 7 segment displays.
Converting keyboard originated 9-bit, 2's complement, binary fractions to decimal numbers, using 7 segment displays for visual feedback.
Simple converter of a 3-digit hexadecimal number, to its corresponding decimal value, using 7 segment displays for visual feedback.
Sorting by character type, a user defined input of a 16 characters long string, consisted only of numbers, spaces, capital & lower case letters.
Reading the content of a text file, rotating it clockwise, by a user given amount of character slots and finally storing the outcome to a new text file.
A sequentially moving LED light between the PA0-PA7 LED ports.
Setting the LEDs on/off time interval using the I = x * 100 msec
formula, where I
is the total time LEDs are switched on/off and x
the hexadecimal value provided by the user, through the PB0-PB3 dip switches.
A simple C program, allowing the user to navigate clockwise or counterclockwise any switched on LED light, pressing the appropriate keys, by one or two LED slots at a time.
A simple, PD0 dip switch dependent, interrupts counting program, displaying the binary outcome through the PA7-PA0 LED lights.
An extension to the Mono Interrupts Counter, serving also the INT1 interrupts, as well as displaying through the 4 LSB PORTC LEDs the binary number created using the PORTB dip switches.
By pressing the appropriate push buttons, the user is able to set the room lighting on or off using different time intervals.
A hypothetical integrated circuit program, where OR, AND and XOR logic gates are simulated using dip switches as logical input and LEDs as logical output.
Simulating the following logic functions using dip switches as input and LEDs as output.
F0 = (AB + BC + CD + DΕ)’ , F1 = ABCD + D'E', F2 = F0 + F1
The user through the keypad, types a sequence of numbers and letter, and in the case that the given input matches his predefined password, the LEDs start lighting on/off, thus indicating that there was a correct matching.
Displaying the last pressed key to the LCD screen.
Setting a simulated alarm on, whenever the user types, within a 4 seconds time span, an incorrect password. In addition, LEDs are switching constantly on/off and an appropriate message is displayed to the LCD screen. Defusing the alarm is only possible by typing the correct, user predefined, password.
Converting a binary number to decimal and then displaying its decimal value to the LCD screen.
By constantly pressing the PA0 key the user sets on the stopwatch, which can count up to one hour. The LCD screen is always displaying the time running, and the user is able to stop and resume the stopwatch on demand, as well as resetting it.