Скачиваний:
21
Добавлен:
10.12.2013
Размер:
23.04 Кб
Скачать

Приложение 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---------

Соседние файлы в папке Колин