找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4078|回复: 0
打印 上一主题 下一主题
收起左侧

单片机LCD1602汇编如何才能两行全部显示?

[复制链接]
跳转到指定楼层
楼主
现在就是加第二行数据表调用就是到AJMP $这儿停不下来还重新刷写,请教下老哥们


单片机源程序如下:
  1. ;1602液晶屏显示程序
  2. ;====定义控制线端口=======
  3. ;P2.0-P2.7为数据 D0-D7接口
  4. ;RS数据/命令选择端     H/L
  5. ;RW读/写选择端         H/L
  6. ;EN使能控制端          H/L 开/关
  7.      RS EQU P0.0       ;等值指令(起外号)
  8.      RW EQU P0.1       ;等值指令(起外号)
  9.      EN EQU P0.2       ;等值指令(起外号)
  10.      ORG 00H           ;定义起始地址位置
  11.      JMP MAIN          ;跳转主程序
  12.      ORG 30H           ;开始主程序地址位置
  13. /*主程序*/;==========================
  14. MAIN:  MOV SP,60H      ;设置堆栈指针地址位置
  15.        CALL CHUSHIHUA  ;调用1602初始化
  16. WW:    MOV A,#80H      ;设置1602显示的地址位置行(第一行80H--90H 第二行0C0H--0D0H)
  17.        LCALL XIE        ;调用指令子程序写入显示地址的数据
  18. /*     MOV A,#"A"      ;需要显示的东西
  19.        CALL XIE1       ;调用显示子程序*/
  20.        CALL SHU1       ;调用数据表
  21.        MOV A,#0C0H    ;把第二行地址写入A中
  22.          LCALL XIE       ;调用第二行进行显示
  23.         CALL SHU2       ;调用数据表1
  24.          AJMP [        DISCUZ_CODE_3        ]nbsp;     
  25. /*调用数据表显示程序*/;===============
  26. SHU1:      MOV R0,#00H      ;00送给R0
  27. AAA:       MOV A,R0         ;A中数为00
  28.            MOV DPTR,#TAB    ;数据表地址装入DPTR中
  29.            MOVC A,@A+DPTR   ;数据表数据装入A中
  30.            CALL XIE1        ;调用数据进行写入
  31.            INC R0           ;R0+1吧下一个数据调入
  32.            CJNE R0,#16D,AAA ;显示16个数据
  33.            RET              ;返回主程序
  34. /*调数据表1显示程序*/;===============
  35. SHU2:      MOV R1,#00H      ;00送给R0
  36. AAB:       MOV A,R1         ;A中数为00
  37.            MOV DPTR,#TAB1   ;数据表1地址装入DPTR中
  38.            MOVC A,@A+DPTR   ;数据表数据装入A中
  39.            CALL XIE1        ;调用数据进行写入
  40.            INC R1           ;R0+1吧下一个数据调入
  41.            CJNE R1,#16D,AAB ;显示16个数据
  42.            RET              ;返回主程序
  43. /*1602初始化程序*/;===================
  44. CHUSHIHUA: CALL YANSHI ;调用延时
  45.            MOV A,#38H  ;写显示模式设置 16X2显示,5X7点阵,8位数据接口
  46.            CALL XIE    ;调用写指令子程序
  47.            MOV A,#01H  ;显示清屏(数据指针地址和所有显示清0)
  48.            CALL XIE    ;调用写指令子程序
  49.            MOV A,#06H  ;显示光标移动设置为当写一个字符后地址指针加1且光标加1
  50.            CALL XIE    ;调用写指令子程序
  51.            MOV A,#0CH  ;显示开及光标设置为开显示 不显示光标 光标不显示
  52.            CALL XIE    ;调用写子程序
  53.            RET         ;返回主程序
  54. /*写数据程序*/;=======================
  55. XIE1: SETB RS    ;置1
  56.        CLR RW    ;置0
  57.        CLR EN    ;置0
  58.        MOV P2,A  ;写数据到P2口
  59.       CALL YANSHI;调用延时
  60.       SETB EN    ;置1开启使能     
  61.       CALL YANSHI;调用延时
  62.       CLR EN     ;关使能
  63.       CALL YANSHI;调用延时
  64.       RET        ;返回主程序
  65. /*写指令命令程序*/;=======================
  66. XIE: CLR RS   ;置0
  67.      CLR RW   ;置0
  68.      CLR EN   ;置0
  69.      MOV P2,A ;写指令数据到P2口
  70.     CALL YANSHI;调用延时
  71.     SETB EN    ;开启使能     
  72.     CALL YANSHI;调用延时
  73.      CLR EN    ;关闭使能
  74.     CALL YANSHI;调用延时
  75.      RET       ;返回主程序
  76. /*延时程序*/;========================
  77. YANSHI: MOV R7,#0F0H
  78. AA:     MOV R6,#0D2H
  79.        DJNZ R6,$
  80.        DJNZ R7,AA
  81.         RET
  82. /*数据表第一行*/;====================
  83. TAB:  DB "welcome-to-1602-"
  84. /*数据表第二行*/;====================
  85. TAB1: DB "www点dfhw123点com "
  86. END
复制代码

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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