⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wl009.lst

📁 此程序为单片机开发中的lcd 液晶演示 程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
A51 MACRO ASSEMBLER  WL009                                                                04/05/2005 09:56:15 PAGE     1


MACRO ASSEMBLER A51 V7.10
OBJECT MODULE PLACED IN wl009.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE wl009.asm SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     ;********************************************************************************
                       2     ;*  标题:  伟纳电子ME300B单片机开发系统演示程序 - 1602LCD显示演示程序           *
                       3     ;*  文件:  wl009.asm                                                            *
                       4     ;*  日期:  2005-1-20                                                             *
                       5     ;*  版本:  1.0                                                                  *
                       6     ;*  作者:  伟纳电子 - Freeman                                                   *
                       7     ;*  邮箱:  freeman@willar.com                                                   *
                       8     ;*  网站: http://www.willar.com                                                *
                       9     ;********************************************************************************
                      10     ;*  描述:                                                                       *
                      11     ;*         1602字符型LCD显示演示程序                                            *
                      12     ;*         在第一行显示  welcome                                                *
                      13     ;*         在第一行显示  www.willar.com                                         *
                      14     ;*                                                                              *
                      15     ;*                                                                              *
                      16     ;********************************************************************************
                      17     ;* 【版权】 Copyright(C)伟纳电子 www.willar.com  All Rights Reserved            *
                      18     ;* 【声明】 此程序仅用于学习与参考,引用请注明版权和作者信息!                  *
                      19     ;********************************************************************************
                      20     
                      21     
                      22     ; 端口定义
  00A0                23     RS      EQU     P2.0
  00A1                24     RW      EQU     P2.1
  00A2                25     EP      EQU     P2.2
                      26     
0000                  27             ORG     0000H
0000 020003           28             LJMP    MAIN
                      29     
                      30     
0003                  31     MAIN:
0003 120060           32             LCALL   LCD_INIT                ; 初始化LCD
0006 740F             33             MOV     A,#15
0008 1200EB           34             LCALL   DELAY_MS                ;
                      35     
000B                  36     MAIN_LOOP:      
                      37     ;  在第一行显示字符串"welcome!"
000B 7404             38             MOV     A,#4
000D 12009C           39             LCALL   SET_LCD_POS             ; 设置LCD光标到第一行的第5个字符
                      40             
0010 900104           41             MOV     DPTR,#TAB_WELCOME       ; "welcome!"字串表格地址
0013 120050           42             LCALL   DISPLAY_STRING          ; 显示字符串
                      43     ; 在第二行显示字符串"www.willar.com"    
0016 7441             44             MOV     A,#41H                  ; 
0018 12009C           45             LCALL   SET_LCD_POS             ; 设置LCD光标到第二行第二个字符
                      46             
001B 9000F5           47             MOV     DPTR,#TAB_WILLAR
001E 120050           48             LCALL   DISPLAY_STRING
                      49     
                      50     ; 闪烁显示内容  
0021 74C8             51             MOV     A,#200                  ; 
0023 1200EB           52             LCALL   DELAY_MS                ; 
                      53             
0026 120086           54             LCALL   LCD_TURN_OFF    
0029 74C8             55             MOV     A,#200                  ; 
002B 1200EB           56             LCALL   DELAY_MS                ; 
                      57             
002E 12007B           58             LCALL   LCD_TURN_ON
A51 MACRO ASSEMBLER  WL009                                                                04/05/2005 09:56:15 PAGE     2

                      59             
0031 74C8             60             MOV     A,#200                  ; 
0033 1200EB           61             LCALL   DELAY_MS                ; 
                      62             
0036 120086           63             LCALL   LCD_TURN_OFF
                      64                     
0039 74C8             65             MOV     A,#200                  ; 
003B 1200EB           66             LCALL   DELAY_MS                ; 
                      67             
003E 12007B           68             LCALL   LCD_TURN_ON
                      69             
0041 74C8             70             MOV     A,#200                  ; 
0043 1200EB           71             LCALL   DELAY_MS                ; 
                      72     ;清屏
0046 120091           73             LCALL   LCD_CLEAR
0049 7401             74             MOV     A,#1
004B 1200EB           75             LCALL   DELAY_MS
                      76     ; 重新显示      
004E 80BB             77             JMP     MAIN_LOOP       
                      78     
                      79     ;显示字符串函数
                      80     ;传入参数:DPTR(字符串表格地址)
                      81     ;返回值:无
0050                  82     DISPLAY_STRING: 
0050 E4               83             CLR     A
0051 93               84             MOVC    A,@A+DPTR               ; 
0052 600B             85             JZ      END_DISPLAY_STRING      ; 如果遇到00H表示表格结束
0054 1200BC           86             LCALL   LCD_WRITE_DATA          ; 写数据到LCD
0057 A3               87             INC     DPTR                    ; 指向表格的下一字符
0058 74C8             88             MOV     A, #200                 ; 
005A 1200EB           89             LCALL   DELAY_MS                ; 
005D 80F1             90             SJMP    DISPLAY_STRING          ; 循环直到字符串结束
005F                  91     END_DISPLAY_STRING:
005F 22               92             RET
                      93             
                      94             
                      95     ; 初始化LCD
0060                  96     LCD_INIT:
                      97     
                      98     ; 设置显示格式---
0060 7438             99             MOV     A,#38H                  ; 38H --- 16*2行显示,5*7点阵,8位数据接口
0062 1200A2          100             LCALL   LCD_WRITE_COMMAND
0065 7401            101             MOV     A,#1
0067 1200EB          102             LCALL   DELAY_MS
                     103     ;开显示
006A 12007B          104             LCALL   LCD_TURN_ON
                     105     ;读写后指针加1
006D 7406            106             MOV     A,#06H                  ; 06H --- 读写后指针加1
006F 1200A2          107             LCALL   LCD_WRITE_COMMAND
0072 7401            108             MOV     A,#1
0074 1200EB          109             LCALL   DELAY_MS
                     110     ; 清除LCD屏幕
0077 120091          111             LCALL   LCD_CLEAR
007A 22              112             RET
                     113     
                     114     
                     115     ;开显示
007B                 116     LCD_TURN_ON:
007B 740C            117             MOV     A,#0CH                  ; 0CH --- 开显示,无光标
007D 1200A2          118             LCALL   LCD_WRITE_COMMAND
0080 7401            119             MOV     A,#1
0082 1200EB          120             LCALL   DELAY_MS
0085 22              121             RET
                     122             
                     123     ; 关显示
0086                 124     LCD_TURN_OFF:
A51 MACRO ASSEMBLER  WL009                                                                04/05/2005 09:56:15 PAGE     3

0086 7408            125             MOV     A,#08H                  ; 08H --- 关显示
0088 1200A2          126             LCALL   LCD_WRITE_COMMAND
008B 7401            127             MOV     A,#1
008D 1200EB          128             LCALL   DELAY_MS
0090 22              129             RET
                     130     
                     131     ; 清除LCD屏幕
0091                 132     LCD_CLEAR:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -