?? gressy.src
字號:
; .\REC.SRC generated from: REC.c
; COMPILER INVOKED BY:
; C:\KEIL\C51\BIN\C51.EXE REC.c ROM(COMPACT) BROWSE DEBUG OBJECTEXTEND SRC(.\REC.SRC)
$NOMOD51
NAME REC
P0 DATA 080H
P1 DATA 090H
P2 DATA 0A0H
P3 DATA 0B0H
T0 BIT 0B0H.4
AC BIT 0D0H.6
T1 BIT 0B0H.5
T2 BIT 090H.0
EA BIT 0A8H.7
IE DATA 0A8H
EXF2 BIT 0C8H.6
RD BIT 0B0H.7
ES BIT 0A8H.4
IP DATA 0B8H
RI BIT 098H.0
INT0 BIT 0B0H.2
CY BIT 0D0H.7
TI BIT 098H.1
INT1 BIT 0B0H.3
RCAP2H DATA 0CBH
PS BIT 0B8H.4
SP DATA 081H
T2EX BIT 090H.1
OV BIT 0D0H.2
SS BIT 080H.3
RCAP2L DATA 0CAH
C_T2 BIT 0C8H.1
WR BIT 0B0H.6
RCLK BIT 0C8H.5
SCLK BIT 080H.0
TCLK BIT 0C8H.4
RECLED BIT 080H.6
SBUF DATA 099H
PCON DATA 087H
SCON DATA 098H
TMOD DATA 089H
TCON DATA 088H
MISO BIT 080H.2
MOSI BIT 080H.1
IE0 BIT 088H.1
IE1 BIT 088H.3
B DATA 0F0H
CP_RL2 BIT 0C8H.0
ACC DATA 0E0H
ET0 BIT 0A8H.1
ET1 BIT 0A8H.3
TF0 BIT 088H.5
ET2 BIT 0A8H.5
TF1 BIT 088H.7
TF2 BIT 0C8H.7
RB8 BIT 098H.2
TH0 DATA 08CH
EX0 BIT 0A8H.0
IT0 BIT 088H.0
TH1 DATA 08DH
TB8 BIT 098H.3
EX1 BIT 0A8H.2
IT1 BIT 088H.2
TH2 DATA 0CDH
P BIT 0D0H.0
SM0 BIT 098H.7
TL0 DATA 08AH
SM1 BIT 098H.6
TL1 DATA 08BH
SM2 BIT 098H.5
TL2 DATA 0CCH
PT0 BIT 0B8H.1
PT1 BIT 0B8H.3
RS0 BIT 0D0H.3
RAC BIT 080H.5
PT2 BIT 0B8H.5
TR0 BIT 088H.4
RS1 BIT 0D0H.4
TR1 BIT 088H.6
TR2 BIT 0C8H.2
PX0 BIT 0B8H.0
PX1 BIT 0B8H.2
DPH DATA 083H
DPL DATA 082H
EXEN2 BIT 0C8H.3
REN BIT 098H.4
RECERROR BIT 080H.7
T2CON DATA 0C8H
INT BIT 0B0H.3
RXD BIT 0B0H.0
TXD BIT 0B0H.1
F0 BIT 0D0H.5
PSW DATA 0D0H
?PR?main?REC SEGMENT CODE INBLOCK
?DT?main?REC SEGMENT DATA OVERLAYABLE
?BI?main?REC SEGMENT BIT OVERLAYABLE
?PR?Initial?REC SEGMENT CODE INBLOCK
?PR?_SendByte?REC SEGMENT CODE INBLOCK
?PR?PowerOff?REC SEGMENT CODE INBLOCK
?PR?Time10ms?REC SEGMENT CODE INBLOCK
?DT?REC SEGMENT DATA
?PR?_Delay?REC SEGMENT CODE INBLOCK
?C_INITSEG SEGMENT CODE
?CO?REC SEGMENT CODE
?BI?REC SEGMENT BIT
EXTRN CODE (?C_STARTUP)
EXTRN CODE (?C?IMUL)
PUBLIC isrecord
PUBLIC INPORT
PUBLIC EAB
PUBLIC isplay
PUBLIC LED
PUBLIC _Delay
PUBLIC Time10ms
PUBLIC PowerOff
PUBLIC _SendByte
PUBLIC Initial
PUBLIC main
DSEG AT 02FH
INPORT: DS 1
RSEG ?DT?main?REC
?main?BYTE:
ledno?040: DS 1
addr?044: DS 2
addrh?045: DS 1
addrl?046: DS 1
RSEG ?BI?main?REC
?main?BIT:
ledchange?041: DBIT 1
oldLAST?042: DBIT 1
oldNEXT?043: DBIT 1
RSEG ?DT?REC
cn?450: DS 1
RSEG ?DT?REC
InP1?451: DS 1
RSEG ?DT?REC
InP2?452: DS 1
playno: DS 1
td: DS 2
recordno: DS 1
RSEG ?BI?REC
isplay: DBIT 1
EAB: DBIT 1
isrecord: DBIT 1
RSEG ?CO?REC
LED:
DB 03FH
DB 006H
DB 05BH
DB 04FH
DB 066H
DB 06DH
DB 07DH
DB 007H
DB 07FH
DB 067H
RSEG ?C_INITSEG
DB 001H
DB cn?450
DB 064H
DB 001H
DB InP1?451
DB 000H
DB 001H
DB InP2?452
DB 000H
; #include <reg52.h>
; #include <REC.h>
; void main(void)
RSEG ?PR?main?REC
main:
USING 0
; SOURCE LINE # 3
; {
; SOURCE LINE # 4
; char ledno=8;
; SOURCE LINE # 5
MOV ledno?040,#08H
; bit ledchange=1;
; SOURCE LINE # 6
SETB ledchange?041
; bit oldLAST=0;
; SOURCE LINE # 7
CLR oldLAST?042
; bit oldNEXT=0;
; SOURCE LINE # 8
CLR oldNEXT?043
; // bit recerr=0;
; unsigned int addr=0;
; SOURCE LINE # 10
CLR A
MOV addr?044,A
MOV addr?044+01H,A
; unsigned char addrh=0,addrl=0;
; SOURCE LINE # 11
MOV addrh?045,A
MOV addrl?046,A
; // bit oldSTSP=0;
; // bit last=1;
; // bit lastno=CN;
; // bit nextno=CN;
; // bit next=1;
; // bit play=1;
; // bit rec=1;
;
; isrecord=isplay=0;
; SOURCE LINE # 20
CLR isplay
CLR isrecord
; Initial();
; SOURCE LINE # 21
LCALL Initial
; // InitialINT();
; // LedTest();
; // Initial();
; // start=0;
; oldLAST=LAST;
; SOURCE LINE # 26
MOV A,INPORT
CPL A
MOV C,ACC.3
MOV oldLAST?042,C
; oldNEXT=NEXT;
; SOURCE LINE # 27
MOV C,ACC.4
MOV oldNEXT?043,C
; PowerUp();Delay(5);PowerUp();Delay(10);
; SOURCE LINE # 28
LCALL L?0048
CLR A
MOV R7,A
LCALL _SendByte
MOV R7,#020H
LCALL _SendByte
MOV C,EAB
MOV EA,C
SETB SS
MOV R7,#05H
MOV R6,#00H
LCALL _Delay
LCALL L?0048
CLR A
MOV R7,A
LCALL _SendByte
MOV R7,#020H
LCALL _SendByte
MOV C,EAB
MOV EA,C
SETB SS
MOV R7,#0AH
MOV R6,#00H
LCALL _Delay
?C0001:
; while(1)
; SOURCE LINE # 29
; {
; SOURCE LINE # 30
; if(PLAY|REC)
; SOURCE LINE # 31
MOV A,INPORT
CPL A
MOV R7,A
ANL A,#01H
MOV R6,A
MOV A,R7
ANL A,#02H
ORL A,R6
JNZ $ + 4H
AJMP ?C0003
; {
; SOURCE LINE # 32
; if(PLAY)
; SOURCE LINE # 33
MOV A,INPORT
CPL A
JB ACC.1,$ + 5H
AJMP ?C0004
; {
; SOURCE LINE # 34
;
; isrecord=0;
; SOURCE LINE # 36
CLR isrecord
; if(!isplay)
; SOURCE LINE # 37
JB isplay,?C0005
; {
; SOURCE LINE # 38
; // if(playno<1||playno>MAXNO) playno=1;
; playno&=7;
; SOURCE LINE # 40
ANL playno,#07H
; if(playno==0) playno=8;
; SOURCE LINE # 41
MOV A,playno
JNZ ?C0006
MOV playno,#08H
?C0006:
; ledno=playno;
; SOURCE LINE # 42
MOV ledno?040,playno
; isplay=1;
; SOURCE LINE # 43
SETB isplay
; ledchange=1;
; SOURCE LINE # 44
SETB ledchange?041
; }
; SOURCE LINE # 45
?C0005:
; if(ledchange)
; SOURCE LINE # 46
JNB ledchange?041,?C0007
; {
; SOURCE LINE # 47
; playno=ledno;
; SOURCE LINE # 48
MOV playno,ledno?040
; Stop();
; SOURCE LINE # 49
LCALL L?0048
CLR A
MOV R7,A
LCALL _SendByte
MOV R7,#070H
LCALL _SendByte
; Delay(20);
; SOURCE LINE # 50
LCALL ?C0049
; addr=(ledno-1)*PERDURATION;
; SOURCE LINE # 51
MOV R7,ledno?040
MOV A,R7
RLC A
SUBB A,ACC
MOV R6,A
MOV A,R7
ADD A,#0FFH
MOV R7,A
MOV A,R6
ADDC A,#0FFH
MOV R6,A
MOV R4,#01H
MOV R5,#02CH
LCALL ?C?IMUL
MOV addr?044,R6
MOV addr?044+01H,R7
; addrl=addr%256;
; SOURCE LINE # 52
MOV addrl?046,R7
; addrh=addr>>8;
; SOURCE LINE # 53
MOV A,addr?044
MOV addrh?045,A
; SMG=~(LED[ledno]);
; SOURCE LINE # 54
MOV R7,ledno?040
MOV A,R7
RLC A
SUBB A,ACC
MOV R6,A
MOV A,#LOW (LED)
ADD A,R7
MOV DPL,A
MOV A,#HIGH (LED)
ADDC A,R6
MOV DPH,A
CLR A
MOVC A,@A+DPTR
CPL A
MOV P2,A
; }
; SOURCE LINE # 55
?C0007:
; if(ledchange||(!INT))
; SOURCE LINE # 56
JB ledchange?041,?C0009
JNB INT,$ + 5H
AJMP ?C0010
?C0009:
; {
; SOURCE LINE # 57
; SetPlay(addrl,addrh);
; SOURCE LINE # 58
MOV C,EA
MOV EAB,C
CLR EA
CLR SS
CLR SS
MOV R7,addrl?046
LCALL _SendByte
MOV R7,addrh?045
LCALL _SendByte
MOV R7,#0E0H
LCALL _SendByte
; Play();
; SOURCE LINE # 59
LCALL ?C0047
CLR A
MOV R7,A
LCALL _SendByte
MOV R7,#0F0H
LCALL _SendByte
MOV C,EAB
MOV EA,C
SETB SS
; }
; SOURCE LINE # 60
; }
; SOURCE LINE # 61
AJMP ?C0010
?C0004:
; else
; {
; SOURCE LINE # 63
; isplay=0;
; SOURCE LINE # 64
CLR isplay
; if(!isrecord)
; SOURCE LINE # 65
JB isrecord,?C0011
; {
; SOURCE LINE # 66
; ledchange=1;
; SOURCE LINE # 67
SETB ledchange?041
; isrecord=1;
; SOURCE LINE # 68
SETB isrecord
; if(recordno<1||recordno>MAXNO) recordno=1;
; SOURCE LINE # 69
CLR C
MOV A,recordno
XRL A,#080H
SUBB A,#081H
JC ?C0013
SETB C
MOV A,recordno
XRL A,#080H
SUBB A,#088H
JC ?C0012
?C0013:
MOV recordno,#01H
?C0012:
; ledno=recordno;
; SOURCE LINE # 70
MOV ledno?040,recordno
; }
; SOURCE LINE # 71
?C0011:
; if(ledchange)
; SOURCE LINE # 72
JNB ledchange?041,?C0014
; {
; SOURCE LINE # 73
; // StopPwrdn();
; recordno=ledno;
; SOURCE LINE # 75
MOV recordno,ledno?040
; Stop();
; SOURCE LINE # 76
LCALL L?0048
CLR A
MOV R7,A
LCALL _SendByte
MOV R7,#070H
LCALL _SendByte
; Delay(20);
; SOURCE LINE # 77
LCALL ?C0049
; addr=(ledno-1)*PERDURATION;
; SOURCE LINE # 78
MOV R7,ledno?040
MOV A,R7
RLC A
SUBB A,ACC
MOV R6,A
MOV A,R7
ADD A,#0FFH
MOV R7,A
MOV A,R6
ADDC A,#0FFH
MOV R6,A
MOV R4,#01H
MOV R5,#02CH
LCALL ?C?IMUL
MOV addr?044,R6
MOV addr?044+01H,R7
; addrl=addr%256;
; SOURCE LINE # 79
MOV addrl?046,R7
; addrh=addr>>8;
; SOURCE LINE # 80
MOV A,addr?044
MOV addrh?045,A
; SMG=~(LED[ledno]);
; SOURCE LINE # 81
MOV R7,ledno?040
MOV A,R7
RLC A
SUBB A,ACC
MOV R6,A
MOV A,#LOW (LED)
ADD A,R7
MOV DPL,A
MOV A,#HIGH (LED)
ADDC A,R6
MOV DPH,A
CLR A
MOVC A,@A+DPTR
CPL A
MOV P2,A
; }
; SOURCE LINE # 82
?C0014:
; if(STSP)
; SOURCE LINE # 83
MOV A,INPORT
CPL A
JB ACC.2,$ + 5H
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -