?? 1602lcd_yd.lst
字號:
A51 MACRO ASSEMBLER 1602LCD_YD 12/20/2006 22:12:32 PAGE 1
MACRO ASSEMBLER A51 V7.08a
OBJECT MODULE PLACED IN 1602LCD_YD.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE 1602LCD_YD.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;*******************************************************************
2 ;* *
3 ;* ME500單片機(jī)開發(fā)系統(tǒng)演示程序 - LCD1602 移動(dòng)顯示C *
4 ;* *
5 ;* 顯示內(nèi)容: CHINESE *
6 ;* NEW YEAR *
7 ;* *
8 ;* 顯示方式: *
9 ;* 1、LCD第一行顯示: CHINESE *
10 ;* LCD第二行顯示: NEW YEAR *
11 ;* 2、先將兩行字符寫入DDRAM中,然后從右至左逐字移出顯示。 *
12 ;* 3、在指定位置停留1.6秒后,閃爍2次,清屏。 *
13 ;* 4、反復(fù)循環(huán)上述顯示方式。 *
14 ;* *
15 ;* 版本: V1.0 (2006/11/20) *
16 ;* 作者: gguoqing (Email: gguoqing@willar.com) *
17 ;* 網(wǎng)站: www.willar.com(偉納電子) www.mcusj.com(偉納單片機(jī)世界) *
18 ;* 時(shí)間: 2006/01/23 *
19 ;* *
20 ;*【版權(quán)】COPYRIGHT(C)偉納電子 www.willar.com ALL RIGHTS RESERVED *
21 ;*【聲明】此程序僅用于學(xué)習(xí)與參考,引用請注明版權(quán)和作者信息! *
22 ;* *
23 ;*******************************************************************
24
00A0 25 LCD_RS EQU P2.0
00A1 26 LCD_RW EQU P2.1
00A2 27 LCD_EN EQU P2.2
28
29 ;*******************************************************************
0000 30 ORG 0000H
0000 0130 31 AJMP MAIN
0030 32 ORG 0030H
33 ;*******************************************************************
0030 34 MAIN:
0030 758160 35 MOV SP,#60H
0033 1181 36 ACALL LCD_INIT ;LCD初始化
0035 37 MAIN1:
0035 11A6 38 ACALL CLR_LCD ;清LCD
0037 7490 39 MOV A,#90H ;在第一行第17列的位置
0039 11AB 40 ACALL LCD_CMD
003B 90005F 41 MOV DPTR,#LINE1 ;第一行字符串的起始地址送入DPTR。
003E 11E1 42 ACALL WRITE
0040 74D0 43 MOV A,#0D0H ;在第二行第17列的位置
0042 11AB 44 ACALL LCD_CMD
0044 900070 45 MOV DPTR,#LINE2 ;第二行字符串的起始地址送入DPTR。
0047 11E1 46 ACALL WRITE
47
0049 7B10 48 MOV R3,#10H ;向左移動(dòng)16格
004B 49 LOOPA:
004B 7418 50 MOV A,#18H ;字符同時(shí)左移一格
004D 11AB 51 ACALL LCD_CMD
004F 7D03 52 MOV R5,#03H ;延時(shí)375MS
0051 3107 53 ACALL DELAY125MS
0053 DBF6 54 DJNZ R3,LOOPA
55
0055 3112 56 ACALL DELAY4 ;延時(shí)1.6s
0057 3112 57 ACALL DELAY4
0059 7C02 58 MOV R4,#02H ;設(shè)置閃爍次數(shù)
A51 MACRO ASSEMBLER 1602LCD_YD 12/20/2006 22:12:32 PAGE 2
005B 11EF 59 ACALL FLASH ;開始閃爍
005D 0135 60 AJMP MAIN1
61
005F 62 LINE1:
005F 20202020 63 DB " CHINESE ",00H
0063 4348494E
0067 45534520
006B 20202020
006F 00
0070 64 LINE2:
0070 20202020 65 DB " NEW YEAR ",00H
0074 4E455720
0078 59454152
007C 20202020
0080 00
66
67 ;***************************************************************
68 ;LCD初始化設(shè)定子程序
69 ;***************************************************************
0081 70 LCD_INIT:
0081 11FE 71 ACALL DELAY5MS ;延時(shí)15MS
0083 11FE 72 ACALL DELAY5MS ;等待LCD電源穩(wěn)定
0085 11FE 73 ACALL DELAY5MS
74
0087 7438 75 MOV A,#38H ;16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)
0089 11AD 76 ACALL LCD_CMD_NC ;不進(jìn)行LCD忙檢測
008B 11FE 77 ACALL DELAY5MS
78
008D 7438 79 MOV A,#38H ;16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)
008F 11AD 80 ACALL LCD_CMD_NC ;不進(jìn)行LCD忙檢測
0091 11FE 81 ACALL DELAY5MS
82
0093 7438 83 MOV A,#38H ;16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)
0095 11AD 84 ACALL LCD_CMD_NC ;不進(jìn)行LCD忙檢測
0097 11FE 85 ACALL DELAY5MS
86
0099 7408 87 MOV A,#08H ;顯示關(guān)
009B 11AB 88 ACALL LCD_CMD ;進(jìn)行LCD忙檢測
89
009D 7401 90 MOV A,#01H ;清除屏幕
009F 11AB 91 ACALL LCD_CMD ;進(jìn)行LCD忙檢測
92
00A1 740C 93 MOV A,#0CH ;顯示開,關(guān)光標(biāo)
00A3 11AB 94 ACALL LCD_CMD ;進(jìn)行LCD忙檢測
95
00A5 22 96 RET
97 ;***************************************************************
98 ;清LCD子程序
99 ;***************************************************************
00A6 100 CLR_LCD:
00A6 7401 101 MOV A,#01H ;清除屏幕
00A8 11AB 102 ACALL LCD_CMD ;進(jìn)行LCD忙檢測
00AA 22 103 RET
104
105 ;***************************************************************
106 ;寫指令數(shù)據(jù)到LCD
107 ;RS=L,RW=L,D0-D7=指令碼,E=高脈沖
108 ;***************************************************************
00AB 109 LCD_CMD:
00AB 11CD 110 CALL CHECKBUSY
00AD 111 LCD_CMD_NC:
00AD C2A0 112 CLR LCD_RS
00AF C2A1 113 CLR LCD_RW
00B1 F580 114 MOV P0,A
00B3 D2A2 115 SETB LCD_EN
00B5 00 116 NOP
A51 MACRO ASSEMBLER 1602LCD_YD 12/20/2006 22:12:32 PAGE 3
00B6 00 117 NOP
00B7 00 118 NOP
00B8 00 119 NOP
00B9 C2A2 120 CLR LCD_EN
00BB 22 121 RET
122 ;***************************************************************
123 ;寫顯示數(shù)據(jù)到LCD
124 ;RS=H,RW=L,D0-D7=數(shù)據(jù),E=高脈沖
125 ;***************************************************************
00BC 126 LCD_WDATA:
00BC 11CD 127 ACALL CHECKBUSY
00BE D2A0 128 SETB LCD_RS
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -