ESA 51 USER MANUAL - Electro Systems Associates

ESA 51 USER MANUAL - Electro Systems Associates
ESA 51
USER MANUAL
Electro Systems Associates Pvt Ltd
www.esaindia.com
PREFACE
This is the user’s manual for ESA 51 microcontroller trainer. The manual describes the
hardware and software components of ESA 51 and gives the interface information necessary
for expanding the system.
This manual describes in detail the facilities offered by the stand-alone mode monitor
program and the serial monitor program, the on-line assembler, disassembler packages. The onboard facilities: Centronics Parallel Printer Interface, DAC interface and optional ADC
interface, are also described in this manual. Communication with the Host Computer is also
described.
Please note that this volume is a user’s guide for ESA 51 and such does not deal
elaborately with the features of 8031 microcontroller family and related peripherals and their
programming. Details regarding these can be obtained from the following INTEL Publication.
Microcontroller Handbook
While every effort has been made to present the information in an accurate and simple
fashion, we do welcome suggestions for improving the quality and usefulness of this manual.
Please address your correspondence to:
ELECTRO SYSTEMS ASSOCIATES PVT LTD.,
4215 J.K. Complex, First Main Road, Subramanyanagar
P.O. Box No. 2139 BANGALORE - 560 021 INDIA
Fax : 91-80-3325615 Phone : 3323029 3322924
email : [email protected],
www.esaindia.com
ESA 51 User's Manual
CONTENTS
CHAPTER 1
INTRODUCTION
1-1 to 1-3
CHAPTER 2
2.1
2.1.1
2.1.2
2.1.3
2.1.4
2.2
2.2.1
2.2.2
2.2.3
2.2.4
CONFIGURATION AND INSTALLATION ..................... 2-1 to 2-5
Configuration of ESA51 .................................................................... 2-1
Operational Mode Selection .............................................................. 2-1
Printer Enable/Disable....................................................................... 2-2
Baud Rate Selection .......................................................................... 2-2
Memory Selection ............................................................................. 2-3
Installation of ESA 51 ....................................................................... 2-3
Installation Procedure for Serial Mode of Operation ........................ 2-3
No Response in Serial Mode of Operation........................................ 2-3
Installation Procedure for Stand-alone Mode of Operation .............. 2.4
No Response in Stand-alone Mode ................................................... 2-5
CHAPTER 3
3.1
3.2
3.3
3.3.1
3.3.2
3.3.3
3.3.4
3.3.5
3.3.6
3.3.7
3.3.8
3.3.9
3.3.9.1
3.3.10
3.3.10.1
3.3.10.2
3.3.10.3
3.3.10.4
3.3.10.5
STAND ALONE MODE MONITOR ............................ 3-1 to 3-17
Introduction ....................................................................................... 3-1
Structure of Monitor Commands ...................................................... 3-1
Monitor Commands .......................................................................... 3-2
M (Modify) Command ...................................................................... 3-4
M (Display) Command ..................................................................... 3-5
M (Move memory) Command .......................................................... 3-6
F (Fill memory) Command ............................................................... 3-7
C (Compare memory) Command ...................................................... 3-8
R (Examine/Modify Register) Command ......................................... 3-8
J (Jump to Address-Set/change PC) Command .............................. 3-10
G (Go ) Command ........................................................................... 3-11
S (Single Step) Command ............................................................... 3-12
S (Single Step) Command with disassembly .................................. 3-12
B (Breakpoint) Commands ............................................................. 3-12
Clear Breakpoint ............................................................................. 3-13
Set Breakpoint ................................................................................. 3-13
Display Breakpoint .......................................................................... 3-13
Enable Breakpoint ........................................................................... 3-14
Disable Breakpoints ........................................................................ 3-14
3.3.11
3.3.12
3.3.13
A (Assembly) Command ................................................................. 3-15
Z (Disassembler) Command............................................................ 3-16
H (Help) Command ......................................................................... 3-16
CHAPTER 4
4.1
4.2
4.3
4.3.1
4.3.2
4.3.3
4.3.4
4.3.5
4.3.6
4.3.7
4.3.8
4.3.9
4.3.9.1
4.3.9.2
4.3.9.3
4.3.10
4.3.10.1
4.3.10.2
4.3.10.3
4.3.10.4
4.3.10.5
4.3.11
4.3.12
4.3.13
SERIAL MONITOR ....................................................... 4-1 to 4-18
Introduction ....................................................................................... 4-1
Structure of Monitor Commands ...................................................... 4-1
Monitor Commands .......................................................................... 4-2
M (Modify) Command ...................................................................... 4-4
M (Display) Command ..................................................................... 4-5
M (Move memory) Command .......................................................... 4-5
F (Fill memory) Command ............................................................... 4-6
C (Compare memory) Command ...................................................... 4-7
R (Examine/Modify Register) Command ......................................... 4-8
J (Jump to Address-Set/change PC) Command .............................. 4-10
G (Go ) Command ........................................................................... 4-10
S (Single Step) Command ............................................................... 4-11
SR (Single Step with Register Display) Command ........................ 4-12
S (Single Step) Command with disassembly .................................. 4-12
N (Single step with count) Command ............................................. 4-13
B (Breakpoint) Commands ............................................................. 4-13
Clear Breakpoint ............................................................................. 4-14
Set Breakpoint ................................................................................. 4-14
Display Breakpoint .......................................................................... 4-14
Enable Breakpoint ........................................................................... 4-15
Disable Breakpoints ........................................................................ 4-15
A (Assembly) Command ................................................................. 4-16
Z (Disassembler) Command............................................................ 4-16
H (Help) Command ......................................................................... 4-17
CHAPTER 5
5.1
5.2
5.3
5.4
5-5
5.6
HARDWARE ........................................................................ 5-1 to 5-11
Introduction ....................................................................................... 5-1
CPU, Address, Data and Control Signals .......................................... 5-1
Memory Addressing .......................................................................... 5-2
I/O Addressing .................................................................................. 5-2
8042 Universal Peripheral Interface .................................................. 5-4
LCD Interface .................................................................................... 5-4
5.7
5.8
5.9
5.10
5.11
5.12
5.13
5.14
Programmable Interval Timer ........................................................... 5-4
Serial Interface .................................................................................. 5-5
Programmable Peripherals Interface Devices ................................... 5-6
Programmable Input/Output and Timer ............................................ 5-6
8-Channel 12 û bit A/D Converter..................................................... 5-6
On-board 8 bit D/A Converter ........................................................... 5-8
Bus Expansion ................................................................................... 5-8
Connector Details .............................................................................. 5-9
CHAPTER 6
6.1
6.2
6.3
MONITOR ROUTINES ACCESSIBLE TO THE USER 6- 1 to 6- 2
Stand-alone mode Monitor Routines Accessible to user ................... 6-1
Serial Monitor Routines Accessible to User ..................................... 6-2
User Accessible Routines common to both stand-alone
and serial monitors ............................................................................ 6-2
CHAPTER 7
7.1
7.2
7.3
7.4
7.5
PARALLEL PRINTER INTERFACE .............................. 7- 1 to 7- 4
Introduction ...................................................................................... 7- 1
Installation ......................................................................................... 7-1
Operation ........................................................................................... 7-2
Direct Output to Printer ..................................................................... 7-2
Connector Details .............................................................................. 7-4
CHAPTER 8
8.1
8.2
8.3
8.3.1
8.3.2
8.3.3
8.3.4
8.3.5
EPROM PROGRAMMER INTERFACE......................... 8-1 to 8-7
Introduction ....................................................................................... 8-1
Installation Procedure ........................................................................ 8-2
Operation from both Serial and Stand-alone Monitor ....................... 8-3
P Command ....................................................................................... 8-3
V Command ...................................................................................... 8.5
B Command ...................................................................................... 8-6
R Command ...................................................................................... 8-6
Examples ........................................................................................... 8-7
CHAPTER 9
COMMUNICATION WITH A HOST
COMPUTER SYSTEM ........................................................ 9-1to 9-9
Introduction ...................................................................................... 9 -1
Installation ......................................................................................... 9-2
Returning to DOS .............................................................................. 9-4
9.1
9.2
9.3
9.4
9-4.1
9-4.2
9.4.3
9.4.4
9.4.5
9.4.6
9.4.7
Operational details............................................................................. 9-4
Download operation .......................................................................... 9-4
Upload operation ............................................................................... 9-6
DOS Commands................................................................................ 9-7
Bottom Line ...................................................................................... 9-8
Command Recall ............................................................................... 9-8
Communication ................................................................................. 9-8
Help ................................................................................................... 9-9
CHAPTER 10
10.1
10-2
10-3
10.4
EXAMPLE PROGRAMS .............................................. 10-1 to 10-15
Program to Display ESA P LTD in trainer Display ........................ 10-1
Program to perform Multiplication of 2 numbers ........................... 10-2
Program to perform division of 2 numbers .................................... 10-2
Program to Display
ELECTRO SYSTEMS ASSOCIATES PVT LTD BANGALORE
On the console ................................................................................. 10-3
Program to convert ASCII to HEX equivalent and to
Display it on the console ................................................................. 10-4
Program to convert HEX equivalent to ASCII and to
Display it on the console ................................................................. 10-4
Checking the 5th bit in the given byte ............................................. 10-5
Program to display largest number among the ‘N’ number ............ 10-5
Program to display decimal count 0 to 20 ....................................... 10-6
Program to display 24 hours digital clock in serial mode .............. 10-7
Program to perform addition of two nos. ...................................... 10-10
Program to perform subtraction of two nos. ................................. 10-11
Demonstration program for on-board DAC .................................. 10-11
Demonstration program for on-board optional ADC .................... 10-12
10.5
10.6
10.7
10.8
10.9
10.10
10.11
10.12
10.13
10.14
APPENDICES
APPENDIX A
APPENDIX B
APPENDIX C
APPENDIX D
APPENDIX E
APPENDIX F
- COMPONENT PLACEMENT DIAGRAM
- ASCII CODES
- RS 232C/RS 485 CABLE REQUIREMENTS
- PRODUCT LIST
- INSTRUCTION SET
- CONNECTOR DETAILS
CHAPTER
1
INTRODUCTION
Intel's MCS-51 family of microcontrollers and its derivatives are increasingly becoming
popular for instrumentation and control applications due to its speed and powerful instruction
set which are essential for real-time applications. This has created the need for a good trainer
and development tools. ESA 51 (an advanced version of ESA 31) provides complete solution
for this requirement. It can be used as a flexible instructional aid in academic institutions and a
powerful development kit in R&D Labs.
ESA 51 has on-board DAC, ADC (optional) and parallel printer interface. The system
firmware provides stand-alone mode monitor, serial monitor, single line assembler,
disassembler and drivers for EPROM programmer and parallel printer interfaces. ESA 51 is
supported with comprehensive and user-friendly documentation.
MAIN FEATURES
c ESA 51 operates on single +5V power supply either in stand-alone mode using PC
keyboard and LCD or with host PC through its RS-232-C / RS 485 interface in serial
mode.
c Stand-alone and serial monitor programs support the entry of user programs, editing
and debugging facilities like breakpoints (128K), single stepping and full speed
execution of user programs.
ESA 51 USER’S MANUAL
1-1
c Line assembler & disassembler.
c Total on-board memory is 128K bytes of which 96K bytes RAM has battery backup
provision.
c On-board parallel printer port.
c On-board 8 bit DAC using 0800.
c Optional on-board 12 bit ADC using AD1674.
c 48 I/O lines and four programmable interval timers.
c 13 port lines of 8031 brought out to the connector including INT1, RXD & TXD pins
( 6 lines are shared for optional ADC ).
c Buffered bus signals are available through ribbon cable connector for easy system
expansion.
c Driver software for file upload/download to/from host PC.
ACCESSORIES (OPTIONAL)
c
Power Supply : +5V @ 3A; +12V @ 250mA; -12V @ 100mA and +30V @ 100mA
c
PC keyboard and 20 X 4 LCD module for stand-alone mode of operation.
c
EPROM programmer interface.
c
Interface Modules for training purpose : Keyboard, Elevator, Display, ADC with DAC,
Dual DAC, 8 bit-16 Channel ADC, 12 bit 8 Channel ADC, Logic Controller, Traffic
Lights, Tone Generator, Stepper Motor, Opto Isolated Input, Opto Isolated Output,
Relay Output etc.
c
12 bit ADC (AD1674) with 8 channel MUX.
c
3.6V Ni-Cd battery for power backup to RAM.
c
Parallel printer cable.
c
RS 485 interfacing cable.
c
26 core ribbon cable connector set.
c
50 core ribbon cable for bus expansion.
ESA 51 USER’S MANUAL
1-2
CENTRAL PROCESSOR
8031 MCU @ 11.0592 MHz.
MEMORY
Four 28 pin JEDEC sockets provide following
PROGRAM MEMORYEMORY
ROM
: 32K bytes of system firmware using 27C256.
RAM
: 32K bytes using 62256.
DATA MEMORYMORY
RAM
: 64K bytes using 62256 (32K X 2). Upper most 8K bytes are reserved for I/O
addressing and I/O expansion.
PERIPHERALS
8155
: Static HMOS 256 bytes
RAM with I/O ports and timer. RAM reserved for
monitor, 14 bit timer is available for user and port lines are used for DAC and
ADC.
8255
: PPI, Three nos. Two nos are for user, one supplied; another for user
expansion. The remaining one is used for parallel printer and optional LCD.
: Programmable interval timer. Three16 bit programmable timers available for
user
8253
RS 485 communication
supporting all standard baud from 110 to 19200.
SCN 2681
: Dual channel UART for serial, RS-232-C &
8042
: Universal Peripheral Interface (optional) used to interface PC keyboard in
stand-alone mode.
ADC 1674
: 12 bit ADC, 10µs (optional).
DAC 0800
: 8 bit DAC.
INTERRUPTS
External
Internal
: INT0 is used for implementing single stepping, breakpoints and user’s break
switch. INT1 is available to user.
: Internal timer and serial interrupts are available to user.
ESA 51 USER’S MANUAL
1-3
INTERFACE SIGNALS
Bus
: STD Bus compatible bus signals available through a 50 pin ribbon cable
connector.
Single chip mode: MCU port lines available through a 50 pin ribbon cable connector.
Parallel I/O
: 48 TTL compatible lines (2 X 8255) brought out through two 26 pin ribbon cable
connectors.
Serial I/O
: RS-232-C through on-board 9 Pin D-type female connector. RS 485
through on-board 9 Pin D-type male connector.
Printer
: PC compatible parallel printer interface available on a 25 pin D type
female connector
Timer Signals
: Two 8253 and one 8155 timer signals are available at the 50 pin ribbon
cable connectors.
Analog Signals : 8 analog inputs for ADC are fed through terminal blocks. DAC output is
available through a test point.
POWER SUPPLY REQUIREMENT
+5V @1600mA (max)
±12V @ 250mA(max) for ADC and DAC
ESA 51 USER’S MANUAL
1-4
CHAPTER
2
CONFIGURATION AND
INSTALLATION
2.1 CONFIGURATION OF ESA 51
ESA 51 Microcontroller Trainer is versatile and can be configured in three different modes
which are determined by DIP switch settings (refer to the component layout diagram in appendix
A to locate the DIP switch). This chapter describes all the configurable options and the
installation procedures.
2.1.1 OPERATIONAL MODE SELECTION
ESA 51 can be operated either in the stand alone mode using PC keyboard and LCD or in the
serial mode through RS-232-C/RS 485 interface. In the serial mode, the trainer is connected to a
CRT terminal or to a host computer system (PC) through an RS-232-C/RS 485 interface. In
either mode of operation, the system provides a variety of commands for program
development/debugging, several features like on-line assembler, disassembler etc., The selection
of the desired mode of operations is done as follows :
ESA 51 USER’S MANUAL
2-1
Sl.No.
1.
Mode of Operation
DIP-Switch Status
Switch 4
Switch 5
ON
OFF*
ON
ON
OFF
×
Serial mode with RS-232-C
interface.
2.
Serial mode with RS 485
interface
3.
Stand-alone mode
(* factory installed option)
( × don’t care)
Chapters 3 & 4 describes the commands available in stand-alone mode and serial mode
respectively.
2.1.2 PRINTER ENABLE/DISABLE
ESA51 firmware includes the driver program for centronics compatible parallel printer interface.
This driver can be enabled/disabled as shown below:
DIP Switch Position 6
Printer Port
OFF
Disabled.*
ON
Enabled.
(* factory installed option)
Chapter 7 describes the parallel printer interface in detail.
2.1.3 BAUD RATE SELECTION
In the serial mode of operation, ESA51 configures the on-board SCN 2681 Dual Channel UART
as follows :
* Asynchronous mode
* 8 bit character length
* 2 stop bit
* no parity
Baud rate selection for RS-232-C as well as RS 485 can be set using DIP switches 1 to 3 as
shown below :
ESA 51 USER’S MANUAL
2-2
S3
S2
S1
Baud Rate
ON
ON
ON
110
ON
ON
OFF
300
ON
OFF
ON
600
ON
OFF
OFF
1200
OFF
ON
ON
2400
OFF
ON
OFF
4800
OFF
OFF
ON
9600*
OFF
OFF
OFF
19,200
(* factory installed option)
2.1.4 MEMORY SELECTION
ESA 51 has four 28-Pin sockets for memory. System firmware (32K bytes) is supplied in a
27256 EPROM at the socket U9. 32K bytes of static RAM is provided by a 62256 at the socket
U10 as user program memory.32Kbytes of data memory is provided at U11. The fourth socket at
U12 is populated with 62256 to provide, 24K bytes of Data Memory.
2.2 INSTALLATION OF ESA 51
To install ESA51, the following accessories are required.
a) Power Supply 5V, 3A
Additionally
+12V @250mA, -12V @ 100mA for ADC & DAC circuitry.
b) For serial mode of operations :
Host PC with the driver software for host system. (Refer chapter 9 for details).
2.2.1 INSTALLATION PROCEDURES FOR SERIAL MODE OF OPERATION
a)
Select serial mode of operations (Ref. Section 2.1.1)
b)
Select printer if required (Ref. Section 2.1.2)
c)
Set the desired baud rate (Ref. Section 2.1.3)
d)
Connect ESA 51 to the host system through RS-232-C/RS485 cable (Appendix C
describes the RS-232-C interface requirements) over the connector J4/J5. (Refer
Appendix A for locating the connectors). Turn-on the system and execute the driver
software (Ref. Chapter 9 for details)
e)
Connect the appropriate power supply.
ESA 51 USER’S MANUAL
2-3
ESA 51 performs POST (Power On Self Test) operation. During the POST operation all register
will be intialized to CPU’s reset condition. Breakpoints in both program and data memory will
be cleared and disabled. Then displays the following Sign On message followed by the
command Prompt ‘>’ in the next line.
ESA 8051 Serial monitor V x.y
(V x.y indicates version x and revision y)
>
Now ESA51 is ready for operation in serial mode.
NOTE : If the LCD module is installed the message “SERIAL” will be displayed on the display.
2.2.2 NO RESPONSE IN SERIAL MODE :
If there is no response from ESA51 in serial mode, after installing it as described in the previous
section, check the following items :
a) Check the configuration of ESA51 again. (DIP Switch settings)
b) Check the power supply connections and voltages.
c) Check the baud rate of ESA51 and the host connected to it.
d) If a host system is the controlling device, make sure that the XT51 driver program is running,
the RS-232-C/RS 485 cable is connected to the port and the port is working.
e) Check the RS-232-C/RS 485 connections at both the ends. ( Refer Appendix C for the
interfacing details)
f) Check the handshake signals of RS-232-C interface (Ref. Appendix C)
NOTE :
DIP Switch status is read only at power –ON/Reset. If the user changes the settings, these
changes will be effective by pressing the RESET key or restart the trainer by switching OFF
and ON the power supply. If the problem still persists, please contact the manufacturer / service
center.
2.2.3 INSTALLATION PROCEDURE FOR STAND-ALONE MODE OF OPERATION
a)
Select stand-alone mode operation (Ref. 2.1.1)
b)
Connect the power supply of required capacity to ESA51 and switch-on the power.
c)
Now the following message appears on the LCD for few seconds.
ESA 51 USER’S MANUAL
2-4
POST
Power- On Self Test is being done. Following initializations are also done.
All register will be initialized to CPU’s reset condition.
Breakpoints in both program and data memory will be cleared and disabled. Then displays the
following sign on message followed by the command prompt ‘>’ in the next line.
ESA – 51
>
ESA 51 is ready for operation in the stand-alone mode.
2.2.4 NO RESPONSE IN STAND-ALONE MODE
If the correct sign – on message does not appear in the stand-alone mode, check the following
items.
a)
If the LCD is blank, check the power supply connections and voltages.
b)
If the LCD display shows random pattern, check the configuration settings once again.
NOTE :
DIP switch is read only at power - ON/Reset. If you change the settings, either press RESET key
or switch OFF and then switch ON the power supply. If the problem persists, please contact the
manufacturer/service center.
ESA 51 USER’S MANUAL
2-5
CHAPTER
3
STAND-ALONE MODE
MONITOR
3.1 INTRODUCTION
This chapter describes the commands supported by the stand-alone mode monitor program. The standalone mode monitor allows ESA 51 to be operated using a PC keyboard and LCD module.
The system must be configured for stand-alone mode of operation as described in section 2.1.1. The
commands are described in this chapter.
When the system enters stand-alone mode of operation, the sign - on message “ESA-51 ” is displayed
followed by prompt “>” on the next line indicating that the monitor is ready to accept commands from
the user.
3.2 STRUCTURE OF MONITOR COMMANDS
Whenever the monitor is ready to accept a command from the user, it outputs a greater than symbol
(` >`) as command prompt character at the beginning of a new line.
The commands entered by the user consist of a single character command mnemonic followed by a list
of command parameters. This list can have four parameters depending on the command being used.
ESA 51 USER’S MANUAL
3-1
When more than one parameter is required, a single (`,`) or space is used between the parameters as a
seperator.
A command is terminated by a <CR>. Commands are executed one at a time and one command in one
command line.
PARAMETER ENTRY
All numeric parameters are to be entered as hexadecimal number. The valid range for one-byte
parameters is 00 to FF and if more than 2 digits are entered, only the last two digits are valid (leading
zeros may be omitted). Thus all one byte values are interpreted modulo 256 (decimal). The valid range
for 2 byte parameter is 0000 to FFFF and longer values are evaluated modulo 64k (i.e. only the last
four digits are valid).
The register name abbreviation entries required by the R commands are described later while
describing the R command in detail.
RESPONSE TO ERRORS
Whenever an error is detected by the monitor (either in the command entry or in the command
execution) the command is aborted “Error” is displayed on the next line along with a sign “^” attached
pointing to the place where the error occurred, followed by command prompt (The possible error
conditions are described while illustrating the individual commands).
Command execution occurs only after a valid delimiter (a <CR>) is entered. Hence a command entry
can be cancelled anytime before the delimiter is entered by pressing <Esc>. The command gets
terminated, followed by a command prompt.
3.3 MONITOR COMMANDS
Each command described in this chapter consists of one to two characters, followed by appropriate
parameters and data. The commands are summarized in Table 3.1 and are described in detail in the
section which follows. In the table as well as in the subsequent description, the following notations are
used:
NOTATIONAL CONVENTIONS
SYMBOL
NAME
USAGE
{}
Curly braces with
Encloses a required argument 1 or more
Ellipsis
Times
ESA 51 USER’S MANUAL
3-2
[]
Square brackets
Encloses an item that appears 0 or 1 time.
[ ]…
Square brackets
Encloses an item that appears 0 or more times.
|
Vertical bar
Separates alternative items in a list
Italics
Indicates a descriptive item that should be
Replaced with an actual item.
TABLE 3.1 SUMMARY OF STAND ALONE MODE MONITOR COMMANDS
COMMAND
FUNCTION /FORMAT
A
Assembler
A [address]
B
Clear/Display/Set/Breakpoint in Program memory, external
Data memory
B{[D{P|D}]|[{C|S}{P|D} address 1 [,address 2]]}
C
Compare a block of memory with destination block
C{P|D|I {address 1, address 2, {P|D|I}, address 3}}
D
Disable breakpoint in program memory or data memory
D{P|D}
E
Enable breakpoint in program memory or data memory
E{P|D}
F
Fill a block of memory with a constant or search a string of
Data in program memory, external data memory and internal
Data memory.
F {P|D|I}, address 1,address 2,data [,data[,data[,data]]],S
G
Transfer the processor control from the monitor to user
Program.
G [address]
H
Help. List all the commands supported by the Serial Monitor
H
J
Jump to address
J [address]
ESA 51 USER’S MANUAL
3-3
M
Modify/Display/Move memory contents in program memory,
External data memory and internal data memory with all combinations
M{P|D|I|B} address 1 [,address 2 [,{P|D|I}, address 3]].
P
Programmer
S
Execute one instruction of user program S [address]
Z
Disassembler
Z[addr1[,addr2]]
3.3.1 M (MODIFY) COMMAND
FUNCTION
The M (Modify Memory) command is used to examine the contents of specified memory locations.
Further if location are in RAM their contents can be altered if desired and block move contents of
memory from program, data or internal memory to program, data or internal memory for all
combinations.
FORMAT
M {P|D|I|B} address 1 [ ,address 2 {[,P|D|I}, address 3]]
OPERATION
1. Enter M followed by memory type, the address of the memory location to be examined and then
enter <CR>. The monitor will now output the contents of that location.
2. To modify the contents of this location, the user can enter the new value now.
3. Enter a <CR>, either immediately or after the entry of a new value, to examine/modify the next
sequential location. A <Esc> instead of the <CR> terminates the command and returns the monitor
to the command entry mode.
ERROR CONDITION
1. Trying to modify the contents of non-existent or PROM location.
Examples:
Example 1 : Examine the PROM locations 11H
>MP11<CR>
>0011 FF <Esc>
>
ESA 51 USER’S MANUAL
3-4
Example 2 : Examine a few RAM location starting at 8820H and modify the contents of the location
8822H
>MD8820<CR>
8820 xx
<CR>
8821 xx
<CR>
8822 xx 55<CR>
8823 xx
<Esc>
>
3.3.2 M (DISPLAY MEMORY) COMMAND
FUNCTION
This command is used to display the contents of the program memory, external or internal data
memory.
FORMAT
M {P|D|I|}, address 1, address 2 <CR>
OPERATION
1. To use this command, enter M when prompted for command entry. After entering M, enter the
memory type and then starting address of the memory block whose contents are to be displayed,
then enter a comma, enter the end address of the memory block followed by a <CR>.
2. Now the monitor will output the starting address, the contents of the location from this address to
the specified end address. The monitor routine displays 16 bytes in 3 lines. The number of bytes
displayed on the first 3 lines are so adjusted that if the fourth line is present, its first location has
address with the last nibble as zero. After the fourth line, to go to the next display section press
<CR>.
Examples
Example 1 : To display the contents of program memory from location 0000H to 0015H.
>MD0000, 0015
0000:
02 00 03 02
25 CD FF FF FF FF
FF 02 FF F0 FF FF
ESA 51 USER’S MANUAL
3-5
0010:
FF FF FF 02
FF F3
>
3.3.3 M ( MOVE MEMORY) COMMAND
FUNCTION
This command is used to move a block of data from one area of the memory to another area.
FORMAT
M {P|D|I}, <address1>, <address2>, {P|D|I}
<destination address> <CR>
OPERATION
1. To use this command, enter M when prompted for command entry. Follow it with the type of
memory starting address of the source block to be moved (“address1”), a comma, the ending
address of the source block (“address2”), another comma, and then type of destination memory
location, starting address of the area into which the source block is to be moved (“destination
address”), followed by <CR>.
2. This operation moves the contents of memory locations from “address 1” to “address 2” to
destination memory location starting from “destination address”.
3. The system determines if there is any overlap between source and destination block, then the
memory location will be over written from “address2” onwards.
ERROR CONDITIONS
1. Specifying an “end address” value, which is less than the value of the “start address”.
2. Trying to move data into non-existent or read-only memory location.
Examples :
Example 1 : Move the contents of the location 800H through 80FH to the memory block beginning at
8840H
>MP800,80F,P8840<CR>
>
ESA 51 USER’S MANUAL
3-6
Example 2 :
>MP800,80F,P200<CR>
Error
>
An attempt to move data into ROM location produces the error message.
3.3.4 F (FILL MEMORY) COMMAND
FUNCTION
This command is used to fill a block of memory with specified constant.
FORMAT
F{P|D|I}, address1, address2, constant <CR>
OPERATION
1. To use this command enter F when prompted for command entry and enter the type of memory to
be filled.
2. Now enter the starting address of the block of memory to be filled. Enter a comma. Now enter the
ending address of the block. Again enter a comma. Now enter the constant. Press the <CR> to start
the command execution.
3. Monitor now fills the block of memory from address1 to address 2 with the specified constant.
Then the monitor displays the command prompt sign.
ERROR CONDITIONS
1. Specifying a value for the address 2 of the source block which is less than the value of the
address1, of the source block.
2. Trying to fill the data in non -existent or read -only memory.
Examples :
Example1 : Filling the block of program memory with a constant 55H.
>FP8800,880F,55<CR>
>
Now you can use the M command to examine the block of memory to see that it is filled with the
constant 55H.
ESA 51 USER’S MANUAL
3-7
3.3.5 C (COMPARE MEMORY) COMMAND
FUNCTION
Compare command can be used to compare the contents of one memory block with the content of
another memory block.
FORMAT
C {P|D|I} address 1 of block 1, address2 of block 1
{P|D|I} address 1 of block 2 <CR>
OPERATION
1. To use this command, enter C when prompted for command entry and select the type of memory.
Then enter starting address of the first block, a comma, ending address of the first block, another
comma and destination type of memory and coma and then the starting address of the second block
followed by the <CR>.
2. The monitor now compares the content of location beginning at address1 of block1 with the
content of location beginning at address 1 of block2. This process continues till the contents of
address 2 are compared with those of corresponding locations in the 2nd block. All mismatched
address locations along with Data will be displayed.
Examples :
1) Compare the contents of memory locations 8000H to 8FFFH with those of a memory block
beginning at 9000H
>CP8000,8FFF,9000<CR>
>
(This response showed that there is no mismatch)
2) CPA000,AFFF,P8000<CR>
ABC0 = 00
FF = 8BC0
AED8 = 48
54 = 8ED8
(This response showed that there is mismatch at two locations).
3.3.6 R ( EXAMINE/MODIFY REGISTER) COMMAND
FUNCTION
This command is used to examine and optionally modify the contents of the registers.
FORMAT
R [reg] [[[new data] ,]…]<CR>
ESA 51 USER’S MANUAL
3-8
OPERATION
1. If you wish to examine/modify the contents of a particular register, Enter R (when prompted for
command) followed by the register name abbreviation are shown in Table 3.2. Now the monitor
will output the current contents of the specified register. The content of this register can be
changed now by entering the new data value, followed by a valid terminator (a <CR> or <Esc>).
If the command terminator <Esc> is pressed, the command gets terminated.
If <CR> is pressed, next “sequential” register is displayed and allows optional modification. The
sequence in which registers are displayed is shown in Table 3.2 (Note that this sequence is in
closed loop).
TABLE 3.2
Register name
Abbreviation
Register A
A
Register B
B
Stack Pointer
SP
Flags Register
PSW
Data Pointer High
DPH
Data Pointer Low
DPL
Register TH0
TH0
Register TL0
TL0
Register TH1
TH1
Register TL1
TL1
Register P1
P1
Register P3
P3
Register Counter High
PCH
Register Counter Low
PCL
Register R0
R0
Register R1
R1
Register R2
R2
Register R3
R3
Register R4
R4
Register R5
R5
ESA 51 USER’S MANUAL
3-9
Register R6
R6
Register R7
R7
Examples :
Example 1
Examine and alter register A and then examine register B.
RA <CR>
A(E0) 24 <CR>
B(F0) 25<Esc>
>
3.3.7 J (JUMP TO ADDRESS-SET/CHANGE PC) COMMAND
FUNCTION
The J Command is used to change the program counter value to the desired address before executing a
program by either GO command or SINGLE STEP command.
FORMAT
J [address] <CR>
OPERATION
To use this command, enter J when prompted for command entry. Now enter the desired starting
address of the program you wish to execute. Enter <CR>. Now command prompt reappears on the next
line.
Examples :
Example 1
Jump/set PC to address 100h
J [100] <CR>
>
3.3.8 G (GO) COMMAND
FUNCTION
The GO command is used to transfer the control of the system from monitor to the user’s program.
FORMAT
G [address 1] <CR>
ESA 51 USER’S MANUAL
3-10
OPERATION
To use this command, enter G when prompted for command entry followed by <CR>. Execution starts
from the PC value.
Now if you wish to modify the value of the PC (i.e the address to which the control is to be
transferred), enter the new value. Enter <CR>. Now the user content is restored and control is
transferred to the program starting at the current value of the user program counter.
A powerful debugging tool breakpointing a program is available to the user. To use this facility set one
or more breakpoints in program or data memory using B command.
Now the control is transferred to the program starting at the current PC value, Upon reaching any one
of the specified breakpoint addresses control is returned to the monitor. Monitor saves the present
register contents and PC value, displays the current PC value and then issues a command prompt.
Notes :
1) When any one of the breakpoints is reached, control is returned to the monitor, after saving the
registers.
2) Specifying more than one breakpoint address is useful when debugging a program section
containing branch instructions.
Examples
Example1: Suppose the following program has been entered in the program memory .
ADDRESS OBJECT
COMMENTS
8800
74
MOV A,#42H
8801
42
8802
F9
MOV R1,A
8803
80
SJMP 8800H
8804
FB
>G8800 <CR>
The program can be executed by setting up breakpoints;
The procedure is as follows :
1) Set a breakpoint in the program memory or data memory using
BSP address <CR> or BSD address <CR>
2) If the desired breakpoints are in a range, then enter BSP addr1, addr2 <CR> or BSD addr1, addr2
<CR>
3) Enable breakpoints using EP command or ED command for program or data memory respectively.
ESA 51 USER’S MANUAL
3-11
4) Execute the program using G command (Note: single step execution of program memory disables
breakpoint memory).
5) Cause of break with the program break address are displayed.
6) Enter <CR> to continue. The program starts executing from the point at which break has occurred.
7) The above procedure is repeated if program encounters another breakpoint.
8) Enter <Esc> to terminate the process.
3.3.9 S (SINGLE STEP COMMAND)
The ESA 51 trainer enables you to debug a program by single stepping the instructions. The command
is used to execute a program one instruction at a time. With each instruction executed, control is
returned to the monitor. Thus this command is an extremely useful debugging tool. Provision has been
made for single stepping with disassembly.
3.3.9.1 S (SINGLE STEP COMMAND WITH DISASSEMBLY)
FUNCTION
This command is used to single step a program with disassembly. The register content will not be
displayed.
FORMAT
>S [addr ] <CR>
OPERATION
To use this command enter S when prompted for command. Only executed instruction in disassembled
format are displayed and register contents are not displayed.
>S8800 <CR>
8802 MOV R1, A
3.3.10 B (BREAKPOINT) COMMANDS
BREAKPOINTS
The ESA 51 enables you to control program execution by setting break points. A breakpoint is an
address that stops program execution each time the address is encountered. By setting breakpoints at
key addresses in your program. You can stop program execution and examine the status of memory or
registers at that point.
These commands are used to set breakpoint, clear breakpoint and display breakpoint in both program
memory and data memory, enables and disables breakpoints in both the memories independently. The
breakpoints can be one or more and also user can specify range of address for breakpoints.
ESA 51 USER’S MANUAL
3-12
3.3.10.1 CLEAR BREAKPOINT
FUNCTION
To clear the breakpoint(s) in the data memory or program memory.
FORMAT
BC{P|D}addr1[,addr2]
OPERATION
To clear the breakpoints enter BCP or BCD for corresponding memory and with one address or set of
addresses followed by <CR>.
Example : To clear all the breakpoints in program memory.
>BCP 0, FFFF <CR>
After clearing all the breakpoints system waits for the next command entry with command prompt.
3.3.10.2 SET BREAKPOINT
FUNCTION
The set break point command is used to set breakpoints in program memory and data memory.
FORMAT
BS {P|D} addr 1 [,addr2]
OPERATION
1. Set a breakpoint in the program memory or data memory using BSP <addresses> <CR>
2. If the user wants to set more no. of break points, then enter BSP addr1, addr2 <CR>
Example
To set a breakpoint in the program memory at address 000BH enter the following command
>BSP 000B <CR>
3.3.10.3 DISPLAY BREAKPOINT
FUNCTION
To display the breakpoint which has been set using BSP or BSD Command, enter BDP or BDD for
program memory or data memory respectively with <CR>.
FORMAT
BD{P|D}<CR>
OPERATION
1. Enter the command BDP or BDD and <CR> to display the preset breakpoints.
2. Enter <CR> to view remaining preset breakpoint(s) or terminate the command with <Esc>.
ESA 51 USER’S MANUAL
3-13
3. ‘NO breakpoints found’ message is displayed if no breakpoints are set.
Example
To display the breakpoint in the program memory which has been set in previous command.
>BDP <CR>
000B <Esc>
The above address is displayed to indicate that breakpoint at address 000BH is set in the program
memory.
3.3.10.4 ENABLE BREAKPOINT
FUNCTION
To enable the breakpoint which has been set using BSP or BSD command
FORMAT
E {P|D} <CR>
OPERATION
Enter the command EP or ED and <CR> to enable the preset breakpoint(s).
Example:
To enable the breakpoint in the program memory which has been set in previous command
EP <CR>
>
3.3.10.5 DISABLE BREAKPOINT
FUNCTION
To disable the breakpoint which has been set using BSP or BSD command
FORMAT
D {P| D} <CR>
OPERATION
Enter the command DP or DD and <CR> to disable the preset breakpoint(s).
Example
To disable the breakpoint in the data memory
DD<CR>
>
Disable breakpoint does not clear the breakpoints.
ESA 51 USER’S MANUAL
3-14
3.3.11 A (ASSEMBLY) COMMAND
ESA 51 provides the powerful, PROM resident assembler to enhance development work. This
assembler is an on-line one and supports the entire standard mnemonics and addressing modes of Intel
8031 / 8051 microcontrollers.
FUNCTION
The assembler generates the actual machine codes and stores them in the memory locations defined by
the program. Also, the system will display the codes generated as well as the source statement. Any
errors detected are also displayed on the screen.
OPERATION
‘A’ command invokes the assembler, A with optional address when prompted for the command .
A [address] <CR>
Assembly language instructions consist of 3 field, as shown below
Address
Object
Mnemonic
The fields may be separated by any number of blanks and tabs but must be separated by atleast one
delimiter. Each instruction must be entered on a single line terminated by <CR>. No continuation lines
are possible.
Opcode Field:
This required field contain mnemonic operation code for the 8051 instruction to be performed.
Operand Field:
The operand field identifies the data to be operated on by specified Opcode. Some instructions require
no operands. Other require one, two or three operands. As general rule, when 2 operands are required
(as in data transfer and arithmetic operations), the first operand identifies the destination (or target) of
the operations result and the second operand specifies the source data and the two operands must be
separated by a comma.
Examples
>A8000 <CR>
8000
E9
MOV A, R1 <CR>
8001
74 42
MOV A, # 42H <CR>
8003
<Esc>
>
ESA 51 USER’S MANUAL
3-15
3.3.12 Z (DISASSEMBLER) COMMAND
Disassembly is an extremely useful feature, often employed during debugging.
FUNCTION
A Disassembler converts machine language codes into assembly language mnemonics, making it easy
for user to understand/verify the program .
OPERATION
To use this facility, type Z when prompted for command by the Serial Monitor.
>Z [addr1[,addr2]] <CR>
Address
Object
Mnemonic
The disassembled code is displayed according to the above format.
NOTE:
If the disassembly of the last instruction requires the reading of data from
locations beyond the specified address2, the system will read them to
complete the disassembly. For example, if the specified address2 is 81FFH
and the code at 81FFH is 20H (which is a 3 – byte instruction), the
system will read the required data from location 8200H and 8201H to
complete the disassembly.
Example :
>Z 0,6<CR>
0000
02 00 30
LJMP 0030H
0003
02 2A BE
LJMP 2ABEH
0006
FF
MOV R7, A
>
3.3.13 H (HELP) COMMAND
FUNCTION
The HELP command is used to list all the commands supported by the Serial Monitor.
FORMAT
H <CR>
OPERATION
As soon as H and <CR> is entered by the user, in response to the command prompt the system lists, in
alphabetical order all the commands supported by the serial monitor. The display appears as shown
below :
ESA 51 USER’S MANUAL
3-16
H <CR>
Command
Syntax
Assemble
A [address]
Breakpoint
B {[D{P|D}]|[{C|S} {P|D} address1[,address2]]}
Compare Memory
C {P|D|I} address1, address2, {P|D|I}, address3
Disable Brkpnt
D {P|D}
Enable Brkpnt
E {P|D}
Fill / Search MEM
F {P|D|I},address1, address2,data
[,data [,data [,data]],S]
Go (Execution)
G [address]
Help
H
Jump
J [address]
Memory
M {P|D|I} address1[,address2[,{P|D|I},address3]]
N (SS Count)
N count (Single Step Count = <0FFH>)
Register
R [Register]
Single Step
S [R] [address]
Z – Disassembly
Z [address1 [, address2]]
ESA 51 USER’S MANUAL
3-17
CHAPTER
4
SERIAL MONITOR
4.1 INTRODUCTION
This chapter describes the commands supported by the serial monitor program. The serial monitor
allows ESA 51 to be operated from a host computer connected via the RS-232-C/RS 485 serial
interface. (refer to chapter on Hardware and Appendix C on RS-232-C/RS 485 connector details).
The system must be configured for serial mode of operation as described in section 2.1.1. The
commands are described in this chapter.
When the system enters serial mode of operation, the sign - on message “ESA-8051 Serial Monitor V
x.y” is displayed (x is the current version number and y is the revision number) on one line and prompt
“>” on the next line indicating that the monitor is ready to accept commands from the user.
4.2 STRUCTURE OF MONITOR COMMANDS
Whenever the monitor is ready to accept a command from the user, it outputs a greater than symbol
(` >`) as command prompt character at the beginning of a new line.
The commands entered by the user consist of a single character command mnemonic followed by a list
of command parameters. This list may consist of upto four parameters depending on the particular
command being used. When more than one parameter is required, a single (`,`) or space is used
between the parameters as a separator.
A command is terminated by a <CR>. Commands are executed one at a time and only one command is
allowed within one command line.
ESA 51 USER’S MANUAL
4-1
PARAMETER ENTRY
All numeric parameters are to be entered as hexadecimal number. The valid range for one-byte
parameters is 00 to FF and if more than 2 digits are entered, only the last two digits are valid (leading
zeros may be omitted). Thus all one byte values are interpreted modulo 256 (decimal). The valid range
for 2 byte parameter is 0000 to FFFF and longer values are evaluated modulo 64K (i.e. only the last
four digits are valid).
All the commands except the R (examine/modify register) command require only hexadecimal values
as parameters. The register name abbreviation entries required by the R command are described later
while describing the R command in detail.
RESPONSE TO ERRORS
Whenever an error is detected by the monitor (either in the command entry or in the command
execution) the command is aborted and “Error” is displayed on the next line with a “^” sign attached
pointing to the place where the error occurred and a new command prompt is issued (The possible
error conditions are described while illustrating the individual commands).
Command execution occurs only after a valid delimiter (a <CR>) is entered. Hence a command entry
can be cancelled anytime before the delimiter is entered by pressing <Esc>. The command prompt
character is output on a new line.
4.3 MONITOR COMMANDS
Each command described in this chapter consists of one to two character, followed by appropriate
parameters and data. The commands are summarized in Table 4.1 and are described in detail in the
section which follows. In the table as well as in the subsequent description, the following notation is
used:
NOTATIONAL CONVENTIONS
SYMBOL
{}
NAME
USAGE
Curly braces with
Encloses a required argument 1 or more
Ellipsis
Times
[]
Square brackets
Encloses an item that appears 0 or 1 time.
[ ]…
Square brackets
Encloses an item that appears 0 or more times.
|
Vertical bar
Separates alternative items in a list
Italics
Indicates a descriptive item that should be
Replaced with an actual item.
ESA 51 USER’S MANUAL
4-2
TABLE 4.1 SUMMARY OF SERIAL MONITOR COMMANDS
COMMAND
FUNCTION /FORMAT
A
Assembler
A [address]
B
Clear/Display/Set/Breakpoint in Program memory, external
Data memory
B{[D{P|D}]|[{C|S}{P|D} address 1 [,address 2]]}
C
Compare a block of memory with destination block
C{P|D|I {address 1, address 2, {P|D|I}, Address 3}}
D
Disable breakpoint in program memory or data memory
D{P|D}
E
Enable breakpoint in program memory or data memory
E{P|D}
F
Fill a block of memory with a constant or search a string of
Data in program memory, external data memory and internal
data memory.
F {P|D|I}, address 1,address 2,data [,data[,data[,data]]],S
G
Transfer the processor control from the monitor to user
Program
G [address]
H
Help. List all the commands supported by the Serial Monitor
H
J
Jump to address
J address
M
Modify/Display/Move memory contents in program memory,
External data memory and internal data memory with all combinations
M{P|D|I} address 1 [,address 2 [,{P|D|I}, address 3]]
N
Execute one or more instructions specified by user.
N {count}
P
Programmer
S
Execute one instruction of user program S[R] [address]
ESA 51 USER’S MANUAL
4-3
Z
Disassembler
Z[addr1[,addr2]]
U&V
Commands are reserved for system usage.
4.3.1 M (MODIFY) COMMAND
FUNCTION
The M (Modify Memory) command is used to examine the contents of specified memory locations.
Further if location are in RAM their contents can be altered if desired and block move contents of
memory from program, data or internal memory to program, data or internal memory for all
combinations.
FORMAT
M {P|D|I} address 1 [ ,address 2 {[,P|D|I}, address 3]]
OPERATION
1. Enter M followed by memory type, the address of the memory location to be examined and then
enter <CR>. The monitor will now output the contents of that location. Note that in serial mode a
`-` is always a prompt for data entry, while a “>” is the prompt for command entry.
2. To modify the contents of this location, the user can enter the new value now.
3. Enter a <CR>, either immediately after the ‘-‘ prompt by the system or after the entry of a new
value, to examine/modify the next sequential location. A “<Esc>” instead of the <CR> terminates
the command and returns the monitor to the command entry mode.
ERROR CONDITION
1. Trying to modify the contents of non-existent or PROM location.
Example 1 : Examine the PROM locations 11H
>MP11<CR>
>0011 FF <Esc>
>
Example 2 : Examine a series of RAM location starting at 8820H and modify the contents of the
location 8822H
>MD8820<CR>
ESA 51 USER’S MANUAL
4-4
8820 xx <CR>
8821 xx <CR>
8822 xx 55<CR>
8823 xx <Esc>
>
4.3.2 M (DISPLAY MEMORY) COMMAND
FUNCTION
This command is used to display the contents of the program memory, external or internal data
memory.
FORMAT
M {P|D|I|}, address 1, address 2 <CR>
OPERATION
1. To use this command, enter M when prompted for command entry. After entering M, enter the
memory type and then starting address of the memory block whose contents are to be displayed,
then enter a comma, enter the end address of the memory block and follow it with a <CR>.
2. Now the monitor will output the starting address, the contents of the location from this address to
the specified end address. The display appears in formatted lines with 16 bytes/line. The number of
bytes displayed on the first line are so adjusted that if the second line is present, its first location
has address with the last nibble as zero. The ASCII equivalent of the displayed data values are also
shown on each line. The non-displayable character are shown as periods (“.”).
Examples
Example 1 : To display the contents of 5 bytes from location 8000H.
>MD8000, 8004
0
1
2
3
4
5
6
7
8
9
A B C D E F ASCII
8000:41 42 43 0D 31
ABC.1
>
4.3.3 M ( MOVE MEMORY) COMMAND
FUNCTION
This command is used to move a block data from one area of the memory to another area.
FORMAT
M {P|D|I}, <address1>, <address2>, {P|D|I}<destination address> <CR>
ESA 51 USER’S MANUAL
4-5
OPERATION
1. To use this command, enter M when prompted for command entry. Follow it with the type of
memory starting address of the source block to be moved (“address1”), a comma, the ending
address of the source block (“address2”), another comma, and then type of destination memory,
starting address of the area into which the source block is to be moved (“destination address”).
Now enter <CR>.
2. This operation moves the contents of memory location from “address 1” to “address 2” to
consecutive memory location starting from “destination address”.
3. The system determines if there is any overlap between source and destination block and
accordingly transfer the data beginning either at the “ address 1” or at the address 2” .
ERROR CONDITIONS
1. Specifying an “end address” value, which is less than the value of the “start address”.
2. Trying to move data into non-existent or read-only memory location.
Examples :
Example 1 : Move the contents of the location 800H through 80FH to the memory block beginning at
8840H
>MP800,80F,P8840<CR>
>
Example 2 :
>MP800,80F,P200<CR>
Error
An attempt to move data into PROM location produces the error message.
4.3.4 F (FILL MEMORY) COMMAND
FUNCTION
This command is used to fill a block of memory with specified constant.
FORMAT
F{P|D|I}, address1, address2, constant <CR>
OPERATION
1. To use this command enter F when prompted for command entry and enter the type of memory to
be filled.
2. Now enter the starting address of the block of memory to be filled. Enter a comma. Now enter the
ending address of the block. Again enter a comma. Now enter the constant. Press the <CR> to start
the command execution.
ESA 51 USER’S MANUAL
4-6
3. Monitor now fills the block of memory from address1 to address 2 with the specified constant.
Then the monitor displays the command prompt sign.
ERROR CONDITIONS
1. Specifying a value for the address 2 of the source block which is less than the value of the
address1, of the source block.
2. Trying to fill the data in non – existent or read – only memory.
EXAMPLES :
Example1 : Filling the block of program memory with a constant 55H.
>FP8800,880F,55<CR>
>
Now you can use the M command to examine the block of memory to see that it is filled with the
constant 55H.
4.3.5 C (COMPARE MEMORY) COMMAND
FUNCTION
Compare command can be used to compare the contents of one memory block with the contest of
another memory block.
FORMAT
C {P|D|I} address 1 of block 1, address2 of block 1
{P|D|I} address 1 of block 2 <CR>
OPERATION
1. To use this command, enter C when prompted for command entry and select the type of memory.
Then enter starting address of the first block, a comma , ending address of the first block, another
comma and destination type of memory and coma and then the starting address of the second block
followed by a <CR>.
2. The monitor now compares the content of location beginning at address1 of block1 with the
content of location beginning at address 1 of block2. This process continues till the contents of
address 2 are compared with those of corresponding location in the 2nd block. Any differences
detected are displayed.
Examples :
1) Compare the contents of memory locations 8000H to 8FFFH with those of a memory block
beginning at 9000H
>CP8000,8FFF,9000<CR>
ESA 51 USER’S MANUAL
4-7
>
(This response showed that there is no mismatch)
2) CPA000,AFFF,P8000<CR>
ABC0 = 00
FF = 8BC0
AED8 = 48
54 = 8ED8
(This response showed that there is mismatch at two locations).
4.3.6 R ( EXAMINE/MODIFY REGISTER) COMMAND
FUNCTION
This command is used to examine and optionally modify the contents of the registers.
FORMAT
R [reg] [[[new data] ,]…]<CR>
OPERATION
1. To examine the contents of all the registers, enter R followed by <CR> when prompted for
command entry. The monitor will now display the content of all registers.
2. If you wish to examine/modify the contents of a particular register, Enter R (when prompted for
command) followed by the register name abbreviation are shown in Table 4.2. Now the monitor
will output an equal sign (‘=’) the current contents of the specified register and data prompt
character (“-“). The content of this register can be changed now by entering the new data value,
followed by a valid terminator (a <CR> or <Esc>). If the terminator is <Esc>, the command is
terminated.
If the terminator is not <Esc> the next “sequential” register is displayed and opened for optional
modification. The sequence in which registers are displayed is shown in Table 4.2 (Note that this
sequence is circular).
TABLE 4.2
Register name
Abbreviation
Register A
A
Register B
B
Stack Pointer
SP
Flags Register
PSW
ESA 51 USER’S MANUAL
4-8
Data Pointer High
DPH
Data Pointer Low
DPL
Register TH0
TH0
Register TL0
TL0
Register TH1
TH1
Register TL1
TL1
Register P1
P1
Register P3
P3
Register Counter High
PCH
Register Counter Low
PCL
Register R0
R0
Register R1
R1
Register R2
R2
Register R3
R3
Register R4
R4
Register R5
R5
Register R6
R6
Register R7
R7
NOTE: The flag register PSW is also displayed in bit format when register command is executed.
The meaning of the pattern “CAFBBOGP” is as follows.
PSW bit
Abbreviated as
Functions
PSW. 7
C
Carry Flag
PSW. 6
A
Auxiliary Flag
PSW. 5
F
Flag 0 available to the user
PSW. 4
B
Register Bank selector bit 1
PSW. 3
B
Register Bank Selector bit 0
PSW. 2
O
Overflow flag
PSW. 1
G
Usable as a general purpose flag
PSW. 0
P
Parity flag
ESA 51 USER’S MANUAL
4-9
Examples :
Example 1
>R<CR>
A
B
SP PSW DPH DPL TH0 TL0
(E0) (F0) (81) (D0) (83) (82) (8C) (8A)
00 00 07 00
R0
00
00
00
R5
R6 R7
R1 R2 R3 R4
00
TH1 TL1 P1
P3 PCH
(8D) (8B) (90) (B0)
00
00
FF FF
00
CAFBBOGP
00
0 0 0 0000 0
00
00
00 00
00
00
PSW
(00) (01) (02) (03) (04) (05) (06) (07)
00
PCL
00
Example 2
Examine and alter register A and then examine register B.
RA <CR>
A(E0) 24 <CR>
B(F0) 25<Esc>
4.3.7 J (JUMP TO ADDRESS-SET/CHANGE PC) COMMAND
FUNCTION
The J Command is used to change the program counter value to the desired address before executing a
program by either GO command or SINGLE STEP command.
FORMAT
J [address] <CR>
OPERATION
To use this command, enter J when prompted for command entry. Now enter the desired starting
address of the program you wish to execute. Enter <CR>. Now command prompt reappears on the next
line.
4.3.8 G (GO) COMMAND
FUNCTION
The GO command is used to transfer the control of the system from monitor to the user’s program.
FORMAT
G [address 1] <CR>
OPERATION
To use this command, enter G when prompted for command entry. Execution starts from the PC value.
ESA 51 USER’S MANUAL
4-10
Now if you wish to modify the value of the PC (i.e the address to which the control is to be
transferred), enter the new value. Enter <CR>. Now the user context is restored and control is
transferred to the program starting at the current value of the user program counter.
A powerful debugging tool breakpointing a program is available to the user. To use this facility set one
or more breakpoints in program or data memory using B command.
Now the control is transferred to the program starting at the current PC value, upon reaching any one
of the specified breakpoint addresses control is returned to the monitor. Monitor saves the complete
user context, displays the current PC value and then issues a command prompt.
NOTES :
1. When any one of the breakpoints is reached, control is returned to the monitor, after saving
the registers.
2. Specifying more than one breakpoint address is useful when debugging a program section
containing branch instructions.
EXAMPLE
Enter the program presented as example 1 for the GO command from the stand-alone mode monitor
(section 3.3.8).
>G8800 <CR>
The program can be executed by setting up breakpoints;
The procedure is as follows :
1) Set a breakpoint in the program memory or data memory using BSP address <CR> or BSD address
<CR>
2) If the desired breakpoints are in a range, then enter BSP addr1, addr2 <CR> or BSD addr1, addr2
<CR>
3) Enable breakpoints using EP command or ED command for program or data memory respectively.
4) Execute the program using G command (Note: single step execution of program memory disables
breakpoint memory).
5) Cause of break with the program break address are displayed.
6) Enter <CR> to continue. The program starts executing from the point at which break has occurred.
7) The above procedure is repeated if program encounters another breakpoint.
8) Enter <Esc> to terminate the process.
4.3.9 S (SINGLE STEP COMMAND)
The ESA 51 trainer enables you to debug a program by single stepping the instructions. The command
is used to execute a program one instruction at a time. With each instruction executed, control is
ESA 51 USER’S MANUAL
4-11
returned to the monitor. Thus this command is an extremely useful debugging tool. Provision has been
made for single stepping with register display, disassembly and count.
4.3.9.1 SR (SINGLE STEP WITH REGISTER DISPLAY) COMMAND
FUNCTION
This command is used to single step a program with register display.
FORMAT
SR [ addr ] <CR>
OPERATION
1) To use this command, enter SR when prompted for command.
2) To execute one instruction at the current value of the program counter, press <CR>, when this key
is pressed, the instruction at the current PC value is executed and then all the register values are
displayed.
3) To execute one instruction at the desired value of PC, enter SR and desired starting address of the
program and then press the <CR>. Press <CR> whenever you want to execute one instruction at a
time. Each time <CR> is pressed one instruction is executed. To terminate the command press
<Esc>.
Example 1 : Suppose the program given as Example 1 to illustrate the GO command has been entered
in the memory. Now this program can be single stepped as follows.
>SR 8800 <CR>
A
B
SP PSW DPH DPL TH0
(E0) (F0) (81) (D0) (83) (82)
00 00 07
R0
01
R1 R2
(00) (01) (02)
00
00
8802
00
F9
00
R3
(03) (04)
00
00
P1 P3 PCH PCL
(8C) (8A)
(8D) (8B) (90) (B0)
00
00
00
R4
TL0 TH1 TL1
R5
00
R6 R7
(05) (06) (07)
00
00 00
00
FF FB
88
02
PSW
CAFBBOGP
00000001
MOV R1,A
>
4.3.9.2 S (SINGLE STEP COMMAND WITH DISASSEMBLY)
FUNCTION
This command is used to single step a program with disassembly. The register content will not be
displayed.
FORMAT
>S [addr ] <CR>
ESA 51 USER’S MANUAL
4-12
OPERATION
1. To use this command enter S when prompted for command. Rest of the procedure is same as for
the SR command. Only executed instruction in disassembled format are displayed and register
contents are displayed.
>S8800 <CR>
8802 MOV R1, A
4.3.9.3 N ( SINGLE STEP WITH COUNT)
This command is used to single step a program with count. The maximum value of the count is FF.
Multiple instruction can be executed at a time.
FORMAT
N (count ) <CR>
OPERATION
1. To use this command, set the PC value to the starting address of the address of the program
using J command.
2. Enter N, the count and press <CR>.
If the program starting address is 9000H and the count is 20 instruction at a time, following commands
have to be executed.
>J9000 <CR>
>N 14 <CR>
Now 20 instruction will be executed at a time. The register contents are displayed just like in SR
command. Now the user can continue single stepping by pressing <CR> or the user can exit from the
command by pressing <Esc>.
4.3.10 B (BREAKPOINT) COMMANDS
BREAKPOINTS
The ESA 51 enables you to control program execution by setting break point. A breakpoint is an
address that stops program execution, each time the address is encountered. By setting breakpoints at
key addresses in your program. You can “freeze” program execution and examine the status of
memory or registers at that point.
These commands are used to set breakpoint, clear breakpoint and display breakpoint in program
memory a well as data memory and to enable and disable breakpoints in both the memories
independently. The breakpoints can be one or more and also user can specify range of address for
breakpoints.
ESA 51 USER’S MANUAL
4-13
4.3.10.1 CLEAR BREAKPOINT
FUNCTION
To clear the breakpoint(s) in the data memory or program memory.
FORMAT
BC{P|D}addr2[,addr2]
OPERATION
To clear the breakpoints enter BCP or BCD for corresponding memory and with one address or range
of address and <CR>.
Example : To clear the breakpoint of full program memory, enter
>BCP 0, FFFF <CR>
After clearing procedure is finished a command prompt is displayed.
4.3.10.2 SET BREAKPOINT
FUNCTION
The set break command is used to set breakpoints in program memory and data memory.
FORMAT
BS {P|D} addr 1 [,addr2]
OPERATION
1. Set a breakpoint in the program memory or data memory using BSP <addresses> <CR>
2. If the desired breakpoint is a range, then enter BSP addr1, addr2 <CR>
Example
To set a breakpoint in the program memory at address 000BH enter the following command
>BSP 000B <CR>
4.3.10.3 DISPLAY BREAKPOINT
FUNCTION
To display the breakpoint which has been set using BSP or BSD Command, enter BDP or BDD for
program memory or data memory respectively with <CR>.
FORMAT
BD{P|D}<CR>
OPERATION
1. Enter the command BDP or BDD and <CR> to display the preset breakpoints.
2. Enter <CR> to view remaining preset breakpoint(s) or terminate the command with <Esc>.
3. ‘NO breakpoints found’ message is displayed if no breakpoints are set.
ESA 51 USER’S MANUAL
4-14
Example
To display the breakpoint in the program memory which has been set in previous command.
>BDP <CR>
000B <Esc>
The above address is displayed to indicate that breakpoint at address 000BH is set in the program
memory.
4.3.10.4 ENABLE BREAKPOINT
FUNCTION
To enable the breakpoint which has been set using BSP or BSD command
FORMAT
E {P|D} <CR>
OPERATION
Enter the command EP or ED and <CR> to enable the preset breakpoint(s).
Example:
To enable the breakpoint in the program memory which has been set in previous command
EP <CR>
4.3.10.5 DISABLE BREAKPOINT
FUNCTION
To disable the breakpoint which has been set using BSP or BSD command
FORMAT
D {P| D} <CR>
OPERATION
Enter the command DP or DD and <CR> to disable the preset breakpoint(s).
Example
To disable the breakpoint in the data memory
DD<CR>
>
Disable breakpoint does not clear the breakpoints.
ESA 51 USER’S MANUAL
4-15
4.3.11 A (ASSEMBLY) COMMAND
ESA 51 provides the powerful, PROM resident assembler to simplify the user's task of program
development. This assembler, available in serial mode of operation, is an on-line one and supports the
entire standard mnemonics and addressing modes of Intel 8031 / 8051 microcontroller.
FUNCTION
The assembler generates the actual machine codes and stores them in the memory locations defined by
the program. Also, the system will display the codes generated as well as the source statement. Any
errors detected are also displayed on the screen.
OPERATION
‘A’ command implements the assembly facility. So, to invoke the assembler, type A with optional
address when prompted for the command by the serial monitor.
A [address] <CR>
Assembly language instructions consist of 3 field, as shown below
Address
Object
Mnemonic
The fields may be separated by any number of blanks and tabs but must be separated by atleast one
delimiter. Each instruction must be entered on a single line terminated by <CR>. No continuation lines
are possible.
Opcode Field:
This required field contain mnemonic operation code for the 8051 instruction to be performed.
Operand Field:
The operand field identifies the data to be operated on by specified opcode. Some instructions require
no operands. Other require one, two or three operands. As general rule, when 2 operands are required
(as in data transfer and arithmetic operations), the first operand identifies the destination (or target) of
the operations result and the second operand specifies the source data and the two operands must be
separated by a comma.
Examples
>A8000 <CR>
Address
Opcode
Mnemonic
8000
E9
MOV A, R1 <CR>
8001
74 42
MOV A, # 42H <CR>
8003
<Esc>
>
ESA 51 USER’S MANUAL
4-16
4.3.12 Z (DISASSEMBLER) COMMAND
Disassembly is an extremely useful technique, often employed during debugging.
FUNCTION
A Disassembler converts machine language codes into assembly language mnemonics, making it easy
for user to understand/verify the program .
OPERATION
To use this facility, type Z when prompted for command by the Serial Monitor.
>Z [addr1[,addr2]] <CR>
Address
Object
Mnemonic
The disassembled code is displayed according to the above format.
The display can be halted at any point by Ctrl – S and restarted by Ctrl – Q.
NOTE:
If the disassembly of the last instruction requires the reading of data from locations beyond
the specified address2, the system will read them to complete the disassembly. For example, if the
specified address2 is 81FFH and the code at 81FFH is 20H (which is a 3 – byte instruction), the system
will read the required data from location 8200H and 8201H to complete the disassembly.
Example :
>Z0,6 <CR>
Address
Object
Mnemonics
0000
02 00 30
LJMP 0030H
0003
02 2A BE
LJMP 2ABEH
0006
FF
MOV R7, A
>
4.3.13 H (HELP) COMMAND
FUNCTION
The HELP command is used to list all the commands supported by the serial monitor.
FORMAT
H <CR>
OPERATION
As soon as H and <CR> is entered by the user, in response to the command prompt the system lists, in
alphabetical order all the commands supported by the serial monitor. The display appears as shown
below :
H <CR>
ESA 51 USER’S MANUAL
4-17
Command
Syntax
Assemble
A [address]
Breakpoint
B {[D{P|D}]|[{C|S} {P|D} address1[,address2]]}
Compare Memory
C {P|D|I} address1, address2, {P|D|I}, address3
Disable Brkpnt
D {P|D}
Enable Brkpnt
E {P|D}
Fill / Search MEM
F {P|D|I},address1, address2,data
[,data [,data [,data]],S]
Go (Execution)
G [address]
Help
H
Jump
J [address]
Memory
M {P|D|I} address1[,address2[,{P|D|I},address3]]
N (SS Count)
N count (Single Step Count = <0FFH>)
Register
R [Register]
Single Step
S [R] [address]
Z – Disassembly
Z [address1 [, address2]]
U & V Commands are reserved for System usage.
ESA 51 USER’S MANUAL
4-18
CHAPTER
5
HARDWARE
5.1 INTRODUCTION
This chapter describes the hardware design details of ESA 51. Appendix F gives the connector
details and Appendix A has the component layout diagram. The design details are discussed in
the following order:
a)
b)
c)
d)
e)
f)
g)
CPU, Address Bus, Data Bus and Control Signals
Memory Addressing.
Keyboard/Display Interface.
Programmable Peripherals and Serial Interface.
ADC & DAC Section.
Bus Expansion.
Connector Details.
5.2 CPU, ADDRESS, DATA AND CONTROL SIGNALS
ESA 51 uses 8031/8051 Microcontroller operated with 11.0592 crystal. The on-board RESET
key can provide a RESET signal to the CPU. The lower address bus is demultiplexed using a
74LS373 at U3 and the upper address bus is demultiplexed using 74LS373 at U22. The data
bus is buffered using a 74LS245 at U7. All these buffered signals are available on the system
connector J1 ( Connector details are given at the end of this chapter).
ESA 51 USER’S MANUAL
5-1
5.3 MEMORY ADDRESSING
ESA 51 has four 28 pin JEDEC compatible slots (U9,U10,U11,U12) accepting memory
devices. The socket U9 populated with a 27256 as program memory which contains the
system firmware. The socket at U10 is populated with a 62256 to provide 32K bytes of static
RAM of user program memory.
The sockets at U11 & U12 are populated with 62256’s to provide 56K bytes of static RAM of
user data memory.
The memory mapping is as follows:
TABLE 5.1 MEMORY MAP
Devices
Address range
Type of memory
27256 at U9
0000-7FFF
Program memory
62256 at U10
8000-FFFF
User program memory
62256 at U11
0000-7FFF
User Data memory
62256 at U12
8000-DFFF
User Data memory
Battery Option
The 62256 provided at U10,U11 and U12 can be backed up by an optional battery. The
terminal for connecting the battery are brought out as BT.
5.4 I/O ADDRESSING
I/O decoding is implement using a E561, E562, E563, E564 and E622. Thus fold-back exists
over the unused address lines. The I/O devices, their addresses and their usage is summarized
below:
TABLE 5.2 I/0 ADDRESS MAP
I/O Device
Address
8255 : 1 at U42
Usage
Available to user.
Port A
E800H
Port B
E801H
Port C
E802H
Control Port
E803H
ESA 51 USER’S MANUAL
The signal are available
on connector J10.
5-2
8255 A : 2 U18
Available to user
Port A
E804H
Port B
E805H
Port C
E806H
Control Port
E807H
The signal are available
on connector J7.
8255 : 3 at U30
Port A
E900H
Used for LCD data lines.
Port B
E901H
Used for printer.
Port C
E902H
Control Port
E903H
Used for LCD control lines
& printer hand shaking signals
Configured by system firmware
8253-5 at U8
Timer 0
EA00H
Timer 1
EA01H
Timer 1 is available
to user on connector J1.
Timer 2
EA02H
Timer 2 is available to
user on connector J1.
Control Port
EA03H
DIP Switch
E904H
2681 at U13
Available to user
Timer 0 is available to
user on connector J1.
Used by system for
Serial / keyboard
operation & printer.
Used for implementing
Serial communication
(addressing details are given in section 5.8)
8042 at U31
Used for implementing
keyboard/display interface.
Data Port
EC00H
Command Port
8155 : at U29
EC01H
Internal RAM
E000H-E0FFH
Reserved for system
ESA 51 USER’S MANUAL
Reserved for system
5-3
Command/Status
E100H
Port A
E101H
ADC Data input
Port B
E102H
DAC data output
Port C
E103H
ADC data input
Timer Regs
E104H (Lower) & E105H (Higher)
5.5 8042 UNIVERSAL PERIPHERALS INTERFACE
ESA 51 Trainer is interfaced with a PC keyboard and LCD for operation in stand-alone mode.
Keyboard interface is controlled by an 8042 Universal Peripheral Interface microcomputer.
The UPI allows the user to develop customized solution for peripheral device control.
The addressing information for 8042 UPI onboard ESA 51 is given earlier in this chapter. The
UPI uses clock inputs from the 11.0592 MHz crystal oscillator. The keyboard reading is
implemented by polling the command/status port of 8042. User can read the keyboard in
polling mode by checking the status of output buffer register. The keyboard sends scan codes
for the respective keys pressed. The scan codes for the keys can be referred in the PC AT
reference manual. The UPI is programmed for encoding either 101 or 84 keys PC keyboard.
5.6 LCD INTERFACE
In the stand-alone mode, an LCD is used as an output terminal for working with ESA 51
Trainer. The display is initialized as follows:
20 Digits, 4 Lines, Left entry display.
LCD Module comprises two register. Instruction and Data register. Three control signals
RS,R/W, and E determine the operating status of LCD.
E
=
1
:
For any operation with the LCD.
RS
=
1
:
Operation with Data register
R/W
=
0
:
Operation with instruction register
R/W
=
1
:
Read from LCD
The control and data lines to the LCD are provided by 8255 at U30. These lines are brought to
the flow-strip at J8 where the LCD is inserted.
5.7 PROGRAMMABLE INTERVAL TIMER
ESA 51 has on-board programmable interval timer 8253-5 at socket position U8. Its I/O
address can be found in Table 5.2 in section 5.4.
8253 has one command/status port and three data ports called Timer0, Timer1 and Timer2 to
provide three programmable timers. All the timers are available for user. The signal related to
timer 0,1 and 2 are available on system connector J1. Connector details are provided in the
last section of this chapter.
ESA 51 USER’S MANUAL
5-4
5.8 SERIAL INTERFACE
Serial communication in ESA 51 trainer is implemented using SCN 2681. Dual Universal
Asynchronous Receiver Transmitter (DUART). The trainer is capable of communicating with
serial terminal using either RS-232-C standards or RS 485 standards.
SCN 2681 DUART provides two independent full duplex synchronous receiver / transmitter
in a single package. It interfaces directly with microprocessors and may be used in a polled or
interrupt driven system. The operating mode and data format of each channel can be
programmed independently, and each receiver
and transmitter
can select its
operating speed as one of eighteen fixed baud rates,
a 16 X clock derived from a
programmable counter/timer, or an external 1 X or 16 X clock.
ESA 51 provides a 3.6864 MHz crystal as a clock input to the DUART for its operation.
channel A of the DUART is programmed for serial communication using RS-232-C standards
while channel B is programmed for RS 485 communication. The interfacing requirements
and connector details for either mode of operation have been discussed earlier in the manual.
The baud rate selection for serial communication is made by DIP switch settings and different
standards baud rates can be established. Refer the chapter on configuration and installation
for the look up table for this selection.
The following table gives the addressing information with respect to the various control
registers of SCN 2681 DUART. The user may program the serial controller interfacing using
this information to suit his needs.
SCN 2681 Register Description & Addressing
Address
EB00
EB01
EB02
EB03
EB04
EB05
EB06
EB07
EB08
EB09
EB0A
EB0B
EB0C
EB0D
Read Operation (RDN=0)
Mode Register A (MR1A,MR2A)
Status Register A (SRA)
Reserved
Rx holding register A (RHRA)
Input Port change register (IPCR)
Interrupt status register (ISR)
Counter/Timer Upper (CTU)
Counter/Timer Lower (CTL)
Mode register B (MR1B, MR2B)
Status register B
Reserved
Rx holding register B (RHRB)
Reserved
Input Port Register
EB0E
EB0F
Start counter command
Start counter command
Write Operation (WRN =0)
Mode register A (MR1A, MR2A)
Clock select register A (CSRA)
Command register A (CR)
Tx holding register A (THRA)
Auxiliary control register (ACR)
Interrupt Mask register (IMR)
C/T upper register (CTUR)
C/T Upper lower register (CTUL)
Mode register B (MR1B, MR2B)
Clock select register B (CSRB)
Command register B (CBR)
Tx holding register B (THRB)
Reserved
Output Port configuration register
(OPCR)
Set Output port Bits commands
Reset Output Port Bits commands
Separate serial connections are provided on the interfacing for interfacing with RS 232C and
RS 485 ports.
ESA 51 USER’S MANUAL
5-5
J4
:
9-pin
female
type
connector
for
RS
232C
J5
:
9-pin male type connector for RS 485 communication.
communication.
To establish serial communication using ESA 51 the user has to interface the serial terminal
with either of these connector using appropriate serial cable.
5.9 PROGRAMMABLE PERIPHERAL INTERFACE DEVICES
ESA 51 has two numbers of 8255As (Programmable Peripheral Interface Devices). Each
8255A consists of a command port and three 8-bit programmable input/output ports called
Port A, Port B and Port C. The port addresses for these devices can be found in table 5.2 in
section 5.4.
The two 8255As at U18 & U42 are completely available to user. The port signals are
available on connectors J7 & J10.
5.10 PROGRAMMABLE INPUT/OUTPUT AND TIMER
ESA 51 has one 8155 (programmable I/O and timer). The 8155 has 256 bytes of RAM, two 8bit and one 6-bit programmable input/output ports, command port and two 8-bit registers to
load counter for timer.
The Port A of the 8155 is configured as input to read the data from ADC output. The Port B is
configured as output to provide data for the on-board DAC. The Port C is configured as input
port to read the most significant bits of ADC data.
VECTOR ADDRESS LOOK-UP TABLE FOR INTERRUPTS
Function
External Interrupt 0
Timer Interrupt 0
External Interrupt 1
Timer Interrupt 1
Serial Interrupt
Interrupt source
IE0
TF0
IE1
TF1
RI & TI
Vector address
0003H
000BH
0013H
001BH
0023H
Trainer Address
276CH
FFF0H
FFF3H
FFF6H
FFF9H
5.11 8-CHANNEL 12 – BIT A/D CONVERTOR
ESA 51 features an optional onboard 8 channel, 12 bit ADC. The interfacing circuit consists
of analog multiplexer enables data from up to eight different analog sources to be acquired.
This circuit can accept either unipolar signals in the range 0 to +10V, or bipolar signals of –
5V to +5V or in the range of –10V to +10V. The voltage span can be selected by placing
suitable jumpers. This circuit is built around the industry standard. Fast ADC, AD1674
has built in clock and sample - hold circuit which completes a conversion in 10usec. This
interfacing finds extensive use in the fields of analog measurements, transducer interfacing.
Industrial monitoring etc. For making use of the ADC, the user has to connect +12V and –
12V at connector J3.
DESCRITION OF THE CIRCUITS
Please refer to the schematic diagram presented in appendix.
ESA 51 USER’S MANUAL
5-6
Single Channel / Multi channel Operation
Jumper JP15 decides whether the circuit is intended for single channel or 8- channel
operation. When single channel operation is intended, no multiplexer is used and JP15 is
OPEN. Input is applied to screw terminal TP. When the ADC is in multi-channel mode, the
multiplexer (ADG508) is populated and eight channels are available as selected by channel
select lines connected to ADG508. Analog signals are applied to any desired channel at screw
terminals provided at J11. The jumpers JP11, JP12, JP13, JP14, JP15 & JP24 are closed.
When the ADC is in multi-channel mode no signal is applied at terminal TP. The multiplexed
signal can however be monitored at terminal TP. The channel selection is as shown in the
table below.
P 1.5
(E)
0
1
1
1
1
1
1
1
1
( * don’t care.)
P1.4
(A2)
*
0
0
0
0
1
1
1
1
P 1.3
(A1)
*
0
0
1
1
0
0
1
1
P 1.2
(A0)
*
0
1
0
1
0
1
0
1
Channel selected
None
0
1
2
3
4
5
6
7
The interfacing of ADC to 8155 is as follows :
The converted data is latched into the latches 74LS374 at U27 and U28 P1.1 of 8031 control
of these latches. When P1.1 is high the output of the latches are tri-stated. When P1.1 is low,
data is available at port bit P1.0 is used to initiate the conversion process in the ADC. A high
to low transition initiates a conversion and high STS of ADC indicates that ADC is busy. At
end of conversion, the STS line goes on low. This transition is used to strobe the converted
data into the latches U27 and U28.
Input voltage range
This circuit can be operated with inputs of 0 to +10V,-5V to +5V or –10V to +10V. This is
determined by the location of shorting plugs at jumpers JP9 and JP8 details are shown below.
Input Range
Unipolar 0 to +10V
JP9
2-3
JP8
1-2
Bipolar –5 to +5V
Bipolar –10V to +10V
2-3
1-2
2-3
2-3
ESA 51 USER’S MANUAL
5-7
5.12 ONBOARD 8 BIT D/A CONVERTOR
ESA 51 features onboard Digital to analog converter using DAC 0800 IC at U32. The user
can program the DAC to suit his needs using the interfacing information described here. For
making use of the DAC, the user has to connect +12V and –12V at connector J3 . The Analog
output may be obtained from terminal-point J12 on the trainer. Interesting waveforms may be
observed at this point by programming the DAC suitably.
The digital inputs to the DAC are provided through port B of 8155 (U29) after initializing it as
an output port. The Analog output from the DAC is given to an operational amplifier (LM741
at U40) which serves the purpose of current to voltage conversion. A 10K POT (VR1) is
provided for offset balancing of the op-amp. The reference voltage needed for the DAC is
obtained from an onboard voltage regulator LM723. The voltage obtained at the output of this
regulator is about 8 volts. The output from the DAC varies between –5V and +5V depending
on the input digital pattern fed to the DAC.
5.13 BUS EXPANSION
ESA 51 permits easy expansion of the system by providing all the necessary signals on two
connectors J1 and J2. The signals are STD bus compatible and thus user can easily expand the
capabilities of ESA 51.
5.14 CONNECTOR DETAILS
The connector details for interfacing peripherals is described in this section. A brief summary
of the connectors available on the trainers is described below. Refer the component layout
diagram in Appendix G to locate these connectors. The signal definition of these connectors
are available in Appendix G.
J1 & J2
J3
J4
:
:
:
J5
:
J6
J7
J8
J9
J10
J11
J12
J13
:
:
:
:
:
:
:
:
50 pin Bus connectors connected to system bus.
4 – terminal power connector
9 pin, D type female connector for RS-232-C
compatible serial communication
9 pin D type, male connector for RS 485
compatible serial communication.
Keyboard DIN connector.
26 pin FRC Rt. Male connector for 8255 port lines.
Flow strip for LCD interface.
25 pin D-type female for printer interface.
26 pin FRC Rt. Male connector for 8255 port lines.
Terminal strip for ADC Analog input.
Terminal point for DAC Analog O/P.
Terminal point for Analog GND for ADC circuitry.
ESA 51 USER’S MANUAL
5-8
J1 ADDRESS & DATA
Pin No.
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
Signals
P1.0
P1.2
P1.4
P1.6
P3.0
P3.3
P3.5
BA0
BA2
BA4
BA6
BA8
BA10
CD0
CD2
CD4
CD6
CLK0
CLK2
GATE1
OUT0
OUT2
BRD*
+5V
GND
Pin No.
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
Signals
P1.1
P1.3
P1.5
P1.7
P3.1
P3.4
STS
BA1
BA2
BA3
BA4
BA5
BA6
CD1
CD3
CD5
CD7
CLK1
GATE0
GATE2
OUT1
OFFBOARDSEL*
BWR*
+5V
GND
J2 MCU PORT & COMMAND
Pin No.
1
3
5
7
9
11
13
15
17
19
21
23
25
Signals
P0.0
P0.2
P0.4
P0.6
P0.0
P1.2
P1.4
P1.6
P3.0
INT
P3.4
BWR*
P2.0
ESA 51 USER’S MANUAL
Pin No.
2
4
6
8
10
12
14
16
18
20
22
24
26
Signals
PO.1
PO.3
PO.5
PO.7
P1.1
P1.3
P1.5
P1.7
P3.1
P3.3
P3.5
BRD
P2.1
5-9
27
29
31
33
35
37
39
41
43
45
47
49
P2.2
P2.4
P2.6
ALE
TIN
NC
NC
NC
NC
NC
+5V
GND
28
30
32
34
36
38
40
42
44
46
48
50
P2.3
P2.5
P2.7
PSEN*
TOUT
NC
NC
NC
NC
NC
+5V
GND
J7 PORTS CONNECTOR
PIN NO
1
2
3
4
5
6
7
8
9
10
11
12
13
SIGNALS
PIN NO
14
P2C4
15
P2C5
16
P2C2
17
P2C3
18
P2C0
19
P2C1
20
P2B6
21
P2B7
22
P2B4
23
P2B5
24
P2B2
25
P2B3
26
P2B0
J10 PORTS CONNECTOR
SIGNALS
P2B1
P2A6
P2A7
P2A4
P2A5
P2A2
P2A3
P2A0
P2A1
P2C6
P2C7
+5V
GND
PIN NO
1
2
3
4
5
6
7
8
9
10
11
12
13
SIGNALS
P1C4
P1C5
P1C2
P1C3
P1C0
P1C1
P1B6
P1B7
P1B4
P1B5
P1B2
P1B3
P1B0
SIGNALS
P1B1
P1A6
P1A7
P1A4
P1A5
P1A2
P1A3
P1A0
P1A1
P1C6
P1C7
+5V
GND
ESA 51 USER’S MANUAL
PIN NO
14
15
16
17
18
19
20
21
22
23
24
25
26
5-10
J9 PRINTER CONNECTOR
PIN NO
1
2
3
4
5
6
7
8
9
10
11
12
13
SIGNALS
STROBE*
DATA 0
DATA 1
DATA 2
DATA 3
DATA 4
DATA 5
DATA 6
DATA 7
NC
BUSY*
NC
NC
ESA 51 USER’S MANUAL
PIN NO
14
15
16
17
18
19
20
21
22
23
24
25
SIGNALS
NC
NC
NC
NC
GND
GND
GND
GND
GND
GND
GND
GND
5-11
CHAPTER
6
MONITOR ROUTINES
ACCESSIBLE TO USER
ESA51 monitor offers several user– callable routines both in the stand-alone and serial modes of
operation, details of which are given below. These routines can be used to considerably simplify the
program development work.
NOTE : Users should, as general rule, save the registers of interest before calling the monitor
routines and restore them after returning form the monitor routines.
6.1 STAND-ALONE MODE
Calling
Address
0200H
035DH
Mnemonic
LCDINIT
LCDWR
03A1H
LCDOUT
ESA 51 USER’S MANUAL
Function/Description
To initialize the LCD module. All registers are affected.
Displays one character to the LCD display module. Character
to be displayed should be in accumulator. All registers are
affected.
Displays a string of character on LCD. The string should end
with a zero which is not output. The parameter for this routine
are as follows :
Reg DPTR = Starting address of string of characters. The string
characters will be displayed from program memory area or
data memory area depending on the status of flag register bit
F0. If flag register bit F0 = 0 program memory will be
selected. If flag register bit F0 = 1 data memory will be selected.
6-1
03BBH
0161H
C LRLCD
GETKB
0303H
NEXTLINE
Clear the display. The routine blanks the entire display fields.
Reads keyboard. This routines wait until a character is entered
from the keyboard and upon return, it places the character in
the A register. All registers are affected.
Moves the LCD cursor to the next line.
6.2 SERIAL MONITOR ROUTINES ACCESSIBLE TO USER
Calling
Address
12BBH
Mnemonic
GETCH
11A8H
OUTCHR
1200H
OUTSTG
Function/Description
Gets one character from the USART input parameters
None. Output : A = Character (ASCII) received from the
USART. Reg. A, and flags are affected.
Outputs one character to the USART. Input : A =
character (ASCII) to be output to USART. Reg. A, and
flags are affected.
Displays a string of characters. The string should be
terminated by character Zero which is not output. Inputs :
DPTR = Starting address of the string of character. The
string of character will be displayed from program
memory or data memory area depending on status of flag
register bit F0. If flag register bit F0 = 0 program memory
will be selected. If flag register bit F0 = 1 data memory
will be selected.
6.3 USER ACCESSIBLE ROUTINES COMMON TO BOTH STAND-ALONE MODE AND
SERIAL MONITOR
Calling
Address
0404H
Mnemonic
OUTPUT
13D2H
PUTBYTE
03E6H
DSPCHR
ESA 51 USER’S MANUAL
Function/Description
Displays a string of characters both in LCD and PC
Console. The string should be terminated by character
Zero which is not output. Inputs : DPTR = Starting
address of the string of character. The string of character
will be displayed from program memory or data memory
area depending on status of flag register bit F0. If flag
register bit F0 = 0 program memory will be selected. If
flag register bit F0 = 1 data memory will be selected.
Outputs one character to the USART. Input : 71H =
character to be output to USART. Reg. A, and flags are
affected.
Displays a character on both LCD and PC console.
Accumulator should contain the character to be displayed.
6-2
CHAPTER
7
PARALLEL PRINTER
INTERFACE
7.1 INTRODUCTION
ESA 51 trainer support centronics compatible parallel printer interface. The interface makes use
of BUSY signal for hand - shaking and strobe pulses for synchronization. Using this facility the
user can obtain hard copy on any centronics compatible printer. However to get properly
formatted listing it is advisable to use 80 / 132 column printer. The on - board 8255 (U30) is
made use of, to implement this interface.
7.2 INSTALLATION
To install the printer interface
a) Switch OFF the power supply.
b) Connect one end of the printer cable to J9 (25 pin “D” type connector) of ESA 51 (Refer the
component layout diagram in Appendix A to locate the connector J9).
c) Connect the other end of connector to the printer.
ESA 51 USER’S MANUAL
7-1
d) Configure the system for serial mode of operation by setting SW4 of the on - board DIP
switch to ON position.
e) Enable the printer interface by setting the SW6 of the on - board DIP switch to ON position.
f) Switch on power to the printer and ESA 51.
NOTE : The necessary printer cable could be obtained from Electro Systems Associates (P)
Ltd., as an optional accessory. However, the connector details are given in section 7.5 and the
user can make use of these details to make a suitable cable if desired. Please note that cable must
be short enough to be driven by the on - board 8255. We suggest a maximum length of 3 feet for
reliable operation.
7.3 OPERATION
When the printer interface is installed and enabled as described above, any character sent to the
console is sent to the printer also. For example, to obtain a hard copy of the contents of a block
of memory locations, user can issue the M (Display Memory) command from the serial monitor.
The contents of the specified memory block are printed exactly as they appear on the screen.
Note that the M command itself is also printed.
NOTES :
1) All control and non - printable ASCII characters are printed as “.” (ASCII code 2EH)
2) If any errors occurs during printing (for e.g. : Printer is not in ON - LINE, paper out error
etc., ), the system will be looping indefinitely in the print character routine. To recover, user
may have to press the RESET key.
7.4 DIRECT OUTPUT TO PRINTER
As already described, when the printer interface is enabled, any character sent to the console is
sent to the printer also. This facility is available in the serial mode of operation only. However,
user can directly access a routine “print character” to print a single character. This routine can be
called from the user’s program when the system is operating in either of the two modes – standalone or serial. Further, this routine prints a character independent of the setting of SW6. Thus
this routine can be used to print the desired information when the system is running in the standalone mode. Even in a serial mode of operation, this routine can be used to print information
which may not be sent to the console. The details of this routine are given below :
ESA 51 USER’S MANUAL
7-2
Name of the Routine : PRINT
Function : Print a character (Non - printable one is printed as “.”).
Calling address : 1235H
Input : Register A = ASCII code of the character to be printed.
Destroys : Registers A, B, DPTR, R0, Flags.
Returns : Reg C = 1 if error otherwise C = 0.
Example : The following program, if entered and executed from the stand-alone mode, prints
‘ABCDEFGHIJKL’.
Address
Opcode
Mnemonic
8000
90 80 50
8003
E4
8004
93
MOVC A,@A+DPTR
; get the chr
8005
60 0E
JZ L2
; end of msg ?
8007
C0 82
PUSH DPH
; no, save pointer
8009
C0 83
PUSH DPL
800B
12 12 35
LCALL PRINT
; print chr
800E
D0 83
POP
DPL
; restore pointer
8010
D0 82
POP
DPH
8012
A3
INC
DPTR
; point to next chr
8013
80 EE
SJMP
L1
; repeat the process
8015
02 00 03
MOV
DPTR, # MSG
Comment
; point to msg
L1: CLR A
L2 : LJMP 0003
; save status and
; return to monitor
8050
41, 42, 43, 44
DB: 41H, 42H, 43H, 44H
8054
45, 46, 47, 48
45H, 46H, 47H, 48H
8058
49, 4A, 4B, 4C
49H, 4AH, 4BH, 4CH
805C
0D, 0A, 00
0DH, 0AH, 00H
ESA 51 USER’S MANUAL
7-3
7.5 CONNECTOR DETAILS
The signal definitions on the 25 pin, female D type connector used for parallel printer interface
are given below :
PIN NO
SIGNAL
ON J9
DIRECTION
FROM
PIN. NO. ON
DESCRIPTION
ESA 51
CENTRONICS
CONNECTOR
1
STROBE
O/P
STROBE * pulse to the printer
1
2
Data 0
O/P
These signals represent 8
2
3
Data 1
O/P
bits of parallel data
3
4
Data 2
O/P
High – 1
4
5
Data 3
O/P
Low – 0
5
6
Data 4
O/P
6
7
Data 5
O/P
7
8
Data 6
O/P
8
9
Data 7
O/P
9
10
BUSY
O/P
11
11
BUSY
I/P
A high indicates that printer cannot
11
receive data. The signal becomes
high in following cases
a) During the data entry.
b) During printing operation.
c) In the OFF – LINE state.
d) During printer error status.
18-25
GND
ESA 51 USER’S MANUAL
Signal Ground
19
7-4
CHAPTER
8
EPROM PROGRAMMER
SYSTEM
8.1 INTRODUCTION
This chapter describes the use of the EPROM Programmer system. The ESA 51 trainer and
EPROM programmer interface module with a 26 core flat ribbon cable together form the EPROM
programmer system.
The system permits the user to program, verify, blank check and read any of the popular EPROMs
2716 through 27512. The system consists of the necessary hardware and software. The software
can be invoked either from the stand-alone mode monitor or from the serial monitor. A 28 pin ZIF
socket is provided for placing the EPROMs. When 24 pin EPROM is replaced, it must be aligned
with the bottom rows i . e top two rows of ZIF are to be left blank.
The system uses intelligent programming algorithm whenever possible which reduces the
programming time significantly.
ESA 51 USER’S MANUAL
8-1
The devices supported by the system and the type number to be entered by the user are listed
below :
Type number to be
Device
entered by the user
2716
( @ 25 V )
2716
27C16
( @ 25 V )
2716
2732A
( @ 21 V )
732A
27C32A
( @ 21 V )
732A
27C32
( @ 25 V )
2732
2732
( @ 25 V )
2732
2764A
( @ 12.5 V )
764A
27C64D
( @ 12.5 V )
764A
27C64
( @ 21 V )
2764
2764
( @ 21 V )
2764
27128A
( @ 12.5 V )
128A
27C128
( @ 12.5 V )
128A
27128
( @ 21 V )
0128
27256
( @ 12.5 V )
0256
27C256
( @ 12.5 V )
0256
27C256
( @ 21 V )
2256
27512
( @ 12.5 V )
0512
The device selection is totally software - controlled and no hardware changes or jumper settings
are necessary for selecting any of the above listed devices.
8.2 INSTALLATION PROCEDURE
a ) Turn OFF power to ESA 51 trainer.
b) Attach the hardware module ( EPROM Programmer Interface ) to ESA 51 over connector J7
using 26 core ribbon cable supplied with the module.
c ) Connect black, yellow and blue wires coming from 4 pin polarized connector on the
programmer module to corresponding power supplies as shown below :
ESA 51 USER’S MANUAL
8-2
colour of the wire
supply to be connected
BLACK
GND
YELLOW
+ 12V
BLUE
+ 30V
d ) Power ON the system
8.3 OPERATION FROM BOTH SERIAL AND STAND-ALONE MODE MONITORS:
Enter P when prompted for command entry. Then system enters EPROM Programmer menu and
displays
R : Read
B : Blank check
P : Program
V : Verify
E : Exit
Enter Option :
The monitor provides the following 4 commands to support the EPROM Programmer System :
P
- Program command
V
- Verify command
B
- Blank check command
R
- Read command
Enter the appropriate command, when prompted for command entry by monitor.
Aborting a command :
With ‘ E’ it exits from the EPROM Programmer Menu to the monitor prompt.
Once a specific command is issued, further prompts will depend on command itself. However, if
the user enters <Esc> whenever the system is looking for an entry from the user, the current
operation is aborted and control returns to the warm start of the monitor. So in this case the user
has to re – enter the EPROM Programmer menu by entering ‘ P ’ before issuing any command.
8.3.1 P COMMAND :
This command is used to program an EPROM. This command requires the following 4 parameters:
EPROM type
= EPROM Type should be one of the types listed above in section 8.1
Buffer Start
= Starting address of the source of data
Buffer End
= Ending address of the source of data
EPROM start
= Absolute starting address of the EPROM
( from where programming is to begin )
ESA 51 USER’S MANUAL
8-3
NOTE : Buffer always means data memory area. If the program to be programmed on to an
EPROM is in program memory area, the user has to transfer it to the data memory area before
attempting programming. Similarly the user must note that when Read and Verify operations are
performed, buffer means data memory area.
As soon as P is typed, the system displays each parameter value and prompts for new value. User
can enter the new value followed by <CR> or simply enter <CR> if the displayed value is not to
be changed. Note that the parameters must satisfy certain conditions as listed below.
1) EPROM type can only be one of the valid types listed in section 8.1
2) Buffer end address must be greater than or equal to the Buffer start address.
3) The EPROM must have enough space to accommodate all the bytes specified by the Buffer
start address and Buffer end address. In other words, the following relation must be satisfied.
EPROM Start + ( Buffer end address – Buffer start address )< = Highest absolute address of
the EPROM.
For example, suppose EPROM type is 2764. Then its highest absolute address is 1FFFH. Suppose
the other parameters are as follows :
Buffer Start
= 8000
Buffer End
= 9FFF
EPROM Start
= 100
Then 100 + (9FFF – 8000) 20FF > 1FFF. So this combination of
parameters is invalid.
•
After user enters the parameter values, the above mentioned constraints are checked and if
any of the constraint is violated, it displays the message “invalid parameter(s) entered” and
returns to the sub menu. However if the EPROM type entered is invalid, it immediately
flashes a message “invalid EPROM type” and reprompts user to enter valid EPROM type.
After optional modification of the parameter values by the user, the system checks the EPROM for
blank values (0FFH) in the required zone. It displays the message,
Blank check in progress…
If the EPROM is not blank, the following prompt appears :
EPROM is not blank @ XXXX – YY
Continue programming (Y / N)
ESA 51 USER’S MANUAL
8-4
If user types N, the command is aborted and control returns to command prompt of the monitor.
If the user enters Y, the system proceeds further. Any other character results in error message and
repetition of the same prompt.
Now the following message appears :
Programming in progress …
The system proceeds with programming and verification on a byte by byte basis. Intelligent
Programming Algorithm is used if the EPROM support it. This results in considerable reduction in
programming time required for some Devices.
If the complete programming is successful, the system will display a 16 – bit checksum and control
will return to the sub menu.
If the programming is unsuccessful, the following information is displayed.
Programming failed @XXXX – YY
When XXXX is the EPROM address where programming failed and YY is the Data at that
location on EPROM.
NOTE: During programming and verification the location in EPROM and the corresponding data
that is being programmed are displayed in the display field continuously.
After programming the specified range, the system display 16 bit checksum and returns to sub
menu.
Checksum = NNNN
8.3.2 V COMMAND
This command is used to verify the contents of an EPROM against a source. The parameter and
their interpretation is completely similar to that of the P command. If the verification is successful,
the 16 – bit checksum is displayed and the control returns to EPROM programmer sub menu. It
the verification fails, a message and parameter at the point of failure are displayed as shown below.
Verification fails AAAA – BB CC – DDDD
Where AAAA is the EPROM address where verification has failed, BB is the data at that location
Similarly it also displays the corresponding buffer address (DDDD) and the data (CC) at that
location. If there are multiple locations where verification has failed it will list out them in the
same format as above. The control returns to the EPROM programmer sub menu. The user can
abort to main menu by pressing <Esc>.
ESA 51 USER’S MANUAL
8-5
Thus the operation of this command is quite similar to the operation of the P command, except that
here the EPROM is just verified, not programmed.
8.3.3 B COMMAND
This command is used to check if a specified range in the EPROM is blank (contains 0FFH).
This command requires the following three parameters:
Type
: same as for P command
EPROM Start
: The absolute starting address of the EPROM.
EPROM End
: The absolute ending address of the EPROM.
The parameter must satisfy the following relations :
i.
EPROM start
< = Absolute last address of the EPROM.
ii.
EPROM End
< = Absolute last address of the EPROM and
iii.
EPROM End
> = EPROM Start.
The parameter display and modification procedures are menu - driven and are similar to those of
the P command.
The EPROM is checked for blank values in the specified range. The EPROM address and data
read are displayed in the display field. If it is blank then the following message is displayed.
EPROM is blank
Then the control returns to the sub-menu.
If a location in the specified range is not blank, the following message is displayed.
EPROM is not blank @ XXXX – YY
Where XXXX is the absolute EPROM address of the first non – blank location and YY is its
contents. Then it display the address and data of subsequent non blank locations form next line
onwards. If <Esc> is pressed control returns to the monitor.
8.3.4 R COMMAND
This command is used to transfer contents of the EPROM into the ESA 51 memory space.
This command requires the following four parameter.
EPROM Type
: same as for P command
EPROM Start
: same as for B command
EPROM End
: same as for B command
Buffer Start
: starting address in ESA 51 memory space.
ESA 51 USER’S MANUAL
8-6
The parameter display and modification procedures are menu driven and are completely similar to
the ones described for P command.
The starting and ending address of the EPROM must satisfy the relations described for the B
(Blank Check ) command.
After the optional modification of the parameter, the contents of the EPROM, specified range are
transferred into ESA 51 memory, starting at the specified Buffer starting address. The EPROM
address and data read are displayed in the display fields. During the transfer, as each byte is written
into memory, it is read back and verified. If the write is successful for all locations, a 16 – bit
checksum is displayed and control returns to the sub menu.
If an error occurs during transfer (i.e. unsuccessful write into location), the following message is
displayed.
Read fails @ XXXX
Where XXXX is the address of location where write failure occurred. Then control returns to the
monitor.
8.3.5 EXAMPLE:
From monitor, program the contents of locations 8000H to 8FFFH into a 2764, starting at 1000H.
.P
R: Read
B: Blank Check
P: Program
V: Verify
E: Exit
V: Verify
E: Exit
Enter option: P
EPROM Type = 2732 – 2764 <CR>
Buffer start
= 0000 – 8000 <CR>
Buffer End
= 0000 – 8FFF <CR>
EPROM Start
= 0000 – 1000 <CR>
PROGRAMMING IN PROGRESS…..
Checksum 1724
R: Read
B: Blank Check
P: Program
Enter option: E
>
ESA 51 USER’S MANUAL
8-7
CHAPTER
9
COMMUNICATION WITH A
HOST COMPUTER SYSTEM
9.1 INTRODUCTION
As already noted, ESA 51 operating in the serial mode, can be connected to a host computer
system. When a computer system is the controlling element, it must be executing a driver
software to communication with ESA 51.
XT51 is such an optional communication package which allows the user to establish a
communication link between asynchronous serial ports of the computer (COM1/COM2), and
ESA 51.
XT51 is supplied as a “.EXE” file on a 3ò″ 2SHD diskette and can be executed on a PC under
PC-DOS/MS-DOS operating system. A suitable RS-232-C/RS 485 cable has to be used for
connecting ESA 51 to a PC.
ESA 51 USER’S MANUAL
9-1
XT51 fully supports all the command of ESA 51. Further, it allows the contents of a disk file to
be downloaded from the computer system into memory of ESA 51. User can develop assembly
language program on the PC, cross-assemble them using a suitable cross-assembler to generate
object code files and then use XT51 to download these object code files into ESA 51 for
execution. Thus the extensive development facilities available on the PC can be used to
supplement the facilities available on ESA 51.
Further XT51 allows uploading of data from memory of ESA 51 to the computer. The data so
uploaded is saved in a disk file. Thus this facility can conveniently be used to save user
program.
9.2 INSTALLATION
NOTE : Make sure that you have made a back up copy of XT51 .EXE before proceeding with
the installation.
The detailed installation procedure is as follows :
a)
Configures ESA 51 for serial mode of operation and set the serial port
of ESA 51 for 9600 Baud and No parity (Refer sections 2.1.1 and 2.1.3)
b)
Connect the computer system to ESA 51 over the COM1/COM2 serial port (Refer to
Technical Manual of your system for details regarding the signal definition on COM
ports. The signal definition of the RS-232-C port of ESA 51 can be found in Appendix C)
c)
Insert the diskette containing the file XT51.EXE into the available drive and run the
program by typing XT51 or XT51 /B to select black and white mode if computer system
has a CGA monitor.
d)
Now the following message appears on the screen.
XT51 Version 1.0
ELECTRO SYSTEM ASSOCIATES PVT LTD
BANGALORE
ALT+S
- Set communication Parameters
CTRL+F1
- Help
ALT+F1
- Command Help
<Esc>
- Clear Command
ESA 51 USER’S MANUAL
9-2
<F1>
- Previous Command Character
<F3>
- Command Recall
CTRL+U
- Uploaded Command
CTRL+D
- Download Command
!Command
- Dos Shell/command
ALT+X
- Exit
Press any key to continue
e)
XT51 checks for the presence of communication ports COM1 & COM2. If both ports are
not available it will display the message NO serial port present as reported by BIOS and
exits to DOS. Otherwise XT51 will read the communication parameters from file
“XT51.INS “ and initializes the communication port. XT51 searches current directory for
file “XT51 .INS” . If search fails, it will search the path given by the DOS environment
variable INIT. In the file is not present following message is displayed.
XT51.INS is not found !
Serial parameters are set to COM1, 9600, 8, 2, None
Do you want to change?
Yes No
If options “No” is selected the communication parameters, Serial Port COM1, Baud 9600, Data
bits 8, Stop bits 2, parity none are set. If option “Yes” is selected the communication parameters
can be interactively modified as described in section 9.4.6. Now XT51 attempts to establish
communication between the computer and ESA 51. If successful the command prompt “>”
appears on the screen. Subsequently during the power – on or reset of the trainer, the sign – on
message “ESA 8051 SERIAL MONITOR V x.y appears on the screen followed by command
prompt “>”, otherwise it will display the message
Unable to transmit data
Retry or Ignore
ESA 51 USER’S MANUAL
9-3
If ESA 51 is not powered on power it on and press <R> to retry to establish the communication.
The above mentioned message appears on the host side again. Pressing <I> will exit XT51 to
DOS. Now check for the following.
a)
Ensure that ESA 51 is connected to the correct COM and that the COM port is
functioning properly.
b)
Ensure that ESA 51 is functioning properly and configured correctly.
c)
Check the RS-232-C/RS 485 cable and its connections.
Since the communication package utilizes the hardware handshake signal RTS while
communicating with ESA 51, the interfacing cable must support this signal also.
NOTE :
XT51 utilizes an interrupt driven routine for reading character from the COM port.
Thus it is possible for XT51 to miss some character if the system has any resident program
which are interrupt driven (For example, many system include a CLOCK program in the
AUTOEXEC file, to display the time on the upper right corner of the screen). Hence it is
desirable not to run any such resident program while XT51 is running.
If the problem persists, please contact the manufacturer.
9.3 RETURNS TO DOS
User can terminate XT51 and return control to DOS by typing ALT+X when the program is
waiting for a keyboard input.
9.4 OPERATIONAL DETAILS
The complete command set of the ESA 51 is transparent and is fully supported by XT51 (Refer
to chapter 4 for serial monitor mode command) Press F1 for the help command.
In addition, XT51 supports the file download, file upload and other commands which are
explained below.
NOTE : During parameter entry, the system expects the alphabetic character to be in uppercase.
Thus it is convenient to use the keyboard with the CAPS LOCK on.
9.4.1 DOWNLOAD OPERATION :
This feature allows downloading of the contents of an object code file into the memory of
ESA 51.
ESA 51 USER’S MANUAL
9-4
NOTE : The object code file must be a “HEX” file with records in INTEL 8-bit HEX format.
Please refer to the relevant INTEL manuals for the definition of INTEL 8-bit HEX format. Most
of the cross assemblers for 8031 do produce object code files with records in INTEL 8-bit HEX
format.
To perform download operations, type CTRL+D in response to the command prompt (“>”).
The system will now prompt for the name of the disk file, from which the information is to be
downloaded. The prompt is as follows :
Download filename [.HEX] :
Enter the file name with extension, terminated by <CR>. If the filename is invalid, it display a
message “ FILE NOT FOUND” and prompts again for the filename. If the path specified is
invalid, it displays the message “PATH NOT FOUND” and prompt again for the filename. If
none of the above errors occur, the system will prompt for the memory type as follows.
Memory type {P|D} :
The user has to enter P or D depending on whether program has to be downloaded to program or
data memory.
Now the system will prompt for the staring address of the program as follow.
Start Address:
Enter the starting address followed by <CR>. A maximum of four hex digits are allowed for the
starting address. Now the system will prompt for the ending address as follows.
End Address:
Enter the ending address followed by <CR>. A maximum of four hex digits are allowed for the
ending address. Now the system will prompt for the load offset value as follows.
Load offset Address:
If the user wishes to download the file to an address range different from the actual address range
of the file, then a suitable offset value can be entered to enable the file to be downloaded to the
desired address range. For example if the user wishes to download it to an address range starting
at C000H, the user has to enter an offset value of C000H –8000H=4000H. In case the user
wishes to download to the same address range an offset value of 0000 has to be entered or simply
press <CR>. After obtaining the filename, starting address and the ending address, the system
ESA 51 USER’S MANUAL
9-5
will read the file, gather the data in specified address range, reformat the data for compatibility
with the protocol required by ESA 51 and send the data to ESA 51.
Downloading in progress ……xxx
After downloading is over, the system returns to the command prompt of ESA 51. It also
displays the starting address of each record being download.
9.4.2 UPLOAD OPERATION :
This feature allow uploading of the data from the memory of ESA 51 to the computer system and
save the data in the specified disk file in INTEL 8 bit HEX format.
To perform upload operations, type Ctrl +U in response to the command
prompt (“>”).
The system will now prompt for the name of the disk file, into which information is to be
uploaded. The prompt is as follows :
UPLOAD FILENAME (.HEX)
Enter the file name with extension, terminated by <CR>. If the file already exists, then the
system will display
File already exists
Overwrite?
Yes No
Select the first option by pressing <Y> to overwrite the contents of the existing file. Pressing
<N> will let the user specify another file name. Select the third option <A> to append to the
contents of the existing file.
If no error occurs, the system will prompt for the starting address of the program as follow :
Memory Type {P|D}
The user has to enter P or D depending on whether program has to be uploaded from program or
data memory.
Now the system will prompt for the starting address of the program as follows:
Start Address
Enter the starting address terminated by <CR>. A maximum of four hex digits are allowed for
the starting address.
ESA 51 USER’S MANUAL
9-6
Now the system will prompt for the ending address as follows
End Address
Enter the ending address terminated by <CR>. A maximum of four hex digits are allowed for the
ending address file.
After obtaining the filename, starting address and the ending address, the system will gather the
data in the specified address range of the ESA 51, reformat the data into INTEL 8 bits HEX
record and store the data in specified file.
Uploading in progress (XXXX)
While the uploading is going on the system will display the starting address (XXXX) of each
record being uploaded. Once the uploading is complete XT51 will let user specify another
address range. User may specify a new address range or enter <Esc> to terminate uploading
operation.
The following error message may appear during upload and download operations
1. Invalid function number !
This is XT51 internal error, therefore contact ESA technical support for assistance.
2. File not found !
3. Path not found !
4. No more files !
5. Access denied !
6. Invalid file handled !
7. Insufficient disk space !
8. Unable to continue upload !
9. Colon is not present at the start of the record
10. Invalid data in (source file ) the following record !
11. Check sum error in the following record !
9.4.3 DOS COMMANDS
At the command prompt “>” any valid DOS command can be entered preceded by “!” XT51
environment is saved and the DOS command is executed. Then XT51 environment is restored
and XT51 command prompt be displayed again.
ESA 51 USER’S MANUAL
9-7
9.4.4 BOTTOM LINE :
During the session XT51 display many of the XT51 commands at the bottom line in reverse
video for convenience of user. The bottom line is displayed as
Ctrl+F1 Help, Alt+F1CmdHlp, Alt+S Commn, <Esc> ClrCmd, Alt+X Exit, F1,F3,
9.4.5 COMMAND RECALL
This feature facilitates recall of the command already entered by the user, upto a maximum of 16
commands. Press <F3> to recall the previous command. All the command are kept in a circular
buffer. User may use Up-arrow and Down- arrow keys to traverse through the sequence of
command is backward or forward direction in circular fashion. User may recall just the previous
command being entered can be cleared by using <Esc> key anytime before pressing <CR>.
9.4.6 COMMUNICATION
Communication parameters can be set during the session by pressing ALT+S. List of parameters
and their current values will appear on the screen. Select the desired parameter with the help of
arrow keys and keep the space bar pressed till the desired value appears. The parameters
allowed
to
be
set
are
communication
Port
(COM1/COM2),
Baud
Rate
(110/150/300/600/1200/2400/4800/9600), Number of Data bits (7/8), Parity (NONE
/ODD/EVEN) and Number of stops bits (1/2), After selecting the desired values press <CR> to
set the parameters or press <Esc> to ignore the values.
Communication parameters can also be modified, while user is in DOS by editing the file
XT51.INS. This file contains single data line, having five integer separated by blanks,
representing various communication parameter. This five integer represent serial communication
port, baud rate, no. of data bits, no. of stop bits and parity, in sequence.
Table 9.1 shows details of the integer values and corresponding parameters.
Commn.
Port
Baud
int1
Rate
Data
int2 Bits
Stop
int
Bits
int 4
Parity
int 5
3
COM 1
0
110
0
7
0
1
0
Odd
0
COM 2
1
150
1
8
1
2
1
None
1
300
2
Even
2
ESA 51 USER’S MANUAL
9-8
600
3
1200
4
2400
5
4800
6
9600
7
9.4.7 HELP :
On-line help is available on all ESA 51 monitor commands specific to XT51. Help facility can
be selected by CTRL+F1. A menu of commands is displayed from which desired commands can
be selected by using arrow keys and help information about that command is displayed in the
remaining part of the screen. Context sensitive help is available using ALT+F1. This facility can
be used if help information is desired about the command being entered against command
prompt.
ESA 51 USER’S MANUAL
9-9
CHAPTER
10
PROGRAMMING EXAMPLES
10.1 Program to display ESA PVT LTD on the LCD. Execute the
program in stand-alone mode only.
ADDRESS
0348
03BB
LCDOUT EQU
CLRLCD EQU
OBJECT
MNEMONICS
0348H
03BBH
COMMENTS
8000
8000
8003
12 03 BB
C2 D5
ORG
LCALL
CLR
8000H
CLRLCD
F0
8005
8008
90 80 0E
12 03 48
MOV
LCALL
800B
02 80 0B
LJMP
DPTR,#STG
LCDOUT
;Output routine to
;display string
; of characters
800BH
800E
8013
8018
45 53 41 20 50 STG: DB
56 54 20 4C 54
44 2E 00
ESA 51 USER’S MANUAL
;To select
;program memory
'ESA PVT LTD.',0
10-1
10.2 Program to perform multiplication of two numbers, present
at data memory Location 9000 & 9001 and storing the result
in 9002 & 9003 Data memory.
ADDRESS
OBJECT
MNEMONICS
COMMENTS
8000
8000
90 90 01
ORG
MOV
8000H
DPTR,#9001H
8003
8004
8006
8009
800A
E0
F5 F0
90 90 00
E0
A4
MOVX
MOV
MOV
MOVX
MUL
800B
90 90 02
MOV
800E
800F
8010
8012
8013
F0
A3
E5 F0
F0
02 00 00
MOVX
INC
MOV
MOVX
LJMP
A,@DPTR
0F0H,A
DPTR,#9000H
A,@DPTR
AB
;Perform
;multiplication
;operation
DPTR,#9002H ;Store the
;result in 9002h
;& 9003h of data
;memory
@DPTR,A
DPTR
A,0F0H
@DPTR,A
0
;Keep data in
;9000h & 9001h
;data memory
;location.
10.3 Program to perform Division of 2 numbers. Execute the
program either in stand-alone mode or in serial mode. 2
numbers available at 9000 & 9001 of Data memory. After
division operation store the result in 9002 & 9003
Data memory.
ADDRESS
OBJECT
MNEMONICS
8000
8000
90 90 01
ORG
MOV
8003
8004
8006
8008
8009
E0
F5 F0
15 82
E0
84
MOVX
MOV
DEC
MOVX
DIV
ESA 51 USER’S MANUAL
COMMENTS
8000H
DPTR,#9001H;Keep data in
;9000h & 9001h
;data memory
;location
A,@DPTR
B,A
DPL
A,@DPTR
AB
;Perform
;division operation
10-2
800A
90 90 02
MOV
800D
800E
800F
8011
8012
F0
A3
E5 F0
F0
02 00 03
MOVX
INC
MOV
MOVX
LJMP
DPTR,#9002H;Store the result
;in 9002h&
;9003h data memory
@DPTR,A
DPTR
A,B
@DPTR,A
3
10.4 Program to display
ELECTRO SYSTEMS ASSOCIATES
BANGALORE.
Execute this program in serial mode only.
1200
ADDRESS
OUTSTG
OBJECT
8000
8000
EQU
1200H
MNEMONICS
COMMENTS
90 80 09
ORG
MOV
8000H
DPTR,#STG
8003
12 12 00
LCALL
OUTSTG
8006
8009
02 00 00
LJMP
20 20 20 20 20 STG:
DB
'
800E
8013
8018
801D
8022
8027
802C
8031
8034
8039
803E
8043
8048
804D
8052
20
43
53
4D
53
54
56
54
0D
20
20
20
20
41
2E
20
54
59
53
4F
45
54
44
0A
20
20
20
42
4C
00
45
52
53
20
43
53
2E
2E
20
20
20
20
41
4F
4C
4F
54
41
49
20
20
45
20
45
53
41
50
4C
20
20
20
20
4E
52
20
20
20
20
47
45
ESA 51 USER’S MANUAL
DB
;Keeping the data
;in the program
;memory
;Routine to
;display string
;of characters on
;the console
0
ELECTRO SYSTEMS
ASSOCIATES PVT. LTD.'
0dh,0ah,' BANGALORE.',0
10-3
10.5 Program to display ASCII character on the console.
Execute this program in serial mode only.
11A8
ADDRESS
OUTCHR
OBJECT
EQU
11A8H
MNEMONICS
8000
8000
90 90 00
ORG
MOV
8003
8004
8007
E0
12 11 A8
02 00 03
MOVX
LCALL
LJMP
COMMENTS
8000H
DPTR,#9000H ;Keep the hex
;equivalent of
;the ASCII
;character in
;9000H DATA
;memory
A,@DPTR
OUTCHR
3
Keep the hex equivalent of the ASCII character to be displayed
in 9000h in data memory.
10.6 Program to convert HEX equivalent to ASCII on the trainer
display. If the code is less than 40, then 30 is subtracted
from the code to get its binary equivalent. If the code is
greater than 40, then the equivalent no. lies between A & F.
The program can be executed both in stand-alone and serial
mode.
13D2
PUTBYTE
EQU
13D2H
ADDRESS
8000
8000
8003
8004
8005
8006
8008
800A
800B
800D
800F
8012
8015
8016
OBJECT
MNEMONICS
90 90 00
ORG
LOOP1: MOV
8000H
DPTR,#9000H
E0
F9
C3
94
40
E9
24
F5
12
02
E9
C3
MOVX
MOV
CLR
SUBB
JC
MOV
ADD
LOOP3: MOV
LCALL
LJMP
LOOP2: MOV
CLR
A,@DPTR
R1,A
C
A,#0AH
LOOP2
A,R1
A,#37H
71H,A
PUTBYTE
3
A,R1
C
0A
0B
37
71
13 D2
80 00
ESA 51 USER’S MANUAL
COMMENTS
;Keep the HEX eq
;in 9000h data
;memory
;Check for carry
10-4
8017
24 30
ADD
A,#30H
8019
02 80 0D
LJMP
LOOP3
;Add ACC.
;content with 30
10.7 In the given byte checking the 5th bit is '1' or '0'. If the
5th bit is '1' 00 should be stored in 8901 data memory or if
it is '0' FF should be stored in 8901h data memory
ADDRESS
OBJECT
MNEMONICS
COMMENTS
8000
8000
90 89 00
ORG
MOV
8000H
DPTR,#8900H
8003
8004
8005
8006
8007
8008
800A
E0
A3
33
33
33
40 06
74 FF
MOVX
INC
RLC
RLC
RLC
JC
MOV
A,@DPTR
DPTR
A
A
A
LOOP
A,#0FFH
800C
800D
8010
F0
02 00 00
74 00
LOOP:
MOVX
LJMP
MOV
@DPTR,A
3
A,#00H
8012
8013
F0
02 00 00
MOVX
LJMP
@DPTR,A
3
;Store the
;given byte in
;8900h data
;memory
;Rotate left
;three times
;Check for carry
;Move FFh into
;ACC.
;Move 00h into
;ACC.
10.8 Program to display largest number among 'N' numbers. Execute
the program either in Stand-alone mode or in serial mode.
13D2
ADDRESS
PUTBYTE
OBJECT
8000
8000
90 89 00
8003
8004
E0
FA
EQU
13D2H
MNEMONICS
LOOP4:
ESA 51 USER’S MANUAL
ORG
MOV
8000H
DPTR,#8900H
MOVX
MOV
A,@DPTR
R2,A
COMMENTS
;The total No.
;'N' of data
;bytes is
;stored in
;8900h data
;memory
;Reg R2 is used
;as counter
10-5
8005
90 89 01
MOV
DPTR,#8901H
8008
8009
E0
1A
MOVX
DEC
A,@DPTR
R2
800A
800B
F9
A3
MOV
INC
R1,A
DPTR
800C
800D
800E
E0
FB
99
MOVX
MOV
SUBB
A,@DPTR
R3,A
A,R1
800F
8011
8013
8014
8016
50
DA
E9
F5
12
JNC
DJNZ
MOV
MOV
LCALL
LOOP1
R2,LOOP2
A,R1
71H,A
PUTBYTE
8019
801C
801D
801E
8021
02 00 03
EB
F9
02 80 11
12 13 D2
LJMP
MOV
MOV
LJMP
LCALL
3
A,R3
R1,A
LOOP3
PUTBYTE
8024
02 80 00
LJMP
LOOP4
LOOP2:
0B
F8
LOOP3:
71
13 D2
LOOP1:
;Data will be
;put from
;8901h onwards
;Decrement
;counter
;Increment data
;memory
;Comparing 2
;Nos.
;Display the
;largest no.
;Display the
;largest no.
10.9 Program to display decimal count 0 to 20. Execute the
program either in stand-alone mode or in serial mode.
03E6
DSPCHR
EQU
03E6H
13D2
PUTBYTE
EQU
13D2H
03BB
CLRLCD
EQU
03BBH
ADDRESS
OBJECT
MNEMONICS
8000
8000
7A 00
ORG
MOV
8002
8005
90 E9 04
E0
8006
8009
30 E3 0B
12 03 BB
JNB
LCALL
800C
800D
800F
EA
F5 71
12 13 D2
MOV
MOV
LCALL
RPT:
ESA 51 USER’S MANUAL
MOV
MOVX
COMMENTS
8000H
R2,#00H
;Store count 00
;in R2
DPTR,#0E904H
A,@DPTR
;Read the
;dipswitch
ACC.3,L1
CLRLCD
;Clear the LCD
;display
A,R2
71H,A
PUTBYTE
;Display the
10-6
;count on LCD
8012
8014
8015
8017
80 0F
EA
F5 71
12 13 D2
801A
801C
801E
8021
8023
8026
8029
802C
802F
8030
8032
7B
74
12
DB
12
12
12
12
EA
24
D4
8033
8034
FA
BA 21 CB
8037
803A
803C
803E
803F
8042
8043
8046
02
7B
7C
1B
BB
1C
BC
22
03
08
03
F9
80
80
80
80
L1:
LOOP:
E6
3A
3A
3A
3A
L2:
01
00 00
FF
FF
DELAY:
BACK1:
00 FC
BACK2:
00 F8
SJMP
MOV
MOV
LCALL
L2
A,R2
71H,A
PUTBYTE
MOV
MOV
LCALL
DJNZ
LCALL
LCALL
LCALL
LCALL
MOV
ADD
DA
R3,#03H
A,#08H
DSPCHR
R3,LOOP
DELAY
DELAY
DELAY
DELAY
A,R2
A,#01H
A
MOV
CJNE
R2,A
R2,#21H,RPT
LJMP
MOV
MOV
DEC
CJNE
DEC
CJNE
RET
0000H
R3,#0FFH
;Delay routine
R4,#0FFH
R3
R3,#00H,BACK1
R4
R4,#00H,BACK1
;Display the
;count on PC
;console
;Perform decimal
;adjust ACC
;Repeat the
;process till
;the count is
;equal to 20
10.10 Program to display 24 hours digital clock in serial mode.
Execute the program from 8000H. To change the min, hours
change the data in location 8009H & 8007H respectively.
0404
13D2
03E6
ADDRESS
8000
8000
OUTPUT
PUTBYTE
DSPCHR
OBJECT
MNEMONICS
90 80 F
ORG
MOV
ESA 51 USER’S MANUAL
EQU
EQU
EQU
0404H
13D2H
03E6H
COMMENTS
8000H
DPTR,#STG;Keep data from
;80F3H
10-7
;program memory.
;Display routine
;Store hrs in R5
;Store minutes in
;R7 reg.
8003
8006
8008
12 04 04
7D 23
START:
7F 59
LCALL
MOV
MOV
OUTPUT
R5,#23H
R7,#58H
800A
800B
800D
800F
ED
LOOP:
F5 71
C0 05
12 13 D2
MOV
MOV
PUSH
LCALL
A,R5
71H,A
5
PUTBYTE
8012
8014
8017
8019
801C
801D
801F
8022
8024
8027
8029
802C
802E
8030
8032
8033
8035
8038
803A
803C
803F
8041
8044
8045
8047
8048
8049
74
12
74
12
EF
F5
12
74
12
74
12
D0
C0
79
E9
F5
12
7B
74
12
DB
12
E9
24
D4
F9
B9
MOV
LCALL
MOV
LCALL
MOV
MOV
LCALL
MOV
LCALL
MOV
LCALL
POP
PUSH
MOV
MOV
MOV
LCALL
MOV
MOV
LCALL
DJNZ
LCALL
MOV
ADD
DA
MOV
CJNE
804C
804D
804F
8050
8051
EF
24 01
D4
FF
BF 60 51
MOV
ADD
DA
MOV
CJNE
8054
8056
7B 07
74 08
MOV
MOV
A,#20H
DSPCHR
A,#20H
DSPCHR
A,R7
71H,A
PUTBYTE
A,#20H
DSPCHR
A,#20H
DSPCHR
5
5
R1,#00H
;Keep seconds 00
A,R1
;In reg R2
71H,A
PUTBYTE
R3,#02H
A,#08H
DSPCHR
R3,LOOP1
DELAY
;Delay Routine
A,R1
A,#01H
A
R1,A
R1,#60H,SEC;Check for 60 sec
;over or not
A,R7
A,#01H
A
R7,A
R7,#60H,MIN ;Check for 60
;min over or not
R3,#07H
A,#08H
20
03 E6
20
03 E6
71
13 D2
20
03 E6
20
03 E6
05
05
BEGIN:
50
SEC:
71
13 D2
02
08
LOOP1:
03 E6
F9
80 92
01
60 E6
LOOP2:
ESA 51 USER’S MANUAL
;Routine to put
;character on
;console.
;Provide space.
10-8
8058
805B
805D
805F
8060
8062
8065
8067
8069
806C
806E
8070
8071
8073
8074
8075
12
DB
74
FF
F5
12
7B
74
12
DB
D0
ED
24
D4
FD
BD
8078
7B
807A
74
807C
12
807F
DB
8081
74
8083
F5
8085
12
8088
7D
808A
7F
808C
12
808F
02
8092
7A
8094
7C
8096
7B
8098
1B
8099
BB
809C
1C
809D
BC
80A0
1A
80A1
BA
80A4
22
Subroutine
80A5
7B
80A7
74
80A9
12
80AC
DB
80AE
EF
80AF
F5
80B1
12
80B4
74
03 E6
F9
01
71
13 D2
07
08
LOOP3:
03 E6
F9
05
01
24 53
04
08
03
F9
00
71
13
00
00
80
80
05
FF
FF
00
00
00
to
04
08
03
F9
71
13
20
LCALL
DJNZ
MOV
MOV
MOV
LCALL
MOV
MOV
LCALL
DJNZ
POP
MOV
ADD
DA
MOV
CJNE
MOV
MOV
LCALL
DJNZ
MOV
MOV
D2
LCALL
MOV
MOV
C1
LCALL
0A
LJMP
DELAY:
MOV
BACK3:
MOV
BACK2:
MOV
BACK1:
DEC
FC
CJNE
DEC
F6
CJNE
DEC
F0
CJNE
RET
display minutes.
MIN:
MOV
RPT4:
MOV
E6
LCALL
DJNZ
MOV
MOV
D2
LCALL
MOV
LOOP4:
E6
ESA 51 USER’S MANUAL
DSPCHR
R3,LOOP2
A,#01H
R7,A
71H,A
PUTBYTE
R3,#07H
A,#08H
DSPCHR
R3,LOOP3
5
A,R5
A,#01H
A
R5,A
R5,#24H,HRS;Check for 24
;hrs. over or not
R3,#04H
A,#08H
DSPCHR
R3,LOOP4
A,#00H
71H,A
PUTBYTE
R5,#00H
R7,#00H
CURSOR
LOOP
R2,#05H
;Delay routine
R4,#0FFH
R3,#0FFH
R3
R3,#00H,BACK1
R4
R4,#00H,BACK2
R2
R2,#00H,BACK3
R3,#04H
A,#08H
DSPCHR
R3,RPT4
A,R7
71H,A
PUTBYTE
A,#20H
10-9
80B6
12
80B9
74
80BB
12
80BE
02
Subroutine
80C1
7B
80C3
74
80C5
12
80C8
DB
80CA
22
Subroutine
80CB
ED
80CC
F5
80CE
12
80D1
74
80D3
12
80D6
74
80D8
12
80DB
74
80DD
F5
80DF
12
80E2
7F
80E4
7E
80E6
74
80E8
12
80EB
74
80ED
12
80F0
02
Subroutine
03
20
03
80
to
03
08
03
F9
80F3
80F8
80FD
8101
52
4E
0D
80
48
49
43
02
to
71
13
20
03
20
03
00
71
13
00
00
20
03
20
03
80
to
E6
LCALL
DSPCHR
MOV
A,#20H
E6
LCALL
DSPCHR
2E
LJMP
BEGIN
move the cursor three times back.
CURSOR:
MOV
R3,#03H
RPT5:
MOV
A,#08H
E6
LCALL
DSPCHR
DJNZ
R3,RPT5
RET
display hours.
HRS:
MOV
A,R5
MOV
71H,A
D2
LCALL
PUTBYTE
MOV
A,#20H
E6
LCALL
DSPCHR
MOV
A,#20H
E6
LCALL
DSPCHR
MOV
A,#00H
MOV
71H,A
D2
LCALL
PUTBYTE
MOV
R7,#00H
MOV
R6,#00H
MOV
A,#20H
E6
LCALL
DSPCHR
MOV
A,#20H
E6
LCALL
DSPCHR
2E
LJMP
BEGIN
display HRS, MIN, SEC on the console.
STG:
DB
'HRS MIN SEC',0DH,0AH,0
53 20 4D
20 53 45
0A 00
06
LJMP
START
10.11 Program to perform addition of two numbers. This program
can be executed in serial mode or in stand-alone mode. Two
numbers are taken from locations 9000H & 9001H of Data
memory. They are added and the result is stored in the
location 9002H of data memory.
13D2
ADDRESS
8000
8000
PUTBYTE
EQU
OBJECT
MNEMONICS
90 90 00
ORG
MOV
ESA 51 USER’S MANUAL
13D2H
8000H
DPTR,#9000H
COMMENTS
;Keep the data
10-10
;in 9000h&
;9001h locations
;of data memory
8003
8004
8006
8009
800A
800C
E0
F5
90
E0
25
90
800F
8010
8012
8015
F0
F5 71
12 13 D2
02 00 00
F0
90 01
F0
90 02
MOVX
MOV
MOV
MOVX
ADD
MOV
MOVX
MOV
LCALL
LJMP
A,@DPTR
0F0H,A
DPTR,#9001H
A,@DPTR
A,0F0H
;Add them store
DPTR,#9002H ;the result in
;9002h location
; of data memory
@DPTR,A
71H,A
PUTBYTE
;Display the result
0
10.12 Program to perform subtraction of two numbers. This program
can be executed either in stand-alone mode or in serial
mode. Two numbers are taken from locations 9000H & 9001H of
data memory. They are subtracted and the result is stored
in the location 9002 of data memory.
13D2
PUTBYTE EQU 13D2H
ADDRESS
OBJECT
MNEMONICS
8000
8000
8003
8004
90 90 01
E0
F5 F0
ORG
MOV
MOVX
MOV
8006
8009
800A
800C
800F
8010
8012
8015
90
E0
95
90
F0
F5
12
02
MOV
MOVX
SUBB
MOV
MOVX
MOV
LCALL
LJMP
90 00
F0
90 02
71
13 D2
00 00
COMMENTS
8000H
DPTR,#9001H ;Keep data in
A,@DPTR
;9000h and 9001H
0F0H,A
;location of Data
;Memory
DPTR,#9000H
A,@DPTR
A,0F0H
;Subtract them
DPTR,#9002H;Store the result
@DPTR,A
;in 9002H location
71H,A
;of Data Memory
PUTBYTE
0
10.13 Demonstration program for on-board DAC. The program will
generate a square wave output at DAC O/P(J12).
ADDRESS
8000
8000
8003
OBJECT
MNEMONICS
75 A0 E1
78 00
ORG
MOV
MOV
ESA 51 USER’S MANUAL
8000H
P2,#0E1H
R0,#00H
COMMENTS
;8155 CONTROL PORT
10-11
8005
74 02
MOV
A,#02H
8007
8008
8009
800A
800C
F2
08
08
74 FF
F2
MOVX
INC
INC
MOV
MOVX
@R0,A
R0
R0
A,#FFH
@R0,A
800D
8010
8011
12 80 17
E4
F2
CALL
CLR
MOVX
DELAY
A
@R0,A
8012
8015
8017
8019
801B
12
80
7E
DE
22
CALL
SJMP
MOV
DJNZ
RET
80 17
F3
FF
FE
AGAIN:
DELAY:
BACK:
;CONFIGURE 8155
;PORTB AS O/P PORT
;OUTPUT FFH TO PORTB
;FOR 5V AT DAC O/P
;CALL DELAY ROUTINE
;OUTPUT 00H TO PORTB
;FOR 0V AT DAC O/P
DELAY
;CALL DELAY ROUTINE
AGAIN
;REPEAT THE PROCESS
R6,#FFH ;THE DELAY ROUTINE
R6,BACK
10.14 Demonstration program for 12bit ADC for both multi & single
channel operation. When the ADC is operated in single
channel mode, the MUX at U47 need not be populated and JP15
& JP24 are open. Analog input is applied at screw terminal
TP. When the ADC is in multi channel mode, the MUX is
populated and eight channels are available as selected by
the channel select lines. The jumpers JP11 to JP15 are
closed. The analog signals are applied at the screw
terminals provided at J11.When the ADC is in multi channel
mode no signal is applied at TP.
13D2
12BB
0404
ADDRESS
PUTBYTE EQU
GETCH
EQU
OUTPUT EQU
OBJECT
MNEMONICS
8000
8000
8001
8004
E4
90 90 00
F0
ORG
CLR
MOV
MOVX
8008
800A
800C
800D
78 00
74 02
F2
75 90 03
MOV
MOV
MOVX
MOV
ESA 51 USER’S MANUAL
13D2H
12BBH
404H
COMMENTS
8000H
A
DPTR,#9000H
@DPTR,A ;CLEAR THE DATA
;MEMORY LOCATION 9000H
;TO STORE THE
;CHANNEL NO:
R0,#00H ;MAKE THE 8155 PORTA
A,#02H ;&PORT B AS OUTPUT
@R0,A
;PORTS
90H,#03H;MUX&LATCHES ARE
;DISABLED&ADC IS IN
10-12
8010
8011
8012
8013
E0
23
23
F5 F0
CONVERT:MOVX
RL
RL
MOV
8015
44 23
ORL
8017
8019
F5 90
02 80 B2
MOV
LJMP
801C
801E
8020
E5 F0
44 23
F5 90
8022
8024
8026
8027
8028
8029
802B
802D
54
F5
00
00
00
D2
78
E2
802E
90 90 01
MOV
8031
F0
MOVX
8032
8033
8034
8035
8037
803A
08
08
E2
54 0F
90 90 02
F0
INC
INC
MOVX
ANL
MOV
MOVX
803B
803E
90 80 8F
C2 D5
8040
12 04 04
LCALL
8043
8046
8047
90 90 00
E0
F5 71
MOV
MOVX
MOV
BACK: MOV
ORL
MOV
FC
90
ANL
MOV
NOP
NOP
NOP
SETB
MOV
MOVX
90
01
SRL:
ESA 51 USER’S MANUAL
MOV
CLR
;READ MODE
A,@DPTR
A
A
;TO SELECT THE CHANNEL
B,A
;SAVE THE CHANNEL
;VALUE IN B REG
A,#23H ;THE CONTROL SIGNALS;MUX ENABLED LATCHES
;DISABLED ADC IS IN
;READ MODE
90H,A
SETLTIME;AFTER ANALOG SIGNAL
;IS APPLIED THE MUX IS
;GIVEN THE REQUIRED
;SETTLING TIME
A,B
A,#23H
90H,A
;GIVE THE HIGH TO LOW
;FOR CONVERSIONSTART
A,#0FCH ;& THE LATCHES
90H,A ;ARE ALSO ENABLED
;THE CONVERSION
;TIME
P1.0
;ENABLE CONVERSION
R0,#01H;ACCEPT THE LOWER 8
A,@R0 ;BIT DATA THROUGH PORT
;A OF 8155
DPTR,#9001H;AND STORE IT
;IN DATA
@DPTR,A
;MEMORY 9001
;LOCATION
R0
;ACCEPT THE
R0
;UPPER 4 BIT DATA
A,@R0
;FROM PORT C OF 8155
A,#0FH
DPTR,#9002H ;AND STORE IT IN
@DPTR,A ;DATA MEMORY 9002
;LOCATION
DPTR,#CHANNEL
F0
;TO SELECT PROGRAM
;MEMORY
OUTPUT ;DISPLAY THE MESSAGE
;"CHANNEL ="
DPTR,#9000H ;DISPLAY
A,@DPTR
;THE
71H,A
;CHANNEL
10-13
8049
804C
804F
8051
12
90
C2
12
13 D2
80 9C
D5
04 04
LCALL
MOV
CLR
LCALL
8054
8057
8058
805A
805D
8060
8061
8063
8066
90
E0
F5
12
90
E0
F5
12
12
90 02
MOV
MOVX
MOV
LCALL
MOV
MOVX
MOV
LCALL
LCALL
8069
806C
B4 2C 02
80 13
806E
B4 2D 02
8071
80 07
8073
8075
64 0D
60 EF
8077
02 00 03
807A
807D
807E
807F
8081
8084
8085
90 90 00
E0
14
80 05
90 90 00
E0
04
CHDCR:
8086
8088
54 07
F0
ST:
8089
808C
808F
8094
8099
809C
75
02
0D
4E
3D
20
71
13 D2
90 01
71
13 D2
12 BB
A0
80
0A
4E
20
20
S2:
CJNE
SJMP
S1:
CJNE
SJMP
S6:
XRL
JZ
LJMP
CHINR:
E1
10
43 48 41
45 4C 20
00
20 20 20
ESA 51 USER’S MANUAL
PUTBYTE
;NO:
DPTR,#DIGITAL
;
F0 ;TO SELECT PROGRAM MEMORY
OUTPUT
;DISPLAY THE MESSAGE
;"DIGITAL VALUE ="
DPTR,#9002H ;DISPLAY
A,@DPTR
;THE UPPER 4 BITS
71H,A
;OF THE
PUTBYTE
;CONVERTED DATA
DPTR,#9001H ;DISPALY THE
A,@DPTR
;LOWER 8 BITS
71H,A
;OF THE
PUTBYTE
;CONVERTED DATA
GETCH
;GET A CHARACTER
;FROM KEYBOARD
A,#2CH,S1
; CHECK WHETHER
CHINR
;IF YES INCREMENT
;THE CHANNEL NO:
A,#2DH,S6 ;IF NOT ',' CHECK
;FOR '-'
CHDCR
;IF YES DECREMENT
;THE CHANNEL NO:
A,#0DH
;IF IT IS <CR>?
S2
;YES,WAIT FOR THE
;NEXT KEY TO BE
;PRESSED
3
;ELSE, GO TO INT0
;ROUTINE.
MOV
MOVX
DEC
SJMP
MOV
MOVX
INC
DPTR,#9000H
A,@DPTR
A
ST
DPTR,#9000H
A,@DPTR
A
ANL
MOVX
A,#07H
@DPTR,A
MOV
LJMP
CHANNEL:
DIGITAL:
;SUBROUTINE
;TO
;DECREMENT THE
;CHANNEL NO:
;SUBROUTINE
;TO
;INCREMENT THE
;CHANNEL NO:
;
;STORE THE CHANNEL
;NO.IN 9000 LOCATION
; OF DATA MEMORY
P2,#0E1H
CONVERT ;REPEAT THE PROCESS
DB
0DH,0AH,'CHANNEL = ',0
DB
'
DIGITAL VALUE = ',0
10-14
80A1
80A6
80AB
80B0
80B2
80B2
80B3
80B4
80B5
80B6
80B7
80B8
80B9
80BA
80BB
80BC
44
41
4C
20
49 47 49 54
4C 20 56 41
55 45 20 3D
00
00
00
00
00
00
00
00
00
00
00
02 80 1C
ESA 51 USER’S MANUAL
SETLTIME:
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
LJMP
BACK
10-15
APPENDIX A
COMPONENT PLACEMENT DIAGRAM
APPENDIX B
ASCII CODES
APPENDIX C
RS 232C/RS 485
CABLE REQUIREMENTS
APPENDIX D
PRODUCT LIST
APPENDIX E
INSTRUCTION SET
APPENDIX F
CONNECTOR DETAILS
RS 232 C CABLE DETAILS
THE ESA 85-2 REQUIRES A NULL MODEM CABLE IN ORDER TO
COMMUNICATE WITH OTHER SYSTEMS.
THESE ARE THE CONNECTIONS REQURIED FOR THE NULL-MODEM CABLE :
TXD (Pin 2) > .............................................. < RXD (pin 3)
RXD (Pin 3) > .............................................. < TXD (pin 2)
RTS (Pin 4) > ............................................... < CTS (pin 5)
CTS (Pin 5) > ............................................... < RTS (pin 4)
DSR (Pin 6) > .............................................. < DTR (pin 2)
DTR (Pin 20) > ............................................ < DSR (pin 6)
GND (Pin 7) > ............................................. < GND (pin 7)
NOTE :
1)
Use male of 25 PIN 'D' Connector on ESA85-2 side and appropriate on other side.
2)
If hardware handshaking is not required interconnect RTS and CTS (PIN 4 and 5)
and DSR and DTR (PIN 6 and 20).
ESA 85-2 User's Manual
14 - 7
APPENDIX B-1
Hexadecimal
Decimal
Character
Hexadecimal
Decimal
Character
00
0
NUL
20
32
SP
01
1
SOH
21
33
!
02
2
STX
22
34
"
03
3
ETX
23
35
#
04
4
EOT
24
36
$
05
5
ENQ
25
37
%
06
6
ACK
26
38
&
07
7
BEL
27
39
,
08
8
BS
28
40
(
09
9
HT
29
41
)
0A
10
LF
2A
42
*
0B
11
VT
2B
43
+
0C
12
FF
2C
44
,
0D
13
CR
2D
45
-
0E
14
S0
2E
46
.
0F
15
SI
2F
47
/
10
16
DLE
30
48
0
11
17
DCI
31
49
1
12
18
DC2
32
50
2
13
19
DC3
33
51
3
14
20
DC4
34
52
4
15
21
NAK
35
53
5
16
22
SYN
36
54
6
17
23
ETB
37
55
7
18
24
CAN
38
56
8
19
25
EM
39
57
9
1A
26
SUB
3A
58
:
1B
27
ESC
3B
59
;
1C
28
FS
3C
60
<
1D
29
GS
3D
61
=
1E
30
RS
3E
62
>
1F
31
US
3F
63
?
ESA 51 USER'S MANUAL
APPENDIX B-2
Hexadecimal
Decimal
Character
Hexadecimal
Decimal
Character
40
64
@
60
96
,
41
65
A
61
97
a
42
66
B
62
98
b
43
67
C
63
99
c
44
68
D
64
100
d
45
69
E
65
101
e
46
70
F
66
102
f
47
71
G
67
103
g
48
72
H
68
104
h
49
73
I
69
105
j
4A
74
J
6A
106
i
4B
75
K
6B
107
k
4C
76
L
6C
108
l
4D
77
M
6D
109
m
4E
78
N
6E
110
n
4F
79
O
6F
111
o
50
80
P
70
112
p
51
81
Q
71
113
q
52
82
R
72
114
r
53
83
S
73
115
s
54
84
T
74
116
t
55
85
U
75
117
u
56
86
V
76
118
v
57
87
W
77
119
w
58
88
X
78
120
x
59
89
Y
79
121
y
5A
90
Z
7A
122
z
5B
91
[
7B
123
{
5C
92
/
7C
124
|
5D
93
[
7D
125
}
5E
94
^
7E
126
~
5F
95
-
7F
127
DEL
ESA 51 USER'S MANUAL
SCHEMATICS
ESA 51 USER'S MANUAL
ELECTRO SYSTEMS ASSOCIATES PVT LTD.,
4215 J.K. Complex, First Main Road, Subramanyanagar
P.O. Box No. 2139 BANGALORE - 560 021 INDIA
Fax : 91-80-3325615 Phone : 3323029 3322924
email : [email protected],
www.esaindia.com
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement