7/31/2019 8085 Microprocessor Kit Description
1/51
Users Manual
MTK-858085 Microprocessor Training Kit
Copyright 2008 by Wichit Sirichote, [email protected]
April 26, 2008
Rev2.0
7/31/2019 8085 Microprocessor Kit Description
2/51
2
Contents
Overview...3
Hardware Features Software Features
Getting Started.4
DC Adapter LED Display and Keypad RESET ADDR DATA INC DEC HOME ALT RUN STEP MOD Program #1 Program #2
Program #3
Connecting Terminal.18
Terminal Emulation Software- Command A Command C Command D
Command E Command F Command H Command I Command J
Command K Command L Command M Command N CommandQ Command R Command S Command W Command SPACEBAR
Hardware.30
CPU Memory GPIO Programmable Port 8255 Programmable Counter8254 Headers and Connectors Interrupt Test Button TechnicalSpecifications Monitor Call Number-NVRAM Bootable
Appendix A LCD Driver Routines
Appendix B SCAN Keyboard and Display Subroutine
Appendix C UART Driver Routines
Appendix D Using NVRAM Bootable
Appendix E Machine Code and Mnemonics of 8085 Instructions
Appendix F Hardware Schematic
7/31/2019 8085 Microprocessor Kit Description
3/51
3
Overview
The MTK-85 is a low-cost single board computer designed for self-learning the popular
8085 Microprocessor. The kit enables studying from low level programming with directmachine code entering to high level programming with PC tools easily. A nice feature,
single-step running, helps students learn the operation of microprocessor instructions
quickly and clearly. The user registers provide simple means to verify the code execution.Using a PC as the terminal, the MTK-85 can receive the Intel hex file and disassemble
the machine code into 8085 instructions.
Figure 1: Components layout of the MTK-85.
Hardware Features:
CPU: Mitsubishi M5M80C85AP-2 4MHz
Memory: 32kB Monitor ROM and 32kB SRAM
7/31/2019 8085 Microprocessor Kit Description
4/51
4
Simple I/O Port: 8-bit GPIO built with 74LS175 D-type F-F and 74LS126 Tri-statebuffer
Programmable Ports: two 8255 chips, system and user ports
Programmable Counter: 8254
UART: 16C550 compatible
Onboard I/O devices:
6-digit seven segment LED,
28-keypad,
4-bit dot LED indicates status of GPIO,
buzzer,
Direct BUS interface 20x4 text LCD,
Serial Interface: RS232C 9600bit/s 8-data bit no parity one stop bit
+5V Power Supply: low-dropout voltage regulator with input protection 40-pin header for CPU bus
40-pin header for user port, 8255 and 8254
16-pin header for simple GPIO port
onboard logic probe power supply
Test button for single pulse generation to the interrupt pins
Brown-out Protection
No jumper settings
Software Features:
Enter the machine code in hexadecimal
Single-step execution
Examine and modify user registers
Run user code with software breakpoint
Insert and Delete byte
Built-in LCD drivers
Download Intel Hex file
Disassemble machine code into 8085 instructions
Display user registers and disassemble the instruction after single-stepping
NVRAM Bootable, runs user code when power up the board
7/31/2019 8085 Microprocessor Kit Description
5/51
5
Getting Started
DC Adapter
The MTK-85 board requires DC power input to operate. The input voltage accepts from
+6V to +12V. You may find any AC-to-DC adapter having DC jack with polarity as
shown in Figure 2. The board has protection diode to prevent wrong polarity. If youradapters jack has different polarity, when plug it to the board, no power will be supplied.
+-
Figure 2: Polarity of DC jack.
Since the onboard voltage regulator is a low-dropout, so heat dissipation of the voltage
regulator will be (Vin-Vout) x 350mA. The minimum voltage developed across Vout and
Vin is 0.2V. So to provide +5VDC to the logic board, we can have Vin as low as say+6V. With such input, the dissipation of the voltage regulator will only be less than
350mW.
The common AC adapters mostly provide +12VDC output. You can use it also. However
dissipation at the LM2940 will be higher. For example, the developed potential will be
12V-5V=7V. So heat dissipation will be 350mA x 7V=2.5W!
When power up the board, the 8085 begins read the instruction from the memory at
location 0000H. The location from 0000H to 7FFFH or 32kB is ROM space. It containsthe monitor program. The monitor program enables us to enter 8085 instruction using
HEX digit into the RAM. We can let the 8085 RUN our program easily using monitorRUN key.
When the board was powered up, the cold message running text 8085 will show on 7-
segment LED and the onboard dot LED will turn on and the buzzer will sound beep. TheHOME location is pointed to RAM at address 8100H. The data LED will display thecontent at 8100H.
LED Display and Keypad
The MTK-85 has 6 digits 7-segment LED and 28 tact switches keypad.
Four digits labeled with text ADDRESS is used for displaying the memory address and
user registers contents. Two digits labeled with text DATA is for displaying the 8-bit
data byte at address shown in the left-hand. The dot indicator indicates the current modeof HEX digit entering. Figure 3 shows the memory location 8100 has an 8-bit data, 1E.
7/31/2019 8085 Microprocessor Kit Description
6/51
6
The dot indicates the current mode is data entry. Typing Hex key will insert hex digit into
data memory.
Figure 3: The LED shows memory location 8100 and its content, 1E.
The onboard keypad has two groups: the left-hand is 16-hex key 0-F and the right-hand is
10-function key. The hex key also has alternate functions when used with ALT key.
Figure 3: Keyboard layout, HEX and Function Keys.
Lets see the functions key as follows.
RESET is hardware reset. Press reset will force the CPU begins execution
the ROM monitor at address 0000H. (The reset out signal which is active
high also feed to reset pins of the UART and two 8255 PPI).
RESET
7/31/2019 8085 Microprocessor Kit Description
7/51
7
ADDR changes current mode to ADDRESS entry mode. The dot
indicator will move to digit4.
DATA changes current mode to DATA entry mode. The dot indicator
will move to digit6.
INC increments current address by one. The content of new address will
show in data field LED.
DEC decrements current address by one. The content of new address will
show in data field LED.
HOME brings home address back to current display. The home address is
8100H.
ALT enables alternate functions that used with HEX key. We can press
ALT followed with HEX key. The Alternate functions are described
below.
ALT 0 displays user register AF. The Accumulator and Flag
registers.
ADDR
DATA
INC
DEC
HOME
ALT
ALT 0/AF
7/31/2019 8085 Microprocessor Kit Description
8/51
8
ALT 1 displays user register BC.
.
ALT 2 displays user register DE.
ALT 3 displays user register HL.
ALT 4 displays user register SP.
ALT 5 displays user register PC.
ALT 6 displays CARRY flag.
ALT 7 displays ZERO flag.
ALT 8 displays SIGN flag.
ALT 1/BC
ALT 2/DE
ALT 3/HL
ALT 4/SP
ALT 5/PC
ALT 6/CY
ALT 7/Z
ALT 8/S
7/31/2019 8085 Microprocessor Kit Description
9/51
9
ALT 9 displays half CARRY flag.
ALT A displays PARITY flag.
ALT B sets break address.
ALT C clears break address.
ALT D deletes one of the current location and shifts the next
byte UP.
ALT E inserts one byte and shifts the next byte DOWN.
RUN forces CPU to jump from monitor program to user program atcurrent address.
ALT 9/AC
ALT A/P
ALT B/SBR
ALT C/CBR
ALT D
ALT E
RUN
7/31/2019 8085 Microprocessor Kit Description
10/51
10
STEP executes one instruction at address shown in current display.
MOD modifies the user registers. It was used together with ALT 0-5.
User registers are the memory space in RAM prepared for saving and loading to the CPU
registers when the CPU jump from monitor program to user program and back to themonitor program. It is useful for program debugging. We will learn how to use them easilyin the program testing section.
Entering the program into RAM and Run it.
Test Program 1
Lets learn how the keypad helps testing your first program. Suppose we want to writethe program that displays the content of the accumulator using onboard 4-bit dot LED.
Since the MTK-85 has 4-bit dot LED tied to the 4-bit output port. Logic 1 presents at a
given bit will make the LED ON. Logic 0 makes the LED OFF. We will write the smallprogram that shows the low nibble of the accumulator content.
Figure 4: Sending the Accumulator content to the PORT.
Our program is here,
main: inr a ; increment accumulatorout 0 ; write to port 00jmp main ; jump back to main
STEP
MOD
7/31/2019 8085 Microprocessor Kit Description
11/51
11
We see that the program has only three instructions, i.e., inr, out and jmp.
The program was written using instruction mnemonics and operand. To test our program,we must translate above program to the machine code. This can be done easily with hand-
code assembly. See Appendix E for machine code of the instructions.
Since we will write the machine code to the memory for testing, so the space must be
RAM. We must know the memory allocation. Figure 5 shows the memory spaceallocation. We see that the board provides begin address for user program at 8100H.
Some of the locations from 8000H to 803CH are interrupts vectors. The RAM locations
from F000H to FFFFH are used by monitor program.
Figure 5: Memory space allocation.
Thus we can place our machine code started at location 8100. After translation we get the
code for each instruction easily.
8100 3C main: inr a8101 D300 out 0
7/31/2019 8085 Microprocessor Kit Description
12/51
12
8103 C30081 jmp main
The 1st
instruction, inr a, increment accumulator by one has one byte machine code 3C.
This byte will be placed at location 8100.
The 2nd
instruction, out 0, write accumulator content to the port at location 00 has two
bytes machine code, D300. D3 is the instruction OUT and 00 is port location.
Figure 6: I/O space allocation.
The 3rd
instruction, jmp main, jump back to location 8100 has three byte machine code,C3,00,81. C3 is the JMP, and 8100 is location to jump (Intel places low byte to low
address and high byte to high address).
Above program has only 6 bytes. We can enter such code into RAM easily using HEX
key. Here is the byte sequence from address 8100 to 8105.
ADDRESS DATA
8100 3C
8101 D3
8102 00
8103 C3
8104 00
7/31/2019 8085 Microprocessor Kit Description
13/51
13
8105 81
Now enter the code into memory address 8100.
Step 1 Press RESET, the address display will show 8100 and the data LED will show its
contents.
RESET
The current mode will be data entry. We can swap entry mode between address and data
by pressing function key ADDR or DATA. The DOT indicator will swap between ADDRmode and DATA mode.
To enter a byte to this location, press HEX key 3 and key C.
3/HL C/CBR
The 3C byte will enter to address 8100.
Step 2 Press INC to increment address.
INC
The address display will show 8101. Then repeat step1 until 81 byte was entered toaddress 8105.
You can use INC or DEC to check the code, you can modify it easily in DATA entrymode.
We will begin set the value to user Accumulator beforehand. It will clear the user registerA to zero.
7/31/2019 8085 Microprocessor Kit Description
14/51
14
Press key ALT, 0/AF, display will show the content of user Accumulator and Flag
register.
Press key MOD, then key 0,0,0,0. The AF will be 0000.
Press key HOME, this brings current location to 8100.
Press key STEP, the display will show next instruction to be executed at address 8101.We can examine the content of AF by key ALT, 0/AF. We see that now Accumulator is
01.
Press key STEP again, the 01 will send to LED onboard GPIO. This is the content of the
accumulator after increment instruction.
The next instruction, JMP 8100 will be executed.
We can keep press key STEP and see the value has changed on GPIO LED!
It works!
Instead of execution one instruction using single step, we can run the program without
stopping for each instruction. We will try with key RUN.
Now press HOME to bring current location to 8100, press RUN.
What happen to the LED?
Does it blink?
Should it be counting up?
There are two kinds of program running. First is to use single stepping. This kind
executes only one instruction at a time when we press STEP key. We can learn theoperation easily with user registers. The monitor program loads the contents of user
registers to the CPU registers beforehand, after the instruction has been executed, the
content of CPU registers will then be saved back to the user registers. Thus we can
examine the result after the instruction has been executed easily.
But above program, when we try with key RUN, the CPU will jump from monitor
program to user program and never get back to monitor program. Since the instruction
JMP 8100 will jump back to 8100 forever. We see that the number incrementing in the
accumulator will be very fast.
How can we make the speed of counting slower? We can just simply add the job that uses
CPU time. Now lets see below program.
7/31/2019 8085 Microprocessor Kit Description
15/51
15
org 8100h ; begin of codemain: inr a ; increment accumulator
out 0 ; write to port 00
; add the simple delay using register pair DE
lxi d,1050h ; load 16-bit constant to DEdelay: dcr e ; decrement E
jnz delay ; jump to delay location if E != 0dcr d ; decrement Djnz delay ; jump to delay location if D != 0
jmp main ; done, jump back to main again
I suppose now you can translate the instruction into the machine code. The first
mnemonic, ORG is not 8085 instruction. It is the assembler directive that tells theassembler program to place the machine code begins at location 8100. We will learnusing assembler when using PC tools on later.
The portion of inserted code is bolded letters. We see that the method of time delay is just
to let the CPU counts the value in register D and register E. Counting is done by
instruction DCR E, decrement register by one for register E and D. The JNZ, jump tospecified location when ZERO flag is not set. That means if the content of register E or D
is not ZERO, it will jump back to decrement again. Until they are ZERO, the CPU willcontinue execute the next instruction.
Here my translation from instructions to machine code.
org 8100h ; begin of code8100 3C main: inr a ; increment accumulator8101 D300 out 0 ; write to port 00
; add the simple delay using register pair DE
8103 115010 lxi d,1050h ; load 16-bit constant to DE8106 1D delay: dcr e ; decrement E8107 C20681 jnz delay ; jump to 81060 if E != 0
810A 15 dcr d ; decrement D810B C20681 jnz delay ; jump to 8106 if D != 0
810E C30081 jmp main ; jump back to main again
This program has 17 bytes code. We can enter the code into RAM from 8100 to 8110
easily.
ADDRESS DATA
8100 3C
7/31/2019 8085 Microprocessor Kit Description
16/51
16
8101 D3
8102 00
8103 11
8104 50
8105 10
8106 1D
8107 C2
8108 06
8109 81
810A 15
810B C2
810C 06
810D 81
810E C3810F 00
8110 81
After finished entering the code, press HOME to bring current RAM location to 8100.Then press key RUN.
What happen to the onboard LED?
Can we change the speed of counting? How?
To stop running, press RESET key. You can modify the initial value of register DE, 1050to whatever you want to speed up or slow down.
Test Program #2
This program shows how to use key RUN to force CPU jump from monitor program to
user program.
8100 1E02 main: mvi e,28102 CF rst 18103 C30081 jmp main
This program has only 6 bytes i.e., 1E, 02, CF, C3, 00, 81. Enter the code, and press keyHOME, RUN.
We will see the cold message repeat running on the display. RST 1 having machine codeCF is the method that used to call built-in monitor functions. Register E is monitor call
number.
To stop program#2 running, we must press RESET key.
7/31/2019 8085 Microprocessor Kit Description
17/51
17
Test Program #3
We can test the program with software breakpoint. The instruction RTS 7 having
machine code FF returns control back to monitor program and save the content of CPU
registers to user registers. We can check the result in user registers easily.
Here is the program that adds two BCD numbers 19H and 02H. The result will be 21H.
8100 3E19 mvi a,19h ; load accumulator with 19h8102 0602 mvi b,2 ; load register B with 028104 80 add b ; add register B to accumulator8105 27 daa ; adjust result to BCD8106 FF rst 7 ; jump back to monitor
After enter the code, you can run it with key RUN. Check the result in Accumulator withALT 0.
ALT 0/AF
For small program, we can place the RST 7 to the end of the program.
However for long program, sometime we may need to check at a given location, theboard also provides tool that helps inserting the RST 7 instruction to the specified
location. This tool is called set break point. Suppose we want to verify the result after addb instruction. We can set break point at location 8105 by setting the address to 8105 with
key ADDR 8,1,0,5. Then press ALT B, the display will show this address was set
breakpoint.
Press HOME and RUN, check user AF with ALT 0, we see that after addition, the resultin Accumulator is 1B. To clear this break address, press ALT C. The display will show
current address 8105. The code 27 will be restored back to address 8105. We can
continue execution, press RUN, and check result in AF again, we will get 21. This the
correct BCD number from the addition of 19+02=21.
7/31/2019 8085 Microprocessor Kit Description
18/51
18
Connecting Terminal
The ROM monitor contains powerful commands when using UART to connect a
terminal. The UART drivers and serial commands are automatically configured when
UART chip was inserted. Communication format is based on 9600 bit/sec, 8 data bit, noparity and one stop bit. We can use PC running terminal emulation as VT100. When we
type keyboard, the ASCII code will send to the MTK-85 board. And the response from
the board will send back to display on PC screen.
Laptop Computer
RS232C
COM1
Figure 7: Using PC as the terminal.
Using PC as the terminal, we can run the assembler software that helps translating theassembly program into machine code easily. The machine code is formed in the ASCII
text file using the Intel HEX file format. The monitor program has command that accepts
HEX file downloading from the PC to the board. This helps for long program and high
level programming.
Assembly
ProgramAssembler Machine
Code
MTK-85
Figure 8: Using Assembler for source program translation.
7/31/2019 8085 Microprocessor Kit Description
19/51
19
Terminal Emulation Software
Any terminal emulation software can be used, however we can try the free software,Tera
Term Pro version 2.3, developed by T. Teranishi. You may download it from this URL,
www.vector.co.jp/authors/VA002416/teraterm.html
We can use the RS232C cable with both ends are DB9 female type. The cable is straight
through signal, not the cross signal cable.
Figure 9: Wiring between both ends DB9 connector.
When open the Tera Term program, we can select mode of connection using serial
interface and select the COM port that you are connecting.
7/31/2019 8085 Microprocessor Kit Description
20/51
20
Figure 10: Select serial connection using COM2.
Press command ? for help the help menu will display.
Figure 11: Enter command ? for help menu display.
There is no need to switch between standalone mode and terminal mode. The monitorprogram for both modes is working concurrently.
When press reset the prompt appears on screen.
7/31/2019 8085 Microprocessor Kit Description
21/51
21
MTK-85 8085 MICROPROCESSOR TRAINING KIT (? HELP)
8100>
Type ? for help menu listing.
MTK-85 8085 MICROPROCESSOR TRAINING KIT (? HELP)
A - ASCII codeC - clear watch variablesD - disassembleE - edit memoryF - fill constantH - hex dumpI - i/o address map
J - jump to user programK - display user STACKL - load Intel hex fileM - monitor call numberN - new location pointerQ - quick home locationR - user register displayS - set value to user registerW - watch variablesSPACE BAR - single step? - help menu
8100>
Command A prints the hexadecimal code for printable ASCII characters.
Command C clears the 16-byte watch variables. The monitor provides quick access toa16-byte RAM for program testing. The watch variables use RAM space from F000-
F00F.
8100>F000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 008100>
Command D disassembles the machine code into 8085 instructions.
8100>disassemble...
8100 1E0D MVI E,0D8102 CF RST 18103 5B MOV E,E8104 55 MOV D,L8105 80 ADD B8106 34 INR M8107 20 RIM
7/31/2019 8085 Microprocessor Kit Description
22/51
22
8108 FF RST 78109 9F SBB A810A FEE9 CPI E9
810C 96 SUB M810D 9B SBB E
810E 3B DCX SP
810F 4A MOV C,D8110 B7 ORA A8111 AC XRA H
8112>
Command E examines and modify the data in memory. We can use this command to
enter machine code. To view the content, uses Space key and to enter a byte, press twoHEX digits. To quit just press ENTER.
8112>edit memory location = 8100Enter to quit, SPACE key to view content
ADDR DATA8100 [1E]8101 [0D]8102 [CF]8103 [5B] 118104 [55] 0a8105 [80] 818106 [34]
8106>
Command F fills 8-bit constant to memory. The example shows fill constant FF to
memory from 9000 to 9100. We can use command N for setting new location andcommand H for display the memory contents.
8114>Begin address = 9000 End address = 9100 Data = ff8114>new location = 90009000>
9000 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
9010 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................9020 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................9030 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................9040 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................9050 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................9060 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................9070 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
9080>
Command H dumps memory. The content of memory from current pointer 9010 to
908F will display in hexadecimal. The ASCII code for each byte will be displayed also.
The dot will be displayed for nonprintable ASCII code.
7/31/2019 8085 Microprocessor Kit Description
23/51
23
9010>
9010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................9020 4D C2 97 CB DA DF A0 BE 9E 73 1A 34 E3 A6 83 4E M........s.4...N9030 97 47 81 CE C1 99 98 CB 14 ED 45 DE 35 6A 7C F1 .G........E.5j|.
9040 F0 36 B2 69 CF 1D 90 90 70 F1 73 D8 C1 4F DF 56 .6.i....p.s..O.V
9050 A8 E2 30 84 76 AA C5 18 A7 84 C5 32 81 BF B9 03 ..0.v......2....9060 8A 13 8C FD 4A 82 B9 99 4E 24 33 9E EB 16 A8 0D ....J...N$3.....9070 A9 31 CD B7 BB 4E 8D BE FF 5B 3C 8D EA 5E 4F 7F .1...N...[
Command I displays onboard I/O address.
9090>00H-0FH onboard 4-bit GPIO, D0-D3=output port
D4-D7=input port
10H-13H 8255 system PPI, 10H=PORTA, 11H=PORTB, 12H=PORTC,
13H=CONTROL
20H-23H 8254 programmable counter, 20H=counter0, 21H= counter122H=counter2, 23H control register
30H-33H 8255 user PPI, 30H=PORTA, 31H=PORTB, 32H=PORTC,33H=CONTROL
40H-47H C16550 UART registers9090>
Command J jumps from monitor program to user program. The example shows jump
to address 8100. The user register displays results after running the code. The RST 7returns control back to monitor program.
Suppose our program is adding two BCD numbers in register A and register B.
8100 3E19 MVI A,19
8102 0602 MVI B,02
8104 80 ADD B8105 27 DAA
8106 FF RST 7
8113>jump to address [8107] = 8100
AF=2114 BC=02EA DE=104D HL=911B SP=F098 PC=8107 S=0 Z=0 AC=1 P=1 CY=08113>
7/31/2019 8085 Microprocessor Kit Description
24/51
24
We can see the result of addition in register A is 21 (19+02=21). The user registers are
displayed in 16-bit, e.g. AF=2114 (A=21, F=14).
Command K displays user STACK memory. The example below shows running
instruction PUSH H. This instruction will put the content of HL register to STACKmemory. We may enter E5 to address 8100 with command E.
We first check the user register with command r. We see that TOP of STACK is F098.After pressing SPACE BAR for single step, the SP is now F096. We can see the content
of STACK memory with command k. The content of HL was saved in STACK, the
content of H=91 will be saved at F097 and L=1B at F096. TOP of STACK is now F096.
FE FE
91
1B
SP=F098 F098
F097
SP=F096
91 1B
H L
PUSH H
8100>enter command r
AF=82A4 BC=9081 DE=8090 HL=911B SP=F098 PC=8100 S=1 Z=0 AC=0 P=1 CY=08100>enter command space
8100 E5 PUSH H
AF=82A4 BC=9081 DE=8090 HL=911B SP=F096 PC=8101 S=1 Z=0 AC=0 P=1 CY=08100>enter command k
ADDR DATAF096 [1B]F097 [91]F098 [FE]
8100>
Command L loads Intel Hex file to memory. The Assembler and C compiler for 8085CPU can produce standard Intel Hex file. The hex file contains machine code representedby ASCII letters. Press command l makes the board ready to read HEX file through
serial port. We go to FILE menu and select Send File.
7/31/2019 8085 Microprocessor Kit Description
25/51
25
Figure 12: Select File>Send file to send HEX file.
The file window will display, we can select the hex file to be downloaded then.
Figure 13: Choose the hex file to be sent.
7/31/2019 8085 Microprocessor Kit Description
26/51
26
The onboard dot LED will run to indicate downloading is on going. When completed, the
report will show a number of byte received and print checksum error. If no error it will
show 0 errors.
8100>load Intel hex file...000005 bytes loaded 0 errors
8100>
Note: you may press ESC to escape the command before sending the file.
Command M shows monitor call number. Some of common subroutines can be called
through RST 1 with function number preloaded in register E.
8180>see input parameters in user manual
1Enn MVI E,function_numberCF RST 1
00 - demo01 - delay02 - cold_boot03 - scan04 - cin05 - cout06 - put_str
07 - init_lcd08 - lcd_ready09 - clear_lcd0A - goto_xy0B - put_str_lcd0C - put_ch_lcd0D - demo2
8180>
Command N sets new location pointer at prompt. The example sets new pointer to
E000 and press d to disassemble.
8180>new location = e000E000>disassemble...
E000 87 ADD AE001 D26DB7 JNC B76DE004 80 ADD BE005 74 MOV M,HE006 E2027E JPO 7E02E009 FF RST 7E00A FF RST 7E00B FF RST 7
7/31/2019 8085 Microprocessor Kit Description
27/51
27
E00C B5 ORA LE00D BF CMP AE00E 2F CMA
E00F FD DFBE010 BB CMP EE011 9F SBB A
E012 E7 RST 4
E013 7B MOV A,E
E014>
Command Q sets location pointer at prompt to 8100 and sets user PC to 8100.
E014>press q
8100>press r
AF=82A4 BC=9081 DE=8090 HL=11AB SP=F08A PC=8100 S=1 Z=0 AC=0 P=1 CY=08100>
Command R displays user registers content.
8100>
AF=82A4 BC=9081 DE=8090 HL=11AB SP=F08A PC=8100 S=1 Z=0 AC=0 P=1 CY=08100>
Command S sets value to user registers.
8100>set value to user register (enter A for AF) ?AF=82A4 00008100>press r
AF=0000 BC=9081 DE=8090 HL=11AB SP=F08A PC=8100 S=0 Z=0 AC=0 P=0 CY=08100>
Command W prints watch variables. These 16 bytes memory in RAM are reserved for
quick examining when test the program that used RAM.
8100>F000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 008100>
For example, we want to store content of register A to RAM at location F000. We canenter small code at 8100.
8100 3E1D MVI A,1D ; load accumulator with 1D8102 3200F0 STA F000 ; store A to RAM at F000
8114>enter w
F000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
8114>enter space
8100 3E1D MVI A,1D
7/31/2019 8085 Microprocessor Kit Description
28/51
28
AF=1D00 BC=9081 DE=8090 HL=11AB SP=F08A PC=8102 S=0 Z=0 AC=0 P=0 CY=0
8114>enter space
8102 3200F0 STA F000
AF=1D00 BC=9081 DE=8090 HL=11AB SP=F08A PC=8105 S=0 Z=0 AC=0 P=0 CY=0
8114>enter w
F000 1D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
8114>
We see that we can display such memory space with single key to see the result of
instruction that stores one byte to this memory.
Command SPACEBAR executes the instruction at address in user PC. The instruction
will show on screen with user registers result after execution.
Suppose we write a program shown below.
org 9000hxra a
loop: out 0mov h,ainr hpush hpop dmov a,djmp loop
end
Then translate it to machine code file using the Assembler program. Download hex file.
9000>load Intel hex file...000011 bytes loaded 0 errors
9000>disassemble...
9000 AF XRA A9001 D300 OUT 009003 67 MOV H,A9004 24 INR H
9005 E5 PUSH H9006 D1 POP D9007 7A MOV A,D9008 C30190 JMP 9001900B 00 NOP900C 00 NOP900D 00 NOP900E 00 NOP900F 00 NOP9010 00 NOP9011 00 NOP9012 00 NOP
9013>print user register with command r
7/31/2019 8085 Microprocessor Kit Description
29/51
29
AF=5800 BC=19F4 DE=C256 HL=1234 SP=F098 PC=9000 S=0 Z=0 AC=0 P=0 CY=09013>press SPACE key to execute instruction at 9000, we see A=00
9000 AF XRA A
AF=0044 BC=19F4 DE=C256 HL=1234 SP=F098 PC=9001 S=0 Z=1 AC=0 P=1 CY=09013>press SPACE key, the content of A will send to GPIO
9001 D300 OUT 00
AF=0044 BC=19F4 DE=C256 HL=1234 SP=F098 PC=9003 S=0 Z=1 AC=0 P=1 CY=09013>press SPACE key, the content of A will copy to H
9003 67 MOV H,A
AF=0044 BC=19F4 DE=C256 HL=0034 SP=F098 PC=9004 S=0 Z=1 AC=0 P=1 CY=09013> press SPACE key, the content of H will increment by 1
9004 24 INR H
AF=0000 BC=19F4 DE=C256 HL=0134 SP=F098 PC=9005 S=0 Z=0 AC=0 P=0 CY=0
9013> press SPACE key, the content SP will decrement by 29005 E5 PUSH H
AF=0000 BC=19F4 DE=C256 HL=0134 SP=F096 PC=9006 S=0 Z=0 AC=0 P=0 CY=09013> press K, to see the content of STACK memory
ADDR DATAF096 [34]F097 [01]F098 [C0]
9013> press SPACE key, DE will be loaded with top of STACK9006 D1 POP D
AF=0000 BC=19F4 DE=0134 HL=0134 SP=F098 PC=9007 S=0 Z=0 AC=0 P=0 CY=0
9013> press SPACE key, the content of D will copy to A9007 7A MOV A,D
AF=0100 BC=19F4 DE=0134 HL=0134 SP=F098 PC=9008 S=0 Z=0 AC=0 P=0 CY=09013> press SPACE key, PC will be loaded with 9001
9008 C30190 JMP 9001
AF=0100 BC=19F4 DE=0134 HL=0134 SP=F098 PC=9001 S=0 Z=0 AC=0 P=0 CY=09013> press SPACE key, the content of A will send to GPIO, see LED!
9001 D300 OUT 00
AF=0100 BC=19F4 DE=0134 HL=0134 SP=F098 PC=9003 S=0 Z=0 AC=0 P=0 CY=0
7/31/2019 8085 Microprocessor Kit Description
30/51
30
Hardware
A block diagram of the MTK-85 board is shown below. For complete hardware
schematic, see Appendix D.
CPU
The CPU is CMOS 80C85. The XTAL frequency is 4MHz. The reset signal is generated
by simple RC circuit. The CPU is protected by brownout circuit. In case of power supplyis dipped caused by AC supply voltage dropped. The brownout circuit detects VCC, if it
is below threshold level, it will reset the CPU.
The brownout condition can emulate by using variable power supply. To test it, adjust the board VIN from0-12V slowly and see the CPU can start running properly or not.
Memory
The onboard has 64kB memory. The 32kB ROM monitor 27C256 is placed at address
0000-7FFFH. And the 32kB SRAM 62256, is placed at address 8000H-FFFFH.
Some of interrupt vectors are relocated to RAM, so user can write the jump instruction to
the location of such interrupt service routine easily. Here is the location of interrupts.
8010H RST 2
8018H RST 3
8020H RST 4
8028H RST 5
7/31/2019 8085 Microprocessor Kit Description
31/51
31
802CH RST 5.5
8030H RST 6
8034H RST 6.5
803CH RST 7.5
Note:1. RST 7 is used for software breakpoint.
2. RST 1 is used for monitor function call.
3. TRAP is used for hardware single-step.4. RST 7.5 is tied to OUT0 of 8254 programmable counter.
5. Monitor program uses last page of RAM for data storage, STACK area, andmonitor control functions. The space is from F000H to F098H.
GPIO
GPIO provides 4-bit output port using D type F-F, 74LS175 and 4-bit input port using tri-state buffer, 74LS126. The address is 00 for both ports. The low-nibble D0-D3 is output
port. The higher-nibble D4-D7 is input port. The signal from both ports appeared at J1,
16-pin header.
System Programmable Port 8255
7/31/2019 8085 Microprocessor Kit Description
32/51
32
The I/O addresses of system port, 8255 are PORTA=10H, PORTB=11H, PORTC=12H
and Control Port = 13H. Buzzer control pin is PORT C bit 7. To enable buzzer, write
7FH to PORTC.
User Programmable Port 8255
The board provides a user programmable parallel port, 8255. The 8255s registers are
mapped to I/O address from 30H to 33H.
30H PORTA
31H PORTB
32H PORTC
33H CONTROL PORT
Programmable Counter 8254
The programmable counter, 8254 was supplied with clock signal from CLOCKOUT or2MHz for counter0 and counter1. The internal registers of 8254 are mapped to I/O space
from 20H to 23H.
20H COUNTER0
21H COUNTER1
22H COUNTER2
23H CONTROL REGISTER
7/31/2019 8085 Microprocessor Kit Description
33/51
33
Headers and Connectors
CPU Header JP1
User 8255 and 8254 Header JP1
7/31/2019 8085 Microprocessor Kit Description
34/51
34
Onboard LCD Header JR1
Note: Some LCD has different backlight polarity. As shown on JR1, pin 16 is +5V andpin 15 is GND.
RS232C DB9 male connector VB1
7/31/2019 8085 Microprocessor Kit Description
35/51
35
Interrupts Test Button
The interrupt test button provides a single positive pulse that tied to CPU hardwareinterrupt pins, RST5.5, RST6.5 and INTR. User can select the pulse to be triggered for
each pin by dip switch SW1 at a time. The onboard LED, D4 indicates the pulse is
activated when press Test button.
Technical Specifications
CPU: CMOS 80C85 @4MHz
Memory: 64kB, 32kB 27C256, 32kB 62256
I/O port: Programmable Parallel port 8255x2, 8-bit GPIOCounter: Programmable Counter 8254UART: 16-byte FIFO TL16C550 compatible
ROM monitor: A8085.asm
Brownout Protection: KIA7045
Board Size: 8.90 x 8.13 inchWeight: 320g (complete components except LCD)DC Power Supply: AC-to-DC adapter 6V-12V 400mA
Power consumption: (350mA @12VDC)
Monitor Call Number
00 - demo
Scan 7-segment display with buffer display pointed by HL
Entry: HL
Exit: none
01 - delay
Delay subroutine using register pair DE, D is outer loop delay, E is inner loop.Entry: DE
Exit: none
02 - cold_bootDisplay cold-boot message on 7-segment LED.
Entry: none
03 - scan
Scan keyboard and display one cycle.Entry: HL points the display buffer
Exit: key = scan code 1 no key pressed
04 - cin
Get character from console
7/31/2019 8085 Microprocessor Kit Description
36/51
36
Entry: none
Exit: A = character received
05 - coutSend character to console
Entry: A = character to be sent
Exit: none
06 - put_str
Print string to console, string is terminated by 0.
Entry: HL
Exit: none
07 - init_lcd
Initialize LCD module
Entry: noneExit: none
08 - lcd_ready
Wait until LCD module is ready.
Entry: noneExit: none
09 - clear_lcd
Clear LCD displayEntry: none
Exit: none
0A - goto_xy
Set cursor position of LCDEntry: HL, H = x, L = y
Exit: none
0B - put_str_lcd
Print string to LCD, string is terminated by 0Entry: HL
Exit: none
0C - put_ch_lcdPrint character to LCD at current cursor position
Entry: A
Exit: none
0D - demo2
Running GPIO LED
Entry: noneExit: none
7/31/2019 8085 Microprocessor Kit Description
37/51
37
NVRAM Bootable
User can replace U3, SRAM with a Nonvolatile RAM for user program storage. Theexample shown in Figure 13 is DS1230 32kB NVRAM.
By placing JMP instruction at 8000H will enable NVRAM bootable.
Figure 13: Using DALLAS DS1230, 32kB NVRAM for user program running.
The monitor program checks the location 8000H. If it has C3 (machine code of JMP
instruction), it will jump to address 8000H. The feature allows application code to runeasily. The monitor subroutines are still available for the application program.
To get back to monitor mode, user can press USER1 key while press RESET. The byteC3 at location 8000H will change to 00.
The sample code that demonstrates NVRAM Bootable is shown in Appendix D.
7/31/2019 8085 Microprocessor Kit Description
38/51
38
Appendix A Onboard LCD Driver Routines
;------------------- onboard LCD registers -----------------command_write equ 50hcommand_read equ 52hdata_write equ 51hdata_read equ 53hbusy equ 80h
;--------------------- LCD driver routines -----------------lcd_ready: push psw
lcd_ready1: in command_read
ani busyjnz lcd_ready1 ; wait until lcd readypop psw
ret
clear_lcd: call lcd_readymvi a,1out command_write
exit_clear: ret
init_lcd: call lcd_readymvi a,38h
out command_writecall lcd_readymvi a, 0chout command_writecall clear_lcd
ret
; print ASCII text on LCD; entry: HL pointer with 0 for end of string
put_str_lcd: mov a,m ; get A from [HL]cpi 0jnz put_str_lcd1ret
put_str_lcd1:
call lcd_readyout data_writeinx hjp put_str_lcd
; goto_xy set cursor location on lcd; entry: HL: H = x, L = y
7/31/2019 8085 Microprocessor Kit Description
39/51
39
goto_xy: call lcd_ready
mov a,l
cpi 0jnz goto_xy1mov a,hadi 80hout command_writeret
goto_xy1: cpi 1jnz goto_xy2mov a,hadi 0c0hout command_writeret
goto_xy2: cpi 2jnz goto_xy3mov a,hadi 094hout command_writeret
goto_xy3: cpi 3jnz goto_xy4mov a,hadi 0d4hout command_writeret
goto_xy4: ret
; put_ch_lcd put character to lcd; entry: A
put_ch_lcd: call lcd_readyout data_writeret
7/31/2019 8085 Microprocessor Kit Description
40/51
40
Appendix B Subroutine Scan keyboard and Display
; subroutine scan keyboard and display
; entry: hl pointer to display buffer; exit: key = scan code; -1 no key pressed;
scan: push hpush bpush d
mvi c,6 ; for 6-digit LEDmvi e,0 ; digit scan code appears at 4-to-10
decodermvi d,0 ; key positionmvi a,0ffh ; put -1 to keysta key ; key = -1
scan1: mov a,eori 0f0h ; high nibble must be 1111out system_port_c ; active digit firstmov a,m ; load a with [hl]out system_port_b ; then turn segment on
mvi b,0 ; delay for electron transition processwait1: dcr b
jnz wait1
in system_port_a ; read input port
mvi b,8 ; check all 8-rowshift_key: rar ; rotate right through carry
jc next_key ; if carry = 1 then no keypressed
push pswmov a,dsta key ; save key positionpop psw
next_key:inr d ; next key position
dcr b ; until 8-bit was shiftedjnz shift_key
mvi a,0 ; clear aout system_port_b ; turn off led
inr e ; next digit scan codeinx h ; next location
7/31/2019 8085 Microprocessor Kit Description
41/51
41
dcr c ; next columnjnz scan1
pop dpop bpop hret
;---------- 8255 PPI system port I/O address ---------------system_port_a: equ 10hsystem_port_b: equ 11hsystem_port_c: equ 12hsystem_port_control: equ 13h
7/31/2019 8085 Microprocessor Kit Description
42/51
42
Appendix C UART Driver Routines
;---------- 16C550 compatible UART I/O address ------------
; e.g. UM8250B, 16C450, 16C550
uart_buffer: equ 40huart_line_status: equ 45huart_fifo: equ 42huart_lcr: equ 43huart_divisor_lsb: equ 40huart_divisor_msb: equ 41huart_scr: equ 47h
; initialize 16C550 uart to 9600 8n1 with 2MHz clock; 2MHz/13 = 153846Hz
init_uart:
mvi a,83hout uart_lcr ; set DLAB bit to access divider
mvi a,13out uart_divisor_lsbmvi a,0out uart_divisor_msb ; 2MHz/13 = 153846 Hz
; 153846Hz/16 = 9615Hzmvi a,7out uart_fifo ; init fifo and clear all buffers
mvi a,03hout uart_lcr ; clar DLAB
; check uart line status, if the byte is FF then no uart;;
xra aout uart_scr ; check if there is uartin uart_scrcpi 0jz foundxra asta uart_found
ret
found mvi a,1sta uart_foundret
cout: mov b,a ; save a
cout1: in uart_line_statusani 20h ; transmitter ready?jz cout1
7/31/2019 8085 Microprocessor Kit Description
43/51
43
mov a,b ; restore aout uart_bufferret
cin: in uart_line_statusani 1 ; data available?jz cinin uart_bufferret
; print string terminated by 0; input: HL
put_str: mov a,m ; get A from [HL]cpi 0jnz put_str1
ret
put_str1: call coutinx hjp put_str
7/31/2019 8085 Microprocessor Kit Description
44/51
44
Appendix D Using NVRAM Bootable
; MTK-85 8085 Microprocessor Training Kit; exp1.asm;; Using 8254 to produce 30.52Hz interrupt signal at RST7.5;; The 8254 counter0 was loaded with 0000 by system monitor.; The input clock to the 8254 is 2MHz, the OUT0 then
produces; 2MHz/65536 = 30.52Hz interrupt at RST7.5!;
CPU "8085.TBL" ;CPU TABLEHOF "INT8" ;HEX FORMAT
gpio equ 0
; enable NVRAM boot running
org 8000hjmp start ; put instruction JMP to boot from
RAM
org 803ch ; interrupt vector of RST7.5(relocated from 003CH)
jmp service_rst7.5
org 8100h
start: mvi a,11111011b ; enable rst7.5sim ; set interrupt mask registerei ; enable interrupt
jmp $ ; jump here
service_rst7.5:
lda count ; increment countinr a
sta countout gpio ; write to onboard LEDeiret
org 0e000h
count dfs 1 ; use RAM one byte for countvariable
end
7/31/2019 8085 Microprocessor Kit Description
45/51
!""#$%&'()(*+,-&$#(./%#(+$%(*$#0/$&,(/1(2324(5$6789,7&/$6
MOVE, LOAD and STORE
40 MOV B,B
41 MOV B,C42 MOV B,D43 MOV B,E44 MOV B,H45 MOV B,L46 MOV B,M47 MOV B,A48 MOV C,B49 MOV C,C4A MOV C,D4B MOV C,E4C MOV C,H4D MOV C,L4E MOV C,M4F MOV C,A50 MOV D,B51 MOV D,C52 MOV D,D53 MOV D,E54 MOV D,H55 MOV D,L56 MOV D,M57 MOV D,A58 MOV E,B59 MOV E,C5A MOV E,D5B MOV E,E5C MOV E,H5D MOV E,L5E MOV E,M5F MOV E,A60 MOV H,B61 MOV H,C62 MOV H,D63 MOV H,E64 MOV H,H65 MOV H,L66 MOV H,M67 MOV H,A68 MOV L,B69 MOV L,C6A MOV L,D6B MOV L,E6C MOV L,H6D MOV L,L
6E MOV L,M6F MOV L,A70 MOV M,B
71 MOV M,C72 MOV M,D73 MOV M,E74 MOV M,H75 MOV M,L77 MOV M,A78 MOV A,B79 MOV A,C7A MOV A,D7B MOV A,E7C MOV A,H7D MOV A,L7E MOV A,M7F MOV A,A
3E nn MVI A,byte06 nn MVI B,byte0E nn MVI C,byte16 nn MVI D,byte1E nn MVI E,byte26 nn MVI H,byte2E nn MVI L,byte36 nn MVI M,byte
01 nnnn LXI B,dble11 nnnn LXI D,dble21 nnnn LXI H,dble31 nnnn LXI SP,dble
02 STAX B12 STAX D0A LDAX B1A LDAX D32 nnnn STA adr3A nnnn LDA adr22 nnnn SHLD adr2A nnnn LHLD adrEB XCHG
STACK
C5 PUSH BD5 PUSH DE5 PUSH HF5 PUSH PSW
7/31/2019 8085 Microprocessor Kit Description
46/51
C1 POP BD1 POP DE1 POP HF1 POP PSWE3 XTHL
F9 SPHL33 INX SP3B DCX SP
ARITHEMATICS
C6 nn ADI byteCE nn ACI byte
80 ADD B81 ADD C82 ADD D
83 ADD E84 ADD H85 ADD L86 ADD M87 ADD A88 ADC B89 ADC C8A ADC D8B ADC E8C ADC H8D ADC L8E ADC M
8F ADC A
D6 nn SUI byteDE nn SBI byte
90 SUB B91 SUB C92 SUB D93 SUB E94 SUB H95 SUB L96 SUB M
97 SUB A98 SBB B99 SBB C9A SBB D9B SBB E9C SBB H9D SBB L9E SBB M9F SBB A
09 DAD B19 DAD D29 DAD H39 DAD SP
LOGICAL
E6 nn ANI byteEE nn XRI byteF6 nn ORI byteA0 ANA BA1 ANA CA2 ANA DA3 ANA EA4 ANA HA5 ANA LA6 ANA M
A7 ANA AA8 XRA BA9 XRA CAA XRA DAB XRA EAC XRA HAD XRA LAE XRA MAF XRA AB0 ORA BB1 ORA CB2 ORA D
B3 ORA EB4 ORA HB5 ORA LB6 ORA MB7 ORA A
COMPARE
FE nn CPI byteB8 CMP BB9 CMP CBA CMP D
BB CMP EBC CMP HBD CMP LBE CMP MBF CMP A
ROTATE
7/31/2019 8085 Microprocessor Kit Description
47/51
07! RLC17 RAL0F RRC1F RAR
JUMP
C3 nnnn JMP adrDA nnnn JC adrD2 nnnn JNC adrCA nnnn JZ adrC2 nnnn JNZ adrF2 nnnn JP adrFA nnnn JM adrEA nnnn JPE adrE2 nnnn JPO adrE9 PCHL
CALL
CD nnnn CALL adrDC nnnn CC adrD4 nnnn CNC adrCC nnnn CZ adrC4 nnnn CNZ adrF4 nnnn CP adrFC nnnn CM adrEC nnnn CPE adrE4 nnnn CPO adr
RETURN
C9 RETD8 RCD0 RNCC8 RZC0 RNZF0 RPF8 RME8 RPEE0 RPO
RESTART
C7 RST 0CF RST 1D7 RST 2DF RST 3E7 RST 4EF RST 5
F7 RST 6FF RST 7
INPUT/OUTPUT
DB nn IN byteD3 nn OUT byte
INCREMENT/DECREMENT
04 INR B0C INR C14 INR D1C INR E24 INR H2C INR L34 INR M
3C INR A03 INX B13 INX D23 INX H05 DCR B0D DCR C15 DCR D1D DCR E25 DCR H2D DCR L35 DCR M3D DCR A
0B DCX B1B DCX D2B DCX H
SPECIALS
2F CMA37 STC3F CMC27 DAA
CONTROL
00! NOPF3 DIFB EI76 HLT20 RIM30 SIM
7/31/2019 8085 Microprocessor Kit Description
48/51
5
4
3
2
1
D
D
C
C
B
B
A
A
0x0000-0x7FFF
Monitor
Program
0x8000-0xFFFF
32kB
SRAM,
NVRAM
memory
&
i/o
dec
oder
NO
NC
2
8085Mic
roprocesssorTrainingKit
B
1
4
Sa
turday,Ju
ly30
,2005
Title
Size
Documen
tNum
ber
Rev
Da
te:
Shee
t
of
D2
D6
A12
/RD
D1
A[8
..14]
ALE
D0
D1
D2
D3
A9
/RD
RAM
_CE
A
11
D3
A
8
D0
D5
A11
/WR
D1
D0
A11
D5
D0
A10
D7
D2
D4
D7
D6
D3
A15
/WR
A9
A6
A
9
A8
A
13
/RD
D5
D6
D4
D3
A8
A
14
A13
D2
A12
A14
A
10
A10
D5
A5
D6
A
12 A
13
D4
A15
D7
D1
D7
A14
ROM_CE
D4
ALE
RESET
_IN
IO/M
RAM
_CE
ROM
_CE
SOD
SID
RESET
_OUT
D0
D1
D2
D3
D4
D5
D6
D7
/RD
SOD
S1
CLKOUT
SID
ALE
/WR
S0
READY
IO/M
A4
A6
A7
A2
A3
A0
A5
A1
*INTR
*RST6
.5
*RST7
.5
INTA
HOLD
*RST5
.5
RESET_
OUT
HLDA
HOLD
INTA
CLKOUT
A7
HLDA
READY
A3
A2
A7
A3
A3
A5
A4
A4
A4
A7
A1
A2
A0
A2
A[0..7]
A6
A1
A1
A6
A0
A4
A5
A0
A5
A6
A7
TRAP
RST5
.5
S0
ALE
TRAP
S1
S0
S1
INTR
RST7
.5
RST6
.5
*RST5
.5
*RST6
.5
*INTR
RST5
.5
RST6
.5
RST7
.5
INTR
D0
D1
D2
D3
D4
D5
D6
D7
GPIO
_LED1
GPIO
_LED2
GPIO
_LED3
GPIO
_LED4
GPIO /W
R
/RD
RESET
_IN
GPIO
_LED1
GPIO
_LED2
GPIO
_LED3
GPIO
_LED4
VSS
SID
SYSTEM
_PPI
GPIO
rese
t
CT
C
US
ER
_PPI
UA
RT
LC
D_
E
A[0..
7]
CLKOUT
WR
RD
TRACE
*RST7
.5
VCC
+5V
+5V
+5V
+5V
+5V
+5V
+5V
+5V
+5V
+5V
VCC
+5V
+5V
+5V
R3
4.7
k
1 3 5 7 911
13
15
2 4 6 8 10
12
14
16
+ + + + + + + +
+ + + + + + + +
U25
KIA7045
123
VCC
GND
OUT
U9E
74LS04
11
10
D4 L
ED
U9A
74LS04
1
2
U9B
74LS04
3
4
U9F
74
LS04
13
12
U9C
74LS04
5
6
U4
74HC573
111
20
19
18
17
16
15
14
13
12
2 3 4 5 6 7 8 9
OE
LE
VCC
1Q
2Q
3Q
4Q
5Q
6Q
7Q
8Q
1D
2D
3D
4D
5D
6D
7D
8D
R1
100k
U9D
74LS04
9
8
U6D
4001
12
13
11
U2
27C256
10 9 8 7 6 5 4 3
25
24
21
23 2
26
27
20
22 1
11
12
13
15
16
17
18
19
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14
CE
OE
VPP
O0
O1
O2
O3
O4
O5
O6
O7
U3
HM62256B
10 9 8 7 6 5 4 3
25
24
21
23 2
26 1
20
22
27
11
12
13
15
16
17
18
19
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14
CE
OE
WE
D0
D1
D2
D3
D4
D5
D6
D7
U10
74LS164
1 2 8 9
3 4 5 6 10
11
12
13
A B CLK
CLR
QA
QB
QC
QD
QE
QF
QG
QH
SW2
PS2273
2
1 3
R7
330
U7
MSM80C85A
36 1 2 5 6 9 8 7
10
11
29
33
39
35
12
13
14
15
16
17
18
19
21
22
23
24
25
26
27
28
30
31
32
34
3 37
4 38
RST-I
N
X1
X2
SID
TRAP
RST5
.5
RST6
.5
RST7
.5
INTR
INTA
S0
S1
HOLD
READY
AD0
AD1
AD2
AD3
AD4
AD5
AD6
AD7
A8
A9
A10
A11
A12
A13
A14
A15
ALE
WR
RD
IO/M
RST-O
T
CLKO
SOD
HLDA
D1
1N4148
R5
4.7
k
U6A
4001
1 2
3
R2
1k
U6B
4001
5 6
4
D2
LED
D3
LED
D5
LED
R4
4.7
k
D6
LED
R10
4.7
k
SW1
SW
DIP-4
/SM
1 2 3 4
8 7 6 5
U1
74LS175
4 5 12 13 9 1
2 3 7 6 10
11
15
14
D1
D2
D3
D4
CLK
CLR
Q1
Q1
Q2
Q2
Q3
Q3
Q4
Q4
U5
74LS126
12
3
45
6 8
9 10
11
12
13
1OE
1A
1Y
2OE
2A
2Y
3Y
3A
3OE
4Y
4A
4OE
U8 GAL16V8D
111
12
13
14
15
16
17
18
19
2 3 4 5 6 7 8 9
I/C
LK
I/O
E
I/O/Q
I/O/Q
I/O/Q
I/O/Q
I/O/Q
I/O/Q
I/O/Q
I/O/Q
I I I I I I I I
U6C
4001
8 9
10
Q1
4MH
z
+
C3
1u
F
JP1
HEADER20X2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
S1
RESET
R21
4.7k
R6
330
C1
47p
F
R15
4.7
k
R8
330
C2
47p
F
R9
330
R11
330
7/31/2019 8085 Microprocessor Kit Description
49/51
5
4
3
2
1
D
D
C
C
B
B
A
A
COMMON
CATH
ODE
6-DIGIT
7-SEGMENT
L
ED
user_
key1
user_
key2
0x10-0x13
2
8085Mic
roprocessorTrainingKit
B
2
4
Sa
turday,Ju
ly30
,2005
Title
Size
Documen
tNum
ber
Rev
Da
te:
Shee
t
of
SPEAKE
R
PA0
PA1
PA2
PA3
PA4
PA5
PC0
PC1
PC2
PC3
PC3
PC0
PC2
PC1
PA7
PA6
PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7
PB7
PB6
PB5
PB4
PB3
PB2
PB1
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
D7
D1
D6
D0
D2
D5
D4
D3
A1
A0
SPEAKE
R
PA7
PA6
A0
A4
A5
A6
A1
A2
A3 A
7
PC5
PC4
VSS
TRACE
rese
t
D[0
..7]
SYSTEM
_PPI
A[0
..7]
RD
WR
VCC
+5V
+5V
VCC
+5V
SW18
U12
TOS-5
161AE
764219105
38
abcdefgdp
com1com2
SW28
U16
TOS-5
161AE
764219105
38
abcd
efgdp
com1com2
U18
74LS145
15
14
13
12
1 2 3 4 5 6 7 9 10
11
A B C D
0 1 2 3 4 5 6 7 8 9
R13
100
SW22
U19
8255
34
33
32
31
30
29
28
275
3698
356
432140
39
38
37
18
19
20
21
22
23
24
25
14
15
16
17
13
12
11
10
D0
D1
D2
D3
D4
D5
D6
D7
RD
WR
A0
A1
RESET
CS
PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
PC0
PC1
PC2
PC3
PC4
PC5
PC6
PC7
U17
TOS-5
161AE
764219105
38
abcdefgdp
com1com2
Q2
BC327
1
2
3
SW26
SW29
SW
PUSHBUTTON
U14
TOS-5
161AE
764219105
38
abcdefgdp
com1com2
U15
TOS-5
161AE
764219105
38
abcdefgdp
com1com2
SW4
SW6
SW11
SW23
SW9
CR14
4.7
k
1
2 3 4 5 6 7 8 9
SW15
SW19
SW13
SW17
SU1
SPEAKER
SW27
74LS244
4 6 811
13
15
17 1
19
1614
12
9 7 5 3
1A2
1A3
1A4
2A1
2A2
2A3
2A4
1G
2G
1Y2
1Y3
1Y4
2Y1
2Y2
2Y3
2Y4
SW21
R-P
ACK
2
15
3
14
4
13
5
12
6
11
7
10
8
9
U13
TOS-5
161A
E
764219105
38a
bcdefg
dp
com1com2
SW7
SW25
SW12
SW16
SW5
SW20
SW3
SW10
SW8
SW14
SW24
7/31/2019 8085 Microprocessor Kit Description
50/51
5
4
3
2
1
D
D
C
C
B
B
A
A
text
LCD
R/W
RS
RS232
level
converter
User
PPI
counter/timer
UART
0x20-0x23
0x30-0x33
0x40-
0x47
0x50-0x53
2MHz
2
8085Mic
roprocessorTrainingKit
B
3
4
Sa
turday,Ju
ly30
,2005
Title
Size
Documen
tNum
ber
Rev
Da
te:
Shee
t
of
D2
D3
D4
D7
D5
D6
D0
D1
D2
D3
D4
D7
D5
D6
D0
D1
D2
D3
D4
D7
D5
D6
D0
D1
A0
A1
A1
A0
A0
A1
A2
D2
D3
D0
D4
D1
D6
D5
LCD
_EA
1
D7
A0
A3 A
7A4
A2
A1
A5
A0
A6
USER
_PA5
USER
_PA6
USER
_PA0
USER
_PA3
USER
_PA2
USER
_PA4
USER
_PA1
USER
_PA7 TxD RxD
Tx
D
Rx
D
DCD
DCD
RTS
RTS
VSS
USER
_PA7
USER
_PA6
USER
_PA5
USER
_PA4
USER
_PA3
USER
_PA2
USER
_PA1
USER
_PA0
rese
t
USER
_PPI
CTC
UART
D[0
..7]
A[0
..7]
CLKOUT
*RST7
.5
LCD
_E
WR
RD
WR
RD
WR
RD
rese
t
VCC
+5V
+5V
+5V
+5V
+5V
VCC
+5V
+5V
U22
8255
34
33
32
31
30
29
28
27 5
36 9 8
35 6
4 3 2 1 40
39
38
37
18
19
20
21
22
23
24
25
14
15
16
17
13
12
11
10
D0
D1
D2
D3
D4
D5
D6
D7
RD
WR
A0
A1
RESET
CS
PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
PC0
PC1
PC2
PC3
PC4
PC5
PC6
PC7
U21
8254
8 7 6 5 4 3 2 122
23
19
20
21
9 11
10
15
14
13
18
16
17
D0
D1
D2
D3
D4
D5
D6
D7
RD
WR
A0
A1
CS
CLK0
G0
OUT0
CLK1
G1
OUT1
CLK2
G2
OUT2
U20
TL16C550A
10
11
12
13
14
18
19
21
22
25
35
36
37
38
39
16
9
28
27
26
1 2 3 4 5 6 7 834
31
23
24
29
30
32
33
17
15
SDI
SDO
CS0
CS1
CS2
WR1
WR2
RD1
RD2
ADS
MR
CTS
DSR
DCDR
I
XIN
RCLK
A0
A1
A2
D0
D1
D2
D3
D4
D5
D6
D7
OUT1
OUT2
DDIS
TXRDY
RXRDY
INTRPT
RTS
DTR
XOUT
BAUDOUT
SW30
bac
klight
2
1 3
JR1
CONNRECT16
12345678910
11
12
13
14
15
16
12345678910
11
12
13
14
15
16
+
C7
10u
F
+
C8
10u
F
+
C9
10u
FR17
4.7
k
R18
4.7
k
R19
10K
1
3
2
U23
MAX232A
13 8
11
10
1 3 4 5
2 6
12
9
14 7
R1IN
R2IN
T1IN
T2INC
+C1-
C2+
C2-
V+
V-
R1OUT
R2OUT
T1OUT
T2OUT
+
C6
10u
F10V
VB1
SUB-D
9,
(ma
le)uses
tra
ightca
ble
5 9 4 8 3 7 2 6 1
JP2
HE
ADER20X2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
7/31/2019 8085 Microprocessor Kit Description
51/51
4
3
2
1
D C B A
8085Mic
roprocessorTrainingKit
B
4
4
Sa
turday,Ju
ly30
,2005
Title
Size
Documen
tNum
ber
Rev
Da
te:
Shee
t
of
VSS
VCC
+5V
+5V
+5V
+5V
VC
C
C16
0.1
uF
C12
0.1
uF
+
C26
10u
F
J5
CON3
1 2 3
+
C11
1000u
F25V
C21
0.1u
F
C22
0.1
uF
C17
0.1
uF
4 uF
C23
0.1
uF
J6
DCInpu
t
1 2
R20
2k
+
C25
10u
F
+
C10
10u
F16V
C13
0.1
uF
D7
POWERLED(re
d)
C14
0.1
uF
U24
LM2490-5.0
1
2
3
VIN
GND
VOUT
C
18
0.1u
F
C20
0.1
uF
D8
1N4007
1
2
+
C27
10u
F
C19
0.1
uF
C15
0.1
uF
Top Related