找回密码
 立即注册

QQ登录

只需一步,快速开始

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

lcd1602液晶全屏移动汇编程序

[复制链接]
跳转到指定楼层
楼主
ID:70976 发表于 2014-12-27 18:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. ;=================================================================
  2. ;程序编写人:兰建文
  3. ;编写地点:51hei培训机构
  4. ;时间:6月2日下午星期二
  5. ;功能:本程序实现液晶的信息功能
  6. ;=======================开始初始化================================
  7.              EN     BIT    P2.5      ;时钟信号
  8.        RS     BIT    P3.4      ;决定要传送的是命令还是数据
  9.        RW     BIT    P3.5   ;决定要读还是写,一般写的时候多
  10.     SJ     EQU    P0   ;数据线
  11.     SHUZI  EQU    30H
  12. ;========================系统程序==================================
  13.                    ORG    0000H
  14.        JMP    START
  15.         ORG    30H
  16.          START:MOV    R0,#32
  17.            CALL   CHUSHIHUA ;LCD初始化
  18.            MAIN:
  19.            CALL   XIANSHI  ;显示  
  20.         JMP    MAIN
  21. ;======================初始化子程序===============================
  22. ;输入:无
  23. ;输出:无
  24. ;实现的功能:初始化LCD
  25. ;=================================================================
  26.           CHUSHIHUA:MOV    SJ,#38H
  27.               ACALL   ENABLE  ;写指令08H,设定LCD为16*2显示,5*6点阵,8位数据接口
  28.      MOV    SJ,#08H  
  29.      ACALL   ENABLE  ;写指令08H
  30.      MOV    SJ,#01H
  31.      ACALL   ENABLE  ;写指令01H,显示清屏
  32.      MOV    SJ,#06H
  33.      ACALL   ENABLE  ;写指令06H,显示光标自动右移,整屏不移动
  34.      MOV    SJ,#0CH
  35.      ACALL   ENABLE  ;写指令0CH,开显示,不显示光标
  36.                  RET
  37. ;========================显示子程序===============================
  38. ;输入:
  39. ;输出:"P0口"
  40. ;实现的功能:把数输出到P0口显示
  41. ;=================================================================
  42.             XIANSHI:
  43.            MOV    SJ,#18H
  44.      CALL   ENABLE
  45.      MOV    SJ,#80H  ;第一行显示第一个字符的位置
  46.            CALL   ENABLE  ;调用写指令
  47.      MOV    DPTR,#TAB0;第一行表头位置
  48.      CALL   WRITE1  ;调用第一行写子程序
  49.      CALL   DELAY1
  50.         MOV    SJ,#0C0H  ;第二行位置   
  51.      CALL   ENABLE  ;调用写指令
  52.      MOV    DPTR,#TAB1;第二行表头位置
  53.      CALL   WRITE1  ;调用第二行写子程序
  54.      CALL   DELAY1
  55.      DJNZ   R0,L
  56.      MOV    R0,#32
  57.      MOV    R1,#10
  58.         LL:CALL   DELAY
  59.      DJNZ   R1,LL
  60.       L:RET   
  61. ;======================写命令时序程序=============================
  62. ;输入:
  63. ;输出:"P0口"
  64. ;实现的功能:写时序
  65. ;=================================================================
  66.    ENABLE:CLR     RS
  67.           CLR     RW
  68.        SETB    EN
  69.        CALL    DELAY
  70.        CLR     EN
  71.        RET
  72. ;==========================写入子程序=============================
  73. ;输入:
  74. ;输出:"P0口"
  75. ;实现的功能:写时序
  76. ;=================================================================
  77.     WRITE1:MOV     SHUZI,#00H  ;将30H清0
  78.        L1:MOV     A,SHUZI    ;把30H的值送到ACC
  79.        MOVC    A,@A+DPTR   ;查表取将显示的数据并把要显示的数送入ACC
  80.        CALL    WRITE2    ;调用写程序写入单个字节
  81.        INC     SHUZI    ;将工作寄存器指针加一
  82.        MOV     A,SHUZI    ;把30H的内容送到ACC
  83.        CJNE    A,#10H,L1   ;ACC的值加到16后就返回到L1处
  84.        RET
  85. ;=======================写数据时序子程序==========================
  86. ;输入:
  87. ;输出:
  88. ;实现的功能:写数据
  89. ;=================================================================
  90.            WRITE2:MOV     SJ,A    ;写单个字符
  91.             SETB    RS    ;写数据到显示端口
  92.       CLR     RW    ;写数据时序
  93.       SETB    EN
  94.       CALL    DELAY
  95.       CLR     EN
  96.       RET
  97. ;============================延时子程序============================
  98. ;输入;无
  99. ;输出: 无
  100. ;实现的功能:延时5MS
  101. ;==================================================================
  102.             DELAY:
  103.             MOV  R6,#4
  104.                L7:MOV  R5,#100
  105.             DJNZ R5,$
  106.                   DJNZ R6,L7
  107.       RET
  108.      DELAY1:MOV  R7,#10
  109.          L9:MOV  R3,#25
  110.                L8:MOV  R4,#100
  111.             DJNZ R4,$
  112.                   DJNZ R3,L8
  113.       DJNZ R7,L9
  114.       RET
  115. ;==============================表的制作============================
  116.             TAB0:DB "WWW#SsONEEDU#COMWWW#STsNEEDU#COM"
  117.    TAB1:DB "MCU-20-L-JIANWENMCU-20-L-JIANWEN"                          
  118. ;=========================程序结束=================================
  119.             END
复制代码


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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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