PIC first light!
Got my first PIC microprocessor program running on a PIC12F683.
It has one light that is always on and a second that switches on/off.
PIC12F683 LED lighting movie:
The assembler code:
---------------------------------------------------------------------------- ;************************************ ;written by: Jim Lund ;date: 11-09 ;version: 1.00 ;for PIC: PIC12F683 ;Memory: 2048=800h, RAM 128, EEPROM 256 ;clock frequency: ;************************************ ; PROGRAM FUNCTION: Light one LED ; ;************************************ list P = PIC12F683 include /usr/local/share/gputils/header/p12f683.inc __config _MCLRE_OFF & _INTRC_OSC_NOCLKOUT & _CP_OFF & _WDT_OFF errorlevel -302 ;------------------------ ;Declarations: org 0x000 goto Start ;----------------------- ;Subroutines: Init clrf STATUS; clrf GPIO ; resets input/output ports bsf STATUS,RP0 ;Bank 1 ;movlw b'00000000' ;movwf OSCTUNE bcf STATUS,RP0 ;Bank 0 movlw b'00000111' ;comparator off movwf CMCON0 ;digital IO bsf STATUS,RP0 ;Bank 1 clrf ANSEL ; digital IO movlw b'001111' ; sets up which GPIO pins are inputs and which movwf TRISIO ; are outputs movlw b'00000111' ; option bits movwf OPTION_REG bcf STATUS,RP0 ;Bank 0 retlw 0 ;------------------------- ;Program Start: Start call Init Main bsf GPIO, 4 ; turns on LED btfss GPIO, 0 ;test pin 7, next if pin is 0 goto LEDoff bsf GPIO, 5 ; turns on LED goto Main LEDoff bcf GPIO, 5 ; turns off LED goto Main END ----------------------------------------------------------------------------
Assembly of the .asm to a .hex:
>gpasm p12_led.asm
Write it to the PIC12 using:
wine “C:\Program Files\PICPgm\WinPICPgm.exe”
and wire it up as shown in the video!