Professional Documents
Culture Documents
LTD
8051
MICROCONTROLLER
PS TRAINER8051B
USER
MANUAL
PS-8051
TABLE OF CONTENTS
CHAPTER
1: INTRODUCTION
1.1
WELCOME
1.2
1.3
PS 8086 SPECIFICATIONS
CHAPTER 2:
2.1
2.2
2.3
2.4
4.1
4.2
4.3
4.4
5.1
5.2
06
07
POWER ON
PROGRAM ENTRY USING ASSEMBLER
ENTERING MNEMONICS
DISASSEMBLER
CHAPTER 5:
05
SYSTEM DESCRIPTION
RESET
H (HELP MENU)
CHAPTER 4:
04
HARDWARE
MAPPING OF DEVICES
POWER SUPPLY DETAILS
KEYBOARD DETAILS
CHAPTER 3:
3.1
3.2
PAGE NO
14
15
16
PROGRAMMING DETAILS
8051 OVERVIEW
REGISTERS
20
PS-8051
5.3
BREAKPOINT
CHAPTER 6:
6.1
6.2
6.3
6.4
6.5
6.6
6.7
6.8
6.9
6.10
6.11
6.12
EXAMPLE PROGRAMS
ADDITION
SUBTRACTION
MULTIPLICATIONS
DIVISION
MULTI BYTE ADDITION
LARGEST ELEMENT IN AN ARRAY
PROGRAMS FOR SORTING
BCD TO HEX CONVERSION
HEX TO BCD CONVERSION
ASCII TO HEX CONVERSION
SQUARE ROOT OF A GIVEN NUMBER
PARITY GENERATION
22
23
24
25
26
28
29
30
31
32
33
34
PS-8051
CHAPTER
1: INTRODUCTION
1.1 WELCOME
Thank you for purchasing PS-8051 Board from PANTECH PROLABS INDIA PVT
LTD. The PS-8051 board which demonstrates the capabilities of the 40-pin 8051
(various families) Sample programs are provided to demonstrate the unique
features of the supported devices.
The PS-8051 Board Kit comes with the following:
1)
2)
3)
4)
PS-8051 Board
Sample device (NXP 89V51RD2)
Cross cable (RS232)
CD-ROM, which contains:
Sample programs
User and Technical Reference Manual
5) User and Technical Reference Manual
6)
Note: If you are missing any part of the kit, please contact our
support executive
PS-8051
with the trainer kit and 2 line by 16 characters LCD display or from the PC (using the
Terminal Emulation Software).
monitor in 27C256 EPROM. Keyboard and LCD display. The board has 32KB CMOS
static RAM (type 62256). PS 8051 works on +9V DC at 1 Amp.
PS-8051
PS-8051
HARDWARE DESCRIPTION
MEMORY:
Monitor EPROM: 0000 7FFF (SEGMENT)
System RAM:
8500 FFFF
ALLOCATION OF EPROM:
STARTADDR
ESS
0000
ENDADDR
ESS
7FFF
SOCKET
NO
U3
IC
USED
27256
TOTAL
CAPACITY
32 K BYTE
SOCKET
NO
U6
IC
USED
62256
TOTAL
CAPACITY
32 K BYTE
ALLOCATION OF RAM:
STARTADDR
ESS
8000
ENDADDR
ESS
FFFF
PS-8051
SOCKET.NO
FUNCTION
ADDRESS
CONTL REG
PORT A
PORT B
PORT C
U2
CONNECTOR.N
O
4003
4000
4001
4002
J1
CONNECTOR DETAILS
20 PIN EXPANSION CONNECTORS:
The 20 Pin FRC connector is used to interconnect with the Interface cards
like ADC, DAC, SWITCH/LED, RELAY buzzer Interfaces etc. Pin details are given
below
J1
PA0
PA2
PA4
PA6
PB0
PB2
PB4
PB6
VCC
1
3
5
7
9
11
13
15
17
19
J4
2
4
6
8
10
12
14
16
18
20
PA1
PA3
PA5
PA7
PB1
PB3
PB5
PB7
GND
GND
20-PIN FRC
P1.0 1
P1.2 3
P1.4 5
P1.6 7
P3.0 9
P3.2 11
P3.4 13
P3.6 15
17
19
VCC
J3
2
4
6
8
10
12
14
16
18
20
P1.1
P1.3
P1.5
P1.7
P3.1
P3.3
P3.5
P3.7
GND
GND
PC0
PC2
PC4
PC6
CS6
CS8
CS10
VCC
1
3
5
7
9
11
13
15
17
19
20-PIN FRC
2
4
6
8
10
12
14
16
18
20
PC1
PC3
PC5
PC7
CS7
CS9
CS11
GND
GND
20-PIN FRC
PS-8051
The 50 Pin FRC connector is used to interconnect with the Interface cards
like 8255, 8279, 8253/8251, 8259 .
J6
GND
D0
D2
D4
D6
A0
A2
A4
A6
A8
A10
A12
A14
PCLK
RST
INT1
WR
ALE
PSEN
CS7
CS9
RXD
VCC
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
33
35
37
39
41
43
45
47
49
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40
42
44
46
48
50
D1VCC
D3
D5
D7
A1
A3
A5
A7
A9
A11
A13
A15
INT0
RD
EA
CS6
CS8
TXD
GND
KEYBOARD CONNECTOR:
5V
PIN NO
5
R 13
1K
P C 07
P S 2
1,2
8
8,6
5
3
SIGNAL
R 12
1K
P C 06
KEYBOARD CLOCK
DATA
VCC
J P 1
GND
PS-8051
NC
NC
P1
1
6
2
7
3
8
4
9
5
RXD
CTS
TXD
NC
NC
NC
GND
LCD CONNECTOR
10
PS-8051
11
PS-8051
LCD
12
PS-8051
FUNCTION
ADDRESS
LCD COMMAND
LCD DATA
----
4020
4021
CONNECTOR.NO
-----
POWER SWITCH
Supply Turned ON
3.2
13
H (Help Menu)
PS-8051
PRESS H KEY This key is used in PS 51/31 to get into help menu and it will display
the following commands.
A <BEG>
ASSEMBLE
BAUD RATE
D <BEG>
DISASSEMBLE
E <BEG> <END>
EXAMINE
G <BEG>
EXECUTE
HELP COMMANDS
I <ADDR>
INTERNAL RAM
L <OFFSET>
DOWNLOAD
M <ADDR>
MODIFY
NORMAL MODE
QUIT
R <REG>
REGISTER DISPLAY
SERIAL MODE
<START>
<END>
<DS>
U <BEG> <END>
BLOCK TRANSFER
UP LOAD
1 Amp
Switch on the power supply after ensuring the correct voltages. Following message will
appear on the LCD display.
PAN TECH
8051
14
PS-8051
On power on or after reset the display shows PANTECH 8051 as a sign on message. The
prompt character is displayed in the next line informing the user, that the board is ready to
accept the commands.
Example:
PAN TECH
a8500
Enter Key
User program starts from address 8500. Display the following and waits for the user
data to be typed in the second line .
EXAMPLE:
8500:
mov a,#12
8502:
mov b,#12
Enter Key
EXIT COMMAND:
Double enter you get the main menu
8500:
4A
8500:
4A 74
15
PS-8051
56 12
Enter the space bar key
G8500
Enter key
After executing display
Executing display
m <address>
Enter Key
<Address>:
24
4.4 DISASSEMBLER
Disassemble converts the hex byte stored in the memory into equivalent
mnemonics. To enter into disassemble mode, type D in the command mode followed
by the memory address.
EXAMPLE:
Press H for help
d8500
16
PS-8051
Enter Key
8500:
74
12
MOV A,#12
Enter the Space Bar Key
8502:
75 0B 12
MOV B,#12
m8500
R (REGISTER DISPLAY)
EXAMPLE:
Press H for help
RA
Enter Key
A = FF
T (TRANSFER COMMAND)
EXAMPLE:
T8500 8600 9000
17
PS-8051
The above command transfer the memory content starting from source start
address 8500 to destination start address 8600 till source end address 9000 is
reached
Starting address
End address
Destination address
8500
8600
9000
Enter Key
T: 8500 to 9000
Enter Key
N (LOCAL MODE)
When this key is depressed on PC keyboard, the PS 8051 Kit starts working through
local 101 key keyboard. Serial communication is disabled. Following message will
appear in the LCD display.
! Normal Mode!
B (BAUD RATE)
Press the B
BAUD RATE : @0150
@150
Enter Key
BAUD RATE
18
PS-8051
19
OPCODES
74 12
24 12
90 45 00
F0
80 FE
MNEMONICS
MOV A,#12
ADD A,#12
MOV DPTR,#8600
MOVX @DPTR,A
SJMP 8508
PS-8051
To verify the code depress D starting address and depress space bar to see
next memory location
For Ex: D8500 and press spacebar till the end of the program
To view the output in the Register depress R and press enter key in
keyboard.
OPCODES
74 12
24 12
90 86 00
F0
80 FE
MNEMONICS
MOV A,#12
ADD A,#12
MOV DPTR,#8600
MOVX @DPTR,A
SJMP 8508
To view the code depress D starting address and depress space bar to see
next memory location
For Ex: D8500 and press spacebar till the end of the program
20
To execute the program Depress G staring address for Ex: G8500 and press
Reset Switch(SW2)
PS-8051
To view the output in the Register depress R and press enter key in keyboard
5.1 REGISTERS:
From the programmers point of view 8051 has the following register:
21
Program EPROM
: 0000 7FFF
PS-8051
Internal RAM
User Interrupts
CS6
CS7
CS8
CS9
CS10
ADDRESS
4040 405f
4060 407F
4080 409F
40A0 40BF
40C0 40DF
5.3 BREAKPOINT:
PS-8051
When break point is encountered, all the register values are saved and all the
register value will be displayed on the console.
CHAPTER 6:
EXAMPLE PROGRAMS
MOV A,# 13
ADD A,#14
INPUT:
OUTPUT:
8600
27H
PROGRAM:
ADDRES
OPCODE
S
8500
S
74 13
MOV A,#13
8502
24 14
ADD A,#14
register
Give 8 bit second data in acc
MOV DPTR,#8600
move
Store in 8600 memory
23
8504
90 86
8507
00
F0
8508
80 FE
MNEMONICS
COMMENTS
location
MOVX @DPTR,A
HERE:
SJMP HERE
PS-8051
MOV A,# 20
SUBB A,#10
INPUT:
OUTPUT:
8600
10H
PROGRAM:
ADDRES
24
OPCODE
S
8500
8502
S
74 20
94 10
8504
90 86 00
8507
8508
F0
80 FE
MNEMONICS
COMMENDS
MOV A,#20
SUBB A,#10
MOV
move
Store in 8600 memory location
DPTR,#8600
MOVX @DPTR,A
HERE:
SJMP HERE
PS-8051
OUTPUT:
8600
0CH
PROGRAM:
ADDRES
OPCODE
MNEMONICS
S
8500
8502
8505
8506
8509
850A
850B
850D
850E
S
74 06
75 F0 02
A4
90 86 00
F0
A3
E5 F0
F0
80 FE
MOV A,#06
MOV F0,#02
MUL AB
MOV DPTR,#8600
MOVX @DPTR,A
INC DPTR
MOV A,F0
MOVX @DPTR,A
HERE:
SJMP HERE
25
COMMENDS
PS-8051
OUTPUT:
8600
8601
04H
00H
PROGRAM:
ADDRES
OPCODE
MNEMONICS
S
8500
8502
8505
8506
8509
850A
850B
850D
850E
S
74 08
75 F0 02
84
90 86 00
F0
A3
E5 F0
F0
80 FE
MOV A,#08
MOV F0,#02
DIV AB
MOV DPTR,#8600
MOVX @DPTR,A
INC DPTR
MOV A,F0
MOVX @DPTR,A
HERE:
SJMP HERE
26
COMMENDS
PS-8051
INPUT:
8600
8601
8602
02H
03H
04H
(FIRST INPUT)
8610
8611
8612
02H
03H
04H
(SECOND INPUT)
8700
8701
8702
04H
06H
08H
OUTPUT:
PROGRAM:
27
PS-8051
ADDRES
OPCODE
28
MNEMONICS
COMMENDS
PS-8051
8500
C3
CLR C
8501
7C 03
MOV R4,#03
8503
90 86 00
MOV
8506
8508
A8 82
A9 83
850A
90 8610
850D
AA 82
DPTR,#8610
MOV R2,DPL
850F
AB 83
MOV R3,DPH
8511
90 87 00
MOV
8514
C0 82
8516
C0 83
PUSH DPH
8518
88 82
MOV DPL,R0
851A
89 83
MOV DPH,R1
851C
E0
MOVX A,@DPTR
851D
F5 F0
MOV F0,A
851F
A3
INC DPTR
8520
A8 82
MOV R0,DPL
8522
A9 83
MOV R1,DPH
8524
8A 82
MOV DPL,R2
8526
8B 83
MOV DPH,R3
8528
E0
MOVX A,@DPTR
8529
35 F0
ADDC A,B
852B
A3
INC DPTR
852C
AA 82
MOV R2,DPL
852E
AB 83
MOV R3,DPH
8530
D0 83
POP DPH
8532
D0 82
POP DPL
8534
F0
MOVX @DPTR,A
8535
A3
INC DPTR
8536
DC DC
DJNZ R4,LOOP
8538
80 FE
DPTR,#8600
MOV R0,DPL
MOV R1,DPH
MOV
DPTR,#8700
LOOP:
PUSH DPL
HERE:
SJMP HERE
PS-8051
Let Internal memory location (say 40H) has the biggest number i.e.
zero.
Now the biggest number in internal memory location is stored in
memory as the Result.
Now compare the first number with internal memory location. If it is
greater, move it to internal memory
INPUT:
8600
8605
OUTPUT:
860A
7FH
PROGRAM:
ADDRES
OPCODE
MNEMONICS
S
8500
90
86
MOV DPTR,#8600
8503
00
75
40
MOV 40,#00
8506
8508
8509
00
7D 0A
E0
B5
40
MOV R5,#0A
LOOP2: MOVX A,@DPTR
CJNE A,40,LOOP1
850C
850D
850F
8511
8512
8514
8516
8518
08
A3
DD F9
E5 40
F0
80 FE
40 F6
F5 40
80 F2
6.7
COMMENDS
THEORY:
30
PS-8051
The sorting technique used here is relatively simple. First consider the first two
numbers of the array.
INPUT:
8600
OUTPUT:
8600
PROGRAM:
ADDRES
OPCODE
S
8500
8502
8503
8504
78 05
E8
F9
90
86
8507
8509
850B
850C
850E
850F
8510
00
C0 83
C0 82
E0
F5 F0
A3
E0
B5
F0
8513
8515
8517
8519
851A
851B
851D
851E
8520
8522
00
50 09
D0 82
D0 83
F0
A3
E5 F0
F0
D9 E7
D8 E0
80 FE
MNEMONICS
LOOP3:
MOV R0,#05
MOV A,R0
MOV R1,A
MOV DPTR,#8600
LOOP2:
PUSH DPH
PUSH DPL
MOVX A,@DPTR
MOV F0,A
INC DPTR
MOVX A,@DPTR
CJNE A,F0,LOOP1
LOOP1:
JNC LOOP
POP DPL
POP DPH
MOVX @DPTR,A
INC DPTR
MOV A,F0
MOVX @DPTR,A
DJNZ R1,LOOP2
DJNZ R0,LOOP3
SJMP HERE
LOOP:
HERE:
COMMENDS
PS-8051
INPUT:
8600
OUTPUT:
8601
15H
0FH
PROGRAM:
ADDRES
OPCODE
MNEMONICS
S
8500
90 86
MOV DPTR,#8600
8503
8504
8505
8507
8508
8509
850A
850C
850D
850E
00
E0
FD
54 F0
C4
F9
ED
54 0F
FA
E9
75 F0
MOVX A,@DPTR
MOV R5,A
ANL A,#F0
SWAP A
MOV R1,A
MOV A,R5
ANL A,#0F
MOV R2,A
MOV A,R1
MOV F0,#0A
8511
8512
8513
8514
8515
0A
A4
2A
A3
F0
80 FE
MUL AB
ADD A,R2
INC DPTR
MOVX @DPTR,A
HERE:
SJMP HERE
COMMENDS
INPUT:
8600
32
0FH
PS-8051
OUTPUT:
8601
8602
00H
15H
PROGRAM:
ADDRES
OPCODE
S
8500
8503
8504
8507
8508
8509
850A
850C
850F
8510
8511
8513
8514
8515
90 86 00
E0
75 F0 64
84
A3
F0
E5 F0
75 F0 0A
84
C4
25 F0
A3
F0
80 FE
MNEMONICS
COMMENDS
MOV DPTR,#8600
MOVX A,@DPTR
MOV F0,#64
DIV AB
INC DPTR
MOVX @DPTR,A
MOV A,F0
MOV F0,#0A
DIV AB
SWAP A
ADD A,F0
INC DPTR
MOVX @DPTR,A
HERE: SJMP HERE
INPUT:
8600
OUTPUT:
8700
0AH
41H
PROGRAM:
33
PS-8051
ADDRES
S
8500
OPCODE
MNEMONICS
90 86
8503
8504
8505
8508
8509
850A
850C
850E
850F
8511
00
E0
F8
94
50
E8
24
80
E8
24
90
8514
8515
00
F0
80 FE
0A
05
30
03
37
87
COMMENDS
MOV DPTR,#8600
MOVX A,@DPTR
MOV R0,A
SUBB A,#0A
JNC LOOP1
MOV A,R0
ADD A,#30
SJMP LOOP
LOOP1: MOV A,R0
ADD A,#37
LOOP:
MOV DPTR,#8700
MOVX @DPTR,A
SJMP HERE
HERE:
INPUT:
8600
OUTPUT:
8700
09H
03H
PROGRAM:
ADDRES
34
OPCODE
MNEMONICS
PS-8051
S
8500
8503
8504
8505
8507
8508
850A
850B
850C
850E
850F
8511
8512
8514
8517
8518
8519
S
90 86 00
E0
F9
7A 01
E9
8A F0
84
FB
AC F0
9A
60 03
0A
80 F3
90 87 00
EB
F0
80 FE
MOV DPTR,#8600
MOVX A,@DPTR
MOV R1,A
MOV R2,#01
LOOP: MOV A,R1
MOV F0,R2
DIV AB
MOV R3,A
MOV R4,F0
SUBB A,R2
JZ RESULT
INC R2
SJMP LOOP
RESULT: MOV DPTR,#8700
MOV A,R3
MOVX @DPTR,A
HERE:
SJMP HERE
Even parity bit and odd parity bit. When using even parity, the parity bit is set
to 1
INPUT:
8600
OUTPUT:
8700
PROGRAM:
ADDRES
S
8500
8503
8504
8505
8507
8509
850A
850C
850D
850F
8510
OPCODE
90
01H
MNEMONICS
86
MOV DPTR,#8600
00
E0
FD
7A 00
7B 08
13
70 01
0A
DB FA
EA
75
F0
MOVX A,@DPTR
MOV R5,A
MOV R2,#00
MOV R3,#08
RRC A
JNZ LOOP2
INC R2
DJNZ R3,LOOP1
MOV A,R2
MOV F0,#02
L00P1 :
LOOP2 :
02
35
PS-8051
8513
8514
8516
8518
851A
851C
851E
8520
8522
8525
8526
8528
84
E5 F0
70 06
74 01
7F FF
80 04
74 00
7F 00
90
87
00
F0
8F 90
80 FE
LOOP4 :
DIV AB
MOV A,F0
JNZ LOOP3
MOV A,#01
MOV R7,#FF
SJMP LOOP4
MOV A,#00
MOV R7,#00
MOV DPTR,#8700
HERE :
MOVX @DPTR,A
MOV 90,R7
SJMP H
LOOP3 :
PROGRAM:
ADDRES
OPCODE
MNEMONICS
S
8500
75
89
MOV TMOD,#20
8503
20
75
8D
MOV TH1,05
8506
8508
05
D2 8E
30
8F
850B
850D
850F
FD
B2 90
C2 8F
80 F7
36
BACK:
SETB TR1
JNB TR1,BACK
CPL 90
CLR TF1
SJMP BACK
COMMENT
T1/8-bit/auto reload
TH1 = 5
Start The Timer 1
Till Timer Rolls Over
P1.0 to hi, lo
Clear Timer 1 flag
PS-8051
THEORY:
8051 to transfer the letter A serially at 9600 baud continuously. Use 8-bit
data and 1 stop bit.
PROCEDURE:
Through open the PC hyper terminal window (serial window) .set 9600 BUAD
RATE
PS2 KIT press B set 9600 baud rate value after execution program.
850B:
41
TRANSMITTER PROGRAM:
9100
758921
MOV TMOD,#21H
9103
758DF5
MOV TH1,#0F5H
9106
759852
MOV SCON,#52H
9109
758700
MOV PCON,#00H
37
PS-8051
910C
D28E
SETB TR1
910E
7445
MOV A, #45H
9110
3114
ACALL TRANS
9112
80FE
9114
F599
9116
3099FD
9119
C299
CLR TI
911B
22
RET
8700:
41
RECEIVER PROGRAM:
9100
758921
MOV TMOD,#21H
9103
758DF5
MOV TH1,#0F5H
9106
759852
MOV SCON,#52H
9109
758700
MOV PCON,#00H
910C
909200
MOV DPTR,#9200H
910F
D28E
SETB TR1
9111
3098FD
9114
E599
MOV A,SBUF
9116
C298
CLR RI
9118
C28E
CLR TR1
38
WAIT :
JNB RI,WAIT
PS-8051
911A
F0
MOVX @DPTR,A
911B
A3
INC DPTR
911C
80FE
HALT :
SJMP HALT
Procedure:
1. Connect the two microcontroller kit using RS232 cable
2. Enter the transmitter program in 1ST microcontroller kit & receiver
program in 2nd
microcontroller kit.
3. First run the receiver program in kit2 and then run the transmitter program
in kit1.
4. After executing the transmitter program, reset the kit and go to location
8700h
5. The transferred datas yes (ASCII) value are stored from 8400h onwards
in the kit2.
39
PS-8051