

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
What is a PIC?. Well, like other micro controllers it is a tiny computer with CPU, ROM, RAM, and I/O circuits all on one chip. I will be focusing my projects on the inexpensive PIC's that are on the market. The chips that I will be using will be 16C84, 16F83 and 16F84. These chips are around $6.00. Because the ROM inside the chips are electrically erasable, the same PIC can be reprogrammed many times for different types of projects. Any information stored in the PIC will be held for more then 40 years, without power applied, until it is electrically erased. Unlike other microcontrollers, these PIC's do not require quartz crystals or resonators for their clock; you can simply use a resistor and capacitor as the oscillating elements.
The project presented here will provide you with the ability to program a PIC from your parallel printer port on your PC computer. To program a PIC is relatively simple. A standard 5 volt DC supply voltage is connected to pin 14 and ground is connected to pin 5. Now bring the voltage on pin 4 to between 12 and 14 volts dc. The data is clocked in one bit at a time through pins 13 and 12. The data itself is sent to pin 13. Once the bit is ready, the voltage on pin 12 is raised to 5 volts for at least 0.1 microseconds before being lowered back to ground. The data that was sent to the chip can sent back out of the chip on pin 13 to verify he accuracy.
The purpose of this circuit is to automatically turn off any device plugged into its power outlets after a certain period of time. Shutoff is activated by an absences of an audio signal or by a standard timer function. This unit would be connected to speaker terminals of a stereo system, tape outputs, TV earphone jack or audio outputs etc. Once the audio signal drops below a predetermined level a timer function will turn off any device powered by the outlets on the back of this unit. For example, if you like to fall asleep listening to your CD player. This unit could be hooked up to your speaker terminals. After the CD is done playing the audio signal would drop below the threshold value and the unit would turn off your stereo system after a certain timer interval had passed and therefore you would not have to worry about falling asleep and having your stereo being on all night. This controller can also be used as a standard timer control without the audio input and turn devices off after a preset time interval. The outlets can handle loads of up to 1200 watts and the unit is fused with a 10 amp fuse for protection.
![]() | 2734 KB | 13/11/2548 | 0:00:00 |
![]() | 221 KB | 26/9/2544 | 0:00:00 |
![]() | 543 KB | 26/9/2544 | 0:00:00 |
![]() | 551 KB | 26/9/2544 | 0:00:00 |
![]() | 590 KB | 26/9/2544 | 0:00:00 |
![]() | 21 KB | 26/9/2544 | 0:00:00 |
![]() | 733 KB | 26/9/2544 | 0:00:00 |
![]() | 1067 KB | 26/9/2544 | 0:00:00 |
![]() | 887 KB | 26/9/2544 | 0:00:00 |
![]() | 963 KB | 26/9/2544 | 0:00:00 |
![]() | 169 KB | 26/9/2544 | 0:00:00 |
![]() | 420 KB | 26/9/2544 | 0:00:00 |
![]() | 715 KB | 26/9/2544 | 0:00:00 |
![]() | 831 KB | 26/9/2544 | 0:00:00 |
![]() | 187 KB | 26/9/2544 | 0:00:00 |
![]() | 556 KB | 26/9/2544 | 0:00:00 |
![]() | 188 KB | 26/9/2544 | 0:00:00 |
![]() | 489 KB | 26/9/2544 | 0:00:00 |
![]() | 565 KB | 26/9/2544 | 0:00:00 |
![]() | 1645 KB | 26/9/2544 | 0:00:00 |
![]() | 660 KB | 26/9/2544 | 0:00:00 |
![]() | 680 KB | 26/9/2544 | 0:00:00 |
![]() | 1055 KB | 26/9/2544 | 0:00:00 |
![]() | 1159 KB | 26/9/2544 | 0:00:00 |
![]() | 446 KB | 26/9/2544 | 0:00:00 |
![]() | 449 KB | 26/9/2544 | 0:00:00 |
![]() | 502 KB | 26/9/2544 | 0:00:00 |
![]() | 918 KB | 26/9/2544 | 0:00:00 |
![]() | 1562 KB | 26/9/2544 | 0:00:00 |
![]() | 366 KB | 26/9/2544 | 0:00:00 |
![]() | 1553 KB | 26/9/2544 | 0:00:00 |
![]() | 527 KB | 26/9/2544 | 0:00:00 |
![]() | 637 KB | 26/9/2544 | 0:00:00 |
![]() | 1833 KB | 26/9/2544 | 0:00:00 |
![]() | 886 KB | 26/9/2544 | 0:00:00 |
![]() | 717 KB | 26/9/2544 | 0:00:00 |
![]() | 1738 KB | 26/9/2544 | 0:00:00 |
![]() | 3423 KB | 13/11/2548 | 0:00:00 |
![]() | 2422 KB | 13/11/2548 | 0:00:00 |
![]() | 4343 KB | 14/11/2548 | 0:00:00 |
![]() | 728 KB | 14/11/2548 | 0:00:00 |
![]() | 345 KB | 14/11/2548 | 0:00:00 |
![]() | 1962 KB | 14/11/2548 | 0:00:00 |
![]() | 8455 KB | 14/11/2548 | 0:00:00 |
![]() | 3141 KB | 14/11/2548 | 0:00:00 |
![]() | 4413 KB | 14/11/2548 | 0:00:00 |
![]() | 5269 KB | 14/11/2548 | 0:00:00 |
![]() | 2403 KB | 14/11/2548 | 0:00:00 |
![]() | 2436 KB | 14/11/2548 | 0:00:00 |
![]() | 6366 KB | 14/11/2548 | 0:00:00 |
![]() | 3044 KB | 14/11/2548 | 0:00:00 |
![]() | 3753 KB | 14/11/2548 | 0:00:00 |
![]() | 4979 KB | 14/11/2548 | 0:00:00 |
![]() | 6791 KB | 14/11/2548 | 0:00:00 |
![]() | 1776 KB | 14/11/2548 | 0:00:00 |
![]() | 6887 KB | 14/11/2548 | 0:00:00 |
![]() | 1177 KB | 26/9/2544 | 0:00:00 |
![]() | 4330 KB | 14/11/2548 | 0:00:00 |
![]() | 5316 KB | 14/11/2548 | 0:00:00 |
![]() | 601 KB | 14/11/2548 | 0:00:00 |
![]() | 671 KB | 26/9/2544 | 0:00:00 |
![]() | 4952 KB | 14/11/2548 | 0:00:00 |
![]() | 2942 KB | 14/11/2548 | 0:00:00 |
![]() | 4288 KB | 14/11/2548 | 0:00:00 |
![]() | 1845 KB | 26/9/2544 | 0:00:00 |
![]() | 5802 KB | 14/11/2548 | 0:00:00 |
![]() | 315 KB | 14/11/2548 | 0:00:00 |
![]() | 5960 KB | 14/11/2548 | 0:00:00 |