⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1550-v01.asm

📁 数据通信用的放大程序本程序用于我司的LIN通信系统中
💻 ASM
📖 第 1 页 / 共 2 页
字号:
; AL7.ASM: COME AL6.ASM. AGGIUSTATI I TEMPI DI BRUCIATURA
; AL6.ASM: RESETTA IL TIMER DI BRUCIATURA QUANDO LA LINEA TORNA A 1
; (ERRORE DELLA VERISONE AL5.ASM)
; BRUCIA A STEP DI 1 SEC E POI CONTROLLA LINEA PER SEI VOLTE
; DOPO AVER BRUCIATO, RICOLLEGA LINEA E LA MONITORIZZA:
; SE LINEA A 0, NON REPLICA (NON C'E' PIU' HW RESET)
; DOPO LA BRUCIATURA, ANCHE SE LINEA A 1, ASPETTA 5 SEC PRIMA DI
; TORNARE A REPLICARE


; AL3.ASM E' UGUALE A AL2.ASM: SONO STATE TOLTE DELLE ROUTINE INUTILI
; ALIMENTATORE DIGITALE --- AL2.ASM
; RISPETTO AD AL1.ASM, INTRODOTTA ROUTINE LAMPEGGIO LED


; SONO STATI INSERITE MOLTE ISRUZIONI "CLRWDT" PERCHE' IL PRESCALER
; E' ASSEGNATO AL TIMER ==> IL WDT DURA CIRCA 18 mSEC   ;hardware watchtime 18ms

list  c=120 , P=16C54
__CONFIG 0XFF5

;==============ASSEGNAZIONI COSTANTI ====================


;DEST1         EQU    .39         ; CODICE DESTINATARIO         
;DEST2         EQU    .15         ; CODICE DESTINATARIO         
;CMD           EQU    .10         ; COMANDO
;COLL          EQU     2          ; PER FLAG DI COLLISIONE

;==============ASSEGNAZIONI REGISTRI ====================
;

RTCC            EQU     .1          ; REAL TIME COUNTER
STATUS          EQU     .3          ; REG DI STATO
PORTA           EQU     .5          ; PORTA
PORTB           EQU     .6          ; PORTB
FLAG            EQU     .7          ; REGISTRO DI FLAG 
C_TIM           EQU     .8          ; REGISTRO CONTEGGIO TEMPO
FUSIB           EQU     .9          ; REGISTRO CONTEGGIO TEMPO PER BRUCIATURA FUSIBILE
CHKS            EQU     .10         ; REGISTRO PER  CHECK SUM
CHECK           EQU     .11         ; REGISTRO PER CONTROLLO COLLISIONE LINEA
COUNT           EQU     .12         ; REGISTRO PER CONTEGGIO BIT DA TRASMETTERE
REG1            EQU     .13         ; REGISTRO PER TRASMISSIONE BIT
REG2            EQU     .14
MOMEN           EQU     .15



;========ASSEGNAZIONE DEI BIT RELATIVI AL PORTB=============

RB0           EQU     0          ; NON UTILIZZATA
REL1          EQU     1          ; RELE' 35 VOLT
TXP           EQU     2          ; TRASMISSIONE DA PIC A PORTA
RXP           EQU     3          ; RICEZIONE DA PORTA A PIC
RXM           EQU     4          ; RICEZIONE DA MONTANTE A PIC
TXM           EQU     5          ; TRASMISSIONE DA PIC A MONTANTE
REL2          EQU     6          ; RELE' CHE SGANCIA INTERFACCIA LINEA MONTANTE
LED           EQU     7          ; LED ALLARME MONTANTE GUASTO


;============ASSEGNAZIONE BIT DI USCITA  PORTA==============

RA0           EQU     0          ; NON UTILIZZATA
RA1           EQU     1          ; NON UTILIZZATA
RA2           EQU     2          ; NON UTILIZZATA
RA3           EQU     3          ; NON UTILIZZATA

;===========================================================
; ASSEGNAZIONE FUNZIONE DEI FLAG LOGICI DEL PROGRAMMA
; AZZERATI ALL'ACCENSIONE
;===========================================================
;  REGISTRO FLAG    VERO =1   FALSO =0
;
;  AZZERATO ALLA PARTENZA E DA OGNI RESET FREDDO
;


ORG 0
GOTO START

;====================================================================
; LE ROUTINE DEVONO TROVARSI NELLA MEMORIA CHE
; VA DA 000 A 0FF (PRIMA SEMIPAGINA)
;====================================================================

;====================================================================
; ROUTINE PER GENERARE 50 uSEC DI RITARDO A 4 MHz
;====================================================================
DEL50     MOVLW  .9           ;1
          GOTO DELAY+1        ;2

;====================================================================
; ROUTINE PER GENERARE 70 uSEC DI RITARDO A 4 MHz
;====================================================================
DEL70     MOVLW  .13
          GOTO DELAY+1    

;====================================================================
; ROUTINE PER GENERARE 88 uSEC DI RITARDO A 4 MHz
;====================================================================
DEL88     MOVLW  .16 
          GOTO DELAY+1    


;====================================================================
;2) RITARDO PER GENERAZIONE DI BAUD RATE  BIT 1MS CIRCA @ 4MHz CLOCK
;====================================================================
;delay 208us,1/4 bit
;DEL250       MOVLW .38           ; delay 208 uS , 1/4 BIT 
  DEL250     MOVLW .40
             GOTO DELAY+1         
;delay 416us,1/2 bit

DELAY1       MOVLW    .82       ;3) RITARDO PER GENERAZIONE DI 
             GOTO     DELAY+1   ;1/2 BIT .416 MS CIRCA @ 4MHz CLOCK
; delay 833us,1bit

DELAY        MOVLW      .165    ; SI CARICA IL REGISTRO MOMEN CON IL NUMERO
             MOVWF    MOMEN     ; NECESSARIO A REALIZZARE IL RITARDO PARI A
RPT          NOP                ; I BIT  DA 0.833 MS A 4MHZ
             NOP
             DECFSZ   MOMEN     ;
             GOTO       RPT     ;
             NOP
             RETLW       .0     ; 



DELAY2      CALL DELAY
            NOP
            CALL DELAY
            NOP
            RETLW       .0     ; FINE DELAY.




;=================================================
;SUBROUTINE CHE FA LAMPEGGIARE LED PER PROG OK
;=================================================
;=================================================
;  LED frash
;=================================================
LAMP      
          MOVLW   .255
          MOVWF  REG1           
          BSF   PORTB,LED       ; LED on
LAMP_1    CALL DELAY            ;delay 0.8ms
          CLRWDT
          DECFSZ REG1
          GOTO  LAMP_1
          
          
          MOVLW   .255
          MOVWF  REG1
          BCF   PORTB,LED       ; LED SPENTO
LAMP_2    CALL DELAY
          CLRWDT
          DECFSZ REG1
          GOTO  LAMP_2
          
          RETLW  .0              
;=======================================================
;  短路保护
;=======================================================
BRUCIA
                BSF PORTB,REL2          ; 脱开1550和本单元的LIN支接线
                BSF PORTB,REL1          ; 将24V电压变到35V电压,并将35V电压连到本单元的LIN支线


                MOVLW   .255            ;250MS DELAY
                MOVWF  REG1          
BRC_1           CALL DELAY              ;DELAY 833US
                CLRWDT
                DECFSZ REG1
                GOTO  BRC_1
               
                MOVLW   .255            ;250MS DELAY
                MOVWF  REG1          
BRC_2           CALL DELAY
                CLRWDT
                DECFSZ REG1
                GOTO  BRC_2
          

;以下这条语句,在意大利源程序中是有的,现应汪工要求,当LIN OUT端短路没恢复时,RB6端口要一直输出高电平 
;                BCF PORTB,REL1      ;;0.5s延时后,将35V电压变回到24V,脱开和本单元的LIN支线连接

                MOVLW   .100
                MOVWF  REG1          
BRC_3           CALL DELAY
                CLRWDT
                DECFSZ REG1
                GOTO  BRC_3         ;延时83MS后
;以下这条语句,在意大利源程序中是有的,现应汪工要求,当LIN OUT端短路没恢复时,RB6端口要一直输出高电平                
;                BCF PORTB,REL2      ; 重新将1550和本单元的LIN支线相联

                MOVLW   .255
                MOVWF  REG1          
BRC_4           CALL DELAY
                CLRWDT
                DECFSZ REG1
                GOTO  BRC_4          ;延时250MS
                
                                                              
                BTFSS PORTB,RXM         ; 本单元LIN支线还是 = 0 吗?
                RETLW  .0               ; NO, 返回0
                RETLW  .1               ; 是, 返回1
                

;=======================================================
;1) PROGRAMMA PRINCIPALE INIZIALIZZAZIONE PORTI
;=======================================================              
;=======================================================
; main program init
;=======================================================

START    MOVLW  7          ; TIMER0: INTERNAL, X, PRESCALER TO RTCC
         OPTION                    ; 1:256
         

         MOVLW  B'00000000'        ; all OUT
         TRIS   PORTA
         BCF PORTA,0
         BCF PORTA,1
         BCF PORTA,2
         BCF PORTA,3


         MOVLW B'00011000'         ; INIT PORT B
         TRIS  PORTB               ; PIN ASSEGNATI COME OOOIIOOO
         BCF PORTB,REL1
         BCF PORTB,REL2
         BCF PORTB,TXP

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -