|
|
12864 LCD图形显示程序例子 程序匠人 发表于 2005-9-29 18:14:00 阅读全文 | 回复(4) | 引用通告 | 编辑 |
|
12864 LCD图形显示程序例子 [日期:2005-9-29] 来源:PIC 单片机 作者:mikezhong [字体:大 中 小]
这是一个在LCD128*64上显示图形的一个程序,一直以来都总是不知道怎么搞,现在终于都通了,想当初在网上总找,要不是程序不全,就是无法运行,或者是C51汇编语言,让人不爽,这样的痛苦不可以再让别人难受了。在LCD上显示一幅图,是“我的电脑,我的文档”。IC用PIC16F877A,晶振4MHZ,采用并行8线,LCD:TS12864-3,接法在程序中有定义,只要将此程序COPY到你的PICC里编译下载后,在目标板上即可以看到图画了!
不知道可不可以加酷?
#i nclude "pic.h" #define RS RC0 #define RW RC1 #define E RC2 #define PSB RC3 #define RST RC4 //PORTD=DATA; unsigned char COUNT3,COUNT2,COUNT1,COUNT,LCD_X,LCD_Y,LCD_DATA1,LCD_DATA2,LCD_DATA,F3,R1,F0; const unsigned char TU_TAB1[]={ // 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,0xF0,0x00,0x01, 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x18,0x00,0x01, 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xBF,0xFF,0xDC,0x00,0x01, 0x80,0x00,0x1F,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xBF,0xFF,0xBC,0x00,0x01, 0x80,0x00,0x30,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x01,0x7F,0xFF,0xB8,0x00,0x01, 0x80,0x00,0x30,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x01,0x7F,0xFF,0x78,0x00,0x01, 0x80,0x00,0x19,0xFF,0xFE,0xC0,0x00,0x00,0x00,0x00,0x02,0xFF,0xFF,0x70,0x00,0x01, 0x80,0x00,0x18,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x02,0xFF,0xFE,0xF0,0x00,0x01, 0x80,0x00,0x0C,0x01,0xFF,0x60,0x00,0x00,0x00,0x00,0x05,0xFF,0xFE,0xE0,0x00,0x01, 0x80,0x00,0x0C,0x7F,0xD0,0x20,0x00,0x00,0x00,0x00,0x05,0xFF,0xFD,0xE0,0x00,0x01, 0x80,0x00,0x06,0x00,0x0F,0xB0,0x00,0x00,0x00,0x00,0x0B,0xFF,0xFD,0xC0,0x00,0x01, 0x80,0x00,0x06,0x03,0xFC,0x10,0x00,0x00,0x00,0x00,0x0B,0xFF,0xFB,0xC0,0x00,0x01, 0x80,0x00,0x03,0x1F,0x00,0x18,0x00,0x00,0x00,0x00,0x17,0xFF,0xFB,0x80,0x00,0x01, 0x80,0x00,0x03,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x17,0xFF,0xF7,0x80,0x00,0x01, 0x80,0x00,0x01,0x80,0x00,0x0C,0x00,0x00,0x00,0x00,0x17,0xFF,0xF7,0x00,0x00,0x01, 0x80,0x00,0x01,0x80,0x00,0x04,0x00,0x00,0x00,0x00,0x09,0xFF,0xEF,0x00,0x00,0x01, 0x80,0x00,0x00,0xC0,0x00,0xF6,0x00,0x00,0x00,0x00,0x06,0x7F,0xEE,0x00,0x00,0x01, 0x80,0x00,0x00,0xC0,0x03,0xC2,0x00,0x00,0x00,0x00,0x01,0x9F,0xDE,0x00,0x00,0x01, 0x80,0x00,0x00,0x60,0x00,0x3B,0x00,0x00,0x00,0x00,0x00,0x67,0xDF,0x00,0x00,0x01, 0x80,0x00,0x00,0x60,0x00,0xE3,0x00,0x00,0x00,0x00,0x00,0x19,0xBF,0x00,0x00,0x01, 0x80,0x00,0x00,0x30,0x03,0x8E,0x00,0x00,0x00,0x00,0x00,0x06,0x3F,0x00,0x00,0x01, 0x80,0x00,0x00,0x30,0x06,0x3C,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0x00,0x00,0x01, 0x80,0x00,0x00,0x18,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x01, 0x80,0x00,0x00,0x18,0x03,0xC0,0x00,0x00,0x00,0x00,0x00,0x0F,0x7F,0x80,0x00,0x01, 0x80,0x00,0x00,0x0C,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x1F,0xC0,0x00,0x01, 0x80,0x00,0x00,0x0C,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x07,0xE0,0x00,0x01, 0x80,0x00,0x00,0x06,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x1F,0xE0,0x00,0x01, 0x80,0x00,0x00,0x07,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x3F,0xC0,0x00,0x01, 0x80,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0xFF,0x00,0x00,0x01, 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFC,0x00,0x00,0x01, 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,0x01, 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xC0,0x00,0x00,0x01, 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, 0x80,0x05,0x40,0x88,0x04,0x01,0x08,0x00,0x00,0x0A,0x81,0x10,0x04,0x00,0x20,0x01, 0x80,0x79,0x21,0x08,0x02,0x21,0x49,0x00,0x00,0xF2,0x42,0x10,0x04,0x47,0x10,0x01, 0x80,0x09,0x07,0xDF,0x7F,0xF7,0xAA,0x00,0x00,0x12,0x0F,0xBE,0x7F,0xE5,0xFE,0x01, 0x80,0x7F,0xF4,0x51,0x08,0x81,0x2C,0x00,0x00,0xFF,0xE8,0xA2,0x44,0x47,0x00,0x01, 0x80,0x09,0x04,0x61,0x08,0x81,0x7F,0x00,0x00,0x12,0x08,0xC2,0x7F,0xC5,0x4A,0x01, 0x80,0x0B,0x24,0x51,0x08,0x83,0x81,0x00,0x00,0x16,0x48,0xA2,0x44,0x45,0x6A,0x01, 0x80,0x1D,0x47,0xC9,0x05,0x05,0x01,0x00,0x00,0x3A,0x8F,0x92,0x44,0x47,0x52,0x01, 0x80,0x68,0x84,0x49,0x05,0x05,0x7F,0x00,0x00,0xD1,0x08,0x92,0x7F,0xC5,0x6A,0x01, 0x80,0x09,0x94,0x41,0x02,0x01,0x01,0x00,0x00,0x13,0x28,0x82,0x44,0x05,0x4A,0x01, 0x80,0x0E,0x57,0xC1,0x0D,0x81,0x01,0x00,0x00,0x1C,0xAF,0x82,0x04,0x29,0x42,0x01, 0x80,0x38,0x34,0x4E,0x70,0x71,0x7F,0x00,0x00,0x70,0x68,0x9C,0x03,0xEB,0x7E,0x01, 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF };
//*************delay_ms******************************** void delay_10us(unsigned char x) { while(x--); } void delay_ms(unsigned char cnt) { unsigned char i; do { i = 4; do { delay_10us(39); } while(--i); } while(--cnt); }
//***********检查是否LCD忙碌的子程序********************** void check_busy(void) { TRISD=0xff;//在此处设为输入。 PORTD=0xff; RS=0; RW=1; while (1) { NOP();NOP();NOP(); E =1; NOP();NOP();NOP(); if (RD7==0) break; NOP();NOP();NOP(); E =0; } E =0; TRISD=0X00;//还原为输出。 RC7=!RC7; //delay_ms(50); } //**********数据写命令*************************** void send_com(unsigned char command ) { check_busy(); RS=0; RW=0; PORTD=command; E =1; NOP(); NOP(); E =0; } //**********LCD初始化时的送命令****************** void send_com_init(unsigned char command_init ) { RS=0; RW=0; PORTD=command_init; E =1; NOP(); NOP(); E =0; } //**********写数据*************************** void send_data(unsigned char data ) { check_busy(); RS=1; RW=0; PORTD=data; E =1; NOP(); NOP(); E =0; } //***********读数据**************************** unsigned char read_data(void) { unsigned char read_data; check_busy(); TRISD=0XFF; RS=1; RW=1; E =1; NOP(); read_data=PORTD; E =0; TRISD=0x00;//还原为输出。 return (read_data); } //***********清屏***************************** void clear_LCD(void) { send_com(0x01); send_com(0x34); send_com(0x30); } //**********LCD初始化************************ void initial_LCD(void) { PSB=1; RST=0;//Reset. NOP(); NOP(); RST=1; NOP(); delay_10us(10); send_com_init(0x30);//30H--基本指令操作 delay_10us(4); send_com_init(0x0c);//开显示,关光标,不闪烁。 delay_10us(10); send_com_init(0x01);//清除显示 delay_ms(10); send_com_init(0x06);//指定在资料写入或读取时,光标的移动方向,DDRAM的地址计数器(AC)加1。 } //**********写准备*************************** void WR_ZB(void) { send_com(0x34); send_com(LCD_Y); send_com(LCD_X); send_com(0x30); } //*********取数送显示****************************** void QUSHU(const unsigned char *shu) { for (;COUNT!=0;COUNT--) { send_data(*shu++); delay_ms(80); } } //*********Flash****************************** void flash(void) { send_com(0x08);//关闭显示 delay_ms(250); send_com(0x0c);//开显示,关光标,不闪烁。 delay_ms(250); send_com(0x08);//关闭显示 delay_ms(250); send_com(0x0c);//开显示,关光标,不闪烁。 delay_ms(250); send_com(0x08);//关闭显示 delay_ms(250); } //**********显示图形子程序********************* void PHO_DISP(const unsigned char *s) { COUNT3=0X02; LCD_X=0X80; for (;COUNT3!=0;COUNT3--) { LCD_Y=0X80; COUNT2=0X20;//32 for (;COUNT2!=0;COUNT2--) { COUNT1=0X10;//16 WR_ZB(); for (;COUNT1!=0;COUNT1--) { send_data(*s++); } LCD_Y+=1; } LCD_X=0X88; } send_com(0x36); send_com(0x30); } //******************显示点阵子程序************ void LAT_DISP(void) { COUNT3=0X02; LCD_X=0X80; for (;COUNT3!=0;COUNT--) { LCD_Y=0X80; F0=0; COUNT2=0X20; for (;COUNT2!=0;COUNT--) { COUNT1=0X10; WR_ZB(); if (F0!=0) { LCD_DATA=LCD_DATA2; } else LCD_DATA=LCD_DATA1; for (;COUNT1!=0;COUNT1--) { send_data(LCD_DATA); } LCD_Y+=1; F0=!F0; } LCD_X=0X88; } send_com(0x36); send_com(0x30); } void main(void) { TRISC=0X00; TRISD=0X00; PORTD=0X00; PORTC=0X00; initial_LCD(); while (1) { clear_LCD(); PHO_DISP(TU_TAB1);//显示图形 while (1); } }
|
看《匠人手记》,与匠人同行!北航出版,正在热卖!
|
Re:12864 LCD图形显示程序例子 feirtian(游客)发表评论于2008-8-16 23:43:00 个人主页 | 引用 | 返回 | 删除 | 回复 |
|
怎么样显示波形? 程序该怎么编 谢谢
|
看《匠人手记》,与匠人同行!北航出版,正在热卖!
|
回复:12864 LCD图形显示程序例子 zybzyb(游客)发表评论于2006-4-23 12:43:00 个人主页 | 引用 | 返回 | 删除 | 回复 |
|
 有啊,是有PROTEL 99画的传不上来,你有邮箱吗,我以邮件发给你吧,我写的这个程序是在LCD显示一个“你”字但人仿真时LCD的地址会在单片机向LCD写入两个数据时会自动加1。所以在每个显示单元只显示几点。以下是我的程序:
