📄 p16lcd.lst
字号:
0071 1188 00227 bcf LCD_D7
0072 1B80 00228 btfsc temp_wr, 7
0073 1588 00229 bsf LCD_D7
0074 1F00 00230 btfss temp_wr, 6
0075 1108 00231 bcf LCD_D6
0076 1B00 00232 btfsc temp_wr, 6
0077 1508 00233 bsf LCD_D6
0078 1E80 00234 btfss temp_wr, 5
0079 1088 00235 bcf LCD_D5
007A 1A80 00236 btfsc temp_wr, 5
007B 1488 00237 bsf LCD_D5
007C 1E00 00238 btfss temp_wr, 4
007D 1008 00239 bcf LCD_D4
007E 1A00 00240 btfsc temp_wr, 4
007F 1408 00241 bsf LCD_D4
00242
0080 0000 00243 NOP
0081 0000 00244 NOP
00245
0082 1085 00246 bcf LCD_E ; Send the data
00247
0083 0008 00248 return
00249 ; *******************************************************************
00250
00251
00252
00253
MPASM 4.01 Released P16LCD.ASM 5-27-2005 10:17:24 PAGE 6
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00254
00255 ; *******************************************************************
0084 00256 LCDWrite
00257 ; call LCDBusy
0084 2??? 00258 call LCDWriteNibble
0085 ???? ???? 00259 BANKSEL temp_wr
0087 0E?? 00260 swapf temp_wr, f
0088 2??? 00261 call LCDWriteNibble
0089 ???? ???? 00262 banksel temp_wr
008B 0E?? 00263 swapf temp_wr,f
00264
008C 0008 00265 return
00266
0000 00267 GLOBAL LCDWrite
00268 ; *******************************************************************
00269
00270
00271
00272
00273
00274 ; *******************************************************************
00275 ; _____ _____________________________________________________
00276 ; RS _____>--<_____________________________________________________
00277 ; ____________________________________________________
00278 ; RW _________/
00279 ; ____________________ ____________________
00280 ; E ____________/ \____/ \__
00281 ; _________________ __________ ___
00282 ; DB _________________>--------------<__________>--------------<___
00283 ;
008D 00284 LCDRead
008D 1683 1303 00285 banksel TRISD
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
008F 1408 00286 bsf LCD_D4_DIR ; Set data bits to inputs
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
0090 1488 00287 bsf LCD_D5_DIR
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
0091 1508 00288 bsf LCD_D6_DIR
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
0092 1588 00289 bsf LCD_D7_DIR
00290
0093 1283 1303 00291 BANKSEL PORTA
0095 1C03 00292 btfss STATUS, C ; Set the register select
0096 1185 00293 bcf LCD_RS
0097 1803 00294 btfsc STATUS, C
0098 1585 00295 bsf LCD_RS
00296
0099 1505 00297 bsf LCD_RW ;Read = 1
00298
009A 0000 00299 NOP
009B 0000 00300 NOP
00301
009C 1485 00302 bsf LCD_E ; Setup to clock data
MPASM 4.01 Released P16LCD.ASM 5-27-2005 10:17:24 PAGE 7
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00303
009D 0000 00304 NOP
009E 0000 00305 NOP
009F 0000 00306 NOP
00A0 0000 00307 NOP
00308
00A1 1D88 00309 btfss LCD_D7 ; Get high nibble
00A2 1380 00310 bcf temp_rd, 7
00A3 1988 00311 btfsc LCD_D7
00A4 1780 00312 bsf temp_rd, 7
00A5 1D08 00313 btfss LCD_D6
00A6 1300 00314 bcf temp_rd, 6
00A7 1908 00315 btfsc LCD_D6
00A8 1700 00316 bsf temp_rd, 6
00A9 1C88 00317 btfss LCD_D5
00AA 1280 00318 bcf temp_rd, 5
00AB 1888 00319 btfsc LCD_D5
00AC 1680 00320 bsf temp_rd, 5
00AD 1C08 00321 btfss LCD_D4
00AE 1200 00322 bcf temp_rd, 4
00AF 1808 00323 btfsc LCD_D4
00B0 1600 00324 bsf temp_rd, 4
00325
00B1 1085 00326 bcf LCD_E ; Finished reading the data
00327
00B2 0000 00328 NOP
00B3 0000 00329 NOP
00B4 0000 00330 NOP
00B5 0000 00331 NOP
00B6 0000 00332 NOP
00B7 0000 00333 NOP
00B8 0000 00334 NOP
00B9 0000 00335 NOP
00336
00BA 1485 00337 bsf LCD_E ; Setup to clock data
00338
00BB 0000 00339 NOP
00BC 0000 00340 NOP
00341
00BD 1D88 00342 btfss LCD_D7 ; Get low nibble
00BE 1180 00343 bcf temp_rd, 3
00BF 1988 00344 btfsc LCD_D7
00C0 1580 00345 bsf temp_rd, 3
00C1 1D08 00346 btfss LCD_D6
00C2 1100 00347 bcf temp_rd, 2
00C3 1908 00348 btfsc LCD_D6
00C4 1500 00349 bsf temp_rd, 2
00C5 1C88 00350 btfss LCD_D5
00C6 1080 00351 bcf temp_rd, 1
00C7 1888 00352 btfsc LCD_D5
00C8 1480 00353 bsf temp_rd, 1
00C9 1C08 00354 btfss LCD_D4
00CA 1000 00355 bcf temp_rd, 0
MPASM 4.01 Released P16LCD.ASM 5-27-2005 10:17:24 PAGE 8
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00CB 1808 00356 btfsc LCD_D4
00CC 1400 00357 bsf temp_rd, 0
00358
00CD 1085 00359 bcf LCD_E ; Finished reading the data
00360
00CE 00361 FinRd
00CE 0008 00362 return
00363 ; *******************************************************************
00364
00365
00366
00367
00368
00369
00370 ; *******************************************************************
00CF 00371 LCDBusy
00372 ; Check BF
00373 rlcd LCD_INS
M IF 0 == 1
M bsf STATUS, C
M call LCDRead
M ELSE
00CF 1003 M bcf STATUS, C
00D0 2??? M call LCDRead
M ENDIF
00D1 1B80 00374 btfsc temp_rd, 7
00D2 2??? 00375 goto LCDBusy
00D3 0008 00376 return
00377
0000 00378 GLOBAL LCDBusy
00379 ; *******************************************************************
00380
00381
00382
00383
00384
00385
00386 ; *******************************************************************
00D4 00387 DelayXCycles
00D4 0B?? 00388 decfsz delay, F
00D5 2??? 00389 goto DelayXCycles
00D6 0008 00390 return
00391 ; *******************************************************************
00392
00393
00394 END
MPASM 4.01 Released P16LCD.ASM 5-27-2005 10:17:24 PAGE 9
SYMBOL TABLE
LABEL VALUE
ACKDT 00000005
ACKEN 00000004
ACKSTAT 00000006
ADCON0 0000001F
ADCON1 0000009F
ADCS0 00000006
ADCS1 00000007
ADDEN 00000003
ADFM 00000007
ADIE 00000006
ADIF 00000006
ADON 00000000
ADRESH 0000001E
ADRESL 0000009E
BCLIE 00000003
BCLIF 00000003
BF 00000000
BRGH 00000002
C 00000000
C1INV 00000004
C1OUT 00000006
C2INV 00000005
C2OUT 00000007
CCP1CON 00000017
CCP1IE 00000002
CCP1IF 00000002
CCP1M0 00000000
CCP1M1 00000001
CCP1M2 00000002
CCP1M3 00000003
CCP1X 00000005
CCP1Y 00000004
CCP2CON 0000001D
CCP2IE 00000000
CCP2IF 00000000
CCP2M0 00000000
CCP2M1 00000001
CCP2M2 00000002
CCP2M3 00000003
CCP2X 00000005
CCP2Y 00000004
CCPR1H 00000016
CCPR1L 00000015
CCPR2H 0000001C
CCPR2L 0000001B
CHS0 00000003
CHS1 00000004
CHS2 00000005
CIS 00000003
CKE 00000006
CKP 00000004
CM0 00000000
CM1 00000001
MPASM 4.01 Released P16LCD.ASM 5-27-2005 10:17:24 PAGE 10
SYMBOL TABLE
LABEL VALUE
CM2 00000002
CMCON 0000009C
CMIE 00000006
CMIF 00000006
COUNTER 00000020
CREN 00000004
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -