
Дипломы2 / Диплом / Чужие дипломы / Колин / PR12
.DOCПриложение 1.2
;---SFR----- Описание специальных регистров функций
TCON: EQU 88H;
TMOD: EQU 89H;
P4: EQU C0H;
TCK: REG C0H;
TDO: REG C1H;
TMS: REG C2H;
ENO: REG C3H;
ENI: REG C4H;
WP: REG C5H;
LTEST: REG C6H;
CIN: REG C7H;
P5: EQU 91H;
P6: EQU A1H;
BAUD: EQU 94H;
GMOD: EQU 84H;
DCON0: EQU 92H;
DCON1: EQU 93H;
DARL0: EQU C2H;
DARH0: EQU C3H;
DARL1: EQU D2H;
DARH1: EQU D3H;
SARL0: EQU A2H;
SARH0: EQU A3H;
SARL1: EQU B2H;
SARH1: EQU B3H;
BCRL0: EQU E2H;
BCRH0: EQU E3H;
BCRL1: EQU F2H;
BCRH1: EQU F3H;
RFIFO: EQU F4H;
TFIFO: EQU 85H;
ADR0: EQU 95H;
ADR1: EQU A5H;
ADR2: EQU B5H;
ADR3: EQU C5H;
AMSK0: EQU D5H;
AMSK1: EQU E5H;
GREN: REG E9H;
RDN: REG EBH;
DMA: REG D8H;
TEN: REG D9H;
TFNF: REG DAH;
TDN: REG DBH;
TCDT: REG DCH;
UR: REG DDH;
NOACK: REG DEH;
П 1.2
LNI: REG DFH;
EGSRV: REG C8H;
EGSRE: REG C9H;
EDMA: REG CAH;
EGSTV: REG CBH;
EDMA1: REG CCH;
EGSTE: REG CDH;
RFNE: REG EAH;
;------------------
;--------VAR------- Переменные
;R1-NR
;R3-NS
;R5-INSTRUCTION
;R4-LENGTH OF DATA
;------INTERUPT---- Прерывания
ORG 400H;
JMP START;
ORG 403H; Внешнее 0
IEX0:
ORG 40BH; Таймер/счетчик 0
IET0:
ORG 413H; Внешнее 1
IEX1:
ORG 41BH; Таймер/счетчик 1
IET1:
ORG 423H; Последовательный порт
IES:
ORG 42BH; GSC прием
IEGSRV: JMP GSCRV;
ORG 433H; GSC прием с ошибкой
IEGSRE: JMP GSCRE;
ORG 43BH; DMA0
IEDMA0: JMP DMA0;
ORG 443H; GSC передача
IEGSTV: JMP GSCTV;
ORG 44BH; GSC передача с ошибкой
IGSTE:
ORG 453H; DMA1
IEDMA1: JMP DMA1;
П 1.2
;---------START------------- Задание основных режимов работы
ORG 473H;
START: MOV SP,#200;
MOV PSW,#0;
MOV R0,#00000011B;
MOV R4,#0;
MOV R5,#10;
MOV R2,#10;
MOV R1,#0;
MOV R3,#0;
; SETB ENI;
; CLR ENO;
MOV BAUD,#30; ;BAUD=500 KH ( F/(BAUD +1)*8 )
MOV GMOD,#00000011B; ;HDLC, PL=1, 16-CRC, 8-ADDRESS,
;NORMAL,INTERNAL CLK
ORL PCON,#00010000B; ;/GFIEN, GAREN,
MOV DCON0,#10111000B; ;DCON0 TR;D-TFIFO NO;S-IRAM YES
MOV DCON1,#01101000B; ;DCON1 RS;D-ERAM YES;S-RFIFO NO
SETB DMA; ;DMA
MOV ADR0,#10; ;ADR
MOV ADR1,#11;
MOV ADR2,#12;
MOV ADR3,#13;
MOV AMSK0,#0; ;AMSK
MOV AMSK1,#0;
MOV SARH1,#0;
MOV SARL1,#RFIFO;
MOV DARH1,#80H;
MOV DARL1,#00H; ;DAR1=8000H
MOV 30H,#1;
MOV 31H,#1;
MOV 32H,#170;
MOV 33H,#170;
; SETB F0;
CLR F0;
SETB GREN; ;GREN
ORL DCON1,#1;
SETB EGSRV;
; SETB EGSRE;
; SETB EDMA0;
; SETB EGSTV;
П 1.2
; SETB EDMA1;
CALL RAMT;
SETB EA;
MOV P5,#0;
FFFF: SETB GREN; ;GREN
ORL DCON1,#1;
SETB EGSRV;
CPL P1.7;
JB F0,BEGIN;
JMP FFFF;
;*************MAIN********************
BEGIN: ;CLR ENI;
;SETB ENI;
CALL NET;
JMP BEGIN;
;**********NET************************
NET: JNB F0,NETW;
; CALL IND;
MOV P5,#0;
CLR F0;
CALL ANFR;
CALL TR;
NETW: RET;
;___________________________________
TR: CLR EGSRV;
MOV DARH0,#0;
MOV DARL0,#TFIFO; ;DAR0=TFIFO
MOV SARH1,#0;
MOV SARL1,#RFIFO;
MOV SARH0,#0;
MOV SARL0,#30H; ;SAR0=30H
MOV DARH1,#80H;
MOV DARL1,#00H; ;DAR1=8000H
; MOV BCRH0,#0;
; MOV BCRL0,#12; ;BCR0
MOV BCRH1,#0;
MOV BCRL1,#FFH; ;BCR1
;*****COMMANDS**********
;-------SLAVE-----------
SLAVE:
;-------FRMR------------
П 1.2
COM3: CJNE R5,#3,COM5; FRMR
MOV 30H,#1;
MOV 31H,#10010111B; FRMR
MOV R5,B;
MOV BCRH0,#0;
MOV BCRL0,#2;
SETB TEN;
JMP CEXIT;
;-------UA--------------
COM5: CJNE R5,#5,COM6; UA
MOV 30H,#1;
MOV 31H,#01110011B; UA
MOV BCRH0,#0;
MOV BCRL0,#2;
SETB TEN;
JMP CEXIT;
;-------DM--------------
COM6: CJNE R5,#6,COM7; DM
MOV 30H,#1;
MOV 31H,#00011111B; DM
MOV BCRH0,#0;
MOV BCRL0,#2;
SETB TEN;
JMP CEXIT;
;-------INF-------------
COM7: CJNE R5,#7,COM9; INF
MOV 30H,#1;
MOV 31H,R3;
MOV BCRH0,#0;
MOV BCRL0,#12;
SETB TEN;
JMP CEXIT;
;-------IF--------------
COM9: CJNE R5,#9,CEXIT;
MOV 30H,#1;
MOV 31H,R3;
ORL 31H,#00010000B;
MOV BCRH0,#0;
MOV BCRL0,#12;
SETB TEN;
JMP CEXIT;
CEXIT:
CALL RFIFOC;
; SETB TEN; ;TEN
SETB GREN; ;GREN
SETB EGSRV;
ORL DCON0,#1;
ORL DCON1,#1;
TRE: RET;
П 1.2
;---------------------------
RFIFOC: MOV A,RFIFO;
JB RFNE,RFIFOC;RFNE
RET;
;----------------------------
RFIFOD: MOV DPH,DARH1;
MOV DPL,DARL1;
RFIF1: JNB RFNE,ENDD;
CLR C;
MOV A,BCRL1;
SUBB A,#1;
MOV BCRL1,A;
MOV A,BCRH1;
SUBB A,#0;
MOV BCRH1,A;
MOV A,RFIFO;
MOVX @DPTR,A;
INC DPTR;
JMP RFIF1;
ENDD: CLR C;
MOV A,#FFH;
SUBB A,BCRL1;
CLR C;
SUBB A,#2;
MOV R4,A;
RET;
;**************INTERUPT****************
GSCRV:
CPL P1.7;
CALL RFIFOD;
MOV R0,#FFH;
CALL IND;
MOV P5,#0;
CLR EGSRV;
SETB F0;
RETI;
;----------------------------
GSCTV:
CPL P1.7;
; CALL IND;
MOV P5,#0;
CLR EGSTV;
SETB F0;
RETI;
;----------------------------------------
GSCRE:
CPL P1.7;
CALL IND;
П 1.2
MOV P5,#0;
SETB F0;
RETI;
;------------------------------
DMA0:
CPL P1.7;
CALL IND;
MOV P5,#0;
SETB GREN; ;GREN
SETB F0;
RETI;
;------------------------------
DMA1:
CPL P1.7;
CALL IND;
MOV P5,#0;
SETB F0;
RETI;
;**************************
;--------IND---------------
IND:
;MOV P5,#FFH;
MOV P5,R0;
MOV R6,#FFH;
I1: MOV R7,#FFH;
I2: NOP;
NOP;
NOP;
NOP;
NOP;
DJNZ R7,I2;
DJNZ R6,I1;
MOV P5,#80H;
MOV R6,#FFH;
I4: MOV R7,#FFH;
I3: NOP;
NOP;
NOP;
NOP;
NOP;
DJNZ R7,I3;
DJNZ R6,I4;
RET;
;-----------------------
RAMT: MOV DPTR,#8000H;
MOV P5,#0;
MOV R0,#FFH;
RAMTW: MOV A,R0;
MOVX @DPTR,A;
INC DPTR;
DJNZ R0,RAMTW;
П 1.2
MOV DPTR,#8000H;
MOV R0,#FFH;
RAMTR: MOVX A,@DPTR;
CJNE A,0,RAMTE;
INC DPTR;
DJNZ R0,RAMTR;
; CALL IND;
RET;
RAMTE:
; CALL IND;
RET;
;******ANALIZ FRAME*********
ANFR:
;-------SLAVE----------
SLAV:
; MOV R0,#11010101B;
; CALL IND;
; MOV P5,#0;
MOV DPTR,#8001H
MOVX A,@DPTR;
;-------DELAY----------
SRV10: CJNE R5,#10,SRV5; DELAY
CJNE A,#10010011B,SRV10_1; SNRM
MOV R5,#5; UA
JMP RVEX;
SRV10_1:
MOV R5,#6; DM
JMP RVEX;
;-------UA-------------
SRV5: CJNE R5,#5,SRV6; UA
CJNE A,#10010011B,SRV5_1; SNRM
MOV R5,#5; UA
JMP RVEX;
SRV5_1: CJNE A,#01010011B,SRV5_2; DISC
MOV R5,#5; UA
JMP RVEX;
SRV5_2: PUSH A;
ANL A,#00011111B;
CJNE A,#00010001B,SRV5_3; RRF
POP A;
ANL A,#11100000B;
SWAP A;
MOV R3,A; NS=NR
MOV R5,#7; INF
JMP RVEX;
SRV5_3: MOV B,R5;
POP A;
MOV R5,#3; FRMR
JMP RVEX;
;-------DM---------------
SRV6: CJNE R5,#6,SRV7; DM
П 1.2
CJNE A,#10010011B,SRV6_1; SNRM
MOV R5,#5; UA
JMP RVEX;
SRV6_1: MOV R5,#6; DM
JMP RVEX;
;-------INF--------------
SRV7: CJNE R5,#7,SRV9; INF
CJNE A,#10010111B,SRV7_1; FRMR
MOV R5,#7; INF
JMP RVEX;
SRV7_1: CJNE A,#01010011B,SRV7_2; DISC
MOV R5,#5; UA
JMP RVEX;
SRV7_2: CJNE A,#10010011B,SRV7_3; SNRM
MOV R5,#5; UA
JMP RVEX;
SRV7_3: PUSH A;
ANL A,#00011111B;
CJNE A,#00010001B,SRV7_4; RRF
POP A;
ANL A,#11100000B;
SWAP A;
MOV R3,A;
MOV R0,#11010101B;
CALL IND;
MOV P5,#0;
CJNE R3,#00001110B,SRV7_5;
MOV R5,#9; IF
JMP RVEX;
SRV7_5: MOV R5,#7; INF
JMP RVEX;
SRV7_4: MOV B,R5;
POP A;
MOV R5,#3; FRMR
JMP RVEX;
;-------IF----------------
SRV9: CJNE R5,#9,RVEX; IF
CJNE A,#10010111B,SRV9_1; FRMR
MOV R5,#9; INF
JMP RVEX;
SRV9_1: CJNE A,#01010011B,SRV9_2; DISC
MOV R5,#5; UA
JMP RVEX;
SRV9_2: CJNE A,#10010011B,SRV9_3; SNRM
MOV R5,#5; UA
JMP RVEX;
SRV9_3: PUSH A;
ANL A,#00011111B;
CJNE A,#00000001B,SRV9_4; RRNF
MOV R5,#10; DELAY
JMP RVEX;
SRV9_4: MOV B,R5;
POP A;
П 1.2
MOV R5,#3; FRMR
JMP RVEX;
RVEX:
RET;
;-------END OF ANALIZ---------