📄 display.lis
字号:
04D6 B006 jnz X46
04D8 3D0405 cmp [X+4],5
04DB A030 jz L89
04DD X46:
04DD 3D0300 cmp [X+3],0
04E0 B006 jnz X47
04E2 3D0406 cmp [X+4],6
04E5 A02B jz L90
04E7 X47:
04E7 3D0300 cmp [X+3],0
04EA B006 jnz X48
04EC 3D0407 cmp [X+4],7
04EF A026 jz L91
04F1 X48:
04F1 8029 xjmp L81
04F3 X19:
04F3 .dbline 169
04F3 ; {
04F3 L84:
04F3 .dbline 170
04F3 ; case 0 : ch=0x01; break;
04F3 560101 mov [X+1],1
04F6 .dbline 170
04F6 8027 xjmp L82
04F8 L85:
04F8 .dbline 171
04F8 ; case 1 : ch=0x81; break;
04F8 560181 mov [X+1],-127
04FB .dbline 171
04FB 8022 xjmp L82
04FD L86:
04FD .dbline 172
04FD ; case 2 : ch=0xC1; break;
04FD 5601C1 mov [X+1],-63
0500 .dbline 172
0500 801D xjmp L82
0502 L87:
0502 .dbline 173
0502 ; case 3 : ch=0xE1; break;
0502 5601E1 mov [X+1],-31
0505 .dbline 173
0505 8018 xjmp L82
0507 L88:
0507 .dbline 174
0507 ; case 4 : ch=0xF1; break;
0507 5601F1 mov [X+1],-15
050A .dbline 174
050A 8013 xjmp L82
050C L89:
050C .dbline 175
050C ; case 5 : ch=0xF9; break;
050C 5601F9 mov [X+1],-7
050F .dbline 175
050F 800E xjmp L82
0511 L90:
0511 .dbline 176
0511 ; case 6 : ch=0xFD; break;
0511 5601FD mov [X+1],-3
0514 .dbline 176
0514 8009 xjmp L82
0516 L91:
0516 .dbline 177
0516 ; case 7 : ch=0xFF; break;
0516 5601FF mov [X+1],-1
0519 .dbline 177
0519 8004 xjmp L82
051B L81:
051B .dbline 178
051B ; default: ch=0xFF; break;
051B 5601FF mov [X+1],-1
051E .dbline 178
051E L82:
051E .dbline 179
051E .dbline 180
051E 5201 mov A,[X+1]
0520 08 push A
0521 90BA xcall _LcdSendData
0523 38FF add SP,-1
0525 .dbline 181
0525 L78:
0525 .dbline 167
0525 7700 inc [X+0]
0527 L80:
0527 .dbline 167
0527 3D0006 cmp [X+0],6
052A A003 jz X49
052C CF6D jc L77
052E X49:
052E .dbline 182
052E ; };
052E ; LcdSendData(ch);
052E ; }
052E ; LcdSendData(0xFF);
052E 50FF mov A,-1
0530 08 push A
0531 90AA xcall _LcdSendData
0533 38FF add SP,-1
0535 .dbline -2
0535 .dbline 183
0535 ; }
0535 L38:
0535 38FB add SP,-5
0537 20 pop X
0538 .dbline 0 ; func end
0538 7F ret
0539 .dbsym l j 2 c
0539 .dbsym l ch 1 c
0539 .dbsym l i 0 c
0539 .dbsym l yposition 0 I
0539 .dbsym l yposition -7 c
0539 .dbsym l yend 0 I
0539 .dbsym l yend -6 c
0539 .dbsym l ystart 0 I
0539 .dbsym l ystart -5 c
0539 .dbsym l x 0 I
0539 .dbsym l x -4 c
0539 .dbend
0539 .dbfunc e LcdHBargraph _LcdHBargraph fV
0539 ; i -> X+0
0539 ; xposition -> X-7
0539 ; xend -> X-6
0539 ; xstart -> X-5
0539 ; y -> X-4
0539 _LcdHBargraph::
0539 .dbline -1
0539 10 push X
053A 4F mov X,SP
053B 3802 add SP,2
053D .dbline 186
053D ;
053D ; void LcdHBargraph (char y, char xstart, char xend, char xposition)
053D ; {
053D .dbline 188
053D ; int i;
053D ; LcdSendCommand(0x40 | y);
053D 52FC mov A,[X-4]
053F 2940 or A,64
0541 08 push A
0542 90B3 xcall _LcdSendCommand
0544 38FF add SP,-1
0546 .dbline 189
0546 ; LcdSendCommand(0x80 | xstart);
0546 52FB mov A,[X-5]
0548 2980 or A,-128
054A 08 push A
054B 90AA xcall _LcdSendCommand
054D .dbline 190
054D ; LcdSendData(0x7E);
054D 507E mov A,126
054F 08 push A
0550 908B xcall _LcdSendData
0552 38FE add SP,-2
0554 .dbline 191
0554 560101 mov [X+1],1
0557 560000 mov [X+0],0
055A 800D xjmp L96
055C L93:
055C .dbline 191
055C 507E mov A,126
055E 08 push A
055F 907C xcall _LcdSendData
0561 38FF add SP,-1
0563 L94:
0563 .dbline 191
0563 7701 inc [X+1]
0565 0F0000 adc [X+0],0
0568 L96:
0568 .dbline 191
0568 ; for (i=1; i<=xposition; i++) LcdSendData(0x7E);
0568 52F9 mov A,[X-7]
056A 5300 mov [__r1],A
056C 5200 mov A,[X+0]
056E 3180 xor A,-128
0570 5300 mov [__rY],A
0572 5000 mov A,0
0574 3180 xor A,-128
0576 5300 mov [__rZ],A
0578 550000 mov [__rX],0
057B 5201 mov A,[X+1]
057D 1200 sub A,[__r1]
057F 2C00 or [__rX],A
0581 5100 mov A,[__rY]
0583 1A00 sbb A,[__rZ]
0585 2C00 or [__rX],A
0587 CFD4 jc L93
0589 5100 mov A,[__rX]
058B AFD0 jz L93
058D X50:
058D .dbline 192
058D 52F9 mov A,[X-7]
058F 0101 add A,1
0591 5401 mov [X+1],A
0593 5000 mov A,0
0595 0900 adc A,0
0597 5400 mov [X+0],A
0599 800D xjmp L100
059B L97:
059B .dbline 192
059B 5042 mov A,66
059D 08 push A
059E 903D xcall _LcdSendData
05A0 38FF add SP,-1
05A2 L98:
05A2 .dbline 192
05A2 7701 inc [X+1]
05A4 0F0000 adc [X+0],0
05A7 L100:
05A7 .dbline 192
05A7 ; for (i=xposition+1; i<xend-xstart; i++) LcdSendData(0x42);
05A7 52FA mov A,[X-6]
05A9 5300 mov [__r1],A
05AB 550000 mov [__r0],0
05AE 52FB mov A,[X-5]
05B0 1400 sub [__r1],A
05B2 1E0000 sbb [__r0],0
05B5 5200 mov A,[X+0]
05B7 3180 xor A,-128
05B9 5300 mov [__rY],A
05BB 5100 mov A,[__r0]
05BD 3180 xor A,-128
05BF 5300 mov [__rZ],A
05C1 550000 mov [__rX],0
05C4 5201 mov A,[X+1]
05C6 1200 sub A,[__r1]
05C8 2C00 or [__rX],A
05CA 5100 mov A,[__rY]
05CC 1A00 sbb A,[__rZ]
05CE 2C00 or [__rX],A
05D0 CFCA jc L97
05D2 X51:
05D2 .dbline 193
05D2 ; LcdSendData(0x7E);
05D2 507E mov A,126
05D4 08 push A
05D5 9006 xcall _LcdSendData
05D7 38FF add SP,-1
05D9 .dbline -2
05D9 .dbline 194
05D9 ; }
05D9 L92:
05D9 38FE add SP,-2
05DB 20 pop X
05DC .dbline 0 ; func end
05DC 7F ret
05DD .dbsym l i 0 I
05DD .dbsym l xposition 0 I
05DD .dbsym l xposition -7 c
05DD .dbsym l xend 0 I
05DD .dbsym l xend -6 c
05DD .dbsym l xstart 0 I
05DD .dbsym l xstart -5 c
05DD .dbsym l y 0 I
05DD .dbsym l y -4 c
05DD .dbend
05DD .dbfunc e LcdSendData _LcdSendData fV
05DD ; data -> X-4
05DD _LcdSendData::
05DD .dbline -1
05DD 10 push X
05DE 4F mov X,SP
05DF .dbline 197
05DF ;
05DF ; void LcdSendData ( char data )
05DF ; {
05DF .dbline 198
05DF ; SETBIT(LCD_PORT, LCD_DC_BIT);
05DF 430440 or REG[4],64
05E2 .dbline 200
05E2 ; // Send data to display controller.
05E2 ; SPIM_SendTxData(data);
05E2 10 push X
05E3 52FC mov A,[X-4]
05E5 7C0000 xcall _SPIM_SendTxData
05E8 20 pop X
05E9 L102:
05E9 .dbline 202
05E9 L103:
05E9 .dbline 202
05E9 ; // Wait until SPI cycle complete.
05E9 ; while ( ! (bSPIM_ReadStatus() & SPIM_SPIM_SPI_COMPLETE) );
05E9 10 push X
05EA 7C0000 xcall _bSPIM_ReadStatus
05ED 20 pop X
05EE 5300 mov [__r0],A
05F0 470020 tst [__r0],32
05F3 AFF5 jz L102
05F5 .dbline -2
05F5 .dbline 203
05F5 ; }
05F5 L101:
05F5 20 pop X
05F6 .dbline 0 ; func end
05F6 7F ret
05F7 .dbsym l data 0 I
05F7 .dbsym l data -4 c
05F7 .dbend
05F7 .dbfunc e LcdSendCommand _LcdSendCommand fV
05F7 ; command -> X-4
05F7 _LcdSendCommand::
05F7 .dbline -1
05F7 10 push X
05F8 4F mov X,SP
05F9 .dbline 206
05F9 ;
05F9 ; void LcdSendCommand ( char command )
05F9 ; {
05F9 .dbline 207
05F9 ; CLEARBIT(LCD_PORT, LCD_DC_BIT);
05F9 4104BF and REG[4],-65
05FC .dbline 209
05FC ; // Send command to display controller.
05FC ; SPIM_SendTxData(command);
05FC 10 push X
05FD 52FC mov A,[X-4]
05FF 7C0000 xcall _SPIM_SendTxData
0602 20 pop X
0603 L106:
0603 .dbline 211
0603 L107:
0603 .dbline 211
0603 ; // Wait until SPI cycle complete.
0603 ; while ( ! (bSPIM_ReadStatus() & SPIM_SPIM_SPI_COMPLETE) );
0603 10 push X
0604 7C0000 xcall _bSPIM_ReadStatus
0607 20 pop X
0608 5300 mov [__r0],A
060A 470020 tst [__r0],32
060D AFF5 jz L106
060F .dbline -2
060F .dbline 212
060F ; }
060F L105:
060F 20 pop X
0610 .dbline 0 ; func end
0610 7F ret
0611 .dbsym l command 0 I
0611 .dbsym l command -4 c
0611 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -