In order to show something on the screen (something static as READY P0 from one of the pictures) we need to repeat below code 8 times - for every horizontal of the screen (LEDs and 7-segment indicators are horizontal 0):
3E MVI A,10h ; write XXXXO to 1st register
10
D3 OUT 1
01
3E MVI A,00h ; write XXXXX to 2nd register
00
D3 OUT 2
02
3E MVI A,11h ; write OXXXO to 3rd register
11
D3 OUT 3
03
3E MVI A,18h ; write XXXOO to 4th register
18
D3 OUT 4
04
3E MVI A,0Eh ; write XOOOX to 5th register
0E
D3 OUT 5
05
3E MVI A,1Fh ; write OOOOO to 6th register
1F
D3 OUT 6
06
3E MVI A,10h ; write XXXXO to 7th register
10
D3 OUT 7
07
3E MVI A,11h ; write OXXXO to 8th register
11
D3 OUT 8
08
3E MVI A,1Fh ; write OOOOO to 9th register
1F
D3 OUT 9
09
3E MVI A,1Fh ; write OOOOO to 10th register
1F
D3 OUT 10
0A
3E MVI A,1Fh ; write OOOOO to 11th register
1F
D3 OUT 11
0B
3E MVI A,1Fh ; write OOOOO to 12th register
1F
D3 OUT 12
0C
3E MVI A,0FDh ; 11111101 <<<< highlight proper horizontal line (here it's 1st one)
FD
D3 OUT 0
00
3E MVI A,100 ; wait 100 times (1400 cycles or 0.56 ms in case of 2.5 MHz clock)
64
3D DCR A <---\
CZ JNZ ------/
XX
XX
3E MVI A,0FFh ; 11111111 <<<< remove indication
FF
D3 OUT 0
00
; and so on for FB,F7,EF,DF,BF,7F and FE (LEDs and 7-segments)
As you can see this code works from ROM and doesn't need RAM at all, so all displayed text (that's actually graphics) is hard-coded into the code
It's refreshing whole screen about 190 times per second
P.S. I created a public chat for this project: https://hackaday.io/messages/room/229637
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.