Timing

Der PIC 1684 auf unserer Entwicklungsplatine wird extern mit einem Quarz von 4 Mhz getaktet. Intern wird dieser Takt durch 4 geteilt, so daß ein Prozessorzyklus 1 Mikrosekunde ( 1us ) dauert. Das folgende Programm erzeugt die kürzest mögliche Schwingung am Pin 7 des Port B.

; schwing1.asm  erzeugt Rechteckschwingungen von 4 us Dauer
; d.h. 250 kHz mit 4 MHz - Quarz
     list p=16C84         ; Prozessor-Typ

    portb equ 06
    verz1 equ 10 

    movlw     0
     tris          portb        ;00 alle Bits als Ausgang setzen
     movlw     0ff           ; alle Pins von portb  gesetzt ( High )
     movwf     portb 

main
    bsf          portb,7        ; setze Bit 7 von portb : 1 us
    bcf          portb,7        ; lösche Bit 7 von Portb 0:1 us
    goto        main            ; Sprungbefehl 2 us

    end

 

Im Hauptprogramm wird Pin7 gesetzt, anschließend gelöscht. Während des zwei Zyklen langen Sprungbefehls goto bleibt Pin7 gelöscht, so daß man eine Schwingung von 4 us Dauer erhält, während der Pin7 25% der Zeit gesetzt und 75% der Zeit gelöscht bleibt.

Aufgaben:

1. Wie lange dauert folgende Verzögerungsschleife maximal?

2. Schreibe ein asm-Programm, in dem eine LED möglichst genau 1 Sekunde an und eine Sekunde ausgeschaltet bleibt.  Berechne die Schaltzeiten.

3. Wie übergibt man an eine Verzögerungsschleife Werte, die eine veränderliche aber definierte Verzögerungszeit bewirken?

4. Mit der sogenannten Impulsbreiten-Modulation kann man die Leistung von elektrischen Geräten steuern, ohne Energie in Widerständen als Wärme zu 'verbraten'. Im obigen Oszillogramm stehen die Impulsbreiten in einem 'Tastverhältnis" von 1:3. Ändere das Programm so ab, dass man mit Hilfe variabler Tastverhältnisse die LEDs dimmen kann.

 

 

Zurück