PIC Light Chaser
This month I am continuing with the PIC projects that I started in August. To be able to build this circuit you must build the August circuit which allows you the ability to program PIC's.
The program is listed below:
;File DEMO.ASM
;Assembly code for PIC16F84 micro controller
;Blinks LED's on the outputs in a rotating pattern.
;With 75khz osc, each LED stays on half a second.
;CPU configuration
; (its a 16F84,RC Oscillator, watchdog timer off, power-up timer on)
processor 16f84
include
_config _RC_OSC &_WDT_OFF &_PWRITE_ON
;Declare variables at 2 memory locations.
J equ H'1F' ;J=Address hex 1F
K equ H'1E' ;K=Address hex 1E
;Program
org 0 ;start at address 0
;Set port B as output and initialize it
movlw B'00000000' ;w : =00000000 binary
tris PORTB ;port B ctrl register := w
movlw B'00000001' ;w := 00000001 binary
movwf PORTB ;port B itself := w
;Rotate the bits of port B leftward
mloop: rlf PORTB,f
;Waste some time by executing nested loops.
movlw D'50' ;w := 50 decimal
movwf J ;J :=w
jloop: movwf K ;K :=w
kloop: decfsz J,f ;J = J -1, skip next if zero
goto kloop
decsz J,f ;J = J - 1, skip next if zero
goto jloop
;Do it all again
goto mloop
end
The program works as follows. The first few lines in the program are what is called comment lines. Comment lines assist us in documenting what each part of the programs function is. If a program is commented well, then it will be easier later own to understand why the program was written the way it was. Any line that begins with a semicolon is a comment line and will be ignored when the assembler is run. The assembler is another program that will convert these written instructions and convert them to binary data to be programmed into the PIC. The first true commands that the PIC will process is the processor, include and _config. These instructions tells the assembler that it is using 16F84 instructions. The second instruction says to include a set of predefined constants in a file called P16F84.inc. Finally, the third instruction sets various configuration bits in the PIC to turn on the RC Oscillator, turn off the watch dog timer and turn on the automatic power up reset timer. That way the PIC will reboot every time power is applied. The two equ instructions reserve memory space in the PIC's RAM for two variables, which is being called "J" and "K". The locations are in Hex 1E and 1F. Theses locations will be used to store counters to keep track of how many times a loop has been repeated. The org instruction tells the assembler that the program starts at location 0. in the program memory and that the actual program is next. The first real PIC instruction is a
From : http://home.maine.rr.com/randylinscott/sep20.htm