导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→为什么我买的液晶显示模块(1601)第二行(后面8个字符)不[demon_3000]

 *第29455篇: 为什么我买的液晶显示模块(1601)第二行(后面8个字符)不能显示?

  
楼 主:demon_3000 2005年1月29日10:55
 为什么我买的液晶显示模块(1601)第二行(后面8个字符)不能显示?
我功能设置为0x38,显示地址设置为:第一行->  0x80,显示正常;第二行->  0xc0不能显示!!
  
2楼:leaf 2005年1月29日21:49
 answer
1601液晶屏物理上是16x1, 逻辑上是8x2
我也花了很长时间才弄明白的,后来找到手册后一看就明白为什么这么设计的。
  
3楼:demon_3000 2005年1月30日13:51
 谢谢!!那么他们的地址又分别是多少呢?我如何设置才能使后半行显示出来呢?
  
4楼:哈佛 2005年1月30日17:49
 查查硬件是不是有问题
换一块试试
  
5楼:demon_3000 2005年2月18日18:11
 我试过了的,还是不行
  
6楼:demon_3000 2005年2月19日11:01
 谢谢你,虽然还没有找到我想要的答案!
  
7楼:哈佛 2005年2月19日17:12
 给你参考例子
;1621driver.asm
;HT48r30 control HT1621
;port:
;    PB1 -- datum
;    PB2 -- WRB
;    PB3 -- CSB
;    PB4 -- RDB
; OSC :   Ext. Crystal
; WDT clock source:  Disable WDT
; input type PA:  Sshmitt Trigger
; Pull-high PA:    Pull-high PA
; Pull-high PB:    Pull-high PB
; BZ/BZB :   BZ ENABEL/BZB DISABLE
;     Fsys:   4M

include ht48r30a-1.inc

csb     equ  pb.3 
csbc    equ  pbc.3  
wrb     equ  pb.2  
wrbc    equ  pbc.2  
datum   equ  pb.1 
datumc  equ  pbc.1 
rdb equ pb.4
rdbc equ pbc.4
lig equ pc.3

;----------------------------
num_mem equ [7fh]
;----------------------------
;delay 5us
d_1  macro
 jmp $+1
 jmp $+1
 nop
endm
;-----------
lcddriver .section  'data'
count  db ?   ;count some cycle
code_datum db ?   ;command code or memory datum bits
code_datum1 db ?   ;only used in read_modify_write mode
mem_addr db ?   ;memorty address for selecting segment

temp_da  db ?
t_addr_h db ?   ;just a buffer
;----------------------------
 
lock  .SECTION 'CODE'
  org   00h
                         
  jmp  start
  org  04h
  reti     
  org  08h
  reti   
           
start:                   
  clr  pb
  set  csb
  clr  pbc
  set  pbc.0
  clr  pc
  clr  pcc
  clr  intc
           
  mov  a, 50h
  mov  num_mem, a
  mov  a, 20h
  mov  mp0, a
           
clr_ram:   
  clr  r0
  inc  mp0
  sdz  num_mem
  jmp  clr_ram 
;----------------------------------------
ini_status:
  mov  a, 87h
  mov  tmrc, a
                         
show_k:                  
  set  lig
         mov  a, 01h    ;SYS ENABLE
  mov  code_datum, a
  call  send_command  
LO: 
  mov  a, 029h    ;4com;1/3bias
  mov  code_datum, a
  call  send_command
           
  mov  a, 3    ;LCD On
  mov  code_datum, a
  call  send_command
  call  clr_lcm
  jmp  $+1
  jmp  $+1
  call  show_lcm
           
  clr  code_datum
  mov  a, 4
  mov  mem_addr, a
  call  read
  mov  a, 0fh
  xor  a, code_datum
  snz  z
  jmp  error  
           
  mov  a, 2
  mov  code_datum, a
  call  send_command
  jmp  $+1
  jmp  $    ;operation is over
error:           
  jmp  $  
;******************************************
;Purpose  : send command
;Parameter: 
;       code_datum : byte
;Return   :          none
;Modified : acc, status
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
send_command proc  
  clr  CSB
  clr  datumC
           
  set  datum
  clr  WRB    ;COMMAND ID '100'
  d_1                               
  set  WRB                  ;1
  nop      
  clr  datum    ;00
  clr  WRB
  d_1      
  set  WRB                 
  nop      
  CLR  WRB
  d_1      
  set  WRB                 
    
  mov  A, 8                  ; send code
  mov  count, A
LOOP1:                   
  clr  datum
  sz  code_datum.7
  set  datum
  rl  code_datum
  clr  WRB
  d_1      
  set  WRB
  sdz      count
  jmp  loop1
           
  clr  WRB
  d_1      
  set  WRB
  nop      
  set  CSB    ;close csb signal,not selecting the chip
  ret  
send_command endp
;-------------------------------
;Purpose  : write datum to 1621
;Parameter: 
;       code_datum : byte
; mem_addr   : byte
;Return   :          none
;Modified : acc, status
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
write:
  clr  CSB
  clr  datumc
           
  set  datum
  clr  WRB    ;WRITE mode ID '101'
  d_1      
  set  WRB                
  
  clr  datum   
  clr  WRB
  d_1      
  set  WRB       
            
  set  datum
  clr  WRB
  d_1      
  set  WRB         
                  
  mov  a, 6
  mov  count, a
writeloop1:              
  clr  datum
  sz  mem_addr.5   ;sending memory address for selecting segment
  set  datum
  clr  WRB
  d_1      
  set  WRB
  rl  mem_addr
  sdz  count
  jmp  writeloop1
                  
  mov  a, 4
  mov  count, a
writeloop2:              
  clr  datum
  sz  code_datum.0   ;sending memory content for deciding comments's state
  set  datum
  clr  WRB
  d_1      
  set  WRB
  rr  code_datum
  sdz  count
  jmp  writeloop2          
  set  CSB         
  ret
;-------------------------------------
;Purpose  : read datum from 1621
;Parameter: 
; mem_addr   : byte
;Return   : 
;       code_datum : byte
;Modified : acc, status
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
read proc
  clr  CSB
  clr  datumc
           
  set  datum
  clr  WRB    ;READ mode ID '110'
  d_1      
  set  WRB                
           
  clr  WRB
  d_1      
  set  WRB       
            
  clr  datum
  clr  WRB
  d_1      
  set  WRB         
                  
  mov  a, 6
  mov  count, a
readloop1:
  clr  datum
  sz  mem_addr.5   ;sending memory address for selecting segment
  set  datum
  clr  WRB
  d_1      
  set  WRB
  rl  mem_addr
  sdz  count
  jmp  readloop1
                  
  set  datumc
  mov  a, 4
  mov  count, a
readloop2:               
  clr  RDB
  d_1      
  set  RDB
  rr  code_datum
  clr  code_datum.3
  sz  datum    ;sending memory content for deciding comments's state
  set  code_datum.3
  sdz  count
  jmp  readloop2
           
  mov  a, 0fh
  andm  a, code_datum
                  
  set  CSB
  ret
read endp 
;------------------------------------------
;-------------------------------------
;Purpose  : read datum from 1621, then write a datum in the same register
;Parameter: 
; mem_addr   : byte
;Return   : none
;Modified : acc, status
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

rm_write proc
 
  clr  CSB
  clr  datumc
           
  set  datum
  clr  WRB    ;READ-MODIFY-WRITE mode ID  '101'
  d_1      
  set  WRB                
           
  clr  datum   
  clr  WRB
  d_1      
  set  WRB       
            
  set  datum
  clr  WRB
  d_1      
  set  WRB         
                  
  mov  a, 6
  mov  count, a
rmwloop1:                
  clr  datum
  sz  mem_addr.5   ;sending memory address for selecting segment
  set  datum
  clr  WRB
  d_1      
  set  WRB
  rl  mem_addr
  sdz  count
  jmp  rmwloop1
                  
  set  datumc
  mov  a, 4
  mov  count, a
rmwloop2:
  clr  RDB
  d_1      
  set  RDB
  rr  code_datum1
  clr  code_datum1.3
  sz  datum    ;read memory content out
  set  code_datum1.3
  sdz  count
  jmp  rmwloop2
                  
  mov  a, 0fh
  andm  a, code_datum1
                  
  clr  datumc
  mov  a, 4
  mov  count, a
  mov  a, temp_da
  andm  a, code_datum
rmwloop3:
  clr  datum
  sz  code_datum.0   ;sending memory content for deciding comments's state
  set  datum
  clr  WRB
  d_1      
  set  WRB
  rr  code_datum
  sdz  count
  jmp  rmwloop3
  set  CSB
  ret
rm_write endp
;------------------------------
show_lcm:
  mov  a, 00h
  mov  t_addr_h, a
  mov  a, 31h
  mov  num_mem, a
clr_n1:                  
  mov  a, t_addr_h
  mov  mem_addr, a
  mov  a, 0fh
  mov  code_datum, a
  call  write
  inc  t_addr_h
  sdz  num_mem
  jmp  clr_n1
  ret  
;------------------------------
clr_lcm:
  mov  a, 00h
  mov  t_addr_h, a
  mov  a, 31h
  mov  num_mem, a
clr_n:                   
  mov  a, t_addr_h
  mov  mem_addr, a
  mov  a, 0h
  mov  code_datum, a
  call  write
  inc  t_addr_h
  sdz  num_mem
  jmp  clr_n
  ret 

    

  
8楼:szcarlover 2009年7月2日15:04
 需要液晶模组的请与我联系
深圳易事通达电子有限公司成立于2004年,是集液晶显示片,液晶显示模块以及汽车周边电子产品研发和生产于一体的集团公司。在LCD行业有着超过10年的研发与生产经验,主要产品范围包括TN、HTN、STN、 FSTN和COG的液晶显示片以及COB、TAB和COG的液晶显示模块。我们不仅有丰富的标准品可供客户选择,更可以为客户定制的产品提供软硬件方面的支持。
易事通达LCD集团有限公司的产品广泛应用于仪器仪表,家用电器,电子玩具,工业设备,通讯设备,户外设施等诸多领域。
易事通达LCD集团有限公司恪守质量第一,以客户为本的原则,在亚洲,欧洲,北美及中国市场赢得了良好的声誉。
易事通达LCD集团有限公司,下属四个全资子公司!

                                                    销售部:杨春
                                      075533886988  15989437921  工作QQ:252677244


>>>>>>对该主题发表你的看法

本主题贴数8,分页: [第1页]


[上一篇主题]:[讨论]

[下一篇主题]:ARM、51单片机读写USB移动磁盘开发板