Computer Interface Trainer (MDA-Win8086) - Project
Computer Interface Trainer (MDA-Win8086) - Project
Computer Interface Trainer (MDA-Win8086) - Project
ON
SUBMITTED BY
SUPERVISED BY
PROJECT REPORT
ON
: 0667
Session
: 2009-10
SUPERVISED BY:
Md. Morshedul Arefin
Associate Professor
Computer Science and
Engineering
University Of Rajshahi
Certificate
Under my supervision in his own work and has been submitted elsewhere for the award of
B.Sc (Honours) degree to the best of my knowledge and belief.
Signature:
Md. Morshedul Arefin
Associate Professor
Computer Science and Engineering
University Of Rajshahi
ACKNOWLEDGEMENT
We con sid er our self ex ception all y fo rtunate that we had indulgent
g u i d e s , l e a r n e d philosophers and caring friends to successfully steer us through
one of the most interesting period of our academic career. Today when our endeavor
has reached its friction, we look back in mute gratitude to one and all without
whose help we are sure this reality would have been a dream.
This work has been possible through the direct and indirect coo p e r a t i o n o f v a r i o u s people of CSE-RU towards whom we wish to express our gratitude.
We are extremely thankful to CSE-RU faculties who provided us challenging opportunity
to work on this project.
Special thanks to Md. Morshedul Arefin (Associate Professor, Computer Science and
Engineering, University Of Rajshahi) under whom we completed this project. He provided us
with all the possible help and advice. Without his guidance this project would have not
reached its completion in such a successful manner.
W e a r e a l s o t h a n k f u l t o a l l m y f r i e n d s for their valuable suggestions.
Abstract
A micro-processor incorporates the functions of a central processing unit (CPU) on a single
integrated circuit.
The first microprocessors used a word size of only 4 bits, so that the transistors of its logic
circuits would fit onto a single part. One or more microprocessors typically serve as the
processing elements of a computer system, embedded system, or handheld device.
From the humble beginning as the drivers for calculators, the continued increase in processing
capacity has led to the dominance of microprocessors over every other form of computer; every
system from the largest mainframes to the smallest handheld computers now uses a
microprocessor at its core.
To learn the different features of microprocessor multiple kits are provided. These trainers are
manufactured using Bare Board Tested Glass Epoxy SMOBC PCBs and the ICs are mounted on
sockets.
Exhaustive Manuals with ample of sample programs are provided with the system. Each trainer
is supplied with built-in power supply.
In computer science, an interface is the point of interaction with software, or computer hardware,
or with peripheral devices such as a computer monitor or a keyboard.
Some computer interfaces such as a touchscreen can send and receive data, while others such as
a mouse, microphone or joystick can only send data.
Index
Acknowledgement
No.
Topics
Page
Chapter[1]: Introduction to MDA 8086 Training Kit
1.1
Introduction
1.2
MDA-8086 Features
2.2
MDA-8086 Specification
2.3
2.4
2.5
Basic Operations
2.6
Serial Monitor
2.7
10
3.2
Execute
13
Chapter[4]: Trainer possible experiment list
4.1
List
14
7-Segment Display
15
5.2
21
5.3
26
5.4
28
5.5
30
5.6
34
5.7
Matrix - Display A
36
5.8
38
5.9
41
5.10
LED display
44
Chapter[6]: What we have Implement
6.1
47
6.2
49
6.3
Matrix - Display R
51
6.4
53
6.5
57
Chapter[7]: Appendix
7.1
61
7.2
62
7.3
63
7.4
MDA-8086 schematic
64
Chapter: One
Introduction to MDA 8086 Training Kit
(1.1) Introduction
MDA-8086 has high performance 64K-byte monitor program. It is designed for
easy function.
After power is on, the monitor begins to work. In addition to all the key function
the monitor has a memory checking routine.
Page | 1
Page | 2
Chapter: Two
System configuration
(2.1) MDA-Win8086 System configuration
Page | 4
Key Board
System BUS indicator
Extended Connector
Stepper motor interface
A/D, D/A Converter
Power
Board size
Wood Case
Weight
Page | 5
8086
64KB(62256 x 2)
64KB(27256 x 2)
LCD (16 X 2 Line)
8255A
14.7456MHz
14.7456MHz
8254 (Clock Generator)
8259
8253
HG101A
8 X 8 (2 color)
8086 Assembler
Support C-Language example code
MDA-WinIDE8086 Integration Development
Program
16 Hexadecimal and 10 function keys
LED X 12
System BUS : 62 pins
External interface : 20 pins
Driver T.R X 4
ADC : ADC0804
DAC : DAC0800
- Input : AC 85 ~ 264V
- Output : DC +5V(2A), +12V(1A), 12V(500mA)
310 x 265
100(H) x 300(D) x 430(W)
4.5
MEMORY
DESCRIPTION
00000H ~ 0FFFFH
RAM
F0000H ~
FFFFFH
ROM
MONITOR ROM
10000H ~ EFFFFH
Page | 6
USER'S RANGE
I/O PORT
DESCRIPTION
00H ~ 07H
LCD &
KEYBOARD
LCD Display
00H : INSTRUCTION REGISTER
02H : STATUS REGISTER
04H : DATA REGISTER
KEYBOARD
01H : KEYBOARD REGISTER (Only
read)
01H : KEYBOARD FLAG (Only write)
10H ~ 17H
8259/SPEAKER
8259(Interrupt controller)
10H : COMMAND REGISTER
12H : DATA REGISTER
SPEAKER -> 11H : SPEAKER
08H ~ 0FH
8251 / 8253
18H ~ 1FH
8255A-CS1/
8255A-CS2
20H ~ 2FH
30H ~ FFH
USER'S RANGE
Page | 7
Figure: 3
RES
Figure: 4
Whenever RES is pressed, the display becomes one of this two figures.
To select the Machine Code and Serial monitor mode with P1 switch.
Machine Code
Serial monitor
Serial Monitor is the basic monitor program to do data communicate between MDA-8086
and computer.
Page | 8
Machine Code
Serial monitor
Serial Monitor is the basic monitor program to do data communicate between MDA-8086
and computer.
:5
Page | 9
:6
Chapter: Three
About MDA-WinIDE8086
(3.1) Steps to execute MDA-WinIDE8086
STEP1: Click the Start button in the task bar, then click All Programs and MIDAS ENG.
Then click the "MDA_WinIDE8086" program icon, and the "MDA-WinIDE8086" window will
be displayed.
Page | 10
STEP3:
In the Files of types, select a source type from the drop-down list, as an assemble file
Select "Led.ASM" file.
Click "Open" button.
STEP4: Start assembling your target application with the "Assemble and Link" button.
Page | 11
STEP6: If you click "Yes" button, your source program will be download from PC into the
target.
Page | 12
(3.2) Execute
Run
Click
button or select "Run" from the Run menu.
We can also type 'G' and "Enter" key on Terminal window.
The Run command in the work menu starts execution of the program. The
Program will be executed until it is stopped by pressing RESET KEY.
Trace
Click
button or select "Trace" from the Run menu.
We can also type 'T' and "Enter" key on Terminal window.
The Trace command in the work menu executes one instruction.
Page | 13
Chapter: Four
Trainer possible experiment list
(4.1) List
LED Display Experiment
FND Display Experiment
DAC Experiment
Bar LED Display Experiment
ADC Experiment
PIT&INT Experiment
8253 Interface Experiment
Sound Experiment
8255 Interface Experiment
8X8 DOT Matrix Display Experiment
8251 Interface Experiment
Text LCD Display Experiment
Keyboard Interface Experiment
Page | 14
Chapter: Five
List of completed Experiment
(5.1) 7-Segment Display
A seven-segment display (SSD), or seven-segment indicator, is a form of electronic
display device for displaying decimal numerals.
Seven-segment displays are widely used in digital clocks, electronic meters, and other
electronic devices for displaying numerical information.
Composed of seven elements.
Individually on or off, they can be combined to produce simplified representations of the
numerals.
Objective
To get familiar with the seven segment display and its interfacing with 8086
microprocessor using 8255A.
Equipment
PC having Intel microprocessor, MDA-8086 kit.
Introduction
Seven segment is a display which may be either common anode or common cathode.
Which is ON either on 1 or zero but here we use the format ON on zero.
Page | 15
Page | 16
Digit
0
1
2
3
4
5
6
7
8
9
Page | 17
a
1
0
1
1
0
1
1
1
1
1
b
1
1
1
1
1
0
0
1
1
1
c
1
1
0
1
1
1
1
1
1
1
d
1
0
1
1
0
1
1
0
1
1
e
1
0
1
0
0
0
1
0
1
0
f
1
0
0
0
1
1
1
0
1
1
g
0
0
1
1
1
1
1
0
1
1
Set x <- 0
Write: pins
<- x
Delay
Increment x by 1
X=10?
Page | 18
Page | 19
Explanation
In common-anode 7-Segment LED, logic 0 is required to turn on a segment.
0xc0, =11000000B
0xf9,=11111001B
=00111111(inverse)
=00000110(inverse)
0xa4,=10100100B
0xb0, =10110000B
0x99,=10011001B
=01011011(inverse)
=01001111(inverse)
=01100110(inverse)
0x92,=10010010B
0x82,=10000010B
0xf8, =11111000B
=01101101(inverse)
=01111101(inverse)
=00000111(inverse)
0x80,=10000000B
0x90, =10010000B
=01111111(inverse)
=01101111(inverse)
Page | 20
Equipment
PC having Intel microprocessor, MDA-8086 kit.
LCD
16 CHARACTERS 2 LINE MODULES
1) PHYSICAL DATA
Module size
65.6W 13.8D mm
Character construction
5 7 dots
Character size
2.85W 3.8H mm
Character Pitch
3.65 mm
Dot size
0.55W 0.5H mm
Page | 21
2) Pin Connections
INSTRUCTIONS
Page | 22
LCD INTERFACE
The interface of LCD with PPI 8255A is shown in the figure.
Page | 23
Page | 24
Page | 25
Page | 26
C Code
#define _LCD
#include
"mde8086.h
void main( void )
{
int i;
LCD_init;
do {
LCD_ALLCLR;
LCD_puts( "Serial monitor !" );
LCD_LN21;
LCD_puts( "MDA-Win8086 Kit!" );
for( i = 0; i < 16; i ++ )
{
wait( 15000 );
LCD_RShift;
/* Right shift */
}
} while(1);
}
Page | 27
Page | 28
C Code
#define _LCD
#include "mde8086.h"
/* To the LCD Output String ( Delay One Character ) */
void string( char *str )
{
while( *str ) {
LCD_putch( *str );
str ++;
wait( 10000 );
}
}
void main( void )
{
LCD_init;
LCD_Iout( 0x07 )
/* Entry mode define*/
do
{
LCD_Iout( 0x90 ) /* Character Output Position */
string( "MDA-Win8086 Training Kit" );
} while(1);
}
Page | 29
Equipment
PC having Intel microprocessor, MDA-8086 kit.
Introduction
The KMD D1288C is 1.26 inch height 3mm diameter and 8 8 dot matrix LED
displays. The KMD D1288C are dual emitting color type of red, green chips are
contained in a dot with milky and white lens color.
Page | 30
Page | 31
Flow Chart
Page | 32
C Code
#include
"mde8086.h"
Page | 33
Page | 34
C Code
#include "mde8086.h"
void wait(long del)
{
while( del-- );
}
void main(void)
{
int dot,i;
/* 8255 Initial */
outportb( PPI2_CR, 0x80 );
outportb( PPI2_A, 0x00 );
outportb( PPI2_B, 0x00 );
do{
dot = 0x01;
for( i = 0; i != 8; i++ ){
outportb( PPI2_C, dot );
dot <<= 1;
wait(30000);
}
}while(1);
}
Page | 35
Page | 36
C Code
#include
"mde8086.h"
Page | 37
Page | 38
C Code
#include
"mde8086.h"
int
int
int
int
int
int
Page | 39
for( i = 0; i != 8; i++ ) {
outportb( PPI2_C, common );
outportb( PPI2_B, *data );
wait(120);
data++;
common = common << 1;
}
}
}
void main(void)
{
outportb( PPI2_CR, 0x80 );
outportb( PPI2_A, 0xff );
do{
display(font1);
display(font2);
display(font3);
display(font4);
display(font5);
display(font6);
display(font7);
display(font8);
display(font8);
display(font8);
} while(1);
}
Page | 40
Page | 41
C Code
#include
"mde8086.h"
int
int
int
int
int
int
Page | 42
}
}
void main(void)
{
outportb( PPI2_CR, 0x80 );
outportb( PPI2_A, 0xff );
do{
display(font1);
display(font2);
display(font3);
display(font4);
display(font5);
display(font6);
display(font7);
display(font8);
display(font8);
display(font8);
}while(1);
}
Page | 43
Equipment
PC having Intel microprocessor, MDA-8086 kit.
Introduction
8255 is a programmable peripheral interface. It is compatible to Intel and other
microprocessors. It has 3 I/O ports named as port A, B, C and has 24 pins for I/O that
are programmable in group of 12 pins, has groups that operate in three distinct modes
of operation.
Page | 44
Flow Chart
Page | 45
C Code
#include
"mde8086.h"
Page | 46
Chapter: Six
What we have Implement
(6.1). Matrix Scroll bottom to top
Flow Chart
Page | 47
C Code
#include
"mde8086.h"
void main(void)
{
int dot,i;
/* 8255 Initialization */
outportb( PPI2_CR, 0x80 );
outportb( PPI2_A, 0xff );
outportb( PPI2_C, 0xff );
do{
dot = 0xfe;
for( i = 0; i != 8; i++ )
{
outportb( PPI2_B, dot );
dot <<= 1;
dot = ( dot | 0x01 );
wait(30000);
}
}
}while(1);
Page | 48
Page | 49
C Code
#include
"mde8086.h"
Page | 50
Page | 51
C Code
#include
"mde8086.h"
Page | 52
Page | 53
C Code
#include
"mde8086.h"
int
int
int
int
int
int
Page | 54
int
*data;
int
common, i, k;
Page | 55
}
}
}
void main(void)
{
do{
display(font1);
display(font2);
display(font3);
display(font4);
display(font5);
display(font6);
display(font7);
display(font8);
display(font8);
display(font8);
} while(1);
}
Page | 56
Page | 57
C Code
#include
"mde8086.h"
int
int
int
int
int
int
Page | 58
int
*data;
int
common, i, k;
Page | 59
}
}
}
void main(void)
{
do{
display(font1);
display(font2);
display(font3);
display(font4);
display(font5);
display(font6);
display(font7);
display(font8);
display(font8);
display(font8);
} while(1);
}
Page | 60
Chapter: Seven
Appendix
(7.1) MDA-8086 Memory Circuit
Page | 61
Page | 62
Page | 63
Page | 64
Page | 65
Page | 66
Page | 67
Page | 68
Page | 69
References
Microprocessor Architecture, Programming, and Application with the 8085
-Ramesh Gaonkar
Microprocessor and Interfacing
-D.V Hall
Microcomputer Systems: 8086/8088 Family
-Y. Liu and G.A Gibson
The 8088 and 8086 Microprocessors: Programming, Interfacing, Software, Hardware, and
Applications
- Walter A. Triebel
www.wikipedia.org
www.google.com
www.midaseng.com
Page | 70