This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
usage:usage:overview [2013/06/01 17:48] carsten |
usage:usage:overview [2013/06/01 17:58] carsten |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | < code asm> ; ******************************************************************* | + | test |
- | ; Programm PATermV1.asm | + | |
- | ; Dieses PA-Terminalprogrammes: | + | |
- | ; 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: | + | <code asm PA-TermV1.asm> |
- | SN equ d' | + | ; tritt eine Änderung auf ! |
+ | BTFSS PORTB, | ||
+ | ; 1-> Power da, aber Dateneingang aktiv | ||
+ | goto SchreibeEE ; Datensicherung | ||
+ | Call traffic ; | ||
+ | bsf STATUS, | ||
+ | bcf INTCON, | ||
+ | bcf STATUS, | ||
+ | retfie ; | ||
- | + | ; | |
- | + | SchreibeEE | |
- | ; Register | + | MOVLW h' |
- | ; Namen-Registeradressen (Festwert): | + | MOVWF Schleife1 ; Zeilenindex |
- | ; 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 | + | |
- | + | ||
- | 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 ( < | + | |
- | PWMm equ 0x14 ; Pulsweitenzyklusmaximalwert | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | ;Bitnamen | + | |
- | c equ 0 | + | |
- | z equ | + | |
- | RP0 equ 5 | + | |
- | RP1 equ 6 | + | |
- | IRP equ 7 | + | |
- | RBIF equ 0 | + | |
- | + | ||
- | GIE equ 0x07 | + | |
- | WR equ 0x01 | + | |
- | WREN equ 0x02 | + | |
- | RD equ 0x00 | + | |
- | + | ||
- | ; | + | |
- | 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 | + | |
- | Moved equ 0 ; Pin17: Moved (inside) Signal (eigentlich Hardware PortA.P0) | + | |
- | uSchwelle equ | + | |
- | oSchwelle equ D' | + | |
- | ; | + | SS1 |
- | ; Hardware (Jumper) Sperre Nullung Zählerstand: | + | MOVLW h'0D' ; -> |
- | ZeroReset equ 1 ; Low = Nullsetzen gesperrt, high Nullsetzen möglich | + | MOVWF Schleife2 ; Spaltenindex |
- | ReportTrans equ 2 ; Serielle Daten Ausgabe | + | DECFSZ Schleife1, 1 ; Zeilenindex: |
- | Direction equ 3 ; Richtung der Halbduplex RS485: low = receive, high = send | + | goto SS2 |
- | iniDataSave equ 4 ; veranlassse Datensicherung: | + | goto SCHLUSS ; Erwarte Power down |
- | ; low = Datensicherung ausführen! | + | SS2 DECFSZ Schleife2, 1 |
- | Commands equ 5 ; Received Remote Commands | + | goto Schreiben |
- | Program equ 6 ; In Curcuit Programm Data | + | goto ESchleife1 |
- | ProClock equ 7 ; Inserie-Programmierclock | + | </ |
- | + | ||
- | ; Makrodefinitionen | + | |
- | bank0 macro | + | |
- | bcf STATUS, | + | |
- | endm | + | |
- | + | ||
- | + | ||
- | bank1 macro | + | |
- | bsf STATUS, | + | |
- | endm | + | |
- | + | ||
- | org 0x00 | + | |
- | goto main | + | |
- | + | ||
- | ; hier potetielle Interrups | + | |
- | + | ||
- | + | ||
- | main | + | |
- | BSF STATUS, | + | |
- | BCF INTCON, | + | |
- | goto Start | + | |
- | + | ||
- | + | ||
- | ; Interruptruitine DATASAVE an H'04' | + | |
- | DATASAVE | + | |
- | Call Interrupt ; Interrupt-Einsprungpunkt | + | |
- | Sleep | + | |
- | return | + | |
- | + | ||
- | Start | + | |
- | ; Initialisierung | + | |
- | BSF STATUS, | + | |
- | MOVLW B' | + | |
- | MOVWF INTCON ; Schreibe ins Inerlockkontrollregister | + | |
- | BCF STATUS, RP0 ; Bank0 | + | |
- | MOVLW H' | + | |
- | MOVWF ESpeicherA ; | + | |
- | + | ||
- | ; IO-Port Einrichtung | + | |
- | bank0 ; adressiere Bank0 | + | |
- | CLRF PORTA | + | |
- | bank1 ; adressiere Bank1 | + | |
- | MOVLW B' | + | |
- | MOVWF TRISA ; Setze Richtung | + | |
- | bank0 ; adressiere Bank0 | + | |
- | CLRF PORTB | + | |
- | bank1 ; adressiere Bank1 | + | |
- | MOVLW B' | + | |
- | MOVWF TRISB ; Setze Richtung | + | |
- | bank0 ; adressiere Bank0 | + | |
- | + | ||
- | BTFSS PORTB, 1 ; Wenn Inijumper offen: | + | |
- | goto LeseEE ; sonst, wenn gesetzt: | + | |
- | + | ||
- | Call Nullsetzen ; | + | |
- | LeseEE Call HoleEE ; | + |