📄 复件 xxx3.asm
字号:
; .\xxx.SRC generated from: .\xxx.c
$NOMOD51
NAME XXX
P0 DATA 080H
P1 DATA 090H
P2 DATA 0A0H
P3 DATA 0B0H
AC BIT 0D0H.6
T0 BIT 0B0H.4
T1 BIT 0B0H.5
EA BIT 0A8H.7
IE DATA 0A8H
P0_0 BIT 080H.0
P1_0 BIT 090H.0
P0_1 BIT 080H.1
FL BIT 0D0H.1
P2_0 BIT 0A0H.0
P1_1 BIT 090H.1
P0_2 BIT 080H.2
P3_0 BIT 0B0H.0
P2_1 BIT 0A0H.1
P1_2 BIT 090H.2
P0_3 BIT 080H.3
P3_1 BIT 0B0H.1
P2_2 BIT 0A0H.2
P1_3 BIT 090H.3
P0_4 BIT 080H.4
P3_2 BIT 0B0H.2
P2_3 BIT 0A0H.3
P1_4 BIT 090H.4
P0_5 BIT 080H.5
RD BIT 0B0H.7
P3_3 BIT 0B0H.3
P2_4 BIT 0A0H.4
P1_5 BIT 090H.5
P0_6 BIT 080H.6
P3_4 BIT 0B0H.4
P2_5 BIT 0A0H.5
P1_6 BIT 090H.6
P0_7 BIT 080H.7
P3_5 BIT 0B0H.5
ES BIT 0A8H.4
P2_6 BIT 0A0H.6
P1_7 BIT 090H.7
P3_6 BIT 0B0H.6
P2_7 BIT 0A0H.7
IP DATA 0B8H
P3_7 BIT 0B0H.7
RI BIT 098H.0
CY BIT 0D0H.7
INT0 BIT 0B0H.2
INT1 BIT 0B0H.3
TI BIT 098H.1
PS BIT 0B8H.4
SP DATA 081H
OV BIT 0D0H.2
WR BIT 0B0H.6
SBUF DATA 099H
PCON DATA 087H
SCON DATA 098H
TMOD DATA 089H
TCON DATA 088H
IE0 BIT 088H.1
IE1 BIT 088H.3
B DATA 0F0H
ACC DATA 0E0H
ET0 BIT 0A8H.1
ET1 BIT 0A8H.3
TF0 BIT 088H.5
ET2 BIT 0A8H.5
TF1 BIT 088H.7
RB8 BIT 098H.2
TH0 DATA 08CH
EX0 BIT 0A8H.0
IT0 BIT 088H.0
TH1 DATA 08DH
EX1 BIT 0A8H.2
TB8 BIT 098H.3
IT1 BIT 088H.2
P BIT 0D0H.0
SM0 BIT 098H.7
TL0 DATA 08AH
SM1 BIT 098H.6
TL1 DATA 08BH
SM2 BIT 098H.5
PT0 BIT 0B8H.1
RS0 BIT 0D0H.3
PT1 BIT 0B8H.3
RS1 BIT 0D0H.4
PT2 BIT 0B8H.5
TR0 BIT 088H.4
TR1 BIT 088H.6
PX0 BIT 0B8H.0
PX1 BIT 0B8H.2
DPH DATA 083H
DPL DATA 082H
REN BIT 098H.4
RXD BIT 0B0H.0
TXD BIT 0B0H.1
F0 BIT 0D0H.5
PSW DATA 0D0H
?PR?displed?XXX SEGMENT CODE
?PR?main?XXX SEGMENT CODE
?PR?int0_int?XXX SEGMENT CODE
?C_INITSEG SEGMENT CODE
?DT?XXX SEGMENT DATA
EXTRN CODE (?C_STARTUP)
PUBLIC k
PUBLIC j
PUBLIC i
PUBLIC ge?
PUBLIC shi
PUBLIC disp
PUBLIC hong
PUBLIC int0_int
PUBLIC main
PUBLIC displed
RSEG ?DT?XXX
hong: DS 1
disp: DS 20
shi: DS 1
ge?: DS 1
i: DS 1
j: DS 1
k: DS 1
RSEG ?C_INITSEG
DB 014H
DB disp
DW 0003FH
DW 00030H
DW 0006DH
DW 00079H
DW 00072H
DW 0005BH
DW 0005FH
DW 00031H
DW 0007FH
DW 0007BH
; #include <AT89X51.H>
;
; unsigned int disp[10] = {0x3f,0x30,0x6d,0x79,0x72,0x5b,0x5f,0x31,0x7f,0x7b};
; //0, 1, 2 3 4 5 6 7 8 9
; unsigned char i,j,k,ge,shi,hong;
;
; void displed() //主程序温度显示函数
RSEG ?PR?displed?XXX
displed:
USING 0
; SOURCE LINE # 7
; {
; SOURCE LINE # 8
; ge=hong%10;
; SOURCE LINE # 9
MOV A,hong
MOV B,#0AH
DIV AB
MOV ge?,B
; shi=hong/10;
; SOURCE LINE # 10
MOV A,hong
MOV B,#0AH
DIV AB
MOV shi,A
; P0=disp[ge];
; SOURCE LINE # 11
MOV A,ge?
ADD A,ACC
ADD A,#LOW (disp)
MOV R0,A
MOV A,@R0
INC R0
MOV A,@R0
MOV P0,A
; P2=0x40;
; SOURCE LINE # 12
MOV P2,#040H
; for(i=0; i<10; i++) //延时部分
; SOURCE LINE # 13
CLR A
MOV i,A
?C0001:
; for(j=0; j<100; j++)
; SOURCE LINE # 14
CLR A
MOV j,A
?C0004:
; {;}
; SOURCE LINE # 15
INC j
MOV A,j
CJNE A,#064H,?C0004
?C0003:
INC i
MOV A,i
CJNE A,#0AH,?C0001
?C0002:
; //P2=0;
; P0=disp[shi];
; SOURCE LINE # 17
MOV A,shi
ADD A,ACC
ADD A,#LOW (disp)
MOV R0,A
MOV A,@R0
INC R0
MOV A,@R0
MOV P0,A
; P2=0x80;
; SOURCE LINE # 18
MOV P2,#080H
; for(i=0; i<10; i++) //延时部分
; SOURCE LINE # 19
CLR A
MOV i,A
?C0007:
; for(j=0; j<100; j++)
; SOURCE LINE # 20
CLR A
MOV j,A
?C0010:
; {;}
; SOURCE LINE # 21
INC j
MOV A,j
CJNE A,#064H,?C0010
?C0009:
INC i
MOV A,i
CJNE A,#0AH,?C0007
; }
; SOURCE LINE # 22
?C0013:
RET
; END OF displed
;
; main()
RSEG ?PR?main?XXX
main:
USING 0
; SOURCE LINE # 24
; {
; SOURCE LINE # 25
; // int hong=0;
; EA =1;
; SOURCE LINE # 27
SETB EA
; IT0 =1;
; SOURCE LINE # 28
SETB IT0
; EX0=1 ;
; SOURCE LINE # 29
SETB EX0
;
; P2=0xE7;
; SOURCE LINE # 31
MOV P2,#0E7H
?C0014:
; while(1)
; SOURCE LINE # 32
; {
; SOURCE LINE # 33
; // hong=P1;
; displed();
; SOURCE LINE # 35
LCALL displed
; }
; SOURCE LINE # 36
SJMP ?C0014
; END OF main
CSEG AT 00003H
LJMP int0_int
; }
;
; ////////////////////把接受并转换好的二进制码存入入P1中/////////////////////
;
; void int0_int(void) interrupt 0
RSEG ?PR?int0_int?XXX
USING 0
int0_int:
; SOURCE LINE # 41
; {
; #pragma asm
; jmp xxx
jmp xxx
; YS1: MOV R4,#20 ;延时子程序1,精确延时882微秒
YS1: MOV R4,#20 ;延时子程序1,精确延时882微秒
; D1: MOV R5,#20
D1: MOV R5,#20
; DJNZ R5,$
DJNZ R5,$
; DJNZ R4,D1
DJNZ R4,D1
; RET
RET
; YS2: MOV R4,#10 ;延时子程序2,精确延时4740微秒
YS2: MOV R4,#10 ;延时子程序2,精确延时4740微秒
; D2: MOV R5,#235
D2: MOV R5,#235
; DJNZ R5,$
DJNZ R5,$
; DJNZ R4,D2
DJNZ R4,D2
; RET
RET
; YS3: MOV R4,#2;延时程序3,精确延时1000微秒
YS3: MOV R4,#2;延时程序3,精确延时1000微秒
; D3:MOV R5,#248
D3:MOV R5,#248
; DJNZ R5,$
DJNZ R5,$
; DJNZ R4,D3
DJNZ R4,D3
; RET
RET
; xxx:
xxx:
; CLR EA ;暂时关闭CPU的所有中断请求
CLR EA ;暂时关闭CPU的所有中断请求
; MOV R6,#10
MOV R6,#10
; SB: ACALL YS1;调用882微秒延时子程序
SB: ACALL YS1;调用882微秒延时子程序
; JB P3.2,EXIT;延时882微秒后判断P3.2脚是否出现高电平如果有就退出解码程序
JB P3.2,EXIT;延时882微秒后判断P3.2脚是否出现高电平如果有就退出解码程序
; DJNZ R6, SB;重复10次,目的是检测在8820微秒内如果出现高电平就退出解码程序
DJNZ R6, SB;重复10次,目的是检测在8820微秒内如果出现高电平就退出解码程序
; ;以上完成对遥控信号的9000微秒的初始低电平信号的识别。
;以上完成对遥控信号的9000微秒的初始低电平信号的识别。
; JNB P3.2, $ ;等待高电平避开9毫秒低电平引导脉冲
JNB P3.2, $ ;等锤叩缙奖芸
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -