EM78P468

EM78P468
Application
Notes
ELAN MICROELECTRONICS CORP.
Doc. # AN468
First Edition
November
2005
EM78P468 应用笔记
1
Trademark Acknowledgments
IBM is a registered trademark and PS/2 is a trademark of IBM. Microsoft, MS, MS-DOS, and
Windows are registered trademarks of Microsoft Corporation.
Document Number: AN468
© 2001-2003 ELAN Microelectronics Corporation
All Rights Reserved
Printed in Taiwan, ROC, 11/2003
The contents of in this document is subject to change without notice. ELAN Microelectronics assumes no
responsibility for errors that may appear in this manual. ELAN Microelectronics makes no commitment to
update, or to keep current, the information contained in this manual. The software described herein is
furnished under a license or nondisclosure agreement, and may be used or copied only in accordance with
the terms of the agreement.
ELAN Microelectronics products are not intended for use in life support appliances, devices, or systems. Use of
ELAN Microelectronics products in such applications are not supported and are prohibited.
ELAN
MICROELECTRONICS
CORPORATION
Headquarters:
Hong Kong Office:
No. 12, Innovation Road 1
Science-based Industrial Park
Hsinchu, Taiwan, R.O.C. 30077
Tel: +886 3 563-9977
Fax: +886 3 563-9966
http://www.emc.com.tw
Elan (HK) Microelectronics Elan Information Technology
Corporation, Ltd.
Group
Elan Microelectronics
(Europe)
Rm. 1005B, 10/F Empire Centre
68 Mody Road, Tsimshatsui
Kowloon , HONG KONG
Tel: +852 2723-3376
Fax: +852 2723-7780
http://www.elanhk.com.hk
Corp.Shenzhen Office:
P.O. BOX 601, CUPERTINO, CA.
95015, USA
Tel: +1 048 366-8225
Fax: +1 048 366-8225
Shanghai Office:
Elan (Shenzhen) Microelectronics Elan Electronics
Corporation, Ltd.
Corporation, Ltd.
Siewerdtstrasse 105,8050 Zurich
SSMEC Bldg. 3F, Gaoxin S. Ave.
Tel: 41-43-2994060
1st, South Area, Shenzhen
Fax: 41-43-2994079
High-tech
Industrial
Park.,
http://www.elan-europe.com
Shenzhen
Tel: +86 755 26010565
Fax: +86 755 26010500
EM78P468 应用笔记
USA Office:
(Shanghai)
23/Bldg. 115, Lane 572, Bibo Road
Zhangliang Hi-Tech Park
Shanghai, CHINA
Tel: +86 021 5080-3866
Fax: +86 021 5080-4600
2
目 录
一、液晶工作参数设置…………………………………………………………………………
1
二、编程注意事项……..…………………………………………………………………………
1
三、LCD 显示 demo 程序和使用说明……………………………………………………………
1
LCD 显示
一、液晶工作参数设置
在用液晶显示前,首先要对 LCD 进行初始化设置。液晶初始化的各个参数控制主要通过
LCD 控制寄存器 R9 来设置,它的相关位定义如下:
LCD 控制寄存器 R9
BIT
7
6
5
4
3
2
1
0
SYMBOL
BS
DS1
DS0
LCDEN
--
LCDTYPE
LCDF1
LCDF0
BIT1、BIT 0(LCDF1、LCDF0):LCD 帧频率控制位,一般设置为 “1 1”
BIT2(LCDTYPE):LCD 驱动波形选择
0:A 类波形
1:B 类波形
一般设置为 0,即 A 类波形
BIT4(LCDEN): LCD 使能控制位
0:LCD 禁止
1:LCD 使能
BIT6、BIT5(DS1、DS0)
:duty 选择位
DS1
DS0
duty
0
0
1/2
0
1
1/3
1
x
1/4
BIT7(BS):bias 选择位
0:1/2 bias
1:1/3 bias
二、编程注意事项
在编写液晶显示模块程序时,还要注意以下事项:
1) duty 和 bias 根据液晶的实际参数来设置,显示的地址和数据分别通过寄存器 RA
和 RB 来控制,还要特别注意液晶的工作电压,以免造成鬼影等不正常现象。
2) 在编写显示部分程序时,应做到整屏刷新,以避免干扰。
三、LCD 显示 demo 程序和使用说明
1.demo 程序
Lcd 的 demo 程序分为 2 部分:lcd 初始化部分和 lcd 显示部分。
;================================================
EM78P468 应用笔记
1
;=========== lcd init sub ======================
lcd_init:
mov
a,@0x00
;p7.0-p7.3 as seg16-seg19
iow
ioc50
mov
a,@0x00
;ra=0
mov
lcd_address,a
bc
lcd_control,lcden ;disable lcd
bs
lcd_control,lcdf1 ;frame frequency=70.6hz
bs
lcd_control,lcdf0
bc
lcd_control,lcd_type
;a type
bs
lcd_control,bias_select ;1/3bias
bc
clock_control,bf0
bc
clock_control,bf1
bs
lcd_control,ds0
;1/4duty
bs
lcd_control,ds1
ret
;================================================
;=========== lcd display macro ===================
;================================================
lcd_display macro bank_lcd,lcd_data_head,lcd_data_num
bank
bank_lcd
mov
a,@lcd_data_num
mov
lcd_data_head,a
mov
a,@0
mov
lcd_address,a
mov
a,@lcd_data_head+1
mov
r4,a
bank
bank_lcd
$display_next:
mov
a,r0
;get data
mov
lcd_data,a
inc
lcd_address
swapa
r0
mov
lcd_data,a
inc
lcd_address
inc
r4
djz
lcd_data_head
jmp
$display_next
EM78P468 应用笔记
2
bs
nop
endm
lcd_control,lcden
;enable lcd
2.使用说明
由于 lcd 有各种各样的规格,所以对初始化部分不便于写成宏定义,以子程序方式
给出。用户在使用时,只要按照这个流程对 lcd 的参数进行设置即可。Lcd 显示部分用
宏定义的方式给出。
宏定义的相关参数说明如下:
bank_lcd:lcd 显示缓冲区数据所在寄存器区,即所在 bank 区
lcd_data_head:临时寄存器,暂存 lcd 显示缓冲区字节个数
lcd_data_head+1:lcd 显示缓冲区首地址(递增顺序),高低半字节均有效
lcd_data_num:lcd 显示缓冲区字节个数
在使用时要注意以下几点
1) 使用 lcd 初始化程序时,要注意该子程序所在页,如果调用位置和它不是同一页,
要加 page 指令进行页选。
2) lcd 显示宏定义程序可以放在程序的任何部分,也可以放在和主程序的同一目录
下,在主程序中用 include 指令包含进来。
3) lcd 显示宏定义程序可以直接调用,但要注意显示缓冲区数据的存放地址是
lcd_data_head+1,而不是 lcd_data_head,这点在对显示缓冲区数值进行更新时
要特别注意,否则显示会出错。
以下为 lcd 初始化子程序和 lcd 显示宏定义程序在程序中的使用,lcd 初始化子程序和
主程序在同一页面内,宏定义程序放在主程序中。
;================================================
;=========== 主程序 ============================
;================================================
start:
; .
; .
; .
call lcd_init
; .
; .
; .
main:
; .
; .
; .
EM78P468 应用笔记
3
lcd_display
;
;
;
;use lcd display macro
.
.
.
jmp main
end
EM78P468 应用笔记
4