📄 d51_new.src
字号:
USING 0
; SOURCE LINE # 86
; {
; SOURCE LINE # 87
; unsigned i;
; i=LED_DATA;
; SOURCE LINE # 89
MOV DPTR,#0E000H
MOVX A,@DPTR
;---- Variable 'i?952' assigned to Register 'R4/R5' ----
MOV R5,A
MOV R4,#00H
; i<<=8;
; SOURCE LINE # 90
MOV R5,#00H
MOV R4,A
; i|=LED_DATA;
; SOURCE LINE # 91
MOVX A,@DPTR
MOV R5,A
CLR A
; i>>=7;
; SOURCE LINE # 92
MOV A,R5
MOV R6,AR4
MOV R0,#07H
?C0131:
XCH A,R6
CLR C
RRC A
XCH A,R6
RRC A
DJNZ R0,?C0131
MOV R5,A
MOV R4,AR6
; LED_DATA=(unsigned char)(i&0xff);
; SOURCE LINE # 93
MOV DPTR,#0E000H
MOVX @DPTR,A
; }
; SOURCE LINE # 94
RET
; END OF DisplayLED
; void encode(unsigned int adr) {
RSEG ?PR?_encode?D51_NEW
_encode:
USING 0
MOV adr?1053,R6
MOV adr?1053+01H,R7
; SOURCE LINE # 95
; int i;
; unsigned int adr1;
; uchar c;
; adr1=adr;
; SOURCE LINE # 99
;---- Variable 'adr1?1055' assigned to Register 'R4/R5' ----
MOV R5,adr?1053+01H
MOV R4,adr?1053
; for(i=0;i<8;i++){
; SOURCE LINE # 100
;---- Variable 'i?1054' assigned to Register 'R2/R3' ----
CLR A
MOV R3,A
MOV R2,A
?C0033:
; if(adr==0x8000){
; SOURCE LINE # 101
CLR A
CJNE A,adr?1053+01H,?C0036
MOV A,adr?1053
CJNE A,#080H,?C0036
; DispBuf[i]=LedTab[OKLedChar[i]];
; SOURCE LINE # 102
MOV A,#LOW (OKLedChar)
ADD A,R3
MOV DPL,A
MOV A,#HIGH (OKLedChar)
ADDC A,R2
MOV DPH,A
CLR A
MOVC A,@A+DPTR
MOV DPTR,#LedTab
MOVC A,@A+DPTR
MOV R7,A
MOV A,#LOW (DispBuf)
ADD A,R3
MOV R0,A
MOV @R0,AR7
; }
; SOURCE LINE # 103
SJMP ?C0035
?C0036:
; else{
; SOURCE LINE # 104
; c=adr1&0x0f;
; SOURCE LINE # 105
MOV A,R5
ANL A,#0FH
;---- Variable 'c?1056' assigned to Register 'R1' ----
MOV R1,A
; adr1>>=4;
; SOURCE LINE # 106
MOV A,R4
SWAP A
MOV R0,A
ANL A,#0F0H
XCH A,R0
XRL A,R0
MOV R4,A
MOV A,R5
SWAP A
ANL A,#0FH
ORL A,R0
MOV R5,A
; if(i>3)c=ERRT[7-i];
; SOURCE LINE # 107
SETB C
MOV A,R3
SUBB A,#03H
MOV A,R2
XRL A,#080H
SUBB A,#080H
JC ?C0038
MOV A,#07H
SUBB A,R3
MOV R7,A
CLR A
SUBB A,R2
MOV R6,A
MOV A,#LOW (ERRT)
ADD A,R7
MOV DPL,A
MOV A,#HIGH (ERRT)
ADDC A,R6
MOV DPH,A
CLR A
MOVC A,@A+DPTR
MOV R1,A
?C0038:
; DispBuf[7-i]=LedTab[c];
; SOURCE LINE # 108
MOV A,R1
MOV DPTR,#LedTab
MOVC A,@A+DPTR
MOV R7,A
CLR C
MOV A,#07H
SUBB A,R3
ADD A,#LOW (DispBuf)
MOV R0,A
MOV @R0,AR7
; }
; SOURCE LINE # 109
; }
; SOURCE LINE # 110
?C0035:
INC R3
CJNE R3,#00H,?C0133
INC R2
?C0133:
MOV A,R3
XRL A,#08H
ORL A,R2
JNZ ?C0033
;
; }
; SOURCE LINE # 112
?C0039:
RET
; END OF _encode
; void encode1(void) {//12345678
RSEG ?PR?encode1?D51_NEW
encode1:
USING 0
; SOURCE LINE # 113
; unsigned char i;
; for(i=0;i<8;i++){
; SOURCE LINE # 115
;---- Variable 'i?1157' assigned to Register 'R7' ----
CLR A
MOV R7,A
?C0040:
; DispBuf[i]=LedTab[i+1];
; SOURCE LINE # 116
MOV A,R7
MOV DPTR,#LedTab+01H
MOVC A,@A+DPTR
MOV R6,A
MOV A,#LOW (DispBuf)
ADD A,R7
MOV R0,A
MOV @R0,AR6
; }
; SOURCE LINE # 117
INC R7
CJNE R7,#08H,?C0040
;
; }
; SOURCE LINE # 119
?C0043:
RET
; END OF encode1
; void encode2(void) {//87654321
RSEG ?PR?encode2?D51_NEW
encode2:
USING 0
; SOURCE LINE # 120
; unsigned char i;
; for(i=0;i<8;i++){
; SOURCE LINE # 122
;---- Variable 'i?1258' assigned to Register 'R7' ----
CLR A
MOV R7,A
?C0044:
; DispBuf[i]=LedTab[8-i];
; SOURCE LINE # 123
MOV A,R7
MOV R5,A
CLR C
MOV A,#08H
SUBB A,R5
MOV R5,A
CLR A
SUBB A,#00H
MOV R4,A
MOV A,#LOW (LedTab)
ADD A,R5
MOV DPL,A
MOV A,#HIGH (LedTab)
ADDC A,R4
MOV DPH,A
CLR A
MOVC A,@A+DPTR
MOV R6,A
MOV A,#LOW (DispBuf)
ADD A,R7
MOV R0,A
MOV @R0,AR6
; }
; SOURCE LINE # 124
INC R7
CJNE R7,#08H,?C0044
;
; }
; SOURCE LINE # 126
?C0047:
RET
; END OF encode2
; void encode3(void) {//F3
RSEG ?PR?encode3?D51_NEW
encode3:
USING 0
; SOURCE LINE # 127
; clearDispBuf();
; SOURCE LINE # 128
LCALL clearDispBuf
; DispBuf[0]=LedTab[15];
; SOURCE LINE # 129
MOV DPTR,#LedTab+0FH
CLR A
MOVC A,@A+DPTR
MOV DispBuf,A
; DispBuf[1]=LedTab[3];
; SOURCE LINE # 130
MOV DPTR,#LedTab+03H
CLR A
MOVC A,@A+DPTR
MOV DispBuf+01H,A
; }
; SOURCE LINE # 131
RET
; END OF encode3
; void encode4(void) {//F4
RSEG ?PR?encode4?D51_NEW
encode4:
USING 0
; SOURCE LINE # 132
; clearDispBuf();
; SOURCE LINE # 133
LCALL clearDispBuf
; DispBuf[0]=LedTab[15];
; SOURCE LINE # 134
MOV DPTR,#LedTab+0FH
CLR A
MOVC A,@A+DPTR
MOV DispBuf,A
; DispBuf[1]=LedTab[4];
; SOURCE LINE # 135
MOV DPTR,#LedTab+04H
CLR A
MOVC A,@A+DPTR
MOV DispBuf+01H,A
;
; }
; SOURCE LINE # 137
RET
; END OF encode4
; void encode5(unsigned char c) {
RSEG ?PR?_encode5?D51_NEW
_encode5:
USING 0
;---- Variable 'c?1559' assigned to Register 'R7' ----
; SOURCE LINE # 138
; unsigned char i;
; for(i=0;i<7;i++){
; SOURCE LINE # 140
;---- Variable 'i?1560' assigned to Register 'R6' ----
CLR A
MOV R6,A
?C0050:
; DispBuf[i]=DispBuf[i+1];
; SOURCE LINE # 141
MOV A,#LOW (DispBuf+01H)
ADD A,R6
MOV R0,A
MOV A,@R0
MOV R5,A
MOV A,#LOW (DispBuf)
ADD A,R6
MOV R0,A
MOV @R0,AR5
; }
; SOURCE LINE # 142
INC R6
CJNE R6,#07H,?C0050
?C0051:
; DispBuf[7]=LedTab[c-0x30];
; SOURCE LINE # 143
MOV A,R7
MOV DPTR,#LedTab-030H
MOVC A,@A+DPTR
MOV DispBuf+07H,A
;
; }
; SOURCE LINE # 145
RET
; END OF _encode5
; void encode6(unsigned long freq) {
RSEG ?PR?_encode6?D51_NEW
L?0136:
LCALL clearDispBuf
L?0137:
MOV R7,freq?2378+03H
MOV R6,freq?2378+02H
MOV R5,freq?2378+01H
MOV R4,freq?2378
_encode6:
USING 0
;---- Variable 'freq?1661' assigned to Register 'R4/R5/R6/R7' ----
; SOURCE LINE # 146
; unsigned char i,c[8],j;
; unsigned long f;
; f=freq>>10;//f=freq/1024
; SOURCE LINE # 149
MOV R0,#0AH
LCALL ?C?ULSHR
MOV f?1665+03H,R7
MOV f?1665+02H,R6
MOV f?1665+01H,R5
MOV f?1665,R4
;
; for(i=0;i<8;i++){
; SOURCE LINE # 151
CLR A
MOV i?1662,A
?C0054:
; c[i]=0;
; SOURCE LINE # 152
MOV A,#LOW (c?1663)
ADD A,i?1662
MOV R0,A
CLR A
MOV @R0,A
; }
; SOURCE LINE # 153
INC i?1662
MOV A,i?1662
CJNE A,#08H,?C0054
?C0057:
; while(f>=1000000){
; SOURCE LINE # 154
MOV R7,#040H
MOV R6,#042H
MOV R5,#0FH
MOV R4,#00H
MOV R3,f?1665+03H
MOV R2,f?1665+02H
MOV R1,f?1665+01H
MOV R0,f?1665
CLR C
LCALL ?C?ULCMP
JC ?C0059
; f-=1000000;
; SOURCE LINE # 155
MOV A,f?1665+03H
SUBB A,#040H
MOV f?1665+03H,A
MOV A,f?1665+02H
SUBB A,#042H
MOV f?1665+02H,A
MOV A,f?1665+01H
SUBB A,#0FH
MOV f?1665+01H,A
MOV A,f?1665
SUBB A,#00H
MOV f?1665,A
; c[1]++;
; SOURCE LINE # 156
INC c?1663+01H
; }
; SOURCE LINE # 157
SJMP ?C0057
?C0059:
; while(f>=100000){
; SOURCE LINE # 158
MOV R7,#0A0H
MOV R6,#086H
MOV R5,#01H
MOV R4,#00H
MOV R3,f?1665+03H
MOV R2,f?1665+02H
MOV R1,f?1665+01H
MOV R0,f?1665
CLR C
LCALL ?C?ULCMP
JC ?C0061
; f-=100000;
; SOURCE LINE # 159
MOV A,f?1665+03H
SUBB A,#0A0H
MOV f?1665+03H,A
MOV A,f?1665+02H
SUBB A,#086H
MOV f?1665+02H,A
MOV A,f?1665+01H
SUBB A,#01H
MOV f?1665+01H,A
MOV A,f?1665
SUBB A,#00H
MOV f?1665,A
; c[2]++;
; SOURCE LINE # 160
INC c?1663+02H
; }
; SOURCE LINE # 161
SJMP ?C0059
?C0061:
; while(f>=10000){
; SOURCE LINE # 162
CLR A
MOV R7,#010H
MOV R6,#027H
MOV R5,A
MOV R4,A
MOV R3,f?1665+03H
MOV R2,f?1665+02H
MOV R1,f?1665+01H
MOV R0,f?1665
CLR C
LCALL ?C?ULCMP
JC ?C0063
; f-=10000;
; SOURCE LINE # 163
MOV A,f?1665+03H
SUBB A,#010H
MOV f?1665+03H,A
MOV A,f?1665+02H
SUBB A,#027H
MOV f?1665+02H,A
MOV A,f?1665+01H
SUBB A,#00H
MOV f?1665+01H,A
MOV A,f?1665
SUBB A,#00H
MOV f?1665,A
; c[3]++;
; SOURCE LINE # 164
INC c?1663+03H
; }
; SOURCE LINE # 165
SJMP ?C0061
?C0063:
; while(f>=1000){
; SOURCE LINE # 166
CLR A
MOV R7,#0E8H
MOV R6,#03H
MOV R5,A
MOV R4,A
MOV R3,f?1665+03H
MOV R2,f?1665+02H
MOV R1,f?1665+01H
MOV R0,f?1665
CLR C
LCALL ?C?ULCMP
JC ?C0065
; f-=1000;
; SOURCE LINE # 167
MOV A,f?1665+03H
SUBB A,#0E8H
MOV f?1665+03H,A
MOV A,f?1665+02H
SUBB A,#03H
MOV f?1665+02H,A
MOV A,f?1665+01H
SUBB A,#00H
MOV f?1665+01H,A
MOV A,f?1665
SUBB A,#00H
MOV f?1665,A
; c[4]++;
; SOURCE LINE # 168
INC c?1663+04H
; }
; SOURCE LINE # 169
SJMP ?C0063
?C0065:
; while(f>=100){
; SOURCE LINE # 170
CLR A
MOV R7,#064H
MOV R6,A
MOV R5,A
MOV R4,A
MOV R3,f?1665+03H
MOV R2,f?1665+02H
MOV R1,f?1665+01H
MOV R0,f?1665
CLR C
LCALL ?C?ULCMP
JC ?C0067
; f-=100;
; SOURCE LINE # 171
MOV A,f?1665+03H
SUBB A,#064H
MOV f?1665+03H,A
MOV A,f?1665+02H
SUBB A,#00H
MOV f?1665+02H,A
MOV A,f?1665+01H
SUBB A,#00H
MOV f?1665+01H,A
MOV A,f?1665
SUBB A,#00H
MOV f?1665,A
; c[5]++;
; SOURCE LINE # 172
INC c?1663+05H
; }
; SOURCE LINE # 173
SJMP ?C0065
?C0067:
; while(f>=10){
; SOURCE LINE # 174
CLR A
MOV R7,#0AH
MOV R6,A
MOV R5,A
MOV R4,A
MOV R3,f?1665+03H
MOV R2,f?1665+02H
MOV R1,f?1665+01H
MOV R0,f?1665
CLR C
LCALL ?C?ULCMP
JC ?C0068
; f-=10;
; SOURCE LINE # 175
MOV A,f?1665+03H
SUBB A,#0AH
MOV f?1665+03H,A
MOV A,f?1665+02H
SUBB A,#00H
MOV f?1665+02H,A
MOV A,f?1665+01H
SUBB A,#00H
MOV f?1665+01H,A
MOV A,f?1665
SUBB A,#00H
MOV f?1665,A
; c[6]++;
; SOURCE LINE # 176
INC c?1663+06H
; }
; SOURCE LINE # 177
SJMP ?C0067
?C0068:
; c[7]+=f;
; SOURCE LINE # 178
MOV A,f?1665+03H
ADD A,c?1663+07H
MOV c?1663+07H,A
; j=0;
; SOURCE LINE # 179
;---- Variable 'j?1664' assigned to Register 'R7' ----
CLR A
MOV R7,A
; for(i=0;i<8;i++){
; SOURCE LINE # 180
MOV i?1662,A
?C0069:
; if((c[i]==0)&&(j==0))
; SOURCE LINE # 181
MOV A,#LOW (c?1663)
ADD A,i?1662
MOV R0,A
MOV A,@R0
MOV R6,A
JNZ ?C0072
MOV A,R7
JNZ ?C0072
; DispBuf[i]=LedTab[22];
; SOURCE LINE # 182
MOV DPTR,#LedTab+016H
MOVC A,@A+DPTR
MOV R5,A
MOV A,#LOW (DispBuf)
ADD A,i?1662
MOV R0,A
MOV @R0,AR5
SJMP ?C0071
?C0072:
; else{
; SOURCE LINE # 183
; j=1;
; SOURCE LINE # 184
MOV R7,#01H
; DispBuf[i]=LedTab[c[i]];
; SOURCE LINE # 185
MOV A,R6
MOV DPTR,#LedTab
MOVC A,@A+DPTR
MOV R6,A
MOV A,#LOW (DispBuf)
ADD A,i?1662
MOV R0,A
MOV @R0,AR6
; }
; SOURCE LINE # 186
; }
; SOURCE LINE # 187
?C0071:
INC i?1662
MOV A,i?1662
CJNE A,#08H,?C0069
;
; }
; SOURCE LINE # 189
?C0074:
RET
; END OF _encode6
; void clearDisplay(void) {
RSEG ?PR?clearDisplay?D51_NEW
clearDisplay:
; SOURCE LINE # 190
; CTRL8279=0xd1; /* clear RAM */
; SOURCE LINE # 191
MOV DPTR,#08001H
MOV A,#0D1H
MOVX @DPTR,A
?C0075:
; while (STATUS8279 & 0x80) /* wait till RAM is clear */
; SOURCE LINE # 192
MOV DPTR,#08001H
MOVX A,@DPTR
JB ACC.7,?C0075
; {
; SOURCE LINE # 193
; }
; SOURCE LINE # 194
; }
; SOURCE LINE # 195
?C0077:
RET
; END OF clearDisplay
; void init8279(void) {
RSEG ?PR?init8279?D51_NEW
init8279:
; SOURCE LINE # 196
; clearDisplay();
; SOURCE LINE # 197
LCALL clearDisplay
; CTRL8279=0x20 | 20; /* 11.0592MHz/6/20=92.16kHz 8279 clock */
; SOURCE LINE # 198
MOV DPTR,#08001H
MOV A,#034H
MOVX @DPTR,A
; CTRL8279=(0x10<<3) | 0 ; /* 8x8字符显示, 右入; 编码扫描键盘,双键锁定 */
; SOURCE LINE # 199
MOV A,#080H
MOVX @DPTR,A
; // InitDisplay();
; keyNum=0;
; SOURCE LINE # 201
CLR A
MOV keyNum,A
;
; }
; SOURCE LINE # 203
RET
; END OF init8279
; //;******** RAM自检子程序*************
; unsigned int chkram(void) { /* RAM Chack */
RSEG ?PR?chkram?D51_NEW
chkram:
USING 0
; SOURCE LINE # 205
; unsigned int adr;
; uchar c,r;
; for(adr=0;adr<0x8000;adr++){
; SOURCE LINE # 208
;---- Variable 'adr?1966' assigned to Register 'R6/R7' ----
CLR A
MOV R7,A
MOV R6,A
?C0079:
; c=0xaa;
; SOURCE LINE # 209
;---- Variable 'c?1967' assigned to Register 'R5' ----
MOV R5,#0AAH
; XBYTE[adr]=c;
; SOURCE LINE # 210
MOV DPL,R7
MOV DPH,R6
MOV A,R5
MOVX @DPTR,A
; r=XBYTE[adr];
; SOURCE LINE # 211
MOVX A,@DPTR
MOV R4,A
;---- Variable 'r?1968' assigned to Register 'R4' ----
; if(r!=c)return adr;
; SOURCE LINE # 212
XRL A,R5
JZ ?C0082
RET
?C0082:
; c=0x55;
; SOURCE LINE # 213
MOV R5,#055H
; XBYTE[adr]=c;
; SOURCE LINE # 214
MOV A,R5
MOVX @DPTR,A
; r=XBYTE[adr];
; SOURCE LINE # 215
MOV DPL,R7
MOV DPH,R6
MOVX A,@DPTR
; if(r!=c)return adr;
; SOURCE LINE # 216
XRL A,R5
JZ ?C0081
RET
; }
; SOURCE LINE # 217
?C0081:
INC R7
CJNE R7,#00H,?C0134
INC R6
?C0134:
CLR A
CJNE A,AR7,?C0079
MOV A,R6
CJNE A,#080H,?C0079
?C0080:
; return adr;
; SOURCE LINE # 218
; }
; SOURCE LINE # 219
?C0083:
RET
; END OF chkram
; void delay_dds(void)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -