Tony Nixon [sales at picnpoke.com] of ICmicro's says:
This program will flash a LED from port pin RC4RC4 -> Led Anode Led Cathode -> 1K res 1K res -> ground ; Title "LED flasher." ; list P = 16F877 ; include "P16f877.inc" ; use definition file for 16F877 ; ; -------------------- ; USER RAM DEFINITIONS ; -------------------- ; CBLOCK 0x20 ; RAM starts at address 20h NaHi NaLo NbHi NbLo ENDC ; org 0x0000 ; start address = 0000h ; INITIALISE PORTS ; binary used to see individual pin level movlw b'00000000' ; all port pins = low movwf PORTA movlw b'00000000' movwf PORTB movlw b'00000000' movwf PORTC movlw b'00000000' movwf PORTD movlw b'00000000' movwf PORTE bsf STATUS,RP0 ; set RAM Page 1 for TRIS registers ; INITIALISE PORTS ; binary used to see individual pin IO status movlw b'00000000' ; all IO pins = outputs movwf TRISA movlw b'00000000' movwf TRISB movlw b'00000000' movwf TRISC movlw b'00000000' movwf TRISD movlw b'00000000' movwf TRISE movlw b'00000110' ; all analog pins = digital movwf ADCON1 bcf STATUS,RP0 ; back to RAM page 0 ; LED FLASH LOOP Loop bsf PORTC,4 ; RC4 = high = led on call Delay bcf PORTC,4 ; RC4 = low = led off call Delay goto Loop ; 1/2 SEC DELAY SUBROUTINE WITH 4MHz CLOCK Delay movlw 01h movwf NbHi movlw 03h movwf NbLo movlw 8Ah movwf NaHi movlw 5Bh movwf NaLo DeLoop0 decfsz NaLo,F goto DeLoop0 decfsz NaHi,F goto DeLoop0 decfsz NbLo,F goto DeLoop0 decfsz NbHi,F goto DeLoop0 ; return end
Questions:
Hi, i too am new to programming pics. im trying to program the PIC16F877 to be a realtime clock and to output the time on an LCD display (pref 4 bit to the LCD) if anyone has code or knows where i can find an exmaple of a real time clock i would be so grateful. Im using MPlab to program so assmelby language rather than C or Basic, many thanks
hi!
i am a newbie in programming pics,the only pic that i have programmed is the 16F84.now i wish to move to a greater stuff - pic 16F877.Can someone PLEASE send me some good tutorial sites?
Thank You
James Newton replies: See piclist.com/techref/microchip/begin.htm
i'm a beginner in pic's programming, i say so because my question may sound silly, but here it comes, which electronics i need to make it up? Do you have the design?
Check the data sheet for the processor clock and power, then just add a 1Kohm resistor and LED between the IO pin to ground.
Comments:
Found a formula to apply your delay routine to. It may not be 100% accurate, but it is really close. (12/Clock Frequency) = Delay/Steps Where steps are offset by 1. Such that 16Mhz clock would provide a delay of 750ms per step. If you required a delay of 500ms, you would need 666,666 steps. Convert 666,666 to Hex and you get 00 0A 2C 2A. Enter these values offset by 1, and you get NaHi=0x2D NaLo=0x2B NbHi=0x01 NbLo=0x0B Works for me.
Interested: