State University of New York at Binghamton
Watson School of Engineering and Applied Science
Department of Computer Science
CS-323: Microcomputer Systems I
Fall, 1997
Lecture: M,W,F 9:40-10:40 A.M., EB-Q3
Laboratory, W 2:20-4:20, EB-H1
Professor Richard R. Eckert
EB-N6, 777-4365, 777-4802
reckert1@binghamton.edu
http://www.cs.binghamton.edu/~reckert/index.html
CATALOG DESCRIPTION:
CS-323: Microcomputer Systems I. Credits 4. Microprocessor
architecture and microcomputer system hardware. Advanced assembly language
programming and use of advanced assembler functions. Microprocessor support
chips: memory, programmable ports, DMA controllers, USARTs, CRT controllers
and disk controllers. Comparison of contemporary microprocessor systems.
Supervised laboratory work involves microprocessor programming and interfacing
experiments.
PREREQUISITE: CS-220 or experience with assembly language programming;
CS-210 or experience with logic design.
TEXTBOOK:
Barry Brey, The Intel Microprocessors: 8086/8088, 80186/188,
80286, 80386, 80486, Pentium, and Pentium Pro Processor: Architecture,
Programming, and Interfacing, Fourth Edition, Prentice Hall, 1997.
RECOMMENDED TEXTBOOK:
John Uffenbeck, The 80x86 Family: Design, Programming,
and Interfacing, Second Edition, Prentice Hall, 1998.
LABORATORY PARTS:
Parts kits, wire cutters, and logic design circuit drawing
templates will be available from Unicorn Electronics, Valley Plaza Drive,
Johnson City, NY.
EVALUATION:
Term Examinations (2)….........40%
Laboratory Exercises…...........40%
Final Examination..…...............20%
ANY WORK FOUND TO BE COPIED ON EXAMS, PROGRAMS, OR LAB
REPORTS WILL BE GROUNDS FOR AN F IN THE COURSE!
COURSE GOALS:
To understand microprocessor-based computational systems.
Levels of understanding include: architectures of individual microprocessor
chips; microcomputer system hardware; interfacing with memory, I/O devices
and mass storage devices; software necessary to effectively use microprocessor-based
systems. Laboratory exercises using IBM PCs and a single-board computer
with an associated prototyping facility reinforce both hardware and software
concepts discussed in class. The Intel 80x86/88 family of microprocessors
is emphasized. Upon termination of the course, the student should be able
to design, effectively use, and interface with a complete microprocessor-based
computer system.
LABORATORY:
In general, students will work in groups of two or three
(depending on the amount of working equipment available). Laboratory exercises
should be performed during the scheduled lab period, during which the teaching
assistant and/or professor will be present. Circuit breadboards may be
checked out of the laboratory. Lab reports (one per group) will be due
one week after the Wednesday upon which the assigned lab exercise has been
performed (see schedule below). If turned in late, the grade will be reduced
by 5% per day late. Under no circumstances will reports be accepted more
than one week late. Lab reports should be brief and should include well-documented,
error-free, assembled program listings; flow charts where appropriate;
circuit diagrams of any hardware design used; answers to any questions
appearing in the lab instruction sheets.
COURSE SCHEDULE (by Week):
1. Review of Intel microprocessors: history, basic architectures,
system architectures, programming model, data formats, instruction set,
addressing modes, data movement (Ch. 1-7); Lab # 1: Assembly language program
to perform direct character I/O and disk I/O on the IBM PC.
2. Macros, multi-module programming, linkage with high
level language program modules, creating libraries (notes, references,
Ch. 7); Lab # 1, continued.
3. Designing a microprocessor-based cpu module: 8086/88
internal organization, electrical signals, operating modes, bus cycles,
timing, buffering, bus structure, support chips, wait and hold states (Ch.
8); Lab # 2: Use of the SDK-86 Trainer and Machine Language Programming.
4. Main memory system design: RAM/ROM/PROM/EPROM/EEPROM
physical characteristics, timing, interfacing with the cpu module; address
decoding; static vs. dynamic RAM (Ch. 9); Lab # 3: 8086 bus signals and
timing.
5. Main memory system design, continued (Ch. 9); Lab #
4: 8086 Bus Signals and Timing, continued.
********** TERM EXAMINATION # 1 **********
6. Basic Input/output: synchronous vs. asynchronous, parallel
vs. serial, simple port hardware, memory-mapped I/O, polling, handshaking
(Ch. 10); Lab # 5: Microprocessor-Memory Interface.
7. Basic I/O, continued; the 8255 Programmable Peripheral
Interface, the 8253/54 programmable Interval Timer (Ch. 10); Lab # 5, continued.
8., Interrupt-driven I/O; the 8259 Programmable Interrupt
Controller (Ch. 10, 11); Lab # 6: Simple I/O Ports.
9. Asynchronous serial communications, software &
hardware UARTs, the 8251 USART; A/D, D/A Converters (notes, references,
Ch. 10); Lab # 6, continued.
10. Direct Memory Access, the 8237 DMA controller, shared
bus operation (Ch. 12); Lab # 7: Using Programmable Ports: the 8255 PPI.
11. Keyboard and CRT display interfaces: hardware and
software (notes, references, Ch. 10 - 12); Lab # 8: Serial Data Communications-a
Software UART.
12. Secondary storage: floppy, hard disk, technology,
interfacing with a disk controller; optical secondary storage media (notes,
references, Ch. 12); Lab # 9: Digital to Analog Conversion and/or special
project.
********** TERM EXAMINATION # 2 **********
13. An overview of the 80286, 80386, 80486, Pentium and
Pentium Pro microprocessors: protected mode programming (Ch. 15-17); Lab
# 9, continued.
14. 80x86/Pentium, protected mode programming, continued
(Ch. 15-17); Lab # 9, continued; Lab # 10: Protected mode direct keyboard
I/O program.
15. Bus Interfaces (ISA, EISA, MCA, VESA, PCI), Building
a complete system: the IBM-PCs and compatibles; the 80x87 Numeric Coprocessing
Unit (notes, references, Ch. 13, 14); Lab # 10, continued.
REFERENCES ON RESERVE IN THE LIBRARY:
Abel, IBM PC Assembler Language & Programming, Third
Edition, Prentice Hall, 1987, ISBN 0-13-24603-8.
Antonakos, The Pentium Microprocessor, Prentice Hall,
1997, ISBN 0-02-303614-1.
Brey, The Intel Microprocessors: 8086/8088, 80186/80188,
80286, 80386, 80486, Pentium and Pentium Pro Processor: Architecture, Programming,
and Interfacing, Fourth Edition, Prentice Hall, 1997, ISBN 0-13-260670-4.
Brumm & Brumm, 80386: A Programming and Design Handbook,
Tab Books, 1987, ISBN 0-8306-2937-8.
Clements, Principles of Computer Hardware, Second Edition,
PWS-Kent, 1993, ISBN 0-534-93133-2.
Duncan, Advanced MS-DOS, Microsoft Press, 1986.
Eggebrecht, Interfacing to the IBM Personal Computer,
Second Edition, SAMS, 1992, ISBN 0-672-22722-3.
Goody, The Intelligent Microcomputer, SRA, 1984.
Haskell, Introduction to Computer Engineering, Prentice
Hall, 1993, ISBN 0-13-489436.
Hu & Barad, CEDES: Object-Oriented Hardware Design
Using C++, Franklin, Beedle & Associates, 1997, ISBN 1-887902-15-5.
Intel Corp., iAPX 86/88 User's Manual: Hardware Reference,
1985.
Intel Corp., iAPX 86/88 User's Manual: Programmer's Reference,
1985.
Intel Corp., iAPX 286 Programmer's Reference Manual, 1985.
Intel Corp., iAPX 286 Hardware Reference Manual, 1983.
Intel Corp., 80386 Programmer's Reference Manual, 1986.
Intel Corp., 80386 Hardware Reference Manual, 1986.
Intel Corp., 80386 System Software Writer's Guide, 1987.
Intel Corp., 80387 Programmer's Reference Manual, 1987.
Leventhal, Introduction to Microprocessors: Software, Hardware, Programming, Prentice-Hall, 1978.
Liu & Gibson, Microcomputer Systems: the 8086/8088 Family
Architecture, Programming, & Design, 2nd Ed., Prentice-Hall, 1986.
Malvino, Digital Computer Electronics: An introduction
to Microcomputers, Second Edition, McGraw Hill, 1983, ISBN 0-07-039901-8.
Mazidi & Mazidi, The 80x86 IBM PC & Compatible
Computers, Volumes I & II: Assembly Language, Design and Interfacing,
Prentice Hall, 1995, ISBN 0-13-321399-4.
Morse & Albert, The 80286 Architecture, Wiley, 1986,
ISBN 0-471-83185-9.
Morse, Isaacson, Albert, The 80386/387 Architecture, Wiley,
1987, ISBN 0-471-85352-6.
Nelson, Nagle, Carroll, Irwin, Digital Logic Circuit Analysis
& Design, Prentice Hall, 1995, ISBN 0-13-463894-8.
Protopapas, Microcomputer Hardware Design, Prentice-Hall,
1988.
Rafiquzzaman, Microprocessors and Microcomputer Development
Systems, Harper & Row, 1984.
Rafiquzzaman, Microprocessors and Microcomputer-Based
System Design, Second Edition, CRC Press, 1995, ISBN 0-8493-4475-1.
Rigby & Dalby, Computer Interfacing, Prentice Hall,
1995, ISBN 0-13-288374-0
Triebel, The 80386DX Microprocessor: Hardware, Software, & Interfacing, Prentice Hall, 1992, ISBN 0-13-249566.
Triebel & Singh, The 8088 and 8086 Microprocessors:
Programming, Interfacing, Software, Hardware, and Applications, Second
Edition, Prentice Hall, 1997, ISBN 0-13-367897-0.
Tocci, Digital Systems, Prentice-Hall, 1984.
Uffenbeck, The 80x86 Family: Design, Programming, and
Interfacing, Prentice Hall, 1998, ISBN 0-13-362955-4
Wakerly, Digital Design: Principles & Practices, Second
Edition, Prentice Hall, 1994, ISBN 0-13-211459-3.
Williams, Digital Technology, SRA, 1986.
Zaks, From Chips to Systems, Sybex, 1981.
Zaks & Lesea, Microprocessor Interfacing Techniques,
Sybex, 1979.
Fulcher, An Introduction to Microcomputer Systems: Architecture and Interfacing, Addison-Wesley, 1989.
.