📄 hello.lst
字号:
005E 206A 00117 call sc ; Manda il comando 1X00DDDD
00118
005F 0008 00119 return
00120
00121 ; ********************************************************
00122 ; cl
00123 ; Clear - Pulisce il display e mette il cursore all'inizio
00124 ; Registri usati:
00125 ; \
00126 ; Subroutine richiamate:
00127 ; sc
00128 ; rit
00129 ; ********************************************************
00130
0060 3001 00131 cl movlw 0x01
0061 206A 00132 call sc ; CLEAR
00133
0062 3002 00134 movlw 2
0063 2083 00135 call rit ; Ritardo 2 ms
00136
0064 3080 00137 movlw 80H
0065 206A 00138 call sc ; Posizione Iniziale
00139
0066 0008 00140 return
00141
00142 ; ********************************************************
00143 ; sd
00144 ; Send data - Invia un dato al display
00145 ; Registri usati:
00146 ; W --> dato da inviare
00147 ; Subroutine richiamate:
00148 ; sb
00149 ; ********************************************************
00150
0067 1586 00151 sd bsf PORTB,RS
0068 206D 00152 call sb
0069 0008 00153 return
00154
00155
00156 ; ********************************************************
00157 ; sc
00158 ; Send Command - Invia un comando al display
00159 ; Registri usati:
00160 ; W --> Comando da inviare
00161 ; Subroutine richiamate:
00162 ; sb
00163 ; ********************************************************
00164
006A 1186 00165 sc bcf PORTB,RS
006B 206D 00166 call sb
006C 0008 00167 return
00168
00169 ; ********************************************************
MPASM 03.20.09 Released HELLO.ASM 6-30-2004 4:14:07 PAGE 6
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00170 ; sb
00171 ; Send byte - Invia un byte sull'msb di PORTB
00172 ; Registri usati:
00173 ; tmp
00174 ; Subroutine richiamate:
00175 ; enable
00176 ; ********************************************************
00177
006D 008E 00178 sb movwf tmp
006E 300F 00179 movlw B'00001111'
006F 0586 00180 andwf PORTB,F ;Metto a 0 i 4 bit MSB di PORTB
0070 080E 00181 movf tmp,W
0071 39F0 00182 andlw B'11110000' ;Metto a 0 i 4 bit LSB del byte da inviare in W
0072 0486 00183 iorwf PORTB,F ;OR fra PORTB (0000XXXX) e W (DDDD0000)
0073 207B 00184 call enable ;Impulso di Enable
0074 300F 00185 movlw B'00001111'
0075 0586 00186 andwf PORTB,F ;Metto a 0 i 4 bit MSB di PORTB
0076 0E0E 00187 swapf tmp,W ;Metto tmp1 in W con LSB invertito con MSB
0077 39F0 00188 andlw B'11110000' ;Metto a 0 i 4 bit LSB del byte da inviare in W
0078 0486 00189 iorwf PORTB,F ;OR fra PORTB (0000XXXX) e W (DDDD0000)
0079 207B 00190 call enable ;Impulso di Enable
00191
007A 0008 00192 return
00193
00194 ; ********************************************************
00195 ; enable
00196 ; Manda un impulso di ENABLE della durata di 1ms
00197 ; Registri usati:
00198 ; \
00199 ; Subroutine richiamate:
00200 ; rit
00201 ; ********************************************************
00202
007B 1283 00203 enable bcf STATUS,RP0 ;banco 0
007C 1506 00204 bsf PORTB,EN ;metto a 1 enable
007D 3001 00205 movlw 1 ;metto 1 in w
007E 2083 00206 call rit ;ritardo
007F 1106 00207 bcf PORTB,EN ;rimetto a 0 enable
0080 3001 00208 movlw 1
0081 2083 00209 call rit
00210
0082 0008 00211 return
00212
00213 ; ********************************************************
00214 ; rit
00215 ; Ciclo di ritardo programmabile
00216 ; Registri usati:
00217 ; W --> Numero di ms (per CLK = 4MHz)
00218 ; msb --> (uso interno)
00219 ; lsb --> (uso interno)
00220 ; Subroutine richiamate:
00221 ; \
00222 ; ********************************************************
MPASM 03.20.09 Released HELLO.ASM 6-30-2004 4:14:07 PAGE 7
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00223
0083 008D 00224 rit movwf msb
0084 018C 00225 clrf lsb
0085 00226 rit_loop
0085 0000 00227 nop
0086 0B8C 00228 decfsz lsb,F
0087 2885 00229 goto rit_loop
0088 0000 00230 nop
0089 0B8D 00231 decfsz msb,F
008A 2885 00232 goto rit_loop
00233
008B 0008 00234 return
00094
00095 end
MPASM 03.20.09 Released HELLO.ASM 6-30-2004 4:14:07 PAGE 8
SYMBOL TABLE
LABEL VALUE
C 00000000
DC 00000001
EEADR 00000009
EECON1 00000088
EECON2 00000089
EEDATA 00000008
EEIE 00000006
EEIF 00000004
EN 00000002
F 00000001
FSR 00000004
GIE 00000007
INDF 00000000
INTCON 0000000B
INTE 00000004
INTEDG 00000006
INTF 00000001
IRP 00000007
NOT_PD 00000003
NOT_RBPU 00000007
NOT_TO 00000004
OPTION_REG 00000081
PCL 00000002
PCLATH 0000000A
PIN11 00000004
PIN12 00000005
PIN13 00000006
PIN14 00000007
PORTA 00000005
PORTB 00000006
PS0 00000000
PS1 00000001
PS2 00000002
PSA 00000003
RBIE 00000003
RBIF 00000000
RD 00000000
RP0 00000005
RP1 00000006
RS 00000003
STATUS 00000003
T0CS 00000005
T0IE 00000005
T0IF 00000002
T0SE 00000004
TMR0 00000001
TRISA 00000085
TRISB 00000086
W 00000000
WR 00000001
WREN 00000002
WRERR 00000003
Z 00000002
MPASM 03.20.09 Released HELLO.ASM 6-30-2004 4:14:07 PAGE 9
SYMBOL TABLE
LABEL VALUE
_CP_OFF 00003FFF
_CP_ON 0000000F
_HS_OSC 00003FFE
_LP_OSC 00003FFC
_PWRTE_OFF 00003FFF
_PWRTE_ON 00003FF7
_RC_OSC 00003FFF
_WDT_OFF 00003FFB
_WDT_ON 00003FFF
_XT_OSC 00003FFD
__16F84 00000001
cl 00000060
cp 00000055
enable 0000007B
init 00000039
loop 00000038
lsb 0000000C
msb 0000000D
rit 00000083
rit_loop 00000085
sb 0000006D
sc 0000006A
sd 00000067
tmp 0000000E
tmp1 0000000F
MEMORY USAGE MAP ('X' = Used, '-' = Unused)
0000 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0040 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0080 : XXXXXXXXXXXX---- ---------------- ---------------- ----------------
All other memory blocks unused.
Program Memory Words Used: 140
Program Memory Words Free: 884
Errors : 0
Warnings : 0 reported, 0 suppressed
Messages : 0 reported, 1 suppressed
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -