Microsoft Word - ha0013s.doc

Similar documents
DPJJX1.DOC

untitled

12232A LED LED LED EL EL CCFL EL CCF

R/W

学习MSP430单片机推荐参考书

untitled

D/A DAC ( 1us) (10~20 ) DAC0832 1

TSINGTEK DISPLAY CO.,LTD LCD CONTROLLER & DRIVER ST7920 OR EQUIVALENT (f) 639 2A f B1

7688使用手冊V10.doc

,768 32,767 32K JMP Jnnn (386+) LOOP CALL [Label:] JMP short/near/far address L10: jmp jmp L20: L10 L20

Application Note Format

HD61202 HD HD61203 HD61202, HY HY HD61202 HD61202 HD61203 HD =4096 RAMRAM LCD 2HD HD HD /32--

1.1 ML_ONOFF = 1 Q 3 Q 8 C 0.3V M 2 L 1 ML_ONOFF = 0 Q 3 Q 8 C 1. + R31 VCC R21 10K ML_ONOFF R15 0:off 1:on 1K Green Light VCC=5V L1 Q VDD=12V C

目 录

微處理機期末專題

專題最終版.doc

PIC16F F MPLAB 08 16F LED 15 LED

untitled

目录

江人发2009年第49号突发事件应对法培训.doc

untitled

第5章:汇编语言程序设计

Ps22Pdf

1-1 SH79F6431 A. 2( ) 9~15V ( 12V) U2 U3 3.3V SH79F B. 1(VCC/GND) SH79F6431 C. VDDIO SH79F6431 P4 P5 P0.6 P0.7 VDDIO VDDIO=5V D. 2 V 1.0

ebook50-15

untitled

1 TPIS TPIS 2 2

(Load Project) (Save Project) (OffLine Mode) (Help) Intel Hex Motor

() () () () () () () () DDRAM () II

(譯本)

上 海 农 商 银 行 理 财 产 品 风 险 揭 示 书 理 财 资 金, 则 客 户 面 临 产 品 期 限 延 期 调 整 等 风 险 8. 信 息 传 递 风 险 : 上 海 农 商 银 行 将 按 照 本 说 明 书 有 关 信 息 公 告 的 约 定, 进 行 产 品 信 息 披 露 客

audiogram3 Owners Manual

» n ¹ú KS0108 x ÍÍÙ q n KS0108 KS KS0107 KS0108 KS *32 128*64 192*64 KS0108 KS0108 KS0107 KS =4096 RAM RAM LCD 2 KS

(2) Function 0BH: Function 0CH: (pixel, picture element) Function 0DH: Function 0FH: Function 13H:

023 深 圳 市 融 信 软 件 技 术 有 限 公 司 SZ 深 圳 市 深 博 泰 生 物 科 技 有 限 公 司 SZ 深 圳 市 移 付 宝 科 技 有 限 公 司 SZ 深 圳 市 奥 金 瑞 科 技 有 限 公 司 SZ

<4D F736F F D20B3E6B4B9A4F930365F32A443AC71C5E3A5DCBEB9B1B1A8EE2E646F63>

辽石化大委发[2007]33号

Microsoft Word - xiuxinduanyu-2-doc.doc

<4D F736F F D20D5FDB7A8D2ABD1DB20BAE7B9E2CEDECFDE20C7B0D1D4D0DEB8C4342E31332E646F63>

untitled

汉王PDF转换RTF文档

untitled

2.5 idlocs PIC idloc idloc 0x1234 ; 0x config idloc HEX errorlevel errorlevel Error (Warning) Message HEX 3-14 errorlevel

AN INTRODUCTION TO PHYSICAL COMPUTING USING ARDUINO, GRASSHOPPER, AND FIREFLY (CHINESE EDITION ) INTERACTIVE PROTOTYPING

Huawei Technologies Co

文档 1

2013 C 1 #include <stdio.h> 2 int main(void) 3 { 4 int cases, i; 5 long long a, b; 6 scanf("%d", &cases); 7 for (i = 0; i < cases; i++) 8 { 9 scanf("%

逢 甲 大 學

第 一 节 认 识 自 我 的 意 义 一 个 人 只 有 认 识 自 我, 才 能 够 正 确 地 认 识 到 自 己 的 优 劣 势, 找 出 自 己 的 职 业 亮 点, 为 自 己 的 顺 利 求 职 推 波 助 澜 ; 一 个 人 只 有 认 识 自 我, 才 能 在 求 职 中 保 持

1.5招募说明书(草案)

秘密大乘佛法(下)

國立臺東高級中學102學年度第一學期第二次期中考高一國文科試題

!! :!!??!!?!??!!!... :... :'?'?! :' ' :'?' :'?' :'!' : :? Page 2

Page 2 of 12

Microsoft Word - Sunday

鎶ョ焊0

<D2B0D0C4D3C5D1C52DC8CED6BEC7BF202D20BCC7CAC2B1BE>

目 录 一 本 周 水 泥 价 格 跟 踪... 4 二 本 周 分 区 域 水 泥 价 格 详 情 华 北 地 区 水 泥 价 格 保 持 平 稳 东 北 地 区 价 格 稳 中 略 有 下 滑 华 东 地 区 水 泥 价 格 延 续 上 调

<4D F736F F D20C7B6C8EBCABDCFB5CDB3C9E8BCC6CAA6B0B8C0FDB5BCD1A75FD1F9D5C22E646F63>

bnb.PDF

幻灯片 1

Microsoft Word - ~ doc


P-COV.cdr

Microsoft Word 箕æ−¥ï¼‹å®ı稿;

98年度即測即評學科測試與即測即評即發證技術士技能檢定簡章

了 波 涛 和 号 声 袁 读 者 很 容 易 就 进 入 广 州 城 的 水 上 旅 途 袁 进 入 一 座 野 水 上 名 城 冶 的 传 说 中 去 遥 于 是 袁 一 座 名 城 往 事 充 满 了 漂 流 感 袁 旋 律 自 水 上 而 来 袁 我 们 就 这 样 来 到 了 往 事 的

壹、摘 要

PIC_SERVER (11) SMTP ( ) ( ) PIC_SERVER (10) SMTP PIC_SERVER (event driven) PIC_SERVER SMTP 1. E-

Bus Hound 5

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit

C PICC C++ C++ C C #include<pic.h> C static volatile unsigned char 0x01; static volatile unsigned char 0x02; static volatile unsigned cha

Microsoft Word - 專題封面.doc

1. ( )( ) A. B. C. D. 2. ( )( ) A. : B. : C. : D. : 3. ( )( ) A. : B. : C. : D. : 1 D : 2

an153f

Microsoft Word - LMB402CBC-AppNote-V0.1.doc

一:概述

机 密


T

untitled

MSP430 MSP430 F149 MSP430F149 P USART MSP430F PWM 63#

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

Computer Architecture

2 12

JLX

2

CA24064B LED LED LED EL EL CCFL EL CCF /

AT89C2051中文资料.doc

instructions.PDF

User ID 150 Password - User ID 150 Password Mon- Cam-- Invalid Terminal Mode No User Terminal Mode No User Mon- Cam-- 2

Pro Tools LE 6.9 Read Me for Windows


REPORT ID: SS-220D COMPILED BY: HONG KONG HOUSING SOCIETY 香港房屋協會 PROJECT:THS2018 HONG KONG HOUSING SOCIETY 香港房屋協會 T-HOME TRANSITIONAL RENTAL HOUSING S

untitled

z x / +/- < >< >< >< >< > 3 b10x b10x 0~9,a~f,A~F, 0~9,a~f,A~F, x,x,z,z,?,_ x,x,z,z,?,_ h H 0~9,_ 0~9,_ d D 0~7,x,X,z,Z

WWW PHP

Microsoft Word - Sable User's Manual.doc

!"# $ % & ( ")*+, -. /01 - (2. - 1!% % % % 3 "% % % % 3 #% - 3 $%!2/0!"# & ( / & ( 1 / /.1 5 //(.3 / $ 0&3 / ")*+, -. /01 - (2.

!"# $ % & ( ")*+, -. /01 - (2. - 1!% % % % 3 "% % % % 3 #% - 3 $%!2/0!"# & ( / & ( 1 / /.1 5 //(.3 / $ 0&3 / ")*+, -. /01 - (2.

Transcription:

文件编码 :HA0013s 简介 : 本文介绍利用 8 位微控制器控制 DV16100NRB 液晶显示驱动器的方法 该 LCM 由内置的 Hitachi HD44780 进行驱动及控制 本文应用中, 着重考虑如何使微控制器产生正确的信号以符合 LCM 所需的时序 若要获得详细的时序及指令信息, 请查阅 LCM 厂商的资料 LCM 能以 4 位或 8 位模式工作 在 4 位模式下, 传送一个字符或一条指令需两个传输周期完成 在 8 位模式下, 同样操作仅需一个传输周期, 但需要多占 4 个 I/O 端口 本文中可看到利用 #define, if,else 和 编译程序的方法 电路设计 : PB0~PB7 设为 I/O 端口用于数据传输, PC0~PC2 设为输出端口用于 LCM 控制 端口可重新设置以符合用户的需要 8,,. 8,, 4-5 2 * 2 * % %,, % # N %, J N $ 9 H @ +, = JH EN - 4 9 4 5 8 5 5 8 8,, $ # "! 8 5 5 8,, 5 + 2 + 0 2 + 5 + 2 + 0 6 " & 4! ) 程序 : ;File name: lcm.asm ; 作者 :Chris ; 说明 : 该程序是 LCM 控制主程序 ; 选择 LCM 的工作模式 ;four_bit=0,lcm 以 8 位模式工作,four_bit=1 LCM 以 4 位模式工作 ;#define four_bit 0 ;LCM 以 8 位模式工作 #define four_bit 1 ;LCM 以 4 位模式工作 ; 以下部分不可修改 1

#include ht48r30a-1.inc ;------------------------------------------------------- ;LCM.INC for DV-16100NRB LCM_CLS EQU 01H CURSOR_HOME EQU 02H CURSOR_SR EQU 14H CURSOR_SL EQU 10H INCDD_CG_SHF_C EQU 06H TURN_ON_DISP EQU 0FH LCD_ON_CSR_OFF EQU 0CH lcm_data equ pb ;PORT B 定义为 LCM 数据端口 lcm_data_ctrl equ pbc lcm_ctrl equ pc ;PORT C 定义为 LCM 控制端口 ctrl_ctrl equ pcc extern busy_chk:near extern delay:near extern write_char:near extern snd_cmd:near ;LCM Display Commands and control Signal name. E equ 0 RW equ 1 RS equ 2 data.section 'data' coun0 db? coun1 db? coun2 db? msg db? tmp db? code.section at 0 'code' ; 程序部分 ORG 00h ; 设置 ISR 地址 jmp start start: ; 程序开始 clr lcm_data_ctrl ; 将 LCM 数据端口设为输出状态 clr ctrl_ctrl ; 将 LCM 控制端口设为输出状态 clr lcm_data ;LCM 数据端口清零 clr lcm_ctrl ;LCM 控制端口清零 2

DISPLAY_INIT: LCM_DELAY: mov a,0ffh mov coun1,a mov coun0,a lp0: sdz coun1 jmp lp0 sdz coun0 jmp lp0 ; 循环延时程序, 用于 LCM 控制 If four_bit mov a,28h ;4 位工作模式 else mov a,38h ;8 位工作模式 ; 执行写操作 CMD_SEQ: If four_bit mov a,28h ;4 位工作模式 else mov a,38h ;8 为工作模式 ; 执行写操作 mov else mov a,80h a, 38h ; 执行写操作 ;CALL" 忙 " 状态检查程序 Mov a,lcm_cls ; 将 LCM_CLS 指令赋予 ACC ;CALL" 写指令 " 程序 3

CALL DELAY mov a,turn_on_disp ; 将 TURN_ON_DISP 指令赋予 ACC mov a,incdd_cg_shf_c ; 将 INCDD_CG_SHF_C 指令赋予 ACC ;inc addr of DD ram & shift ;the cursor to the right at ;the time of write to DD/CG ;RAM. loop: mov a,lcm_cls mov a,cursor_home ; 将 cursor_home 指令赋予 ACC clr tblp ; 查表指针清零 ;initial display "HOLTEK 8 bit uc" agn: tabrdl msg ; 将从 last page 查表得到的 ; 数据赋予 msg mov a,msg mov tmp,a mov a,24h xorm a,msg 4

sz msg ; 检查 msg 是否为零 jmp agn1 ; 如果 msg 0, 跳至 agn1 jmp secn_line ; 如果 msg=0, ; 跳至 secn_line agn1: mov a,tmp call write_char ;CALL" 写数据 " 程序 inc tblp jmp agn secn_line: inc tblp ; 查表指针加一 mov a,0c0h ; 第二列的地址 snd_line: tabrdl msg mov a,msg mov tmp,a mov a,24h xorm a,msg sz msg jmp snd_lin1 mov a,lcd_on_csr_off ; 将 lcd_on_csr_off 指令赋予 ACC jmp lp snd_lin1: mov a,tmp call write_char inc tblp ; 查表指针加一 jmp snd_line lp: ; jmp start jmp lp holtek_tbl.section at 700h 'code' ;table at last page htk_tbl: ; dc 4800h,4f00h,4c00h,5400h,4500h,4b00h,2000h,3800h,2400h ; dc 2000h,6200h,6900h,7400h,2000h,7500h,4300h,2400h 5

; dc 0048h,004fh,004ch,0054h,0045h,004bh,0020h,0038h,0024h ; dc 0020h,0062h,0069h,0074h,0020h,0075h,0043h,0024h ; 注意 : 以下是我的修改 dc 0057h,0075h,0020h,004ah,0069h,006eh,0067h,0020h,0024h dc 0020h,004ah,0069h,006eh,0067h,0020h,0020h,0020h,0024h end ;File name: lcmglob.inc ; 作者 :Chris ; 说明 : 定义全局常量 lcm_data equ pb lcm_data_ctrl equ pbc lcm_ctrl equ pc ctrl_ctrl equ pcc E equ 0 RW equ 1 RS equ 2 ;File name: command.asm ; 作者 :Chris ; 说明 : LCM 的控制命令文件, 作为外部程序供主程序 LCM.ASM 调用 编译时要和主程 ; 序一起加入到同一个 PROJECT 中 ; 选择 LCM 的工作模式 ;four_bit=0,lcm 以 8 位模式工作,four_bit=1 LCM 以 4 位模式工作 ;#define four_bit 0 ;LCM 以 8 位模式工作 #define four_bit 1 ;LCM 以 4 位模式工作 ; 以下部分不可修改 ;LCM command module begin at here include ht48r30a-1.inc include lcmglob.inc public busy_chk public delay public write_char 6

public snd_cmd scode.section 'code' ; 写 LCM 控制指令程序 snd_cmd: ; 如果为 4 位模式 Mov dtmp,a and a,0f0h ; 将高 nibble 4 位输入 ACC mov lcm_data,a ; 将 LCM 控制指令写入数据端口 clr lcm_ctrl.rw ; 设置 " 写指令 " 模式 Clr lcm_ctrl.rs ; 将指令写入 LCM swapa dtmp and a,0f0h ; 将低 nibble 4 位输入 ACC mov lcm_data,a ret acode.section 'code' busy_chk: set lcm_data_ctrl ; 将 LCM 数据端口设为输入状态 clr lcm_ctrl.rs ; 设置 LCM 为检查 ;BUSY 模式 set lcm_ctrl.rw mov a,lcm_data ; 将 LCM 数据端口值 ; 赋予 ACC and a,0f0h ;4 位模式下, 先将高 nibble 读入 ACC mov dtmp,a swapa lcm_data and a,0fh ; 将低 nibble 读入 ACC or a,dtmp ; 组成 8 位 sz acc.7 ; 检查 LCM" 忙 " 状态 jmp busy_chk ; 若处于 " 忙 ", 返回重新处理 " 忙 " 信号 clr lcm_ctrl.rw 7

clr lcm_data_ctrl ; 若不处于 " 忙 " 状态, 重新将 LCM 数据端口设为输出 状态 ret wcode.section 'code' write_char: mov dtmp,a and a,0f0h mov lcm_data,a clr lcm_ctrl.rw set lcm_ctrl.rs swapa dtmp and a,0f0h mov lcm_data,a ret dsec.section 'data' dtmp db? dtmp2 db? code.section 'code' delay: mov dtmp,a set dtmp2 drep: sdz dtmp2 jmp drep sdz dtmp jmp drep ret 程序说明 : 8

本文程序首先执行 include 内容, 定义 PORT B 为 LCM 数据端口, 定义 PORT C 为 LCM 控制端口 可通过 define 命令, 将 LCM 程序编译为 4 位或 8 位工作模式 电源接通时 LCM 会自动进行内部复位 但大多数可编程 LCM 仍利用软件进行初始化 本文例子中, 从 START 开始, 运行初始化的程序 依照 HD44780 规格, 每下一个指令需要至少 4.5 毫秒的延迟时间 这即是 LCM_DELAY 程序的作用 LCM 完成初始化之前, 是无法检查 LCM 是否在 BUSY 状态的 向 LCM 下的指令需依照 HD44780 定义的指令码 LCM.INC 中定义了一些常用的指令 在向 LCM 写指令之前, 应先检查 LCM 是否处在 BUSY 状态 BUSY_CHK 程序作用就在于此 经确认 LCM 不在 BUSY 状态后, 才能将数据传输至 LCM 将要显示的 ASCII 码存放在程序的最后一页, 再通过查表方式将数据存入 ACC, 然后利用 WRITE_CHAR 程序通过 LCM 完成显示 RS,R/W 及 E 信号真值表 : 4 5 4 9 - F A H = JE 9 HEJA E I JHK? JE? @ A 4 A = @ > K I O B = C = @ @ HA I I? K JA H 9 HEJA @ = J= 4 A = @ @ = J= 9