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

📄 lcd.lst

📁 51单片机实验例程
💻 LST
📖 第 1 页 / 共 2 页
字号:
A51 MACRO ASSEMBLER  LCD                                                                  03/24/2009 19:21:11 PAGE     1


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

LOC  OBJ            LINE     SOURCE

                       1     ;/********************************************************************************
                       2     ;*  标题:  xl系列单片机实验仪演示程序 1602字符型LCD显示演示程序                 *
                       3     ;*  文件:   xllcdw.asm                                                          *
                       4     ;*  日期:  2006-1-5                                                             *
                       5     ;*  版本:  3.0 (试验通过版)可用xl600-xl1000单片机综合试验仪试验               *
                       6     ;*  邮箱:  sxj1974@163.com                                                      *
                       7     ;*  网站: http://www.51c51.com    www.8951.com                                 *
                       8     ;*********************************************************************************
                       9     ;*  描述:                                                                       *
                      10     ;*         1602字符型LCD显示演示程序                                            *
                      11     ;*         在第一行显示  welcome                                                *
                      12     ;*         在第二行显示  www.51c51.com                                          *
                      13     ;*                                                                              *
                      14     ;********************************************************************************
                      15     ;* 【版权】 Copyright(C)深圳市学林电子有限公司 www.51c51.com                    *
                      16     ;* 【声明】 此程序仅用于学习与参考,引用请注明版权和作者信息!                  *
                      17     ;*  【技术支持】请访问http://www.51c51.com/bbs/index.asp  官方论坛              *
                      18     ;********************************************************************************/
                      19     ; 端口定义
  00A6                20     RS      EQU     P2.6
  00A5                21     RW      EQU     P2.5
  00A7                22     EP      EQU     P2.7
                      23     
0000                  24             ORG     0000H
0000 020003           25             LJMP    MAIN
0003                  26     MAIN:
0003 120060           27             LCALL   LCD_INIT                ; 初始化LCD
0006 740F             28             MOV     A,#15
0008 1200EB           29             LCALL   DELAY_MS                ;
                      30     
000B                  31     MAIN_LOOP:      
                      32     ;  在第一行显示字符串"welcome!"
000B 7404             33             MOV     A,#4
000D 12009C           34             LCALL   SET_LCD_POS             ; 设置LCD光标到第一行的第5个字符
                      35             
0010 900105           36             MOV     DPTR,#TAB_WELCOME       ; "welcome!"字串表格地址
0013 120050           37             LCALL   DISPLAY_STRING          ; 显示字符串
                      38     ; 在第二行显示字符串"www.willar.com"    
0016 7441             39             MOV     A,#41H                  ; 
0018 12009C           40             LCALL   SET_LCD_POS             ; 设置LCD光标到第二行第二个字符
                      41             
001B 9000F5           42             MOV     DPTR,#TAB_WILLAR
001E 120050           43             LCALL   DISPLAY_STRING
                      44     
                      45     ; 闪烁显示内容  
0021 74C8             46             MOV     A,#200                  ; 
0023 1200EB           47             LCALL   DELAY_MS                ; 
                      48             
0026 120086           49             LCALL   LCD_TURN_OFF    
0029 74C8             50             MOV     A,#200                  ; 
002B 1200EB           51             LCALL   DELAY_MS                ; 
                      52             
002E 12007B           53             LCALL   LCD_TURN_ON
                      54             
0031 74C8             55             MOV     A,#200                  ; 
0033 1200EB           56             LCALL   DELAY_MS                ; 
                      57             
0036 120086           58             LCALL   LCD_TURN_OFF
A51 MACRO ASSEMBLER  LCD                                                                  03/24/2009 19:21:11 PAGE     2

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

                     125     
                     126     ; 清除LCD屏幕
0091                 127     LCD_CLEAR:
0091 7401            128             MOV     A,#01H                  ; 01H清屏指令                   
0093 1200A2          129             LCALL   LCD_WRITE_COMMAND
0096 7401            130             MOV     A,#1

⌨️ 快捷键说明

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