;本程序是在LCD上显示"你"
list p=16f877
include <p16f877.inc>
DI EQU 0
E EQU 1
#define rst portd,2
qq equ 30h
nn EQU 33H
COUNTER EQU 34H
cnt EQU 35H
nt EQU 36H
pp equ 37h
org 00h
main nop
bsf status,rp0
bcf status,rp1
clrf trisc
clrf trisd
bcf status,rp0
clrf portc
clrf portd
bsf rst
BCF PORTD,E
movlw 01h
movwf counter
call wri
MOVLW 30H ;功能设定为基本指令集动作。
MOVWF COUNTER
CALL WRi
MOVLW 2H
MOVWF COUNTER
CALL WRI
MOVLW 04H
MOVWF COUNTER
CALL WRi
MOVLW 0cH
MOVWF COUNTER
CALL WRi
movlw 01h
movwf counter
call wri
movlw 80h
movwf counter
call wri
clrf nn
Lp1 MOVLW 10H
MOVWF cnt ;列计数寄存器
MOVLW 80H ; 设定X地址,即让“你”显示在第一行第一列
MOVWF COUNTER
CALL WRI
LP MOVF nn,W ; 调显示数据
CALL NI
MOVWF COUNTER
CALL WRD
INCF nn,F
DECFSZ cnt,F
GOTO lp
GOTO $
WRI ;写指令子程序
BCF PORTD,E
BCF PORTD,DI
MOVF COUNTER,W
MOVWF PORTC
;CALL DELAY10
BSF PORTD,E
;CALL DELAY10
BCF PORTD,E
;CALL DELAY10
;CALL DELAY10
;CALL DELAY10
RETlw 0
WRD ;写数据子程序
BCF PORTD,E
BSF PORTD,DI
MOVF COUNTER,W
MOVWF PORTC
;CALL DELAY10
BSF PORTD,E
;CALL DELAY10
BCF PORTD,E
;CALL DELAY10
;CALL DELAY10
; CALL DELAY10
RETlw 0
NI ADDWF PCL,F
retlw 40H
retlw 20H
retlw 10H
retlw 0FCH
retlw 23H
retlw 10H
retlw 8CH
retlw 67H
retlw 04H
retlw 0F4H
retlw 04H
retlw 44H
retlw 94H
retlw 8CH
retlw 00H
retlw 00H
retlw 40H
retlw 30H
retlw 00H
retlw 77H
retlw 80H
retlw 81H
retlw 88H
retlw 92H
retlw 0B4H
retlw 83H
retlw 80H
retlw 0E0H
retlw 00H
retlw 11H
retlw 60H
retlw 00H
retlw 00h
DELAY10
MOVLW 2H
MOVWF 7EH
DELAY2 MOVLW 0C7H
MOVWF 7FH
DELAY1 NOP
NOP
DECFSZ 7FH,F
GOTO DELAY1
DECFSZ 7EH,F
GOTO DELAY2
RETlw 0
DELAY100
MOVLW 0f0H
MOVWF 40H
DELAY20 MOVLW 0C7H
MOVWF 41H
DELAY00 NOP
NOP
DECFSZ 41H,F
GOTO DELAY00
DECFSZ 40H,F
GOTO DELAY20
RETlw 0
END
|
看《匠人手记》,与匠人同行!北航出版,正在热卖!
|
求助谢谢 zybzyb(游客)发表评论于2006-4-21 23:42:00 个人主页 | 引用 | 返回 | 删除 | 回复 |
|
 啊,朋友看来我们有同感受。我也被这家公司的液晶显示屏困扰了很久,我在网上找了很久PIC在这款TG12864E-01的现在我看到你的程序心理特高兴,不过我还是有点失望因为我还不懂C语言。请问有没有汇编言写的啊,最好是TG12864E-01的这款不过我想TS ,TG 都差不了多远吧下面是TG 12864E-01的说明书,能否照应下朋友,我找了好久了,谢谢
图形点阵液晶显示模块使用手册 TG12864E(L) 广州铜铧电子有限公司 TINSHARP ELECTRONICS CO,LTD 公司地址:广州市天河区大观路新塘商贸园C 幢3 楼 电话:(020)82374566 82342879 82342837 传真:(020)82346155 网址:HTTP://WWW.TINSHARP.COM E-mail:TINSHARP@PUBLIC.GUANGZHOU.GD.CN SALES@TINSHARP.COM 广州铜铧电子有限公司 TINSHARP ELECTRONICS CO,LTD 2 目录 1. 概述--------------------------------------------------------------------------3 2. 外形尺寸---------------------------------------------------------------------3 3. 模块主要硬件构成说明--------------------------------------------------4 4. 模块的外部接口-----------------------------------------------------------4 5. 读写操作时序----------------------------------------------------------------5 6. 用户指令集-------------------------------------------------------------------6 7. 显示坐标关系---------------------------------------------------------------11 8. 显示步骤---------------------------------------------------------------------13 9.应用举例--------------------------------------------------------------------15 广州铜铧电子有限公司 TINSHARP ELECTRONICS CO,LTD 3 一、概述 TG12864E 是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及128×64 全点阵液晶 显示器组成。可完成图形显示,也可以8×4 个(16×16 点阵)汉字。 主要技术参数和性能: 1. 电源:VDD:+2.7~ +5V; 模块内自带-10V负压,用于LCD的驱动电压。 2. 显示内容:128(列)×64(行)点 3. 全屏幕点阵 4. 七种指令 5. 与CPU接口采用8位数据总线并行输入输出和8条控制线 6. 占空比1/64 7. 工作温度:-10℃~+60℃,储存温度:-20℃~+70℃,可选择宽温:-20℃~+70℃ 二、外形尺寸图 表1 ITEM NOMINAL DIMEN UNIT 模块体积93.0x70.0x13 mm 视域72.0x40.0 mm 行列点阵数128×64 DOTS 点距离0.52x0.52 mm 点大小0.48x0.48 mm 广州铜铧电子有限公司 TINSHARP ELECTRONICS CO,LTD 4 三、模块主要硬件构成说明 结构框图: 背光方式背光颜色背光电流 LED 背光黄绿色110mA 四、模块的外部接口 外部接口信号如下表2 所示: 表2 管脚号管脚名称LEVER 管脚功能描述 1 VSS 0V 电池地 2 VDD 5.0V 电源电压 3 V0 -- 液晶显示驱动电压输入 4 D/I H/L D/I=“H”,表示DB7~DB0 为显示数据 D/I=“L”,表示DB7~DB0 为显示指令数据 5 R/W H/L R/W=“H”,E=“H”,数据被读到DB7~DB0 R/W=“L”,E=“H→L”,DB7~DB0 的数据被写到IR 或DR 6 E H/L 使能信号:R/W=“L”,E信号下降沿锁存DB7~DB0 R/W=“H”,E=“H”DRAM数据读到DB7~DB0 7 DB0 H/L 数据线 8 DB1 H/L 数据线 9 DB2 H/L 数据线 10 DB3 H/L 数据线 11 DB4 H/L 数据线 12 DB5 H/L 数据线 13 DB6 H/L 数据线 广州铜铧电子有限公司 TINSHARP ELECTRONICS CO,LTD 5 14 DB7 H/L 数据线 15 PSB H/L H:并行模式 L:串行模式 16 NC H/L 17 /RST H/L 复位信号 18 NC -- 19 LEDK 0V 背光接地 20 LEDA +5V 背光电源+ 五、读写操作时序 1. 写操作时序 V V IH1 IL1 RS R/W E DB0-DB7 AS AH AH PW DSW H R C T T T T T T T T Valid data 2. 读操作时序 V V IH1 IL1 RS R/W E DB0-DB7 AS AH AH PW D D H R C T T T T T T T T Valid data 广州铜铧电子有限公司 TINSHARP ELECTRONICS CO,LTD 6 六、用户指令集 1、指令表1:(RE=0:基本指令集) 指令码 指令 RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 说明 执行时间 (540KHZ) 清除显示0 0 0 0 0 0 0 0 0 1 将DDRAM 填满“20H”,并且设定 DDRAM的地址计数器(AC)到“00H” 4.6ms 地址归位0 0 0 0 0 0 0 0 1 X 设定DDRAM 的地址计数器(AC)到 “00H”,并且将游标移到开头原点位置; 这个指令并不改变DDRAM的内容 4.6ms 进入点 设定 0 0 0 0 0 0 0 1 I/D S 指定在资料的读取与写入时,设定游标 移动方向及指定显示的移位 72us 显示状态 开/关 0 0 0 0 0 0 1 D C B D=1:整体显示ON C=1:游标ON B=1:游标位置ON 72us 游标或显示移 位控制 0 0 0 0 0 1 S/C R/L X X 设定游标的移动与显示的移位控制位 元;这个指令并不改变DDRAM的内容 72us 功能设定0 0 0 0 1 DL X 0 RE X X DL=1 (必须设为1) RE=1: 扩充指令集动作 RE=0: 基本指令集动作 72us 设定CGRAM 地址 0 0 0 1 AC5 AC4 AC3 AC2 AC1 AC0 设定CGRAM地址到地址计数器(AC) 72us 设定DDRAM 地址 0 0 1 AC6 AC5 AC4 AC3 AC2 AC1 AC0 设定DDRAM 地址到地址计数器(AC) 72us 读取忙碌标志 (BF)和地址 0 1 BF AC6 AC5 AC4 AC3 AC2 AC1 AC0 读取忙碌标志(BF)可以确认内部动作 是否完成,同时可以读出地址计数器 (AC)的值 0us 写资料到 RAM 1 0 D7 D6 D5 D4 D3 D2 D1 D0 写入资料到内部的RAM (DDRAM/CGRAM/IRAM/GDRAM) 72us 读出RAM 的 值 1 1 D7 D6 D5 D4 D3 D2 D1 D0 从内部RAM 读取资料 (DDRAM/CGRAM/IRAM/GDRAM) 72us 指令表—2:(RE=1:扩充指令集) 指令指令码说明 广州铜铧电子有限公司 TINSHARP ELECTRONICS CO,LTD 7 RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 执行时间 (540KHZ) 待命模式0 0 0 0 0 0 0 0 0 1 将DDRAM 填满“20H”,并且设定 DDRAM的地址计数器(AC)到“00H” 72us 卷动地址或 IRAM地址 选择 0 0 0 0 0 0 0 0 1 SR SR=1:允许输入垂直卷动地址 SR=0:允许输入IRAM地址 72us 反白选择0 0 0 0 0 0 0 1 R1 R0 选择4 行中的任一行作反白显示,并可 决定反白与否 72us 睡眠模式0 0 0 0 0 0 1 SL X X SL=1:脱离睡眠模式 SL=0:进入睡眠模式 72us 扩充功能设 定 0 0 0 0 1 1 X 1 RE G 0 RE=1: 扩充指令集动作 RE=0: 基本指令集动作 G=1 :绘图显示ON G=0 :绘图显示OFF 72us 设定IRAM 地址或卷动 地址 0 0 0 1 AC5 AC4 AC3 AC2 AC1 AC0 SR=1:AC5—AC0为垂直卷动地址 SR=0:AC3—AC0为ICON IRAM地址 72us 设定绘图 RAM地址 0 0 1 AC6 AC5 AC4 AC3 AC2 AC1 AC0 设定CGRAM 地址到地址计数器(AC) 72us TG12864EL 串口接线方式: 备注: 广州铜铧电子有限公司 TINSHARP ELECTRONICS CO,LTD 8 1、当模块在接受指令前,微处理顺必须先确认模块内部处于非忙碌状态,即读取BF标志时BF需为0, 方可接受新的指令;如果在送出一个指令前并不检查BF标志,那么在前一个指令和这个指令中间必须 延迟一段较长的时间,即是等待前一个指令确实执行完成,指令执行的时间请参考指令表中的个别指令 说明。 2“RE”为基本指令集与扩充指令集的选择控制位元,当变更“RE”位元后,往后的指令集将维持在最后 的状态,除非再次变更“RE”位元,否则使用相同指令集时,不需每次重设“RE”位元。 具体指令介绍: 1、清除显示 CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 L L L L L L L L L H 功能:清除显示屏幕,把DDRAM 位址计数器调整为“00H” 2、位址归位 CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 L L L L L L L L H X 功能:把DDRAM 位址计数器调整为“00H”,游标回原点,该功能不影响显示DDRAM 3、位址归位 CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 L L L L L L L H I/D S 功能:把DDRAM 位址计数器调整为“00H”,游标回原点,该功能不影响显示DDRAM 功能:执行该命令后,所设 置的行将显示在屏幕的第一行。显示起始行是由Z 地址计数器控制的,该命令自动将A0-A5位地址送入Z地址 计数器,起始地址可以是0-63 范围内任意一行。Z 地址计数器具有循环计数功能,用于显示行扫描同步,当扫 描完一行后自动加一。 4、显示状态开/关 CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 L L L L L L H D C B 功能: D=1;整体显示ON C=1;游标ON B=1;游标位置ON 5、游标或显示移位控制 CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 L L L L L H S/C R/L X X 功能:设定游标的移动与显示的移位控制位:这个指令并不改变DDRAM的内容 6、功能设定 CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 L L L L H DL X 0 RE X X 广州铜铧电子有限公司 TINSHARP ELECTRONICS CO,LTD 9 功能:DL=1(必须设为1) RE=1;扩充指令集动作RE=0:基本指令集动作 7、设定CGRAM 位址 CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 L L L H AC5 AC4 AC3 AC2 AC1 AC0 功能:设定CGRAM位址到位址计数器(AC) 8、设定DDRAM 位址 CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 L L H AC6 AC5 AC4 AC3 AC2 AC1 AC0 功能:设定DDRAM位址到位址计数器(AC) 9、读取忙碌状态(BF)和位址 CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 L H BF AC6 AC5 AC4 AC3 AC2 AC1 AC0 功能:读取忙碌状态(BF)可以确认内部动作是否完成,同时可以读出位址计数器(AC)的值 10、写资料到RAM CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 H L D7 D6 D5 D4 D3 D2 D1 D0 功能:写入资料到内部的RAM(DDRAM/CGRAM/TRAM/GDRAM) 11、读出RAM 的值 CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 H H D7 D6 D5 D4 D3 D2 D1 D0 功能:从内部RAM读取资料(DDRAM/CGRAM/TRAM/GDRAM) 12、待命模式(12H) CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 L L L L L L L L L H 功能:进入待命模式,执行其他命令都可终止待命模式 13、卷动位址或IRAM 位址选择(13H) CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 L L L L L L L L H SR 功能:SR=1;允许输入卷动位址SR=0;允许输入IRAM位址 广州铜铧电子有限公司 TINSHARP ELECTRONICS CO,LTD 10 14、反白选择(14H) CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 L L L L L L L H R1 R0 功能:选择4 行中的任一行作反白显示,并可决定反白的与否 15、睡眠模式(015H) CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 L L L L L L H SL X X 功能:SL=1;脱离睡眠模式SL=0;进入睡眠模式 16、扩充功能设定(016H) CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 L L L L H H X 1 RE G L 功能:RE=1;扩充指令集动作RE=0;基本指令集动作G=1;绘图显示ON G=0;绘图显示OFF 17、设定IRAM 位址或卷动位址(017H) CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 L L L H AC5 AC4 AC3 AC2 AC1 AC0 功能:SR=1;AC5~AC0 为垂直卷动位址SR=0;AC3~AC0 写ICONRAM位址 18、设定绘图RAM 位址(018H) CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 L L H AC6 AC5 AC4 AC3 AC2 AC1 AC0 功能:设定GDRAM位址到位址计数器(AC) 广州铜铧电子有限公司 TINSHARP ELECTRONICS CO,LTD 11 七、显示坐标关系 1、图形显示坐标 广州铜铧电子有限公司 TINSHARP ELECTRONICS CO,LTD 12 2、汉字显示坐标 X 坐标 Line1 80H 81H 82H 83H 84H 85H 86H 87H Line2 90H 91H 92H 93H 94H 95H 96H 97H Line3 88H 89H 8AH 8BH 8CH 8DH 8EH 8FH Line4 98H 99H 9AH 9BH 9CH 9DH 9EH 9FH 3、字符表 代码(02H---7FH) 广州铜铧电子有限公司 TINSHARP ELECTRONICS CO,LTD 13 八、显示步骤 1、显示资料RAM(DDRAM) 显示资料RAM 提供64×2 个位元组的空间,最多可以控制4 行16 字(64 个字)的中文字型显示,当写 入显示资料RAM时,可以分别显示CGROM、HCGROM 与CGRAM的字型;ST7920A 可以显示三种字型, 分别是半宽的HCGROM 字型、CGRAM 字型及中文CGROM 字型,三种字型的选择,由在DDRAM 中写入 的编码选择,在0000H—0006H的编码中将自动的结合下一个位元组,组成两个位元组的编码达成中文字型的 编码(A140—D75F),各种字型详细编码如下: 1、显示半宽字型:将8 位元资料写入DDRAM中,范围为02H—7FH 的编码。 2、显示CGRAM字型:将16 位元资料写入DDRAM 中,总共有0000H,0002H,0004H,0006H 四种编 码。 3、显示中文字形:将16 位元资料写入DDRAMK ,范围为A1A1H—F7FEH的编码。 绘图RAM(GDRAM) 绘图显示RAM提供64×32 个位元组的记忆空间,最多可以控制256×64点的二维也纳绘图缓冲空间,在 更改绘图RAM时,先连续写入水平与垂直的坐标值,再写入两个8位元的资料到绘图RAM,而地址计数器(AC) 会自动加一;在写入绘图RAM的期间,绘图显示必须关闭,整个写入绘图RAM的步骤如下: 1、关闭绘图显示功能。 2、先将水平的位元组坐标(X)写入绘图RAM地址; 3、再将垂直的坐标(Y)写入绘图RAM地址; 4、将D15——D8 写入到RAM中; 5、将D7——D0 写入到RAM中; 6、打开绘图显示功能。 绘图显示的记忆体对应分布请参考表 2、游标/闪烁控制 ST7920A 提供硬体游标及闪烁控制电路,由地址计数器(address counter)的值来指定DDRAM 中的游标 或闪烁位置。 九、应用举例 DI EQU P3.7 E EQU P3.5 RST EQU P3.2 cs1 equ p3.0 cs2 equ p3.1 广州铜铧电子有限公司 TINSHARP ELECTRONICS CO,LTD 14 ;本测试程序中CS1,CS2=H ,RW =>GND ORG 0000H LJMP MAIN ORG 0003H LJMP LINTO ORG 0100H MAIN: NOP clr ea clr cs1 clr cs2 CLR E lcall init MOV 34H,#0ffH LCALL DISPLAY_ALL lcall dly100 MOV 34H,#00H LCALL DISPLAY_ALL lcall plybw lcall DLY100 MOV 34H,#00H LCALL DISPLAY_ALL MOV R1,#0C0H ;START = 0 LCALL WRI mov 31h,#0 mov 30h,#0 MOV 30H,#0 ;x MOV 31H,#8 ;y MOV DPTR,#HZI7 ;您 LCALL outhz MOV 30H,#0 MOV 31H,#40 MOV DPTR,#HZI8 ;好 广州铜铧电子有限公司 TINSHARP ELECTRONICS CO,LTD 15 LCALL outhz MOV 30H,#4 MOV 31H,#16 MOV DPTR,#HZI1 铜 LCALL outhz MOV 30H,#4 MOV 31H,#32 MOV DPTR,#HZI2 ;铧 LCALL outhz MOV 30H,#6 MOV 31H,#0 MOV DPTR,#HZI3 ;电 LCALL outhz MOV 30H,#6 MOV 31H,#16 MOV DPTR,#HZI4 ;子 LCALL outhz MOV 30H,#6 MOV 31H,#32 MOV DPTR,#HZI5 ;公 LCALL outhz MOV 30H,#6 MOV 31H,#48 MOV DPTR,#HZI6 ;司 LCALL outhz LCALL DLY100 LJMP MAIN LINTO: NOP NOP RETI init: CLR RST ;RESET LCALL DLY50 LCALL DLY50 LCALL DLY50 LCALL DLY50 广州铜铧电子有限公司 TINSHARP ELECTRONICS CO,LTD 16 setb rst MOV R1,#3FH ;DISPLAY ON LCALL WRI MOV R1,#0C0H ;START = 0 LCALL WRI MOV 34H,#00H LCALL DISPLAY_ALL ret DISPLAY_ALL: MOV R1,#0C0H ;START = 0 LCALL WRI MOV R7,#8 ;DISPLAY DATA= 34H MOV R2,#0B8H LOP1: MOV A,R2 MOV R1,A ; X+1 LCALL WRI MOV R1,#40H ; Y LCALL WRI MOV R5,#64 LOP11: MOV R1,34H LCALL WRD DJNZ R5,LOP11 INC R2 DJNZ R7,LOP1 ret outhz: ;30h=x (0-6) 31h=y(0-63-16) MOV R1,#0C0H ;START = 0 LCALL WRI MOV R7,#2 MOV A,#0B8H ADD A,30H ;B8+X MOV 30H,A ;A>>30H HZ2: ; MOV A,R2 广州铜铧电子有限公司 TINSHARP ELECTRONICS CO,LTD 17 MOV R1,30H ; X+1 LCALL WRI MOV A,#40H ; Y ADD A,31H ; MOV 31H,A ;40+Y MOV R1,A LCALL WRI MOV R5,#16 HZ1: MOV A,#00H MOVC A,@A+DPTR MOV R1,A LCALL WRD LCALL DLY10 INC DPTR DJNZ R5,HZ1 INC 30H DJNZ R7,HZ2 RET plybw: MOV R1,#0C0H ;START = 0 LCALL WRI mov 30h,#0 mov 31h,#0 mov dptr,#bw MOV R7,#8 MOV A,#0B8H ADD A,30H ;B8+X MOV 30H,A ;A>>30H HZ2bw: ; MOV A,R2 MOV R1,30H ; X+1 LCALL WRI ; MOV A,#40H ; Y ;ADD A,31H ;MOV 31H,A ;40+Y ;MOV R1,A mov R1,#40h LCALL WRI 广州铜铧电子有限公司 TINSHARP ELECTRONICS CO,LTD 18 MOV R5,#64 HZ1bw: MOV A,#00H MOVC A,@A+DPTR MOV R1,A LCALL WRD LCALL DLY10 INC DPTR DJNZ R5,HZ1bw INC 30H DJNZ R7,HZ2bw RET WRI: ;写指令子程序 CLR E CLR DI MOV P1,R1 lcall DLY10 SETB E LCALL DLY10 CLR E LCALL DLY10 LCALL DLY10 LCALL DLY10 RET WRD: ;写数据子程序 CLR E SETB DI MOV P1,R1 LCALL DLY10 SETB E LCALL DLY10 CLR E LCALL DLY10 LCALL DLY10 LCALL DLY10 RET DLY10:MOV R3,#01H DL1:MOV R4,#01H DL2:MOV R6,#0FH 广州铜铧电子有限公司 TINSHARP ELECTRONICS CO,LTD 19 DL3:DJNZ R6,DL3 DJNZ R4,DL2 DJNZ R3,DL1 RET DLY50:MOV R3,#04H DL111:MOV R4,#0FH DL222:MOV R6,#0AFH DL333:DJNZ R6,DL333 DJNZ R4,DL222 DJNZ R3,DL111 RET DLY100:MOV R3,#06H DL11:MOV R4,#0FFH DL22:MOV R6,#0FFH DL33:DJNZ R6,DL33 DJNZ R4,DL22 DJNZ R3,DL11 RET ORG 0300H WELCOM: DB 57H,65H,6CH,63H,6FH,6DH,65H,20H,20H,20H,20H,20H,20H,20H DB 20H,20H,20H,20H,20H,20H ORG 0320H TINSHARP: DB 54H,49H,4EH,53H,48H,41H,52H,50H,20H,4CH,43H,4DH,20H,20H DB 20H,20H,20H,20H,20H,20H ORG 0340H HZI1: ; 铜 DB 080H,080H,070H,0C8H,056H,048H,0F8H,010H,010H,048H,048H,028H,0F8H,008H,000H,000H DB 000H,000H,002H,02FH,012H,008H,03FH,000H,00FH,009H,027H,040H,07FH,000H,000H,000H HZI2: ; 铧 DB 000H,080H,060H,090H,05EH,050H,030H,010H,0FCH,044H,0FEH,010H,008H,080H,000H,000H DB 000H,000H,002H,03FH,012H,00AH,008H,008H,00BH,048H,07CH,009H,009H,005H,000H,000H HZI3: ;电 DB 00H,0f8H, 48H, 48H, 48H, 48H,0ffH, 48H, 48H, 48H, 48H,0fcH, 08H, 00H, 00H, 00H DB 00H, 07H, 02H, 02H, 02H, 02H, 3fH, 42H, 42H, 42H, 42H, 47H, 40H, 70H, 00H, 00H HZI4: ;子 DB 80H, 80H, 82H, 82H, 82H, 82H, 82H,0e2H,0a2H, 92H, 8aH, 86H, 80H,0c0H, 80H, 00H DB 00H, 00H, 00H, 00H, 00H, 40H, 80H, 7fH, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H HZI5: ;公 广州铜铧电子有限公司 TINSHARP ELECTRONICS CO,LTD 20 DB 00H, 00H, 80H, 40H, 30H, 0cH, 00H,0c0H, 06H, 18H, 20H, 40H, 80H, 80H, 80H, 00H DB 01H, 01H, 00H, 30H, 28H, 24H, 23H, 20H, 20H, 28H, 30H, 60H, 00H, 01H, 00H, 00H HZI6: ;司 DB 10H, 10H, 92H, 92H, 92H, 92H, 92H, 92H,0d2H, 9aH, 12H, 02H,0ffH, 02H, 00H, 00H DB 00H, 00H, 3fH, 10H, 10H, 10H, 10H, 10H, 3fH, 00H, 40H, 80H, 7fH, 00H, 00H, 00H HZI7: ;您 DB 40H, 20H, 10H,0fcH, 23H, 10H, 8cH, 67H, 04H,0f4H, 04H, 44H, 94H, 8cH, 00H, 00H DB 40H, 30H, 00H, 77H, 80H, 81H, 88H, 92H,0b4H, 83H, 80H,0e0H, 00H, 11H, 60H, 00H HZI8: ;好 DB 10H, 10H,0f0H, 1fH, 10H,0f0H, 80H, 82H, 82H, 82H,0e2H, 92H, 8aH,0c6H, 80H, 00H DB 40H, 22H, 15H, 08H, 14H, 63H, 00H, 00H, 40H, 80H, 7fH, 00H, 00H, 00H, 00H, 00H bw: DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00h, 00H, 00H, 00H, 00H, 00H DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00h, 00H, 00H, 00H, 00H, 00H DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00h, 00H, 00H, 00H, 00H, 00H DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00h, 00H, 00H, 00H, 00H, 00H DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H,0ffh,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H,0ffh,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00h, 00H, 00H, 00H, 00H, 00H DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00h, 00H, 00H, 00H, 00H, 00H DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00h, 00H, 00H, 00H, 00H, 00H DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00h, 00H, 00H, 00H, 00H, 00H DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H,0ffh,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H,0ffh,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00h, 00H, 00H, 00H, 00H, 00H DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00h, 00H, 00H, 00H, 00H, 00H DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00h, 00H, 00H, 00H, 00H, 00H DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00h, 00H, 00H, 00H, 00H, 00H DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H,0ffh,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H,0ffh,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00h, 00H, 00H, 00H, 00H, 00H 广州铜铧电子有限公司 TINSHARP ELECTRONICS CO,LTD 21 DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00h, 00H, 00H, 00H, 00H, 00H DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00h, 00H, 00H, 00H, 00H, 00H DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00h, 00H, 00H, 00H, 00H, 00H DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H,0ffh,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H,0ffh,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH END 显示流程图 入口 NO YES 显示完否 初始化 调用显示程序 延时 广州铜铧电子有限公司 TINSHARP ELECTRONICS CO,LTD 22 写指令程序 WRI: CLR E CLR DI MOV P1,R1 CALL DELAY SETB E CALL DELAY CLR E CALL DELAY CALL DELAY RET 返回 清E1,D/I,E1=D/I=0 送命令到P1口 延时0 置E为1 延时 E=0 延时 广州铜铧电子有限公司 TINSHARP ELECTRONICS CO,LTD 23 入口 返回 置E=0,D/I=1 送数据到P1口 延时 置E=1 延时 置E=0 延时 WRD: CLR E SETB DI MOV P1,R1 CALL DELAY SETB E CALL DELAY CLR E CALL DELAY CALL DELAY RET 广州铜铧电子有限公司 TINSHARP ELECTRONICS CO,LTD 24 返回
|
看《匠人手记》,与匠人同行!北航出版,正在热卖!
|
回复:12864 LCD图形显示程序例子 希望尽快回复(游客)发表评论于2006-3-22 11:21:00 个人主页 | 引用 | 返回 | 删除 | 回复 |
|
请问你有这个的电路原理图吗?
|
看《匠人手记》,与匠人同行!北航出版,正在热卖!
|