30
中中中中中中中中中中中中 中中中中中中中中中 2013/12/27 智智智智智智智智智智智智 LCD 智智智智智智智

中華科技大學電子工程學系 智光商工電子資訊群 2013/12/27 智光優質精進計劃課程講義 LCD 功能測試及應用

Embed Size (px)

Citation preview

Page 1: 中華科技大學電子工程學系 智光商工電子資訊群 2013/12/27 智光優質精進計劃課程講義 LCD 功能測試及應用

中華科技大學電子工程學系 智光商工電子資訊群 2013/12/27

智光優質精進計劃課程講義LCD 功能測試及應用

Page 2: 中華科技大學電子工程學系 智光商工電子資訊群 2013/12/27 智光優質精進計劃課程講義 LCD 功能測試及應用

HD44780 Feature

Display Data RAM : 80*8 Bytes (DDRAM)

Character Generator ROM (CGROM) 內建 160 個 5*7 字型

Character Generator RAM (CGRAM) : 64 自行規劃 8 個 5*7 字型

Page 3: 中華科技大學電子工程學系 智光商工電子資訊群 2013/12/27 智光優質精進計劃課程講義 LCD 功能測試及應用

Display Principle

假如希望在 LCD 某個位置顯示某個字型 , 請將該字型的 ASCII 碼寫入相對應的 DD RAM 位址中

1 2 3 4 5 6 7 8 9 10

A

F

(ASCII Code) DD RAM

Page 4: 中華科技大學電子工程學系 智光商工電子資訊群 2013/12/27 智光優質精進計劃課程講義 LCD 功能測試及應用

Type of LCD

Page 5: 中華科技大學電子工程學系 智光商工電子資訊群 2013/12/27 智光優質精進計劃課程講義 LCD 功能測試及應用

LC

D

指令

Page 6: 中華科技大學電子工程學系 智光商工電子資訊群 2013/12/27 智光優質精進計劃課程講義 LCD 功能測試及應用

LCM Access Control Instruction Register IR: WLCD_COMMAND

存取 LCM 指令碼 (only write) Data Register DR: WLCD_DATA

存取 LCM 顯示資料 ( read & write)

RS R/W

0 0

0 1

1 0

1 1

Operation Mode

Command IR

U’C BF & AC

Display Data DR

U’C Display Data

PIN 6 4 5

E

Page 7: 中華科技大學電子工程學系 智光商工電子資訊群 2013/12/27 智光優質精進計劃課程講義 LCD 功能測試及應用

LCM Access Timing

RS

R/W

E

Data

WLCD_COMMAND

WLCD_DATA

/ E R W RS

7 ~ 0DB DB

Page 8: 中華科技大學電子工程學系 智光商工電子資訊群 2013/12/27 智光優質精進計劃課程講義 LCD 功能測試及應用

;-----------------------------------------------

;WLCD_COMMAND

;(1) FUNCTION: Write LCD command to IR

; * E=1, R/W=0, RS=0

; * Command -> LCD_BUS

; * E=0, R/W=1, RS=1

;(2) INPUT : R2

;(3) OUTPUT : None

;(4) USE REG.: R2,R3,R4

;------------------------------------------------

EXTRN CODE(DELAY_01MS)

PUBLIC WLCD_COMMAND

ROM SEGMENT CODE

Page 9: 中華科技大學電子工程學系 智光商工電子資訊群 2013/12/27 智光優質精進計劃課程講義 LCD 功能測試及應用

LCD_BUS EQU P0LCD_E EQU P3.0LCD_RW EQU P3.1LCD_RS EQU P3.2RSEG ROMWLCD_COMMAND:

CLR LCD_RWCLR LCD_RS ; IRSETB LCD_EMOV LCD_BUS,R2CLR LCD_ESETB LCD_RSSETB LCD_RWMOV R4,#20CALL DELAY_01MSRETEND

Page 10: 中華科技大學電子工程學系 智光商工電子資訊群 2013/12/27 智光優質精進計劃課程講義 LCD 功能測試及應用

;-------------------------------------------------------

;WLCD_DATA

;(1) FUNCTION: Write LCD DATA to DR

; * E=1, R/W=0, RS=1

; * Data -> LCD_BUS

; * E=0, R/W=1, RS=1

;(2) INPUT : R2

;(3) OUTPUT : None

;(4) USE REG. : R2,R3,R4

;-------------------------------------------------------

EXTRN CODE(DELAY_01MS)

PUBLIC WLCD_DATA

ROM SEGMENT CODE

Page 11: 中華科技大學電子工程學系 智光商工電子資訊群 2013/12/27 智光優質精進計劃課程講義 LCD 功能測試及應用

LCD_BUS EQU P0LCD_E EQU P3.0LCD_RW EQU P3.1LCD_RS EQU P3.2RSEG ROMWLCD_DATA:

CLR LCD_RWSETB LCD_RSSETB LCD_EMOV LCD_BUS,R2CLR LCD_ESETB LCD_RSSETB LCD_RWMOV R4,#20CALL DELAY_01MSRETEND

Page 12: 中華科技大學電子工程學系 智光商工電子資訊群 2013/12/27 智光優質精進計劃課程講義 LCD 功能測試及應用

;-----------------------------------------------;SET_LCD ;(1) FUNCTION: Initialize LCD module; * FUNCTION SET: DL=0, N=1; * DISPLAY ON/OFF: D=1, C=0, B=0; * ENTRY MODE SET: I/D=1, S=0 ;(2) INPUT : None;(3) OUTPUT : None;(4) USE REG. : R2,R3,R4;------------------------------------------------ EXTRN CODE(WLCD_COMMAND)EXTRN CODE(DELAY_01MS)PUBLIC SET_LCDROM SEGMENT CODERSEG ROMLCD_BUS EQU P0LCD_E EQU P3.0LCD_RW EQU P3.1LCD_RS EQU P3.2SET_LCD:

MOV R2,#00111000BCALL WLCD_COMMANDMOV R2,#00001100BCALL WLCD_COMMAND

MOV R2,#00000110BCALL WLCD_COMMANDRETEND

Page 13: 中華科技大學電子工程學系 智光商工電子資訊群 2013/12/27 智光優質精進計劃課程講義 LCD 功能測試及應用

;------------------------------------------------------------------------;CLEAR_LCD ;(1) FUNCTION: DISPLAY CLEAR / CURSOR HOME;(2) INPUT : None;(3) OUTPUT : None;(4) USE REG. : R2,R3,R4;------------------------------------------------------------------------- EXTRN CODE(WLCD_COMMAND)PUBLIC CLEAR_LCDROM SEGMENT CODERSEG ROMCLEAR_LCD:

MOV R2,#00000001BCALL WLCD_COMMANDMOV R2,#00000010BCALL WLCD_COMMANDRETEND

Page 14: 中華科技大學電子工程學系 智光商工電子資訊群 2013/12/27 智光優質精進計劃課程講義 LCD 功能測試及應用

;------------------------------------------------------------------------------;DISP_LCD_STRING;(1)FUNCTION: DISPLAY LCD STRING;(2)INPUT : DPTR (STRING TABLE NAME);(3)OUTPUT : NONE;(4)USE REG. : DPTR,R1,R2,R3,R4;------------------------------------------------------------------------------EXTRN CODE(WLCD_DATA)PUBLIC DISP_LCD_STRINGROM SEGMENT CODERSEG ROMDISP_LCD_STRING:

MOV R1,#00DISP_1:

MOV A,R1MOVC A,@A+DPTRMOV R2,AXRL A,#80HJZ DISP_2CALL WLCD_DATAINC R1JMP DISP_1

DISP_2: RET

END

Page 15: 中華科技大學電子工程學系 智光商工電子資訊群 2013/12/27 智光優質精進計劃課程講義 LCD 功能測試及應用

;--------------------------------------------------------------------------------;DISP_LCD_HEX ;(1) FUNCTION: DISPLAY HEX CODE (00H ~ FFH);(2) INPUT : R1;(3) OUTPUT : None;(4) USE REG.: R2,R3,R4;-------------------------------------------------------------------------------- EXTRN CODE(WLCD_DATA)PUBLIC DISP_LCD_HEXROM SEGMENT CODERSEG ROM

DISP_LCD_HEX:MOV A,R1ANL A,#0F0HSWAP AMOV R2,ACALL DISP_BINARYMOV A,R1ANL A,#0FHMOV R2,ACALL DISP_BINARYRET

Page 16: 中華科技大學電子工程學系 智光商工電子資訊群 2013/12/27 智光優質精進計劃課程講義 LCD 功能測試及應用

DISP_BINARY:CLR CMOV A,R2SUBB A,#10JC LESS_10JMP LARGE_9

LESS_10:MOV A,R2ADD A,#30HMOV R2,ACALL WLCD_DATARET

LARGE_9:MOV A,R2ADD A,#37HMOV R2,ACALL WLCD_DATARETEND

Page 17: 中華科技大學電子工程學系 智光商工電子資訊群 2013/12/27 智光優質精進計劃課程講義 LCD 功能測試及應用

;------------------------------------------------------------------------------------------;ELCD_CHAR_PATTERN;(1)FUNCTION: CREATE CHARACTER PATTERN FROM;(2)INPUT : R5 => THE NUMBER OF CHARACTER (1-8); : DPTR => LCD CHARACTER TEBLE NAME;(3)OUTPUT : NONE;(4)USE REG. : R2,R3,R4,R5,R6,DPTR ;------------------------------------------------------------------------------------------EXTRN CODE(WLCD_DATA)EXTRN CODE(WLCD_COMMAND)PUBLIC ELCD_CHAR_PATTERN

ROM SEGMENT CODERSEG ROM

ELCD_CHAR_PATTERN:; (1) SET INDEX R6=00H

MOV R6,#00H; (2) R5<-R5*8 CALCULATE LCD CHAR PATTERN BYTE NUMBER MOV A,R5 RL A RL A

RL AMOV R5,A

Page 18: 中華科技大學電子工程學系 智光商工電子資訊群 2013/12/27 智光優質精進計劃課程講義 LCD 功能測試及應用

; (3) WRITE CHARACTER PATTERN TO CG RAM MOV R2,#40H CALL WLCD_COMMANDELCD1: MOV A,R6 MOVC A,@A+DPTR MOV R2,A CALL WLCD_DATA INC R6 DJNZ R5,ELCD1 RET

END

Page 19: 中華科技大學電子工程學系 智光商工電子資訊群 2013/12/27 智光優質精進計劃課程講義 LCD 功能測試及應用

實作練習 ( 一 )

在 LCD 螢幕上顯示單一字元(1) 在第一列第 5 個位址顯示一個阿拉伯數字(2) 在第一列第 13 個位址顯示一個英文字母(3) 在第二列第 7 個位址顯示一個運算符號(4) 在第二列第 15 個位址顯示一個 <,=,> 符號

Page 20: 中華科技大學電子工程學系 智光商工電子資訊群 2013/12/27 智光優質精進計劃課程講義 LCD 功能測試及應用
Page 21: 中華科技大學電子工程學系 智光商工電子資訊群 2013/12/27 智光優質精進計劃課程講義 LCD 功能測試及應用

;===========================================; TLCD_1 : TESTING LCD MODULE FUNCTION; SHOW CHAR ; 2012/9/4 , TPS;===========================================EXTRN CODE(WLCD_COMMAND)EXTRN CODE(WLCD_DATA)EXTRN CODE(SET_LCD)EXTRN CODE(CLEAR_LCD)EXTRN CODE(DELAY_01MS)

ORG 00HJMP START

START:CALLCALL

MOVCALL WLCD_COMMANDMOVCALL WLCD_DATA

Page 22: 中華科技大學電子工程學系 智光商工電子資訊群 2013/12/27 智光優質精進計劃課程講義 LCD 功能測試及應用

MOVCALL WLCD_COMMANDMOVCALL WLCD_DATA

MOVCALL WLCD_COMMANDMOVCALL WLCD_DATA

MOVCALL WLCD_COMMANDMOVCALL WLCD_DATA

JMP $END

Page 23: 中華科技大學電子工程學系 智光商工電子資訊群 2013/12/27 智光優質精進計劃課程講義 LCD 功能測試及應用

實作練習 ( 二 )

在 LCD 螢幕上顯示兩行字串(1)第一列 :STR1_TABLE:DB “VOLTAGE VALUE= ",80H

(2) 第二列 :STR2_TABLE:DB "CURRENT VALUE= ",80H

(3) 第一列加入 : 7D 十六進制資料

(4) 第二列加入 : E9 十六進制資料

Page 24: 中華科技大學電子工程學系 智光商工電子資訊群 2013/12/27 智光優質精進計劃課程講義 LCD 功能測試及應用

;===========================================; TLCD_2 : TESTING LCD MODULE FUNCTION; SHOW STRING ; 2011/5/7 , TPS;===========================================EXTRN CODE(WLCD_COMMAND)EXTRN CODE(SET_LCD)EXTRN CODE(CLEAR_LCD)EXTRN CODE(DISP_LCD_STRING)

ORG 00HJMP START

START:CALLCALL

MOVCALL WLCD_COMMANDMOV ,#CALL DISP_LCD_STRING

Page 25: 中華科技大學電子工程學系 智光商工電子資訊群 2013/12/27 智光優質精進計劃課程講義 LCD 功能測試及應用

MOVCALL WLCD_COMMANDMOVCALL DISP_LCD_STRING

JMP $

STR1_TABLE:DB "VOLTAGE VALUE= ",80H

STR2_TABLE:DB "CURRENT VALUE= ",80H

END

Page 26: 中華科技大學電子工程學系 智光商工電子資訊群 2013/12/27 智光優質精進計劃課程講義 LCD 功能測試及應用

Home Work (10/14):

1. 在 LCD 螢幕上顯示 : 2013/10/14 ( 一 ) PM 3:12:562. 在 LCD 螢幕上顯示 : A

該字元每隔 1 秒向右邊移一個字元3. 在 LCD 螢幕上顯示 : XieHe HighSchool

該字串每隔 1 秒向右邊移一個字元

Page 27: 中華科技大學電子工程學系 智光商工電子資訊群 2013/12/27 智光優質精進計劃課程講義 LCD 功能測試及應用

實作練習 ( 三 )

MOUSE_TABLE: DB 00H,08H,04H,03H,04H,08H,0AH,0DH ;PATTERN 1DB 00H,02H,04H,18H,04H,02H,0AH,16H ;PATTERN 2DB 1FH,0CH,0AH,09H,08H,0EH,0EH,1FH ;PATTERN 3DB 1FH,06H,0AH,12H,02H,0EH,0EH,1FH ;PATTERN 4

在 LCD 螢幕上顯示一只老鼠

Page 28: 中華科技大學電子工程學系 智光商工電子資訊群 2013/12/27 智光優質精進計劃課程講義 LCD 功能測試及應用

實作練習 ( 三 )

MOUSE_TABLE: DB 00H,08H,04H,03H,04H,08H,0AH,0DH ;PATTERN 1DB 00H,02H,04H,18H,04H,02H,0AH,16H ;PATTERN 2DB 1FH,0CH,0AH,09H,08H,0EH,0EH,1FH ;PATTERN 3DB 1FH,06H,0AH,12H,02H,0EH,0EH,1FH ;PATTERN 4

在 LCD 螢幕上顯示一只老鼠

Page 29: 中華科技大學電子工程學系 智光商工電子資訊群 2013/12/27 智光優質精進計劃課程講義 LCD 功能測試及應用

;===========================================; TLCD_5 : MOUSE AMIMATION ; SHOW MOUSE AND SHIFT ; 2011/5/21, TPS;===========================================EXTRN CODE(WLCD_COMMAND)EXTRN CODE(WLCD_DATA)EXTRN CODE(SET_LCD)EXTRN CODE(CLEAR_LCD)EXTRN CODE(DELAY_10MS)EXTRN CODE(ELCD_CHAR_PATTERN)

ORG 00HJMP START

START:CALLCALLMOV R5,#MOV DPTR,#CALL

Page 30: 中華科技大學電子工程學系 智光商工電子資訊群 2013/12/27 智光優質精進計劃課程講義 LCD 功能測試及應用

MOVCALL WLCD_COMMANDMOVCALL WLCD_DATAMOVCALL WLCD_DATAMOVCALL WLCD_COMMANDMOVCALL WLCD_DATAMOVCALL WLCD_DATAJMP $

MOUSE_TABLE: DB 00H,08H,04H,03H,04H,08H,0AH,0DH ;PATTERN 1DB 00H,02H,04H,18H,04H,02H,0AH,16H ;PATTERN 2DB 1FH,0CH,0AH,09H,08H,0EH,0EH,1FH ;PATTERN 3DB 1FH,06H,0AH,12H,02H,0EH,0EH,1FH ;PATTERN 4

END