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 movlw 0
main
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.