📄 ds1302dis.lst
字号:
A51 MACRO ASSEMBLER DS1302DIS 12/15/2006 20:39:54 PAGE 1
MACRO ASSEMBLER A51 V8.00
OBJECT MODULE PLACED IN DS1302DIS.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE DS1302DIS.ASM SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ; SMC1602接口程序(MCS51模拟口线方式)
2 ;***************************************************************************
3 ;* Title : Accessing to LCD-CONTROLLER *
4 ;* Date : 2000.4.27 *
5 ;* Support telephone: 0731-4167806,4167808(CHANGSHA SUNMAN) *
6 ;* Support fax :0731-4167807 Support E-mail:www@sunman.cn *
7 ;* Create by :褚建军(chujianjun),朱长春(zhuchangchun) *
8 ;* DESCRIPTION:This subroutine shows how to write data to LCD-CONTROLLER *
9 ;***************************************************************************
10 ;连线图: *LCM---8031* *LCM---8031* *LCM------------8031*
11 ; *DB0---P1.0* *DB4---P1.4* *RS-------------P3.5*
12 ; *DB1---P1.1* *DB5---P1.5* *RW-------------P3.4*
13 ; *DB2---P1.2* *DB6---P1.6* *E--------------P3.6* (参见说明书)
14 ; *DB3---P1.3* *DB7---P1.7* *VLCD接10K可调电阻到GND*
15 ;注:8031的晶振频率为12MHz
16 ;**************************************************************************
00B5 17 RS EQU P3.5
00B4 18 RW EQU P3.4
00B6 19 E EQU P3.6
0020 20 XPOS EQU 20H ;行方向
0021 21 YPOS EQU 21H ;列方向
00A1 22 LED3CLK BIT P2.1
00A2 23 LED4IO BIT P2.2
00A3 24 RST BIT P2.3
0060 25 SECOND EQU 60H
0000 26 ORG 00H
0000 020030 27 LJMP START
0030 28 ORG 30H
0030 29 START:
0030 758130 30 MOV SP,#30H
0033 C2B6 31 CLR E
0035 900248 32 MOV DPTR,#TAB
0038 7D00 33 MN_LP2:MOV R5,#0
003A 752100 34 MOV YPOS,#0
003D 752000 35 MOV XPOS,#0
0040 12011B 36 LCALL LCDRESET
37 ;LCALL SET1302
0043 ED 38 MN_LP:MOV A,R5
0044 93 39 MOVC A,@A+DPTR
0045 1200E4 40 LCALL LCDFILL
0048 0D 41 INC R5
0049 BD20F7 42 CJNE R5,#32,MN_LP
004C 120185 43 MAIN: LCALL R_1302
004F 120054 44 LCALL EXCHANG
0052 014C 45 AJMP MAIN
46
0054 47 EXCHANG:
0054 E560 48 MOV A,60H
0056 75F010 49 MOV B,#10H
0059 84 50 DIV AB
005A F571 51 MOV 71H,A
005C 85F070 52 MOV 70H,B
005F E561 53 MOV A,61H
0061 75F010 54 MOV B,#10H
0064 84 55 DIV AB
0065 F573 56 MOV 73H,A
0067 85F072 57 MOV 72H,B
006A E562 58 MOV A,62H
A51 MACRO ASSEMBLER DS1302DIS 12/15/2006 20:39:54 PAGE 2
006C 75F010 59 MOV B,#10H
006F 84 60 DIV AB
0070 F575 61 MOV 75H,A
0072 85F074 62 MOV 74H,B
0075 12007C 63 LCALL ADD_ASCII
0078 1200A1 64 LCALL DISBUF
007B 22 65 RET
007C 66 ADD_ASCII:
007C E570 67 MOV A,70H
007E 2430 68 ADD A,#48
0080 F570 69 MOV 70H,A
0082 E571 70 MOV A,71H
0084 2430 71 ADD A,#48
0086 F571 72 MOV 71H,A
0088 E572 73 MOV A,72H
008A 2430 74 ADD A,#48
008C F572 75 MOV 72H,A
008E E573 76 MOV A,73H
0090 2430 77 ADD A,#48
0092 F573 78 MOV 73H,A
0094 E574 79 MOV A,74H
0096 2430 80 ADD A,#48
0098 F574 81 MOV 74H,A
009A E575 82 MOV A,75H
009C 2430 83 ADD A,#48
009E F575 84 MOV 75H,A
00A0 22 85 RET
00A1 86 DISBUF:
00A1 75200B 87 MOV XPOS,#11
00A4 752101 88 MOV YPOS,#1
00A7 E570 89 MOV A,70H
00A9 1200F6 90 LCALL LCDWRITE
00AC 75200A 91 MOV XPOS,#10
00AF 752101 92 MOV YPOS,#1
00B2 E571 93 MOV A,71H
00B4 1200F6 94 LCALL LCDWRITE
00B7 752008 95 MOV XPOS,#8
00BA 752101 96 MOV YPOS,#1
00BD E572 97 MOV A,72H
00BF 1200F6 98 LCALL LCDWRITE
00C2 752007 99 MOV XPOS,#7
00C5 752101 100 MOV YPOS,#1
00C8 E573 101 MOV A,73H
00CA 1200F6 102 LCALL LCDWRITE
00CD 752005 103 MOV XPOS,#5
00D0 752101 104 MOV YPOS,#1
00D3 E574 105 MOV A,74H
00D5 1200F6 106 LCALL LCDWRITE
00D8 752004 107 MOV XPOS,#4
00DB 752101 108 MOV YPOS,#1
00DE E575 109 MOV A,75H
00E0 1200F6 110 LCALL LCDWRITE
00E3 22 111 RET
112 ;-------------------------------LCD 写满屏幕地址和字符数据指令-----------------------------
---
00E4 113 LCDFILL:
00E4 1200F6 114 LCALL LCDWRITE
00E7 0520 115 INC XPOS
00E9 E520 116 MOV A,XPOS
00EB B41007 117 CJNE A,#16,RETURN
00EE 0521 118 INC YPOS
00F0 E521 119 MOV A,YPOS
00F2 B40200 120 CJNE A,#2,RETURN
00F5 22 121 RETURN: RET
122 ;-----------------------------------LCD 写一个地址和字符数据指令---------------------------
--------
A51 MACRO ASSEMBLER DS1302DIS 12/15/2006 20:39:54 PAGE 3
00F6 123 LCDWRITE:
00F6 1200FD 124 LCALL LCDPOS ;lcd 写地址指令
00F9 120176 125 LCALL LCDWD ;LCD 写字符指令
00FC 22 126 RET
127 ;------------------------------LCD 写地址指令----------------------------------------------
----------
00FD C0E0 128 LCDPOS:PUSH ACC
00FF 53200F 129 ANL XPOS,#0FH
0102 532101 130 ANL YPOS,#01H
0105 E521 131 MOV A,YPOS
0107 B40005 132 CJNE A,#00,LPS_LAY
010A E520 133 MOV A,XPOS
010C 020113 134 LJMP LPS_LAX
010F E520 135 LPS_LAY:MOV A,XPOS
0111 2440 136 ADD A,#40H
0113 4480 137 LPS_LAX:ORL A,#80H
0115 120153 138 LCALL LCDWC
0118 D0E0 139 POP ACC
011A 22 140 RET
141
142 ;------------------------------------LCD RESET---------------------------------------------
-----------------------
011B 143 LCDRESET:
011B 120230 144 LCALL DELAY5MS
011E 120230 145 LCALL DELAY5MS
0121 120230 146 LCALL DELAY5MS
0124 7438 147 MOV A,#38H
0126 120156 148 LCALL LCDWCN
0129 120230 149 LCALL DELAY5MS
012C 7438 150 MOV A,#38H
012E 120156 151 LCALL LCDWCN
0131 120230 152 LCALL DELAY5MS
0134 7438 153 MOV A,#38H
0136 120156 154 LCALL LCDWCN
0139 7438 155 MOV A,#38H
013B 120153 156 LCALL LCDWC
013E 7408 157 MOV A,#08H
0140 120153 158 LCALL LCDWC
0143 7401 159 MOV A,#01H
0145 120153 160 LCALL LCDWC
0148 7406 161 MOV A,#06H
014A 120153 162 LCALL LCDWC
014D 740C 163 MOV A,#0CH
014F 120153 164 LCALL LCDWC
0152 22 165 RET
0153 120162 166 LCDWC:LCALL WAITIDLE
167 ;----------------------------------LCD write not check,写指令------------------------
0156 C2B5 168 LCDWCN:CLR RS
0158 C2B4 169 CLR RW
015A F590 170 MOV P1,A
015C D2B6 171 SETB E
015E 00 172 NOP
015F C2B6 173 CLR E
0161 22 174 RET
175 ;--------------------------LCD busy check,wait till not busy(读状态,判断是否忙)-----------
------------------------
0162 176 WAITIDLE:
0162 C0E0 177 PUSH ACC
0164 7590FF 178 MOV P1,#0FFH
0167 C2B5 179 CLR RS
0169 D2B4 180 SETB RW
016B D2B6 181 SETB E
016D 00 182 WTD_PA:NOP
016E 2097FC 183 JB P1.7,WTD_PA
0171 C2B6 184 CLR E
0173 D0E0 185 POP ACC
A51 MACRO ASSEMBLER DS1302DIS 12/15/2006 20:39:54 PAGE 4
0175 22 186 RET
187 ;--------------------------LCD WRITE TATA(写数据)----------------------------------------
0176 120162 188 LCDWD:LCALL WAITIDLE
0179 F590 189 MOV P1,A
017B C2B4 190 CLR RW
017D D2B5 191 SETB RS
017F D2B6 192 SETB E
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -