This shows you the differences between two versions of the page.
Next revision Both sides next revision | |||
usage:usage:overview [2013/05/10 17:35] rhaseitl created |
usage:usage:overview [2013/06/01 17:48] carsten |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | test | + | < code asm> ; ******************************************************************* |
+ | ; 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: | ||
+ | SN equ d' | ||
+ | |||
+ | |||
+ | |||
+ | ; 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 | ||
+ | |||
+ | 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 | ||
+ | |||
+ | ; | ||
+ | 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' | ||
+ | oSchwelle equ D' | ||
+ | |||
+ | ; | ||
+ | ; 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: | ||
+ | ; 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, | ||
+ | endm | ||
+ | |||
+ | |||
+ | bank1 macro | ||
+ | bsf STATUS, | ||
+ | endm | ||
+ | |||
+ | org 0x00 | ||
+ | goto main | ||
+ | |||
+ | ; hier potetielle Interrups | ||
+ | |||
+ | |||
+ | main | ||
+ | BSF STATUS, | ||
+ | BCF INTCON, | ||
+ | goto Start | ||
+ | |||
+ | |||
+ | ; Interruptruitine DATASAVE an H' | ||
+ | DATASAVE | ||
+ | Call Interrupt ; | ||
+ | Sleep | ||
+ | return | ||
+ | |||
+ | Start | ||
+ | ; Initialisierung | ||
+ | BSF STATUS, | ||
+ | MOVLW B' | ||
+ | MOVWF INTCON ; | ||
+ | BCF STATUS, | ||
+ | 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, | ||
+ | goto LeseEE ; | ||
+ | |||
+ | Call Nullsetzen ; | ||
+ | LeseEE Call HoleEE ; |