User Tools

Site Tools


usage:usage:overview

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
usage:usage:overview [2013/06/01 17:48]
carsten
usage:usage:overview [2013/06/01 17:59] (current)
carsten
Line 1: Line 1:
-< code asm> ; ******************************************************************* +test
-; Programm PATermV1.asm +
-; Dieses PA-Terminalprogrammes: Es beinhaltet einen 8 stelligen (4 Byte) +
-; Dekadischen Zähler zum zählen der Hübe eines Pressluftantriebes. Nach  +
-; dem Aufzählen wird der BCD Stelleninhalt für die Siebensegmentanzeige +
-; codiert und anschliessend seriell an die Anzeige versandt. +
-; *******************************************************************+
  
-; Seriennummer Antrieb: 
-SN equ d'00000137' ; Terminal Nr. 1 
  
- 
- 
-; Register 
-; Namen-Registeradressen (Festwert): 
-; Bank 0: ; Bank 1: 
-INDF equ 0x00 ; <- 
-TMR0 equ 0x01 ; Option Register 
-PLC equ 0x02 ; <-  
-STATUS equ 0x03 ; <- 
-FSR equ 0x04 ; <- 
-PORTA set 0x05 ; TRISA 
-PORTB set 0x06 ; TRISB 
-EEDATA equ 0x08 ; ECON1 
-EEADR equ 0x09 ; ECON2 
-PCLATH equ 0x0A ; <- 
-INTCON equ 0x0B ; <- 
- 
- 
-; Bank 1: 
-TRISA set 0x05 
-TRISB set 0x06 
-EECON1 equ 0x08 
-EECON2 equ 0x09 
- 
-; Variablen 
- 
-ByteNr set 0x0C 
-Anzeige set 0x0D 
-Anzeigewert set 0x0E 
-Testwert set 0x0F 
- 
-B3 set 0x10 ; Höchste Doppelstelle Anzeige: Mio. und Zehnmio. 
-B2 set 0x11 ; dritte Doppelstelle Anzeige: Zehntausender und Hundertausender 
-B1 set 0x12 ; zweite Doppelstelle Anzeige: Hunderter und Tausender 
-B0 set 0x13 ; niedrigstes Doppelstelle Anzeige: Einer und Zehner 
- 
-B3? set 0x14 ; Redundanzstellen 
-B2? set 0x15  
-B1? set 0x16  
-B0? set 0x17  
- 
-B3?? set 0x18  
-B2?? set 0x19  
-B1?? set 0x1A  
-B0?? set 0x1B  
- 
-; ************************************************** 
-ESpeicherA set 0x1C 
-PWMa set 0x1D 
-Senden set 0x1E ; Speichert schon gesendet Status 
-PWMs set 0x1F 
- 
-A0 set 0x20 ; Adressspeicher MSB (ID PA-Terminal) 
-A1 set 0x21 ; Adressspeicher LSB 
-F0 set 0x22 ; Fehlerbyte MSB 
-F1 set 0x23 ; Fehlerbyte  LSB 
- 
-A0? set 0x24 ; Redundanzstellen 
-A1? set 0x25 ;  
-F0? set 0x26 ;  
-F1? set 0x27 ;  
- 
-A0?? set 0x28 ;  
-A1?? set 0x29 ;  
-F0?? set 0x2A ;  
-F1?? set 0x2B ;  
- 
-Schleife1 set 0x2C 
-Schleife2 set 0x2D 
-Schleife3 set 0x2E 
-Schleife4 set 0x2F 
- 
-Telnr set 0x30 
-SERBUF set 0x31 
-Schleife5 set 0x3C  
-Schleife6 set 0x3D 
-Bitindex set 0x3D 
-RAM1 set 0x3E 
-RAM2 set 0x3F 
- 
-Steuer set 0x40 
-Adresse0 set 0x41 
-Adresse1 set 0x42 
-D1 set 0x43 
-D2 set 0x44 
-D3 set 0x45 
-D4 set 0x46 
-identisch set 0x47 
-Fehler set 0x48 
-Fehlkont set 0x49 ; Fehlerkontrollbyte 
-korrekt set 0x4A 
-TS set 0x4B 
-Sprung set 0x4C 
-RAM set 0x4D 
-Vorgabe set 0x4E ; 
-Vergleich set 0x4F        ;  
- 
- 
- 
-; Konstanten 
- 
-PWMF equ 0x01   ; Pulsweitenschwelle ( <an, > aus) 
-PWMm equ 0x14   ; Pulsweitenzyklusmaximalwert 
- 
- 
- 
- 
-;Bitnamen 
-c equ 0 
-z equ 2 
-RP0 equ 5 
-RP1 equ 6 
-IRP equ 7 
-RBIF equ 0 
- 
-GIE equ 0x07 
-WR equ 0x01 
-WREN equ 0x02 
-RD equ 0x00 
- 
-;           PORTA 
-ClockLED equ 2 ; Pin1: Anzeige Clock (Bit 2 Port A) 
-serLED equ 3 ; Pin2: Serielle Daten zur Anzeige (Bit 3 Port A) 
-Strobe equ 4 ; Pin3: Strobe zur Anzeige Übernahme (Bit 4 Port A) 
-OutEnabl equ 1 ; Pin18: Anzeige an/aus (Bit 1 Port A) 
-Moved equ 0 ; Pin17: Moved (inside) Signal (eigentlich Hardware PortA.P0) 
-uSchwelle equ D'16' 
-oSchwelle equ D'240';  
-  
-;           PortB  
- ; Hardware (Jumper) Sperre Nullung Zählerstand:  
-ZeroReset equ 1 ; Low = Nullsetzen gesperrt, high Nullsetzen möglich 
-ReportTrans equ 2 ; Serielle Daten Ausgabe 
-Direction equ 3 ; Richtung der Halbduplex RS485: low = receive, high = send 
-iniDataSave equ 4 ; veranlassse Datensicherung: high = on power,  
- ; low = Datensicherung ausführen! 
-Commands equ 5 ; Received Remote Commands 
-Program equ 6 ; In Curcuit Programm Data 
-ProClock equ 7 ; Inserie-Programmierclock 
-  
-; Makrodefinitionen 
-bank0 macro 
- bcf STATUS, RP0 
- endm 
- 
- 
-bank1 macro 
- bsf STATUS, RP0 
- endm 
- 
- org 0x00  
- goto main 
- 
-; hier potetielle Interrups 
- 
- 
-main 
- BSF STATUS, RP0 ; Disable Interupts 
- BCF INTCON, GIE  
- goto Start 
- 
- 
-; Interruptruitine DATASAVE an H'04' 
-DATASAVE  
- Call Interrupt ; Interrupt-Einsprungpunkt 
- Sleep 
- return 
- 
-Start 
- ; Initialisierung 
- BSF STATUS, RP0 ; Bank1 
- MOVLW B'10011000' ; Enable global interlock and special RB0  
- MOVWF INTCON ; Schreibe ins Inerlockkontrollregister 
- BCF STATUS, RP0 ; Bank0 
- MOVLW H'00' 
- MOVWF ESpeicherA ; Lade EEpromstartwert 
- 
-; IO-Port Einrichtung 
- bank0 ; adressiere Bank0 
- CLRF PORTA 
- bank1 ; adressiere Bank1 
- MOVLW B'00000001' ; 7x Ausgang, 1x Eingang 
- MOVWF TRISA ; Setze Richtung 
- bank0 ; adressiere Bank0 
- CLRF PORTB 
- bank1 ; adressiere Bank1 
- MOVLW B'00110011' ; 4x Ausgang, 4x Eingang 
- MOVWF TRISB ; Setze Richtung 
- bank0 ; adressiere Bank0 
- 
- BTFSS PORTB, 1 ; Wenn Inijumper offen:  ZeroReset = H (EE-> Null), 
- goto LeseEE ; sonst, wenn gesetzt:   ZeroReset = L: EEprom>RAM 
- 
- Call Nullsetzen ; Nullsetzen EEPROM 1,3ms 
-LeseEE Call HoleEE ; 0,9 ms (-> 2,4ms) </code> 
usage/usage/overview.1370101709.txt.gz · Last modified: 2013/06/01 17:48 by carsten