Keeping the Sheep Corralled An engineer, a physicist, and a mathematician are shown a pasture with a...

Post on 29-Mar-2015

216 views 3 download

Tags:

Transcript of Keeping the Sheep Corralled An engineer, a physicist, and a mathematician are shown a pasture with a...

Keeping the Sheep Corralled

An engineer, a physicist, and a mathematician are shown a pasture with a herd of sheep, and told to put them inside the smallest possible amount of fence.

The engineer is first. He herds the sheep into a circle and then puts the fence around them, declaring, "A circle will use the least fence for a given area, so this is the best solution.“

The physicist is next. She creates a circular fence of infinite radius around the sheep, and then draws the fence tight around the herd, declaring, "This will give the smallest circular fence around the herd.“

Keeping the Sheep Corralled

The mathematician is last. After giving the problem a little thought, he puts a small fence around himself and then declares, "I define myself to be on the outside!"

Liquid Crystal Display

Embedded Systems Interfacing Laboratory

Timing, timing, timing …

Overview Task 1 – Prelab Task 2 – initPMP & _10usDelay Task 3 – Instruction Sequence and

initLCD Task 4 – Application

initPMP initLCD cmdLCD putLCD main

LCD Interface

8-bitDataBus

3-bitControl

Bus

10k

PIC Header

PMD7(RE7) PMD6(RE6) PMD5(RE5) PMD4(RE4) PMD3(RE3) PMD2(RE2) PMD1(RE1) PMD0(RE0)

PMWR(PD4) PMRD(RD5)

PMAO(RB15) VEE

14 13 12 11 10 09 08 07 06 05 04 03 02 01

Tianma TM162JCAWG1

1.3k

LCD Interface

8-bitDataBus

3-bitControl

Bus

PIC Header

PMD7(RE7) PMD6(RE6) PMD5(RE5) PMD4(RE4) PMD3(RE3) PMD2(RE2) PMD1(RE1) PMD0(RE0)

PMWR(PD4) PMRD(RD5)

PMAO(RB15) VEE

14 13 12 11 10 09 08 07 06 05 04 03 02 01

Lumex LCM-S01602

LCD Controller (SK00321)

Tianma TM162JCWAG1

16 Cols x 2 Lines

SK

0032

PIC24FJ128

1 Hitachi HD44780U Compatible Controller/Driver

LCD Controller (S6A00691)

Lumex LCD-SO1602

16 Cols x 2 Lines

S6A

0069

PIC24FJ128

1 Hitachi HD44780U Compatible Controller/Driver

Parallel Master Port (PMP) Configure

PMCON PMMODE PMADDR PMAEN

See Prelab for suggested bit patterns

Control Signal R/W’ – Read/Write’ Select Signal RS – Register Select

0 = Instruction Register on write and Busy Flag on read

1 = Data Register on read and write E – Enable Signal Check waveforms to make sure

your values for WAITB, WAITM, and WAITE meet timing requirements of LCD

WAITB, WAITM, and WAITE If WAITM = 0b0000, then WAITB

and WAITE have no affect Else WAITM 0b0000, then

WAITB, WAITM, and WAITE have an affect

WAITM x Tcy(WAITB+1) x Tcy (WAITE+1) x TcyE

Stable

Delays – Task 2 – MPLAB SIM msDelay – Already in Peripherals.H

Change msDelay scale factor to 333L _10usDelay(unsigned char n){

unsigned char count;

for(count=n*usSCALE;count>0;count--){asm(“nop”);. . . . .}

}

Task 2

Hello world

Via holes and LCDpins have different signalpin outs.

MSO

Explorer-16

Check PMP timing against data sheet

Instruction Sequence – Task 3

Instruction Execution Times Power-On Delay >30 ms (100 ms) Slow Instructions ( > 1.35 ms)

Clear display Home cursor

Fast Instructions (> 43 us) All other commands and data

Functions – Task 3 initLCD – Initialize

LCD Main

initPMP initLCD Endless loop with

Nop( )

Warning On Task 4 Task 3 may have

confused the LCD controller

Turn off power to Explorer-16 board.

Turn on power to Explorer-16 board

Debugger | Connect Reset Run

ResetLCDController

Functions – Task 4 putLCD – send character to LCD cmdLCD – send new command to

LCD Main

initPMP and initLCD Endless loop

Send message to display using putLCD Home cursor or clear display using cmdLCD