This shows you the differences between two versions of the page.
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] 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: | ||
- | 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 | ||
- | |||
- | ; 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' | ||
- | 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 ; |