?? lcd1303.lst
字號:
A51 MACRO ASSEMBLER LCD1303 01/07/2007 20:57:10 PAGE 1
MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN LCD1303.OBJ
ASSEMBLER INVOKED BY: C:\Keil7.06\C51\BIN\A51.EXE LCD1303.ASM SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;文件名:LCD1303.ASM
2 ;程序功能:顯示字符串
00B5 3 RS bit P3.5
00B6 4 RW bit P3.6
00B7 5 E bit P3.7
0090 6 LCD EQU P1
7
0000 8 MAIN: ;主程序
0000 1110 9 ACALL INIT_LCD ;調用初始化子程序
10
0002 759081 11 MOV LCD,#81H ;寫入顯示起始地址
0005 1125 12 ACALL WR_COMM ;調用寫指令子程序
0007 900057 13 MOV DPTR,#LINE ;字符串地址送入DPTR
000A 7806 14 MOV R0,#6 ;字符串的字符數
000C 114B 15 ACALL DISP ;調用查表子程序
000E 80FE 16 JMP $ ;動態停機
17
0010 18 INIT_LCD: ;LCM初始化設定
0010 759001 19 MOV LCD,#00000001B ;清屏并光標復位
0013 1125 20 ACALL WR_COMM ;調用寫指令子程序
0015 759038 21 MOV LCD,#00111000B;設置8位、2行、5x7點陣
0018 1125 22 ACALL WR_COMM ;調用寫指令子程序
001A 75900F 23 MOV LCD,#00001111B ;顯示器開,光標允許閃爍
001D 1125 24 ACALL WR_COMM ;調用寫指令子程序
001F 759006 25 MOV LCD,#00000110B ;文字不動,光標自動右移
0022 1125 26 ACALL WR_COMM ;調用寫指令子程序
0024 22 27 RET
28
0025 29 WR_COMM: ;寫指令子程序
0025 C2B5 30 CLR RS ;RS=0,選擇指令寄存器
0027 C2B6 31 CLR RW ;RW=0,選擇寫模式
0029 C2B7 32 CLR E ;E=0,禁止讀/寫LCM
002B 1130 33 ACALL CHECK_BF ;調用判LCM忙碌子程序
002D D2B7 34 SETB E ;E=1,允許讀/寫LCM
002F 22 35 RET
36
0030 37 CHECK_BF: ;判斷是否忙碌子程序
0030 7590FF 38 MOV LCD, #0FFH ;此時不接受外來指令
0033 C2B5 39 CLR RS ;RS=0,選擇指令寄存器
0035 D2B6 40 SETB RW ;RW=1,選擇讀模式
0037 C2B7 41 CLR E ;E=0,禁止讀/寫LCM
0039 00 42 NOP ;延時1微秒
003A D2B7 43 SETB E ;E=1,允許讀/寫LCM
003C 2097F1 44 JB LCD.7,CHECK_BF ;忙碌循環等待
003F 22 45 RET
46
0040 47 WR_DATA: ;寫數據子程序
0040 D2B5 48 SETB RS ;RS=1,選擇數據寄存器
0042 C2B6 49 CLR RW ;RW=0,選擇寫模式
0044 C2B7 50 CLR E ;E=0,禁止讀/寫LCM
0046 1130 51 ACALL CHECK_BF ;調用判斷忙碌子程序
0048 D2B7 52 SETB E ;E=1,允許讀/寫LCM
004A 22 53 RET
54
004B 55 DISP: ;查表顯示子程序
004B 7900 56 MOV R1,#0 ;查表地址初始值
004D E9 57 NEXT: MOV A,R1 ;將表地址初值賦予A
004E 93 58 MOVC A,@A+DPTR ;查表將字符串內容送入A
A51 MACRO ASSEMBLER LCD1303 01/07/2007 20:57:10 PAGE 2
004F F590 59 MOV LCD,A ;將字符串內容送入LCD
0051 09 60 INC R1 ;地址值加1
0052 1140 61 ACALL WR_DATA ;調用寫入數據子程序
0054 D8F7 62 DJNZ R0,NEXT ;判斷查表是否6次?
0056 22 63 RET ;子程序返回
64
0057 48656C6C 65 LINE: DB 'Hello!',00H ;字符串
005B 6F2100
66
67 END ;程序結束
A51 MACRO ASSEMBLER LCD1303 01/07/2007 20:57:10 PAGE 3
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
CHECK_BF . . . . . C ADDR 0030H A
DISP . . . . . . . C ADDR 004BH A
E. . . . . . . . . B ADDR 00B0H.7 A
INIT_LCD . . . . . C ADDR 0010H A
LCD. . . . . . . . D ADDR 0090H A
LINE . . . . . . . C ADDR 0057H A
MAIN . . . . . . . C ADDR 0000H A
NEXT . . . . . . . C ADDR 004DH A
P1 . . . . . . . . D ADDR 0090H A
P3 . . . . . . . . D ADDR 00B0H A
RS . . . . . . . . B ADDR 00B0H.5 A
RW . . . . . . . . B ADDR 00B0H.6 A
WR_COMM. . . . . . C ADDR 0025H A
WR_DATA. . . . . . C ADDR 0040H A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -