Destroyer
17.11.2014, 16:09
;************************************************* *********************
; This file is a basic code template for object module code *
; generation on the PIC16F54. This file contains the *
; basic code building blocks to build upon. *
; *
; Refer to the MPASM User's Guide for additional information on *
; features of the assembler and linker. *
; *
; Refer to the respective PIC data sheet for additional *
; information on the instruction set. *
; *
;************************************************* *********************
; *
; Filename: BioPic_V01.asm *
; Date: *
; File Version: *
; *
; Author: *
; Company: *
; *
;************************************************* *********************
; *
; Files required: P16F54.INC *
; *
; *
; *
;************************************************* *********************
; *
; Notes: *
; *
; *
; *
; *
;************************************************* *********************
list p=16F54 ; list directive to define processor
#include <p16F54.inc> ; processor specific variable definitions
__CONFIG _CP_ON & _WDT_ON & _HS_OSC
; '__CONFIG' directive is used to embed configuration word within .asm file.
; The lables following the directive are located in the respective .inc file.
; See respective data sheet for additional information on configuration word.
;***** VARIABLE DEFINITIONS
TEMP_VAR UDATA
HeizTime0 res 1
HeizTime1 res 1
Sekunde res 1
HeizTime3 res 1
PrellTime res 1
;************************************************* *********************
RESET_VECTOR CODE 0x1FF ; processor reset vector
goto start
MAIN CODE 0x000
start
Init
CLRWDT ; Watchdog zurücksetzen
movlw 0x0C ; Definition für Port A laden
tris PORTA ; Definitioon in Port A eintragen
movlw 0x9F ; Definition für Port B laden
tris PORTB ; Definitioon in Port B eintragen
movlw 0x07 ; Definition für Option Register laden
option ; Definitioon in Option eintragen
CLRWDT ; Watchdog zurücksetzen
;==================================
;=== ===
;=== Hauptporogramm Schleife ===
;=== ===
;==================================
Anfang
goto Schritt_1_abfrage
CLRWDT ; Watchdog zurücksetzen ; Watchdog zurücksetzen
goto Anfang
;==================================
;=== ===
;=== Ansteuerung Summer wenn OK ===
;=== ===
;==================================
Schritt_1_abfrage
CLRWDT
BTfss PORTB,0 ; Dir auf 0?
goto Schritt1_links ; beginne Schritte
BTfsc PORTB,1 ;Step auf 1?
goto schritt_1
goto Schritt_1_abfrage
Schritt1_links
CLRWDT
BTfsc PORTB,1 ;Step auf 1?
goto schritt_8
goto Schritt_1_abfrage
Schritt_2_abfrage
CLRWDT
BTfss PORTB,0 ; Dir auf 0?
goto Schritt2_links ; beginne Schritte
BTfsc PORTB,1 ;Step auf 1?
goto schritt_2
goto Schritt_2_abfrage
Schritt2_links
CLRWDT
BTfsc PORTB,1 ;Step auf 1?
goto schritt_1
goto Schritt_2_abfrage
Schritt_3_abfrage
CLRWDT
BTfss PORTB,0 ; Dir auf 0?
goto Schritt3_links ; beginne Schritte
BTfsc PORTB,1 ;Step auf 1?
goto schritt_3
goto Schritt_3_abfrage
Schritt3_links
CLRWDT
BTfsc PORTB,1 ;Step auf 1?
goto schritt_2
goto Schritt_3_abfrage
Schritt_4_abfrage
CLRWDT
BTfss PORTB,0 ; Dir auf 0?
goto Schritt4_links ; beginne Schritte
BTfsc PORTB,1 ;Step auf 1?
goto schritt_4
goto Schritt_4_abfrage
Schritt4_links
CLRWDT
BTfsc PORTB,1 ;Step auf 1?
goto schritt_3
goto Schritt_4_abfrage
Schritt_5_abfrage
CLRWDT
BTfss PORTB,0 ; Dir auf 0?
goto Schritt5_links ; beginne Schritte
BTfsc PORTB,1 ;Step auf 1?
goto schritt_5
goto Schritt_5_abfrage
Schritt5_links
CLRWDT
BTfsc PORTB,1 ;Step auf 1?
goto schritt_4
goto Schritt_5_abfrage
Schritt_6_abfrage
CLRWDT
BTfss PORTB,0 ; Dir auf 0?
goto Schritt6_links ; beginne Schritte
BTfsc PORTB,1 ;Step auf 1?
goto schritt_6
goto Schritt_6_abfrage
Schritt6_links
CLRWDT
BTfsc PORTB,1 ;Step auf 1?
goto schritt_5
goto Schritt_6_abfrage
Schritt_7_abfrage
CLRWDT
BTfss PORTB,0 ; Dir auf 0?
goto Schritt7_links ; beginne Schritte
BTfsc PORTB,1 ;Step auf 1?
goto schritt_7
goto Schritt_7_abfrage
Schritt7_links
CLRWDT
BTfsc PORTB,1 ;Step auf 1?
goto schritt_6
goto Schritt_7_abfrage
Schritt_8_abfrage
CLRWDT
BTfss PORTB,0 ; Dir auf 0?
goto Schritt8_links ; beginne Schritte
BTfsc PORTB,1 ;Step auf 1?
goto schritt_8
goto Schritt_8_abfrage
Schritt8_links
CLRWDT
BTfsc PORTB,1 ;Step auf 1?
goto schritt_7
goto Schritt_8_abfrage
schritt_1
CLRWDT
BSF PORTA,0
BCF PORTA,1
BCF PORTB,5
BSF PORTB,6
BTfss PORTB,0 ; Dir auf 0?
goto Schritt_prell1
BTfss PORTB,1 ;Step auf 0?
goto Schritt_2_abfrage
goto schritt_1
Schritt_prell1
CLRWDT
BTfss PORTB,1 ;Step auf 0?
goto Schritt_1_abfrage
goto schritt_1
schritt_2
CLRWDT
BSF PORTA,0
BCF PORTA,1
BCF PORTB,5
BCF PORTB,6
BTfss PORTB,0 ; Dir auf 0?
goto Schritt_prell2
BTfss PORTB,1 ;Step auf 0?
goto Schritt_3_abfrage
goto schritt_2
Schritt_prell2
CLRWDT
BTfss PORTB,1 ;Step auf 0?
goto Schritt_2_abfrage
goto schritt_2
schritt_3
CLRWDT
BSF PORTA,0
BSF PORTA,1
BCF PORTB,5
BCF PORTB,6
BTfss PORTB,0 ; Dir auf 0?
goto Schritt_prell3
BTfss PORTB,1 ;Step auf 0?
goto Schritt_4_abfrage
goto schritt_3
Schritt_prell3
CLRWDT
BTfss PORTB,1 ;Step auf 0?
goto Schritt_3_abfrage
goto schritt_3
schritt_4
CLRWDT
BCF PORTA,0
BSF PORTA,1
BCF PORTB,5
BCF PORTB,6
BTfss PORTB,0 ; Dir auf 0?
goto Schritt_prell4
BTfss PORTB,1 ;Step auf 0?
goto Schritt_5_abfrage
goto schritt_4
Schritt_prell4
CLRWDT
BTfss PORTB,1 ;Step auf 0?
goto Schritt_4_abfrage
goto schritt_4
schritt_5
CLRWDT
BCF PORTA,0
BSF PORTA,1
BSF PORTB,5
BCF PORTB,6
BTfss PORTB,0 ; Dir auf 0?
goto Schritt_prell5
BTfss PORTB,1 ;Step auf 0?
goto Schritt_6_abfrage
goto schritt_5
Schritt_prell5
CLRWDT
BTfss PORTB,1 ;Step auf 0?
goto Schritt_5_abfrage
goto schritt_5
schritt_6
CLRWDT
BCF PORTA,0
BCF PORTA,1
BSF PORTB,5
BCF PORTB,6
BTfss PORTB,0 ; Dir auf 0?
goto Schritt_prell6
BTfss PORTB,1 ;Step auf 0?
goto Schritt_7_abfrage
goto schritt_6
Schritt_prell6
CLRWDT
BTfss PORTB,1 ;Step auf 0?
goto Schritt_6_abfrage
goto schritt_6
schritt_7
CLRWDT
BCF PORTA,0
BCF PORTA,1
BSF PORTB,5
BSF PORTB,6
BTfss PORTB,0 ; Dir auf 0?
goto Schritt_prell7
BTfss PORTB,1 ;Step auf 0?
goto Schritt_8_abfrage
goto schritt_7
Schritt_prell7
CLRWDT
BTfss PORTB,1 ;Step auf 0?
goto Schritt_7_abfrage
goto schritt_7
schritt_8
CLRWDT
BCF PORTA,0
BCF PORTA,1
BCF PORTB,5
BSF PORTB,6
BTfss PORTB,0 ; Dir auf 0?
goto Schritt_prell8
BTfss PORTB,1 ;Step auf 0?
goto Schritt_1_abfrage
goto schritt_8
Schritt_prell8
CLRWDT
BTfss PORTB,1 ;Step auf 0?
goto Schritt_8_abfrage
goto schritt_8
RETLW 0
; remaining code goes here
END ; directive 'end of program'
; This file is a basic code template for object module code *
; generation on the PIC16F54. This file contains the *
; basic code building blocks to build upon. *
; *
; Refer to the MPASM User's Guide for additional information on *
; features of the assembler and linker. *
; *
; Refer to the respective PIC data sheet for additional *
; information on the instruction set. *
; *
;************************************************* *********************
; *
; Filename: BioPic_V01.asm *
; Date: *
; File Version: *
; *
; Author: *
; Company: *
; *
;************************************************* *********************
; *
; Files required: P16F54.INC *
; *
; *
; *
;************************************************* *********************
; *
; Notes: *
; *
; *
; *
; *
;************************************************* *********************
list p=16F54 ; list directive to define processor
#include <p16F54.inc> ; processor specific variable definitions
__CONFIG _CP_ON & _WDT_ON & _HS_OSC
; '__CONFIG' directive is used to embed configuration word within .asm file.
; The lables following the directive are located in the respective .inc file.
; See respective data sheet for additional information on configuration word.
;***** VARIABLE DEFINITIONS
TEMP_VAR UDATA
HeizTime0 res 1
HeizTime1 res 1
Sekunde res 1
HeizTime3 res 1
PrellTime res 1
;************************************************* *********************
RESET_VECTOR CODE 0x1FF ; processor reset vector
goto start
MAIN CODE 0x000
start
Init
CLRWDT ; Watchdog zurücksetzen
movlw 0x0C ; Definition für Port A laden
tris PORTA ; Definitioon in Port A eintragen
movlw 0x9F ; Definition für Port B laden
tris PORTB ; Definitioon in Port B eintragen
movlw 0x07 ; Definition für Option Register laden
option ; Definitioon in Option eintragen
CLRWDT ; Watchdog zurücksetzen
;==================================
;=== ===
;=== Hauptporogramm Schleife ===
;=== ===
;==================================
Anfang
goto Schritt_1_abfrage
CLRWDT ; Watchdog zurücksetzen ; Watchdog zurücksetzen
goto Anfang
;==================================
;=== ===
;=== Ansteuerung Summer wenn OK ===
;=== ===
;==================================
Schritt_1_abfrage
CLRWDT
BTfss PORTB,0 ; Dir auf 0?
goto Schritt1_links ; beginne Schritte
BTfsc PORTB,1 ;Step auf 1?
goto schritt_1
goto Schritt_1_abfrage
Schritt1_links
CLRWDT
BTfsc PORTB,1 ;Step auf 1?
goto schritt_8
goto Schritt_1_abfrage
Schritt_2_abfrage
CLRWDT
BTfss PORTB,0 ; Dir auf 0?
goto Schritt2_links ; beginne Schritte
BTfsc PORTB,1 ;Step auf 1?
goto schritt_2
goto Schritt_2_abfrage
Schritt2_links
CLRWDT
BTfsc PORTB,1 ;Step auf 1?
goto schritt_1
goto Schritt_2_abfrage
Schritt_3_abfrage
CLRWDT
BTfss PORTB,0 ; Dir auf 0?
goto Schritt3_links ; beginne Schritte
BTfsc PORTB,1 ;Step auf 1?
goto schritt_3
goto Schritt_3_abfrage
Schritt3_links
CLRWDT
BTfsc PORTB,1 ;Step auf 1?
goto schritt_2
goto Schritt_3_abfrage
Schritt_4_abfrage
CLRWDT
BTfss PORTB,0 ; Dir auf 0?
goto Schritt4_links ; beginne Schritte
BTfsc PORTB,1 ;Step auf 1?
goto schritt_4
goto Schritt_4_abfrage
Schritt4_links
CLRWDT
BTfsc PORTB,1 ;Step auf 1?
goto schritt_3
goto Schritt_4_abfrage
Schritt_5_abfrage
CLRWDT
BTfss PORTB,0 ; Dir auf 0?
goto Schritt5_links ; beginne Schritte
BTfsc PORTB,1 ;Step auf 1?
goto schritt_5
goto Schritt_5_abfrage
Schritt5_links
CLRWDT
BTfsc PORTB,1 ;Step auf 1?
goto schritt_4
goto Schritt_5_abfrage
Schritt_6_abfrage
CLRWDT
BTfss PORTB,0 ; Dir auf 0?
goto Schritt6_links ; beginne Schritte
BTfsc PORTB,1 ;Step auf 1?
goto schritt_6
goto Schritt_6_abfrage
Schritt6_links
CLRWDT
BTfsc PORTB,1 ;Step auf 1?
goto schritt_5
goto Schritt_6_abfrage
Schritt_7_abfrage
CLRWDT
BTfss PORTB,0 ; Dir auf 0?
goto Schritt7_links ; beginne Schritte
BTfsc PORTB,1 ;Step auf 1?
goto schritt_7
goto Schritt_7_abfrage
Schritt7_links
CLRWDT
BTfsc PORTB,1 ;Step auf 1?
goto schritt_6
goto Schritt_7_abfrage
Schritt_8_abfrage
CLRWDT
BTfss PORTB,0 ; Dir auf 0?
goto Schritt8_links ; beginne Schritte
BTfsc PORTB,1 ;Step auf 1?
goto schritt_8
goto Schritt_8_abfrage
Schritt8_links
CLRWDT
BTfsc PORTB,1 ;Step auf 1?
goto schritt_7
goto Schritt_8_abfrage
schritt_1
CLRWDT
BSF PORTA,0
BCF PORTA,1
BCF PORTB,5
BSF PORTB,6
BTfss PORTB,0 ; Dir auf 0?
goto Schritt_prell1
BTfss PORTB,1 ;Step auf 0?
goto Schritt_2_abfrage
goto schritt_1
Schritt_prell1
CLRWDT
BTfss PORTB,1 ;Step auf 0?
goto Schritt_1_abfrage
goto schritt_1
schritt_2
CLRWDT
BSF PORTA,0
BCF PORTA,1
BCF PORTB,5
BCF PORTB,6
BTfss PORTB,0 ; Dir auf 0?
goto Schritt_prell2
BTfss PORTB,1 ;Step auf 0?
goto Schritt_3_abfrage
goto schritt_2
Schritt_prell2
CLRWDT
BTfss PORTB,1 ;Step auf 0?
goto Schritt_2_abfrage
goto schritt_2
schritt_3
CLRWDT
BSF PORTA,0
BSF PORTA,1
BCF PORTB,5
BCF PORTB,6
BTfss PORTB,0 ; Dir auf 0?
goto Schritt_prell3
BTfss PORTB,1 ;Step auf 0?
goto Schritt_4_abfrage
goto schritt_3
Schritt_prell3
CLRWDT
BTfss PORTB,1 ;Step auf 0?
goto Schritt_3_abfrage
goto schritt_3
schritt_4
CLRWDT
BCF PORTA,0
BSF PORTA,1
BCF PORTB,5
BCF PORTB,6
BTfss PORTB,0 ; Dir auf 0?
goto Schritt_prell4
BTfss PORTB,1 ;Step auf 0?
goto Schritt_5_abfrage
goto schritt_4
Schritt_prell4
CLRWDT
BTfss PORTB,1 ;Step auf 0?
goto Schritt_4_abfrage
goto schritt_4
schritt_5
CLRWDT
BCF PORTA,0
BSF PORTA,1
BSF PORTB,5
BCF PORTB,6
BTfss PORTB,0 ; Dir auf 0?
goto Schritt_prell5
BTfss PORTB,1 ;Step auf 0?
goto Schritt_6_abfrage
goto schritt_5
Schritt_prell5
CLRWDT
BTfss PORTB,1 ;Step auf 0?
goto Schritt_5_abfrage
goto schritt_5
schritt_6
CLRWDT
BCF PORTA,0
BCF PORTA,1
BSF PORTB,5
BCF PORTB,6
BTfss PORTB,0 ; Dir auf 0?
goto Schritt_prell6
BTfss PORTB,1 ;Step auf 0?
goto Schritt_7_abfrage
goto schritt_6
Schritt_prell6
CLRWDT
BTfss PORTB,1 ;Step auf 0?
goto Schritt_6_abfrage
goto schritt_6
schritt_7
CLRWDT
BCF PORTA,0
BCF PORTA,1
BSF PORTB,5
BSF PORTB,6
BTfss PORTB,0 ; Dir auf 0?
goto Schritt_prell7
BTfss PORTB,1 ;Step auf 0?
goto Schritt_8_abfrage
goto schritt_7
Schritt_prell7
CLRWDT
BTfss PORTB,1 ;Step auf 0?
goto Schritt_7_abfrage
goto schritt_7
schritt_8
CLRWDT
BCF PORTA,0
BCF PORTA,1
BCF PORTB,5
BSF PORTB,6
BTfss PORTB,0 ; Dir auf 0?
goto Schritt_prell8
BTfss PORTB,1 ;Step auf 0?
goto Schritt_1_abfrage
goto schritt_8
Schritt_prell8
CLRWDT
BTfss PORTB,1 ;Step auf 0?
goto Schritt_8_abfrage
goto schritt_8
RETLW 0
; remaining code goes here
END ; directive 'end of program'