Lesson 5So far only outputs are used. Now it's time to introduce inputs |
Let's start simple for it will get complicated soon enoughLight a LED when a push button is pressed |
;------------------------------------------------------------------------ ; ; LESSON5A.ASM ; ; Light a LED when a button is pressed ; ;------------------------------------------------------------------------ .IN INIT02 Initialize the assembler ;------------------------------------------------------------------------ MVI A,11111111B Switch all port B LEDs off OUT PORTB INPUT IN PORTC Read status of the push buttons OUT PORTA and copy it to port A JMP INPUT That's all folks! |
This one is easy enough to explain. |
Another, fairly easy example
Show 8, 7, 6, 5, 4, 3, 2, 1 or 0 LEDs, depending of the button that is pressed.
|
;------------------------------------------------------------------------ ; ; LESSON5B.ASM ; ; Light some LEDs, depending on the button pressed ; ;------------------------------------------------------------------------ .IN INIT02 Initialize the assembler ;------------------------------------------------------------------------ MVI A,11111111B Switch all port B LEDs off OUT PORTB INPUT IN PORTC Get the keys MVI B,0 By default all LEDs are on LOOP RLC Most significant button to Carry JNC DONE Stop shifting if this button is down! MOV C,A Save modified input byte MOV A,B Roll this Carry into result RAR MOV B,A MOV A,C Get modified input byte back in A JNC LOOP Not all 8 bits checked yet! DONE MOV A,B Output the result OUT PORTA JMP INPUT Repeat endlessly |
Try to explain this one :-) Also explain how the loop knows when all 8 keys are processed. |
Continue With Lesson 5 - More input. |
[Home] [Latest News] [Essentials] [Hardware] [The Build] [Programs] [Projects] [Downloads] | |||