📄 1.src
字号:
; P2=n;
; SOURCE LINE # 106
MOV P2,R7
; }
; SOURCE LINE # 107
RET
; END OF _display
;
; /*=========发射调制后的高电平函数==========*/
; void sendh(uchar n)
RSEG ?PR?_sendh?1
_sendh:
USING 0
; SOURCE LINE # 110
;---- Variable 'n?544' assigned to Register 'R7' ----
; {
; SOURCE LINE # 111
; uchar e;
; sendport=1;
; SOURCE LINE # 113
SETB sendport
; for(e=0;e<n;e++)
; SOURCE LINE # 114
;---- Variable 'e?545' assigned to Register 'R6' ----
CLR A
MOV R6,A
?C0040:
MOV A,R6
CLR C
SUBB A,R7
JNC ?C0043
; {
; SOURCE LINE # 115
; #pragma ASM
; NOP
NOP
; NOP
NOP
; NOP
NOP
; NOP
NOP
; #pragma ENDASM
; sendport=!sendport;
; SOURCE LINE # 122
CPL sendport
; }
; SOURCE LINE # 123
INC R6
SJMP ?C0040
; }
; SOURCE LINE # 124
?C0043:
RET
; END OF _sendh
;
; /*=========发射函数==========*/
; void send(uchar qq)
RSEG ?PR?_send?1
_send:
USING 0
; SOURCE LINE # 127
;---- Variable 'qq?646' assigned to Register 'R7' ----
; {
; SOURCE LINE # 128
; bit c;
; uchar i;
; datayuan=qq;
; SOURCE LINE # 131
MOV datayuan,R7
; datafan=~qq;
; SOURCE LINE # 132
MOV A,R7
CPL A
MOV datafan,A
; sendh(0xef); //发送起始位 高电平
; SOURCE LINE # 133
MOV R7,#0EFH
LCALL _sendh
; delay(0x007a); //发送起始位 低电平
; SOURCE LINE # 134
MOV R7,#07AH
MOV R6,#00H
LCALL _delay
; address=0x55; //地址码
; SOURCE LINE # 135
MOV address,#055H
;
; for(i=0;i<8;i++)
; SOURCE LINE # 137
;---- Variable 'i?648' assigned to Register 'R5' ----
CLR A
MOV R5,A
?C0044:
; {
; SOURCE LINE # 138
; c=ad7;
; SOURCE LINE # 139
MOV C,ad7
MOV c?647,C
; if(c==1)
; SOURCE LINE # 140
JNB c?647,?C0047
; sendh(0x9f);
; SOURCE LINE # 141
MOV R7,#09FH
SJMP ?C0088
?C0047:
; else
; sendh(0x4f);
; SOURCE LINE # 143
MOV R7,#04FH
?C0088:
LCALL _sendh
?C0048:
; delay(0x0082);
; SOURCE LINE # 144
LCALL L?0092
; address<<=1;
; SOURCE LINE # 145
MOV A,address
ADD A,ACC
MOV address,A
; } //发送地址位
; SOURCE LINE # 146
INC R5
CJNE R5,#08H,?C0044
?C0045:
;
; for(i=0;i<8;i++)
; SOURCE LINE # 148
CLR A
MOV R5,A
?C0049:
; {
; SOURCE LINE # 149
; c=datayuan7;
; SOURCE LINE # 150
MOV C,datayuan7
MOV c?647,C
; if(c==1)
; SOURCE LINE # 151
JNB c?647,?C0052
; sendh(0x9f);
; SOURCE LINE # 152
MOV R7,#09FH
SJMP ?C0089
?C0052:
; else
; sendh(0x4f);
; SOURCE LINE # 154
MOV R7,#04FH
?C0089:
LCALL _sendh
?C0053:
; delay(0x0082); //发送数据位
; SOURCE LINE # 155
LCALL L?0092
; datayuan=datayuan<<1;
; SOURCE LINE # 156
MOV A,datayuan
ADD A,ACC
MOV datayuan,A
; }
; SOURCE LINE # 157
INC R5
CJNE R5,#08H,?C0049
?C0050:
;
; for(i=0;i<8;i++)
; SOURCE LINE # 159
CLR A
MOV R5,A
?C0054:
; {
; SOURCE LINE # 160
; c=datafan7;
; SOURCE LINE # 161
MOV C,datafan7
MOV c?647,C
; if(c==1)
; SOURCE LINE # 162
JNB c?647,?C0057
; sendh(0x9f);
; SOURCE LINE # 163
MOV R7,#09FH
SJMP ?C0090
?C0057:
; else
; sendh(0x4f);
; SOURCE LINE # 165
MOV R7,#04FH
?C0090:
LCALL _sendh
?C0058:
; delay(0x0082);
; SOURCE LINE # 166
LCALL L?0093
; datafan=datafan<<1;
; SOURCE LINE # 167
MOV A,datafan
ADD A,ACC
MOV datafan,A
; } //发送数据反码
; SOURCE LINE # 168
INC R5
CJNE R5,#08H,?C0054
?C0055:
; sendh(0x4f);
; SOURCE LINE # 169
MOV R7,#04FH
LCALL _sendh
; sendport=0; //发送结束位
; SOURCE LINE # 170
CLR sendport
; }
; SOURCE LINE # 171
RET
; END OF _send
;
; /*=========初始化==========*/
;
; void original()
RSEG ?PR?original?1
original:
; SOURCE LINE # 175
; {
; SOURCE LINE # 176
; undisplay(); //关显示
; SOURCE LINE # 177
LJMP undisplay
; END OF original
; }
;
; /*==========键盘扫描函数==========*/
;
; kbscan()
RSEG ?PR?kbscan?1
kbscan:
USING 0
; SOURCE LINE # 182
; {
; SOURCE LINE # 183
; if(m==0)
; SOURCE LINE # 184
JB m,?C0061
; {
; SOURCE LINE # 185
; key=kbscan1(); //键盘取值函数1
; SOURCE LINE # 186
LCALL kbscan1
MOV key,R7
; if(key==0x01)
; SOURCE LINE # 187
MOV A,key
CJNE A,#01H,?C0063
; {
; SOURCE LINE # 188
; m=1;
; SOURCE LINE # 189
SETB m
; key=0x00;
; SOURCE LINE # 190
; }
; SOURCE LINE # 191
; }
; SOURCE LINE # 192
SJMP ?C0091
?C0061:
; else
; {
; SOURCE LINE # 194
; key=kbscan2(); //键盘取值函数2
; SOURCE LINE # 195
LCALL kbscan2
MOV key,R7
; if(key==0x02)
; SOURCE LINE # 196
MOV A,key
CJNE A,#02H,?C0063
; {
; SOURCE LINE # 197
; m=0;
; SOURCE LINE # 198
CLR m
; key=0x00;
; SOURCE LINE # 199
?C0091:
CLR A
MOV key,A
; }
; SOURCE LINE # 200
; }
; SOURCE LINE # 201
?C0063:
; return key;
; SOURCE LINE # 202
MOV R7,key
MOV R6,#00H
; }
; SOURCE LINE # 203
?C0065:
RET
; END OF kbscan
;
;
; /*========取发送数据==========*/
; uchar qudata()
RSEG ?PR?qudata?1
qudata:
USING 0
; SOURCE LINE # 207
; {
; SOURCE LINE # 208
; uchar y;
; switch(key)
; SOURCE LINE # 210
MOV A,key
LCALL ?C?CCASE
DW ?C0067
DB 06H
DW ?C0073
DB 07H
DW ?C0078
DB 039H
DW ?C0069
DB 04FH
DW ?C0068
DB 05BH
DW ?C0079
DB 05EH
DW ?C0070
DB 066H
DW ?C0071
DB 06DH
DW ?C0075
DB 06FH
DW ?C0076
DB 077H
DW ?C0080
DB 079H
DW ?C0077
DB 07CH
DW ?C0072
DB 07DH
DW ?C0074
DB 07FH
DW 00H
DW ?C0066
; {
; SOURCE LINE # 211
; case 0x06:y=0x01;break;
; SOURCE LINE # 212
?C0067:
MOV y?949,#01H
SJMP ?C0066
; case 0x5b:y=0x02;break;
; SOURCE LINE # 213
?C0068:
MOV y?949,#02H
SJMP ?C0066
; case 0x4f:y=0x03;break;
; SOURCE LINE # 214
?C0069:
MOV y?949,#03H
SJMP ?C0066
; case 0x66:y=0x04;break;
; SOURCE LINE # 215
?C0070:
MOV y?949,#04H
SJMP ?C0066
; case 0x6d:y=0x05;break;
; SOURCE LINE # 216
?C0071:
MOV y?949,#05H
SJMP ?C0066
; case 0x7d:y=0x06;break;
; SOURCE LINE # 217
?C0072:
MOV y?949,#06H
SJMP ?C0066
; case 0x07:y=0x07;break;
; SOURCE LINE # 218
?C0073:
MOV y?949,#07H
SJMP ?C0066
; case 0x7f:y=0x08;break;
; SOURCE LINE # 219
?C0074:
MOV y?949,#08H
SJMP ?C0066
; case 0x6f:y=0x09;break;
; SOURCE LINE # 220
?C0075:
MOV y?949,#09H
SJMP ?C0066
; case 0x77:y=0x0a;break;
; SOURCE LINE # 221
?C0076:
MOV y?949,#0AH
SJMP ?C0066
; case 0x7c:y=0x0b;break;
; SOURCE LINE # 222
?C0077:
MOV y?949,#0BH
SJMP ?C0066
; case 0x39:y=0x0c;break;
; SOURCE LINE # 223
?C0078:
MOV y?949,#0CH
SJMP ?C0066
; case 0x5e:y=0x0d;break;
; SOURCE LINE # 224
?C0079:
MOV y?949,#0DH
SJMP ?C0066
; case 0x79:y=0x0e;break;
; SOURCE LINE # 225
?C0080:
MOV y?949,#0EH
; default: break;
; SOURCE LINE # 226
; }
; SOURCE LINE # 227
?C0066:
; return y;
; SOURCE LINE # 228
MOV R7,y?949
; }
; SOURCE LINE # 229
?C0082:
RET
; END OF qudata
;
; /*=========主程序==========*/
; void main(void)
RSEG ?PR?main?1
main:
USING 0
; SOURCE LINE # 232
; {
; SOURCE LINE # 233
; uchar senddata;
; original(); //初始化
; SOURCE LINE # 235
LCALL original
?C0083:
;
; while(1)
; SOURCE LINE # 237
; {
; SOURCE LINE # 238
; kbscan(); //键盘取值函数
; SOURCE LINE # 239
LCALL kbscan
;
; if(key!=0)
; SOURCE LINE # 241
MOV A,key
JZ ?C0083
; {
; SOURCE LINE # 242
; display(key); //显示函数
; SOURCE LINE # 243
MOV R7,A
LCALL _display
; senddata=qudata();
; SOURCE LINE # 244
LCALL qudata
;---- Variable 'senddata?1050' assigned to Register 'R4' ----
MOV R4,AR7
; send(senddata); //发射函数
; SOURCE LINE # 245
LCALL _send
; delay(0x30ce); //延时100ms
; SOURCE LINE # 246
MOV R7,#0CEH
MOV R6,#030H
LCALL _delay
; send(senddata); //发射函数
; SOURCE LINE # 247
MOV R7,AR4
LCALL _send
; delay(0xf405); //延时0.5s
; SOURCE LINE # 248
MOV R7,#05H
MOV R6,#0F4H
LCALL _delay
; delay(0xf405); //延时0.5s
; SOURCE LINE # 249
MOV R7,#05H
MOV R6,#0F4H
LCALL _delay
; undisplay(); //关显示
; SOURCE LINE # 250
LCALL undisplay
; key=0x00; //键值清零
; SOURCE LINE # 251
CLR A
MOV key,A
; }
; SOURCE LINE # 252
; }
; SOURCE LINE # 253
SJMP ?C0083
; END OF main
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -