一乐电子

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

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 6260|回复: 11

[其他综合] 74hc595驱动LCD1602

  [复制链接]
发表于 2011-5-12 19:02 | 显示全部楼层 |阅读模式
org 0000h
ajmp 0030h
org 0030h
rck bit p2.0;显示更新使能脚
reset:
      mov scon,#00h
      clr es
     ;;;;;;;;;;;;;;;;;;;;;;;
     ;;;;; ;lcd初始化;;;;;;;
      ACALL ys45  ;上电延时
      acall ys45
      acall ys45
      acall ys45
      
      mov a,#33h
      acall xzl
      mov a,#30h
      acall xzl
      mov a,#02h
      acall xzl
     
      mov a,#101000b  ;4BIT ,2行显示
      acall delay1
      acall xzl
      
      mov a,#01h  ;清屏
      acall xzl
      
      mov a,#00000010b   ;光标复位
      acall xzl
     MOV A,#00000110B  ;地址增量1,字符不移动
     acall xzl
     mov a,#00001111b   ;显示开,光标有,光标闪
     acall xzl
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  
     
    MOV A,#83H ;指定显示地址
    mov r1,#10 ;显示10个字符
    ACALL XZL
     mov dptr,#tab
disp:mov a,#00h
     movc a,@a+dptr
     acall xsj
     inc dptr
     djnz r1,disp
  
  mov a,#0c6h  ;指定显示地址
    acall xzl
    mov a,#41h    ;显示"A"
    acall xsj
    mov a,#41h
    acall xsj
    mov a,#41h
    acall xsj
    mov a,#41h
    acall xsj
   
     ajmp $
     
     
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;   
  ;;;;;;;;;;;;写指令 ;;;;;;;;;;;;;;;;;;   
xzl:  
      mov 30h,a       ;指令数据送30H暂存
      acall xzl1
      mov a,30h
      swap a
xzl1: CLR RCK         ;拉底RCK
      anl a,#0F0h    ;屏蔽低4位(4线驱动1602要求先写高4位再写低4位
      ORL A,#000000001B;RS=0,E=1(指定是指令)
      mov sbuf,a
      jnb ti,$
      clr ti
      SETB RCK          ;RCK 为高,存储寄存器内容更新
      ACALL DELAY1      
      CLR rck
      ANL A,#11111110B
      MOV SBUF,A
      jnb ti,$
      clr ti
      SETB RCK
      ;ACALL DELAY1
      
      ret
      
      
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  
    ;;;;;;;;;;写数据 ;;;;;;;;;;;;;;;
xsj:  
      mov 30h,a  ;显示数据送30H暂存
      acall xsj1
      mov a,30h
      swap a
      
xsj1: CLR RCK         ;拉底RCK
      anl a,#0f0h   ;屏蔽低4位(4线驱动1602要求先写高4位再写低4位)  
      orl a,#00000011b ;RS=1,E=1 指定写数据
      mov sbuf,a
      jnb ti,$
      clr ti
      SETB RCK       ;RCK 为高,存储寄存器内容更新(据595文档说给RCK的正脉冲宽度只要几十纳秒)
       NOP           ;增加5个空操做,这样换用24MHZ晶振时也能很好的显示
       NOP
       NOP
       NOP
       NOP
      CLR rck         
     
      ANL A,#11111110B  ;E脚对应位设为0(使能有效,给E一个下降沿)
      mov sbuf,a
      jnb ti,$
      clr ti
      SETB  rck
     ;ACALL DELAY1
      ret
      
      
      
ys45:mov r7,#0bh
ys1:  mov r6,#0cbh
      djnz r6,$
      djnz r7,ys1
      ret
      
delay1:mov r7,#20   ;这是初始化完成后正常操作1602的延时程序
d11:   mov r6,#15
      djnz r6,$
      djnz r7,d11
      ret
tab:db "abcde12345"     
      
      end
      
      
      
      

捕捉-1.jpg

595.rar

18.06 KB, 下载次数: 2468, 下载积分: 一乐金币 -1

发表于 2011-5-12 20:13 | 显示全部楼层
这个不错,有时间学学。
回复

使用道具 举报

发表于 2011-5-12 21:10 | 显示全部楼层
直接驱动不行吗?
回复

使用道具 举报

发表于 2011-5-12 23:01 | 显示全部楼层
1602我记得有高手只用了三根线。在ouravr
回复

使用道具 举报

 楼主| 发表于 2011-5-13 11:20 | 显示全部楼层
回复 3# 国望堂


    如果I/O口不够的话这是一种方法
回复

使用道具 举报

发表于 2011-5-13 11:39 | 显示全部楼层
居然用汇编
回复

使用道具 举报

发表于 2011-5-13 12:53 | 显示全部楼层
浪费。。。。。。
回复

使用道具 举报

发表于 2012-4-12 00:07 | 显示全部楼层
很精简,下载学习学习
回复

使用道具 举报

发表于 2012-4-12 07:56 | 显示全部楼层
这是传说中的汇编呐!记忆力超好
回复

使用道具 举报

发表于 2012-4-12 09:07 | 显示全部楼层
蛋疼的汇编。。。。
回复

使用道具 举报

本版积分规则

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

GMT+8, 2025-11-4 08:17 , Processed in 0.037096 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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