📄 delay subroutine.src
字号:
USING 0
; SOURCE LINE # 146
; int v;
; for (v=0;v<300;v++)
; SOURCE LINE # 148
;---- Variable 'v?645' assigned to Register 'R4/R5' ----
CLR A
MOV R5,A
MOV R4,A
?C0022:
; {
; SOURCE LINE # 149
; delay17us();
; SOURCE LINE # 150
LCALL delay17us
; }
; SOURCE LINE # 151
INC R5
CJNE R5,#00H,?C0062
INC R4
?C0062:
CJNE R4,#01H,?C0022
CJNE R5,#02CH,?C0022
; }
; SOURCE LINE # 152
?C0025:
RET
; END OF delay4ms
;
; void delay1ms(void) {
RSEG ?PR?delay1ms?DELAY_SUBROUTINE
delay1ms:
USING 0
; SOURCE LINE # 154
; int v;
; for (v=0;v<60;v++)
; SOURCE LINE # 156
;---- Variable 'v?746' assigned to Register 'R4/R5' ----
CLR A
MOV R5,A
MOV R4,A
?C0026:
; {
; SOURCE LINE # 157
; delay17us();
; SOURCE LINE # 158
LCALL delay17us
; }
; SOURCE LINE # 159
INC R5
CJNE R5,#00H,?C0063
INC R4
?C0063:
MOV A,R5
XRL A,#03CH
ORL A,R4
JNZ ?C0026
; }
; SOURCE LINE # 160
?C0029:
RET
; END OF delay1ms
;
; /*
;
; void delay6ms(void) {
; int v;
; for (v=0;v<455;v++)
; {
; delay17us();
; }
; }
;
;
; /*********************************************************
; *函数原型:void delay40ms(void);
; *功 能:40ms延迟。
; **********************************************************/
;
; void delay40ms(void) {
RSEG ?PR?delay40ms?DELAY_SUBROUTINE
delay40ms:
USING 0
; SOURCE LINE # 178
; int v;
; for (v=0;v<1500;v++)
; SOURCE LINE # 180
;---- Variable 'v?847' assigned to Register 'R4/R5' ----
CLR A
MOV R5,A
MOV R4,A
?C0030:
; {
; SOURCE LINE # 181
; delay17us();
; SOURCE LINE # 182
LCALL delay17us
; }
; SOURCE LINE # 183
INC R5
CJNE R5,#00H,?C0064
INC R4
?C0064:
CJNE R4,#05H,?C0030
CJNE R5,#0DCH,?C0030
; }
; SOURCE LINE # 184
?C0033:
RET
; END OF delay40ms
;
; /*********************************************************
; *函数原型:void delay40ms(void);
; *功 能:40ms延迟。
; **********************************************************/
;
; void delay200ms(void) {
RSEG ?PR?delay200ms?DELAY_SUBROUTINE
delay200ms:
USING 0
; SOURCE LINE # 191
; int v;
; for (v=0;v<13000;v++)
; SOURCE LINE # 193
;---- Variable 'v?948' assigned to Register 'R4/R5' ----
CLR A
MOV R5,A
MOV R4,A
?C0034:
; {
; SOURCE LINE # 194
; delay17us();
; SOURCE LINE # 195
LCALL delay17us
; }
; SOURCE LINE # 196
INC R5
CJNE R5,#00H,?C0065
INC R4
?C0065:
CJNE R4,#032H,?C0034
CJNE R5,#0C8H,?C0034
; }
; SOURCE LINE # 197
?C0037:
RET
; END OF delay200ms
;
; void delay100ms(void) {
RSEG ?PR?delay100ms?DELAY_SUBROUTINE
delay100ms:
USING 0
; SOURCE LINE # 199
; int v;
; for (v=0;v<6400;v++)
; SOURCE LINE # 201
;---- Variable 'v?1049' assigned to Register 'R4/R5' ----
CLR A
MOV R5,A
MOV R4,A
?C0038:
; {
; SOURCE LINE # 202
; delay17us();
; SOURCE LINE # 203
LCALL delay17us
; }
; SOURCE LINE # 204
INC R5
CJNE R5,#00H,?C0066
INC R4
?C0066:
CLR A
CJNE A,AR5,?C0038
MOV A,R4
CJNE A,#019H,?C0038
; }
; SOURCE LINE # 205
?C0041:
RET
; END OF delay100ms
; /*********************************************************
; *函数原型:void delay207ms(void);
; *功 能:207ms延迟。
; **********************************************************
; void delay207ms(void) {
; int v;
; for (v=0;v<13550;v++)
; {
; delay17us();
; }
; }
;
; /*********************************************************
; *函数原型:void delay60ms(void);
; *功 能:60ms延迟。
; **********************************************************
; void delay60ms(void) {
; int v;
; for (v=0;v<3750;v++)
; {
; delay17us();
; }
; }
;
; /*********************************************************
; *函数原型:void delay107ms(void);
; *功 能:107ms延迟。
; **********************************************************
;
; void delay107ms(void) {
; int v;
; for (v=0;v<7000;v++)
; {
; delay17us();
; }
; }
;
; /*********************************************************
; *函数原型:uchar input(void);
; *功 能:模拟串口输入函数,输入一个字节。
; **********************************************************/
; uchar input(void) {
RSEG ?PR?input?DELAY_SUBROUTINE
input:
USING 0
; SOURCE LINE # 247
; int m;
; uchar in_data;
; in_data=0x00;
; SOURCE LINE # 250
;---- Variable 'in_data?1151' assigned to Register 'R5' ----
CLR A
MOV R5,A
?C0042:
;
; while(qRXD);
; SOURCE LINE # 252
JB qRXD,?C0042
?C0043:
; delay10us();
; SOURCE LINE # 253
LCALL delay10us
; delay17us();
; SOURCE LINE # 254
LCALL delay17us
; for(m=0;m<7;m++)
; SOURCE LINE # 255
;---- Variable 'm?1150' assigned to Register 'R2/R3' ----
CLR A
MOV R3,A
MOV R2,A
?C0044:
; {
; SOURCE LINE # 256
; //qrTXD=1;
; if(qRXD==1){
; SOURCE LINE # 258
JNB qRXD,?C0047
; in_data|=0x80;
; SOURCE LINE # 259
ORL AR5,#080H
; }
; SOURCE LINE # 260
SJMP ?C0048
?C0047:
; else {
; SOURCE LINE # 261
; in_data&=0x7f;
; SOURCE LINE # 262
ANL AR5,#07FH
; }
; SOURCE LINE # 263
?C0048:
; in_data>>=1;
; SOURCE LINE # 264
MOV A,R5
CLR C
RRC A
MOV R5,A
; delay17us();
; SOURCE LINE # 265
LCALL delay17us
; }
; SOURCE LINE # 266
INC R3
CJNE R3,#00H,?C0068
INC R2
?C0068:
MOV A,R3
XRL A,#07H
ORL A,R2
JNZ ?C0044
?C0045:
; if(qRXD==1){
; SOURCE LINE # 267
JNB qRXD,?C0049
; in_data|=0x80;
; SOURCE LINE # 268
ORL AR5,#080H
; }
; SOURCE LINE # 269
SJMP ?C0050
?C0049:
; else {
; SOURCE LINE # 270
; in_data&=0x7f;
; SOURCE LINE # 271
ANL AR5,#07FH
; }
; SOURCE LINE # 272
?C0050:
; delay17us();
; SOURCE LINE # 273
LCALL delay17us
; delay1us();
; SOURCE LINE # 274
LCALL delay1us
; delay1us();
; SOURCE LINE # 275
LCALL delay1us
; delay1us();
; SOURCE LINE # 276
LCALL delay1us
; delay1us();
; SOURCE LINE # 277
LCALL delay1us
; return(in_data);
; SOURCE LINE # 278
MOV R7,AR5
; }
; SOURCE LINE # 279
?C0051:
RET
; END OF input
;
;
;
;
;
;
;
; /*********************************************************
; *函数原型:void output(uchar sda);
; *功 能:模拟串口输出函数,输出一个字节。
; **********************************************************/
; void output(uchar sda) {
RSEG ?PR?_output?DELAY_SUBROUTINE
_output:
USING 0
; SOURCE LINE # 291
;---- Variable 'sda?1252' assigned to Register 'R5' ----
MOV R5,AR7
; int m;
; m=0;
; SOURCE LINE # 293
;---- Variable 'm?1253' assigned to Register 'R2/R3' ----
CLR A
MOV R3,A
MOV R2,A
; qTXD=0;
; SOURCE LINE # 294
CLR qTXD
; delay17us();
; SOURCE LINE # 295
LCALL delay17us
?C0052:
; while(m<8)
; SOURCE LINE # 296
CLR C
MOV A,R3
SUBB A,#08H
MOV A,R2
XRL A,#080H
SUBB A,#080H
JNC ?C0053
; {if (sda&1){
; SOURCE LINE # 297
MOV A,R5
JNB ACC.0,?C0054
; qTXD=1;
; SOURCE LINE # 298
SETB qTXD
; }
; SOURCE LINE # 299
SJMP ?C0055
?C0054:
; else {
; SOURCE LINE # 300
; qTXD=0;
; SOURCE LINE # 301
CLR qTXD
; }
; SOURCE LINE # 302
?C0055:
; delay17us();
; SOURCE LINE # 303
LCALL delay17us
; m=m+1;
; SOURCE LINE # 304
INC R3
CJNE R3,#00H,?C0069
INC R2
?C0069:
; sda>>=1;
; SOURCE LINE # 305
MOV A,R5
CLR C
RRC A
MOV R5,A
; }
; SOURCE LINE # 306
SJMP ?C0052
?C0053:
; qTXD=1;
; SOURCE LINE # 307
SETB qTXD
; delay17us();
; SOURCE LINE # 308
LJMP delay17us
; END OF _output
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -