📄 p18lcd.lst
字号:
0000B2 0000 00242 NOP ; Small delay
0000B4 0000 00243 NOP
00244
0000B6 8280 00245 bsf LCD_E ; Setup to clock data
00246
0000B8 AE?? 00247 btfss temp_wr, 7 ; Set high nibble
0000BA 9683 00248 bcf LCD_D7
0000BC BE?? 00249 btfsc temp_wr, 7
0000BE 8683 00250 bsf LCD_D7
0000C0 AC?? 00251 btfss temp_wr, 6
0000C2 9483 00252 bcf LCD_D6
0000C4 BC?? 00253 btfsc temp_wr, 6
0000C6 8483 00254 bsf LCD_D6
0000C8 AA?? 00255 btfss temp_wr, 5
0000CA 9283 00256 bcf LCD_D5
0000CC BA?? 00257 btfsc temp_wr, 5
0000CE 8283 00258 bsf LCD_D5
0000D0 A8?? 00259 btfss temp_wr, 4
0000D2 9083 00260 bcf LCD_D4
0000D4 B8?? 00261 btfsc temp_wr, 4
0000D6 8083 00262 bsf LCD_D4
MPASM 5.20 P18LCD.ASM 5-28-2008 15:51:07 PAGE 6
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00263
0000D8 0000 00264 NOP
0000DA 0000 00265 NOP
00266
0000DC 9280 00267 bcf LCD_E ; Send the data
00268
0000DE 0012 00269 return
00270 ; *******************************************************************
00271
00272
00273
00274
00275
00276 ; *******************************************************************
0000E0 00277 LCDWrite
00278 ; rcall LCDBusy
0000E0 D??? 00279 rcall LCDWriteNibble
0000E2 3A?? 00280 swapf temp_wr,F
0000E4 D??? 00281 rcall LCDWriteNibble
0000E6 3A?? 00282 swapf temp_wr,F
00283
0000E8 0012 00284 return
00285
0000 00286 GLOBAL LCDWrite
00287 ; *******************************************************************
00288
00289
00290
00291
00292
00293 ; *******************************************************************
00294 ; _____ _____________________________________________________
00295 ; RS _____>--<_____________________________________________________
00296 ; ____________________________________________________
00297 ; RW _________/
00298 ; ____________________ ____________________
00299 ; E ____________/ \____/ \__
00300 ; _________________ __________ ___
00301 ; DB _________________>--------------<__________>--------------<___
00302 ;
0000EA 00303 LCDRead
0000EA 8095 00304 bsf LCD_D4_DIR ; Set data bits to inputs
0000EC 8295 00305 bsf LCD_D5_DIR
0000EE 8495 00306 bsf LCD_D6_DIR
0000F0 8695 00307 bsf LCD_D7_DIR
00308
0000F2 A0D8 00309 btfss STATUS, C ; Set the register select
0000F4 9680 00310 bcf LCD_RS
0000F6 B0D8 00311 btfsc STATUS, C
0000F8 8680 00312 bsf LCD_RS
00313
0000FA 8480 00314 bsf LCD_RW ;Read = 1
00315
MPASM 5.20 P18LCD.ASM 5-28-2008 15:51:07 PAGE 7
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0000FC 0000 00316 NOP
0000FE 0000 00317 NOP
00318
000100 8280 00319 bsf LCD_E ; Setup to clock data
00320
000102 0000 00321 NOP
000104 0000 00322 NOP
000106 0000 00323 NOP
000108 0000 00324 NOP
00325
00010A A683 00326 btfss LCD_D7 ; Get high nibble
00010C 9E?? 00327 bcf temp_rd, 7
00010E B683 00328 btfsc LCD_D7
000110 8E?? 00329 bsf temp_rd, 7
000112 A483 00330 btfss LCD_D6
000114 9C?? 00331 bcf temp_rd, 6
000116 B483 00332 btfsc LCD_D6
000118 8C?? 00333 bsf temp_rd, 6
00011A A283 00334 btfss LCD_D5
00011C 9A?? 00335 bcf temp_rd, 5
00011E B283 00336 btfsc LCD_D5
000120 8A?? 00337 bsf temp_rd, 5
000122 A083 00338 btfss LCD_D4
000124 98?? 00339 bcf temp_rd, 4
000126 B083 00340 btfsc LCD_D4
000128 88?? 00341 bsf temp_rd, 4
00342
00012A 9280 00343 bcf LCD_E ; Finished reading the data
00344
00012C 0000 00345 NOP
00012E 0000 00346 NOP
000130 0000 00347 NOP
000132 0000 00348 NOP
000134 0000 00349 NOP
000136 0000 00350 NOP
000138 0000 00351 NOP
00013A 0000 00352 NOP
00353
00013C 8280 00354 bsf LCD_E ; Setup to clock data
00355
00013E 0000 00356 NOP
000140 0000 00357 NOP
00358
000142 A683 00359 btfss LCD_D7 ; Get low nibble
000144 96?? 00360 bcf temp_rd, 3
000146 B683 00361 btfsc LCD_D7
000148 86?? 00362 bsf temp_rd, 3
00014A A483 00363 btfss LCD_D6
00014C 94?? 00364 bcf temp_rd, 2
00014E B483 00365 btfsc LCD_D6
000150 84?? 00366 bsf temp_rd, 2
000152 A283 00367 btfss LCD_D5
000154 92?? 00368 bcf temp_rd, 1
MPASM 5.20 P18LCD.ASM 5-28-2008 15:51:07 PAGE 8
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
000156 B283 00369 btfsc LCD_D5
000158 82?? 00370 bsf temp_rd, 1
00015A A083 00371 btfss LCD_D4
00015C 90?? 00372 bcf temp_rd, 0
00015E B083 00373 btfsc LCD_D4
000160 80?? 00374 bsf temp_rd, 0
00375
000162 9280 00376 bcf LCD_E ; Finished reading the data
00377
000164 00378 FinRd
000164 0012 00379 return
00380 ; *******************************************************************
00381
00382
00383
00384
00385
00386
00387 ; *******************************************************************
000166 00388 LCDBusy
00389 ; Check BF
00390 rlcd LCD_INS
M IF 0 == 1
M bsf STATUS, C
M rcall LCDRead
M ELSE
000166 90D8 M bcf STATUS, C
000168 D??? M rcall LCDRead
M ENDIF
00016A BE?? 00391 btfsc temp_rd, 7
00016C D??? 00392 bra LCDBusy
00016E 0012 00393 return
00394
0000 00395 GLOBAL LCDBusy
00396 ; *******************************************************************
00397
00398
00399
00400
00401
00402
00403 ; *******************************************************************
000170 00404 DelayXCycles
000170 2E?? 00405 decfsz delay,F
000172 D??? 00406 bra DelayXCycles
000174 0012 00407 return
00408 ; *******************************************************************
00409
00410
00411 END
MPASM 5.20 P18LCD.ASM 5-28-2008 15:51:07 PAGE 9
SYMBOL TABLE
LABEL VALUE
A 00000000
ACCESS 00000000
ACKDT 00000005
ACKEN 00000004
ACKSTAT 00000006
ADCON0 00000FC2
ADCON1 00000FC1
ADCS0 00000006
ADCS1 00000007
ADCS2 00000006
ADDEN 00000003
ADFM 00000007
ADIE 00000006
ADIF 00000006
ADIP 00000006
ADON 00000000
ADRESH 00000FC4
ADRESL 00000FC3
AN0 00000000
AN1 00000001
AN2 00000002
AN3 00000003
AN4 00000005
AN5 00000000
AN6 00000001
AN7 00000002
BANKED 00000001
BCLIE 00000003
BCLIF 00000003
BCLIP 00000003
BF 00000000
BOR 00000000
BRGH 00000002
BSR 00000FE0
C 00000000
CCP1 00000002
CCP1CON 00000FBD
CCP1IE 00000002
CCP1IF 00000002
CCP1IP 00000002
CCP1M0 00000000
CCP1M1 00000001
CCP1M2 00000002
CCP1M3 00000003
CCP1X 00000005
CCP1Y 00000004
CCP2 00000001
CCP2A 00000003
CCP2CON 00000FBA
CCP2IE 00000000
CCP2IF 00000000
CCP2IP 00000000
CCP2M0 00000000
MPASM 5.20 P18LCD.ASM 5-28-2008 15:51:07 PAGE 10
SYMBOL TABLE
LABEL VALUE
CCP2M1 00000001
CCP2M2 00000002
CCP2M3 00000003
CCP2X 00000005
CCP2Y 00000004
CCPR1H 00000FBF
CCPR1L 00000FBE
CCPR2H 00000FBC
CCPR2L 00000FBB
CFGS 00000006
CHS0 00000003
CHS1 00000004
CHS2 00000005
CK 00000006
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -