Hi, You can see some examples here: http://www.mikroe.com/en/books/picbook/7_08chapter.htm or even in piclist techref: http://www.piclist.com/techref/leds.htm Tamas On Fri, Jan 30, 2009 at 8:06 AM, Benjamin Grant wrote: > Hi All, > I'm not totally new to pics but before had been programming PIC18f series > in > C.. so I'm not that apt at figuring out assembly yet, especially bank > select. Anyway, I'm unable to get any of my pins to output anything... I'm > trying to eventually drive a 7 segment LED character display(common anode) > and am able to manually do it by connecting the appropriate pins to > ground... however can't get it to work with the PIC. I have 0 volts on > every > line of the pic(except VDD), and if I hook up any of them to the LED lines > that are supposed to sink to the pic if set to 0, do nothing if set to 5, > then the pic lines jump up to 5 volts. Anyway, I must be coding it wrong. > It's short code so far as I've done little but to check if I'm getting the > right voltages, which I'm not... > > > > ;********************************************************************** > ; This file is a basic code template for object module code * > ; generation on the PICmicro PIC16F684. This file contains the * > ; basic code building blocks to build upon. As a project minimum * > ; the 16F684.lkr file will also be required for this file to * > ; correctly build. The .lkr files are located in the MPLAB * > ; directory. * > ; * > ; If interrupts are not used all code presented between the * > ; code section "INT_VECTOR and code section "MAIN" can be removed. * > ; In addition the variable assignments for 'w_temp' and * > ; 'status_temp' can be removed. * > ; * > ; If interrupts are used, as in this template file, the 16F684.lkr * > ; file will need to be modified as follows: Remove the lines * > ; CODEPAGE NAME=vectors START=0x0 END=0x4 PROTECTED * > ; and * > ; SECTION NAME=STARTUP ROM=vectors * > ; and change the start address of the page0 section from 0x5 to 0x0 * > ; * > ; Refer to the MPASM User's Guide for additional information on * > ; features of the assembler and linker (Document DS33014). * > ; * > ; Refer to the respective PICmicro data sheet for additional * > ; information on the instruction set. * > ; * > > > > list p=16F684 ; list directive to define processor > #include ; processor specific variable > definitions > > errorlevel -302 ; suppress message 302 from list file > > ; '__CONFIG' directive is used to embed configuration word within .asm > file. > ; The lables following the directive are located in the respective .inc > file. > ; See data sheet for additional information on configuration word settings. > __CONFIG _CP_OFF & _CPD_OFF & _BOD_OFF & _MCLRE_ON & _WDT_OFF & > _INTRC_OSC_NOCLKOUT & _FCMEN_ON > > BANK1 MACRO > BSF STATUS, RP0 ;MACRO TO SELECT BANK 1 > ENDM > > BANK0 MACRO > BCF STATUS, RP0 ;MACRO TO SELECT BANK 0 > ENDM > > > ;***** VARIABLE DEFINITIONS (examples) > > ; example of using Shared Uninitialized Data Section > INT_VAR UDATA_SHR 0x71 > w_temp RES 1 ; variable used for context saving > status_temp RES 1 ; variable used for context saving > > > ;********************************************************************** > RESET_VECTOR CODE 0x000 ; processor reset vector > goto main ; go to beginning of program > > > INT_VECTOR CODE 0x004 ; interrupt vector location > movwf w_temp ; save off current W register contents > movf STATUS,w ; move status register into W register > movwf status_temp ; save off contents of STATUS register > > ; isr code can go here or be located as a call subroutine elsewhere > > > movf status_temp,W ; retrieve copy of STATUS register > movwf STATUS ; restore pre-isr STATUS register contents > swapf w_temp,F > swapf w_temp,W ; restore pre-isr W register contents > retfie ; return from interrupt > > > main > ; remaining code goes here > banksel INTCON > BCF INTCON, 7 > banksel PORTA > CLRF PORTA > banksel CMCON0 > MOVLW 07h > MOVWF CMCON0 > banksel ANSEL > CLRF ANSEL > banksel TRISA > CLRF TRISA > banksel IOCA > CLRF IOCA > banksel PORTA > MOVLW b'01111111' > MOVWF PORTA > loop goto loop > ; initialize eeprom locations > > EE CODE 0x2100 > DE 0x00, 0x01, 0x02, 0x03 > > > END ; directive 'end of program' > -- > http://www.piclist.com PIC/SX FAQ & list archive > View/change your membership options at > http://mailman.mit.edu/mailman/listinfo/piclist > -- Rudonix DoubleSaver http://www.rudonix.com -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist