1 of 25

Summery Before Mid-Semester Exam

Dr A Sahu

Dept of Comp Sc & Engg.

IIT Guwahati

2 of 25

Outline

  • 8085 & 8086 Architectures
  • Peripheral Devices
    • Display, Keyboard, Data Converter
  • Combined Peripheral controller + timer (8155)
  • Peripheral Controller
    • Peripheral Controller (8255)
    • Interrupt Controller (8259)
    • DMA Controller (8237)
  • Serial Communication controller (8251A)
  • Programmable Interval Timer (8254)

3 of 25

Mid Semester Exam

  • One page Data sheet of All Controller will be provided
    • Architecture, Control word, Status word, Mode
    • 8155 iot, 8255ioc, 8259pic, 8237dma, 8251usart, 8254pit
  • 5 questions (Order may be different)
    • 2 Theory and Concepts
      • (40 % Easy)
    • 2 Design question
      • (40 % can be done easily if u have attend the class)
    • 1 Thinking question
      • (20% ; relatively top level)
  • Timing & Venue:
    • 10.00AM-12.00Nn, 20 Sept 2010, 2202/2204

4 of 25

W

Z

B

C

D

E

H

L

SP

PC

Inc/Dec. ter

Add latch

MUX

Bus 8 Bit

Interrupt Control

Serial I/O Control

IR

I Decode

&

M/C

Encoding

tmp R

ACC

Timing and Control

ALU

Add Buff

Data/Add Buff

Flag

INTR

INTA

RST5.5

ReSeT6.5

RST7.5

TRAP

SID

SOD

8085 Microprocessor Architecture

5 of 25

8086 Architecture

AH

AL

BH

BL

CH

CL

DH

DL

SI (Source Idx )

DI (Dest. Idx)

BP (Base Ptr )

SP (Stack Ptr)

Z (Flag Reg)

CS (Code Seg Reg)

DS (Data Seg Reg )

ES (Extra Seg Reg )

SS (Stack Seg Reg)

IP (Intr Ptr)

Operand

InDirect

Temp A

Temp B

Temp C

Q6

Q5

Q4

Q3

Q2

Q1

Sequencer

Bus Interface Unit

Execution

Unit

SUM

C BUS

A BUS

ALU

6 of 25

8086 Registers

  • AX - the accumulator register (divided into AH / AL)
  • BX - the base address register (divided into BH / BL)
  • CX - the count register (divided into CH / CL)
  • DX - the data register (divided into DH / DL)

  • SI - source index register.
  • DI - destination index register.
  • BP - base pointer.
  • SP - stack pointer.

AH

AL

BH

BL

CH

CL

DH

DL

SI (Source Idx )

DI (Dest. Idx)

BP (Base Ptr )

SP (Stack Ptr)

CS (Code Seg Reg)

DS (Data Seg Reg )

ES (Extra Seg Reg )

SS (Stack Seg Reg)

IP (Intr Ptr)

Z (Flag Reg)

7 of 25

Memory layout of C program

int A;

int B=10;

main(){

int Alocal;

int *p;

p=(int*)malloc(10);

}

Data

Code

Heap

Stack

BSS

8 of 25

MASM : Hello world

.model small

.stack 100h ; reserve 256 bytes of stack space

.data

message db "Hello world, I'm learning Assembly$”

.code

main proc

mov ax, seg message ; ax<-data seg. start addr.

mov ds, ax ; Initialize Seg Reg

mov ah, 09 ; 9 in the AH reg indicates Procedure

;hould write a bit-string to the screen.

lea dx, message ;Load Eff Address

int 21h

mov ax,4c00h ; Halt for DOS routine (Exit Program)

int 21h

main endp

end main

9 of 25

GetChar, PutChar

  • putchar( ‘a‘ ) ;

  • c = getchar() ;

mov dl, ‘a‘ ;dl = ‘a‘

mov ah, 2h ;character output subprogram

int 21h ; call ms-dos output character

mov ah, 1h ; keyboard input subprogram

int 21h ; char input, char is stored in al

mov c, al ; copy character from al to c

10 of 25

Transmission controller

  • Transmission Controller:
    • MPU control, Device Control (DMA)
  • Type of IO mapping
    • Peripheral (IN/Out), Memory mapped IO (LD/ST,MV)
  • Format of communication
    • Synchronous (T & R sync with clock), Asynchronous
  • Mode of Data Transfer
    • Parallel, Serial (UART)
  • Condition for data transfer
    • Uncond., Polling, Interrupt, Ready signal, Handshake

11 of 25

D/A converter

  • FullScaleOutput=(FullScaleValue – 1LSBValue)
  • 1MSB Value=1/2 * FSV

Digital

to

Analog

Converter

D0

D1

D2

Analog Output

Vo

Digital Inputs

Analog output

000

001

011

010

100

101

111

110

LSB

FS

0

1

2

3

4

5

6

7

Resolution, Reference Voltages, Settling Time, Linearity, Speed, Errors

12 of 25

A/D Conversion Techniques

  • Counter or Tracking ADC
  • Successive Approximation ADC
    • Most Commonly Used
  • Parallel or Flash ADC
    • Fast Conversion

13 of 25

Display

7 Seg 9 Seg 16 Seg 3x5 DotMatix 5x7 9x11

Dot Matrix Display Panel

25x80 character monitor

14 of 25

Multiplexed line and Memory use

40 Bit data line

8 Bit data line

0

1

2

3

4

Data 1

Data 2

Data 3

Data 4

Data 0

Mod 5 Counter

15 of 25

Multiplexed 25x80 Char Display

25x80 character monitor

C

A

T

F

I

R

E

0 1 2 3 4 ….. 78 79

0

1

2

23

24

A

Decoder

Or

ROM

Memory

Decoded Bits

Row Ctr

Col

Ctr

CLK > 50Hzx25x80

16 of 25

Multiplexed 1024x768 pixel display

1024x768 Pixel LCD

0 1 2 3 4 ….. …1023

0

1

2

767

R

Row Ctr

Col

Ctr

CLK > 1024x768x50Hz

B

G

8x3=24 Bits

Frame Buffer

Refresh screen 50 time a Sec

17 of 25

How Keyboard work ? ==1D

0

1

2

3

14

15

+5V

N to Lg(n) decoder

A

B

C

D

. . .

0 0 1 1

18 of 25

Simple keyboard with 64 keys

  • Scan Row (6)
  • Scan Column (3)
  • Send this to Decoder to generate ASCII value or Scan code

R0

R1

C0

C1

C6

R2

R6

R7

C7

C2

Scan Row

R6

Scan Col: C2

6,3

Decode to

ACSII

(Memory

ROM)

To

Host

(CPU)

19 of 25

8155 IO/Timer

  • D0, D1: mode for PA and PB, 0=IN, 1=OUT
  • D2, D3: mode for PC
  • D4, D5: interrupt EN for PA and PB, 0=disable 1=enable
  • D6, D7: Timer command:
    • 00: No effect
    • 01: Stop if running else no effect
    • 10: Stop after terminal count (TC) if running, else no effect
    • 11: Start if not running, reload at TC if running.
  • Port C bits (D2, D3)

3 to 8 Decoder

CWR

Port

A

Port

B

Port

C

Timer

MSB LSB

Latch

Clock for timer

PA0-PA7

PB0-PB7

PC0-PC5

Timer Out

A0

A1

A2

ALE

AD0-AD7

A0-A7

D7-D0

0

1

2

3

4

5

CEb

A2

A1

A0

Port

0

0

0

Comm/Status Reg

0

0

1

PA

0

1

0

PB

0

1

1

PC

1

0

0

Timer LSB

1

0

1

Timer MSB

D7

D6

D5

D4

D3

D2

D1

D0

Timer Command

IEB

IEA

PC

PB

PA

ALT

D3

D2

PC5

PC4

PC3

PC2

PC1

PC0

1

0

0

IN

IN

IN

IN

IN

IN

2

0

1

OUT

OUT

OUT

OUT

OUT

OUT

3

1

0

OUT

OUT

OUT

STBA

BFA

INTRA

4

1

1

STBB

BFB

INTRB

STBA

BFA

INTRA

MSB

M2

M1

T13

T12

T11

T10

T9

T8

LSB

T7

T6

T5

T4

T3

T2

T1

T0

  • M2, M1: mode bits:
    • 00: Single square wave of wavelength TC/2 (TC/2,TC/2 if TC even; [TC+1/2],[TC-1/2] if TC odd)
    • 01: Square waves of wavelength TC (TC/2,TC/2 if TC even; [TC+1/2],[TC-1/2] if TC odd)
    • 10: Single pulse on the TC'th clock pulse
    • 11: Single pulse on every TC'th clock pulse.

20 of 25

8255 PPC

Group A

Control

Group B

Control

Read

Write

Control Logic

Data

Bus

Buffer

Gr A

Port A

(8)

Gr A

Port C

(H 4)

Gr B

Port C

(L 4)

Gr B

Port B

(8)

I/O

PA7-PA0

I/O

PC7-PC4

I/O

PC3-PC0

I/O

PB7-PB0

8 bit Internal Data Bus

Bi directional

Data Bus

D7-D0

RDb

WRb

A1

A0

RESET

CSb

CSb

A1

A0

Sel

0

0

0

Port A

0

0

1

Port B

0

1

0

Port C

0

1

1

CRW

D7 D6 D5 D4 D3 D2 D1 D0

7 6 5 4 3 2 1 0

Port A – 1 Input 0 output

Mode select: 00 mode 0;

01 mode 1; 1x mode 2

1 – mode select

0 – bit set/reset

Port C(U) – 1 Input 0 output

Mode select: 0 mode 0; 1 mode 1

Port B – 1 Input 0 output

Port C(L) – 1 Input 0 output

Group A

Group B

D7 D6 D5 D4 D3 D2 D1 D0

BSR Mode

Bit Set/Reset

I/O Mode

Mode 0

Simple I/O for Ports

A, B & C

Mode 1

HS mode

for Ports

A and/or B

Port C bits are used for

HS

Mode 2

Bidirectional

Data mode for

PortA

B can in mode 0/1

Port C bits are used for HS

BSR Mode

Bit Set/Reset

For Port C

No Effect on

I/O Mode

0/1

21 of 25

8259 PIC

8259A

Programmable

Interrupt

Controller

IRQ0

IRQ1

IRQ2

IRQ3

IRQ4

IRQ5

IRQ6

IRQ7

8 bit

Data Bus

RDb

WRb

CSb

A0

INT

INTAb

SPb/ENb

Control Logic

Interrupt Service

Register

Priority Resolver

Interrupt Request

Register

IRQ0

IRQ1

IRQ2

IRQ3

IRQ4

IRQ5

IRQ6

IRQ7

Interrupt Mask Register

Internal Bus

INTAb

INT

CS

A0

Initialization

OCW

0

0

ICW1

OCW1

0

1

ICW2

ICW3,ICW4

OCW2,OCW3,OCW4

1

X

Not Address

Not Address

AD0

D7

D6

D5

D4

D3

D2

D1

D0

0

0

0

0

1

LTIM

0

SGNL

IC4

0 for x86

0/1

Edge /Level

Trigger

1=single

0=Cascade

AD0

D7

D6

D5

D4

D3

D2

D1

D0

1

T7

T6

T5

T4

T3

T2

T1

T0

T7=T0 is the assign to IR0, Vector address for ISR

AD0

D7

D6

D5

D4

D3

D2

D1

D0

1

M7

M6

M5

M4

M3

M2

M1

M0

Interrupt Masks: 1= Mask Set, 0 =Mask reset

AD0

D7

D6

D5

D4

D3

D2

D1

D0

0

R

SL

EOI

0

0

L2

L1

L0

Roteate

Specific

EOI

IR Level to be acted Upon (0-7)

22 of 25

8237 DMA

DMA Req0

DMA Req 1

DMA Req 2

DMA Req 3

Hold Ack

Clock

Reset

Ready

Chip Select

Address Strobe

Hold request

DMA ack0

DMA ack1

DMA ack2

DMA ack3

IO Read

I/O Write

Memory Read

Memory Write

End of Process

To data Bus

To Address

Bus

DREQ0

DREQ1

DREQ2

DREQ3

HLDA

CLK

RESET

READY

CSb

DB0-DB7

A0-A3

A4-A7

ADSTB

HOLD

DACK0

DACK1

DACK2

DACK3

IORDb

IOWRb

MemRDb

MemWRb

EOPb

Reg Addr

Meaning

00

CH0 memory Add reg

01

CH0 Count reg

02

CH1 memory Add reg

03

CH1 Count reg

04

CH2 memory Add reg

05

CH2 Count reg

06

CH3 memory Add reg

07

CH3 Count reg

08

R/W status/Commnd reg

09

WR request reg

10

WR Single mask reg

11

WR mode reg

12

WR Clear byte ptr F/F

13

R/W Master Clear/Temp

14

WR Clear Mask Reg

15

WR all Mask clear bits

A4-A7

DB7-DB0

3 to 8

Decoder

00

CSb

DREQ0

DREQ1

DREQ2

DREQ3

DACK0

DACK1

DACK2

DACK3

EOP

ADSTB

AEN

MEMRb

MEMWb

IORb

IOWb

READY

RESET

CLK

HRQ

HLDA

IO/Mb

A7

A6

A5

A4

A3

A2

A1

A0

D7

D6

D5

D4

D3

D2

D1

D0

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

DACK Sense Active Low/High

DREQ

Sense Active Low/High

Late/Extended

Write Selection

Fixed/

Rotating

Priority

Normal/

Compressed

Timing

Enable/Disable

Controller

Dis/En

CH0 Address

Hold

Dis/En

Mem-mem

Transfer

D7

D6

D5

D4

D3

D2

D1

D0

00=Demand, 01=Single

10=Bloc, 11=Cascade

INC/DEC

Address

Dis/Ena

Auto Initialisation

00=verify Transfer

01=Write , 10=Read transfer

Channel Select

00=CH0, 01=CH1, 10=CH2, 11=CH3

CMD

Mode

Req

Status

MASK

D7

D6

D5

D4

D3

D2

D1

D0

XXXXX

Don’t Care

Reset/Set REQ bit

00-11 Channel Select

00=CH0, 01=CH1, 10=CH2, 11= CH3

D7

D6

D5

D4

D3

D2

D1

D0

XXXX

Don’t Care

0/1

0/1

0/1

0/1

CH3 Mask Bit

CH2 Mask Bit

CH2 Mask Bit

CH0 Mask Bit

D7

D6

D5

D4

D3

D2

D1

D0

0/1, CH3

0/1,CH2

0/1, CH1

0/1, CH0

0/1, CH3

0/1, CH2

0/1, CH1

0/1, CH0

CH# Request

CH# Has reached TC

23 of 25

8251 USART

Data Bus

Buffer

Transmit

Buffer

Receive

Buffer

Transmit

Control

Receive

Control

R/W

Control

Logic

Modem Control

Internal

Line

D7-D0

RESET

CLK

C/Db

RDb

WRb

CSb

DSRb

DTRb

CTSb

RTSb

TXD

TXRDY

TXE

TXC

RXD

RXRDY

RXC

SYBDET

CSb

C/Db

RDb

WRb

Meaning

1

X

X

X

Data Bus Tri-state

0

X

1

1

Data Bus Tri-state

0

1

0

1

Status 🡪 CPU

0

1

1

0

Control Word🡨 CPU

0

0

0

1

DataBuff 🡪 CPU

0

0

1

0

DataBuff 🡨 CPU

D7

D6

D5

D4

D3

D2

D1

D0

Framing Control

# of Stop bits

00: invalid

01: 1 bit

10: 1.5 bits

11: 2 bits

Parity Control

X0=No Parity

01: Even

11: Odd

Character length

00: 5 bits

01: 6 bits

10: 7 bits

11: 8 bits

Baud Rate

00: Syn. Mode

01: x1 clock

10: x16 clock

11: x64 clock

EH

IR

RTS

ER

SBRK

RxE

DTR

TxE

TxE: transmit enable (0/1 Enable Disable)

DTR: data terminal ready (1=ENABLE DTR)

RxE: receiver enable (1/0=EN/DISABLE)

SBPRK: send break character 1= force TxD low

ER: error reset (Reset Flags: Parity ,Over run, Framing Error of Status Word)

RTS: request to send (1= Enable Request to send)

IR: internal reset (Reset 8251 to mode)

EH: enter hunt mode (1=search for Sync Character)

DSR

SYN

DET

FE

OE

PE

Tx

EMPTY

RxRDY

TxRDY

TxRDY transmit ready (DB Buffer is empty)

RxRDY receiver ready

TxEMPTY transmitter empty

PE parity error (1=when PE detected)

OE overrun error

FE framing error (Aynsc only, Valid

stop bit not detected)

SYNDET sync. character detected

DSR data set ready (DSR set at 0 level)

24 of 25

8254 PIT

Data

Bus

Buffer

Read/

Write

Logic

Counter

0

CLK 0

GATE 0

OUT 0

Internal

Bus

Control Word

Register

Counter

1

CLK 1

GATE 1

OUT 1

Counter

2

CLK 2

GATE 2

OUT 2

D0-D7

RDb

WRb

A0

A1

CSb

D7

D6

D5

D4

D3

D2

D1

D0

SC1

SC2

RW1

RW0

M2

M1

M0

BCD

Select Counter

00: Counter 0

01: Counter 1

10: Counter 2

11: Read-Back

Command

Read Write

00: Counter latch

Command

01:RW LSByte only

10: RW MSByte only

11:RW LSByte first

then Msbyte

000 : Mode 0

001 :Mode 1

X10 :Mode 2

X11 :Mode 3

100 :Mode 4

101 : Mode 5

0/1 =

Binary / BCD Mode

A1

A0

Selection

0

0

Counter 0

0

1

Counter 1

1

0

Counter 2

1

1

Control Register

D7

D6

D5

D4

D3

D2

D1

D0

SC1

SC2

COUNTb

STATUSb

CNT2

CNT1

CNT0

0

11: Read-Back Command

If (D5=0) count is lateched

D3=1 select counter 2

D2=1 select counter 1

D1=1 select counter 0

  • Mode 0 : Interrupt on Terminal count
  • Mode 1 : Hardware Retriggerable One Shot
  • Mode 2 : Rate Generator
  • Mode 3 : Square wave generator
  • Mode 4 : Software Triggered Strobe
  • Mode 5 : Hardware Triggered Strobe

25 of 25

Thanks

&

Good Luck for your Exam