一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
查看: 13598|回复: 26
收起左侧

[其他综合] 一乐来电显示12864液晶串行方式测试!

  [复制链接]
发表于 2011-1-19 01:23 | 显示全部楼层 |阅读模式
这个好DD买回来好久了,一直没有时间去具体玩,只是根据朋友们的资料简单的把IO口线和控制线引出来玩了下,这几个晚上我事不多,整理“垃圾堆”时翻出了这个屏,于是拿来研究下串行方式驱动。
照着坛子上的资料图:确定了D0-D7;PSB;AO,REST,等,
官方资料说明:D6:串行时钟;D7:串行数据;AO命令/数据选择;REST复位;CS1芯片选择,此屏只有一个芯片,所以CS1固定不用改变。接着把电路板上的PSB线跟电源线断开后接地,
1.JPG 2.JPG

和实验板连上杜邦线,写了简单的测试程序,可是,,无显示,修改时序,无显示,,换成并口,正常显示,,,就这样搞了两个晚上,没有结果。郁闷,今晚回头再看资料,对比了一些其他资料的管脚图,好像有区别,特别是数据D7旁边的那个PSB引脚,再过去就是电容脚位,而资料上的是D7过去是电源正负极,
10010914081b28aaead7fe59bc.jpg 另一张是另一张图 7565.bmp
对比可以看出有区别,再结合其他pdf的资料,可以确定是PSB引脚有误,以下是修改过程:
3.JPG
把原来引出的“PSB”线(现在确定是正电源线)再接到电源正极。
断开真正的PSB与电源的铜皮走线,加一根线引出接地,
重新上电,哈哈,
4.JPG
赶紧固定好,用热熔胶,呵呵
固定好.JPG
这样,除去电源线,4根线就可以驱动,简单,而且速度很快,官方资料描述是各个指令响应均小于1μS,ns级别。
最后修改下程序, 最后.JPG
另外,这张图应该是错的, 7565.bmp
中间位置跟电容连接的应该是正极吧?我不敢肯定,电容的接法有多种也不一定。
本来要画PCB图重新做成模块的,但这个屏买回来时我已经拆下过一次了,感光干膜制板失败后又把屏装回去,软排线焊得不成样子,现在再拆的话,恐怕就。。。杯具了,仅有一个,呵呵不敢再乱来了,嘿嘿,改天再进几个。
以下是显示一行汉字的程序,汇编的,还没学C,惭愧

XPOS  EQU 20H;页地址;
YPOS  EQU 21H;列地址
HZ_NUM EQU 22H;
;======================点阵接口定义=================================
LCD_DATA  BIT P1.3        ;液晶数据接口   
LCD_SCL   BIT P1.2;      串行时钟接口;     
LCD_AO    BIT P1.1      ;液晶数据指令选择
LCD_RST   BIT P1.0      ;液晶复位RST
ORG 0000H;
JMP START;
ORG 0030H;

START:
       LCALL LCD_INIT;
       LCALL CLR_LCD;
;============第一行显示8个汉字==================================      
       MOV XPOS,#0;范围:0-7对应1-8页;
       MOV YPOS,#0;范围:0-127;对应1-128列   
       MOV HZ_NUM,#8;显示汉字数;              
       MOV DPTR,#HZ_TAB;载入汉字点阵数据首址
       LCALL HZ_PLAY;
      
       JMP $

;======16*16点阵数据发送程序===============================================
;纵向取模,字节倒序方式
HZ_PLAY:
       ;MOV XPOS,#0;范围:0-7对应1-8页;
       ;MOV YPOS,#0;范围:0-127;对应1-128列   
       ;MOV HZ_NUM,#8;显示汉字数;              
       ;MOV DPTR,#HZ_TAB;载入汉字点阵数据首址
HZ:  CALL POS_SEND; 定位页列坐标      
       MOV R3,#2;一个汉字分上下部分
HZ1: MOV R2,#16;一部分16个数据
HZ2: CLR A;
       MOVC A,@A+DPTR;;
       LCALL W_LCD_DAT;
       INC DPTR;
       INC YPOS;同步跟踪列地址,用于发送多个汉字时调整列地址;
       DJNZ R2,HZ2;   等待半个汉字数据发送完
;=========修改行,列=======================   
       DJNZ R3,HZ3;  显示完一个汉字?
       JMP HZ4;      
HZ3:   INC XPOS;
       MOV A,YPOS;
       SUBB A,#16;
       MOV YPOS,A;
       CALL POS_SEND;
       JMP HZ1;继续发送下半部分汉字数据      
HZ4:   DJNZ HZ_NUM,HZ5;汉字数显示完成
       RET;              
HZ5:   DEC XPOS;
       CALL POS_SEND;
       JMP HZ;   
      
;=============行列调整发送===================
;先发送页地址;再发送列高4位地址;接着发送列第四位地址;         
POS_SEND:
      MOV A,XPOS;
      ADD A,#0B0H;
      CALL W_LCD_COM;
      MOV A,YPOS;
      PUSH ACC;
      ANL A,#11110000B;屏蔽低位列地址;
      SWAP A;
      ADD A,#10H;
      CALL W_LCD_COM;
      POP ACC;
      ANL A,#00001111B;屏蔽高位列地址;
      CALL W_LCD_COM;
      RET;
;===================写液晶控制命令=====================
;串行方式,高位在前,下降沿输入。
W_LCD_COM:
         CLR LCD_AO   ;写的是命令;
         MOV R4,#8;              
SEND_COM: ;
         CLR C;
         RLC A;
         MOV LCD_DATA,C;   
         CLR LCD_SCL;
         SETB LCD_SCL;
         DJNZ R4,SEND_COM;
         RET      
        
;====================写液晶数据=========================
;串行方式,高位在前,下降沿输入。
W_LCD_DAT:              
         SETB LCD_AO;   写的是数据;
         MOV R4,#8;        
SEND_DAT: ;         
         CLR C;
         RLC A;
         MOV LCD_DATA,C;
         CLR LCD_SCL;
         SETB LCD_SCL;
         DJNZ R4,SEND_DAT;
         RET               


;================初始化=========================================
LCD_INIT:        
        CLR LCD_RST
        NOP
        NOP
        SETB LCD_RST
         MOV A,#0E2H       ;复位;
         ACALL W_LCD_COM;         
         MOV A,#0AFH     ;0AEH/0AFH 关/开液晶显示
         CALL W_LCD_COM        
        MOV A,#0A2H        ;0A2H/0A3H (1/9)/(1/7) LCD偏压比率设置
        CALL W_LCD_COM      
        MOV A,#23H          ;20H-27H V5电压调整器的内部电阻比设置
        CALL W_LCD_COM        
        MOV A,#81H          ;可编程电压调整模式设置  
        CALL W_LCD_COM      
        MOV A,#30H         ;0H-3FH 电压调整模设置寄存器指令数据V5小-大
        CALL W_LCD_COM      
        MOV A,#0D2H         ;驱动模式设置
        CALL W_LCD_COM      
        MOV A,#0            ;0C0H/0/40H/80H 1/2/3/4 模式选择寄存器设置
        CALL W_LCD_COM        
        MOV A,#2FH          ;28H/2CH/2EH/2FH;电源电路功能
        CALL W_LCD_COM        ;推进电路/电压调节电路/电压跟随电路        
        MOV A,#0C0H        ;0C0H/0C8H 行输出模式选择正向/反向
        CALL W_LCD_COM
        MOV A,#0A0H        ;0A0H/0A1H 列地址方向选择
        CALL W_LCD_COM        
        MOV A,#0A4H        ;0A4H/0A5H 全屏正常显示/全点亮指令
        CALL W_LCD_COM
        MOV A,#0A6H        ;0A6H/0A7H 正相反相显示控制指令,RAM中数据不变
        CALL W_LCD_COM      
        ;MOV A,#0ACH        ;0ACH/0ADH OFF/ON 静态指示器控制指令
        ;CALL W_LCD_COM
        ;MOV A,#0H        ;0/1/2/3
        ;CALL W_LCD_COM        
        ;MOV A,#0B0H        ;0B0-0B8H 设置显示起始页地址
        ;CALL W_LCD_COM
        ;MOV A,#40H        ;40H-7FH 设置显示起始行对应RAM行号
        ;CALL W_LCD_COM
        RET

;====================清屏====================================
CLR_LCD:MOV R0,#8   
D1:     MOV A,#0B0H-1
        ADD A,R0
        CALL W_LCD_COM;写液晶控制命令
        MOV A,#00H;;;;;;;;;列低四位;
        CALL W_LCD_COM;写液晶控制命令
        MOV A,#10H;液晶Y地址控制指令+10H;列高四位;
        CALL W_LCD_COM;写液晶控制命令        
        MOV R1,#128
D2:     MOV A,#00H;
        CALL W_LCD_DAT;写液晶数据        
        DJNZ R1,D2
        DJNZ R0,D1
        RET



HZ_TAB:
;想显示什么自己加吧

END

用的字幕提取软件:zimo221
设置如下(取模方式跟程序编写有关)
字模.JPG

评分

参与人数 1一乐金币 +10 收起 理由
无锡风 + 10 稽古振今

查看全部评分

 楼主| 发表于 2011-1-19 01:33 | 显示全部楼层
忘了感谢之前提供此屏资料的朋友们!谢谢。
深夜发帖,困了,睡觉去。
发表于 2011-1-19 02:16 | 显示全部楼层
顶 ~!  飘过~!
发表于 2011-1-19 13:50 | 显示全部楼层
好!!!!!!!
发表于 2011-1-19 22:10 | 显示全部楼层
顶!
我只是做了并口模块插在了板子的1602座子上,也想玩玩串口,我淘到的屏可以自己改的不多。
问一下,PSB是第二根还是第三根线呀?
 楼主| 发表于 2011-1-20 00:37 | 显示全部楼层
原来板子上的2、3根好像是连在一起的,pcb上也是,我直接焊接一条线出来当PSB用,正常,看来,其中一根是空脚位,因为接电源正和电源负,对串并行传输无影响。
发表于 2011-1-20 11:01 | 显示全部楼层
这个。。。俺买的东西(除了元件)大部分都闲着呢。。。。

希望过年的时候能有空。
发表于 2011-1-20 20:08 | 显示全部楼层
实验成功!串口就是爽。
至于那个电容接地还是接正,那个图和一乐11264提供的那个一样,我在11264上试验过,接正接负还是不接都行。这个来电显示12864液晶屏上没试过。
发表于 2011-1-21 22:15 | 显示全部楼层
本帖最后由 zydl123 于 2011-1-21 22:26 编辑

你才发现呀,其实这两个图中都有错误,我在几个地方发了的https://www.yleee.com.cn/viewthread. ... tra=page%3D1&page=6
https://www.yleee.com.cn/viewthread. ... =&highlight=&page=2
PCB板的https://www.yleee.com.cn/viewthread. ... e=0&page=4#pid60600
https://www.yleee.com.cn/viewthread. ... e=0&page=4#pid60600
你是把上图的2,3引脚切断再接地,就成为串行方试了
1221211.JPG
发表于 2011-1-21 22:57 | 显示全部楼层

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-3-29 08:18 , Processed in 0.068432 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表