Robert, First, a major no-no ... although your method of coding could work, you s= hould=20 really, really, really (insert infinite loop here :-) use the definitions= =20 from the .inc files already created by Microchip. They're part of the MP= LAB=20 package. Otherwise, the code is difficult to read, and adds major source= s of=20 errors. Especially if, as you say, you're a programmer. :-) That said, assuming your code compiles okay and does have the correct reg= ister=20 addresses, if the switch were in it's unpressed state, RA1 would be "1". = The=20 code would loop at BEGIN and the line after that (goto BEGIN). Now, if t= he=20 switch were pressed, RA0 goes to "0", so the code sets PORTB to all "1"'s= =20 which would turn on the LED, BUT...assuming the switch "bounces", as is=20 expected, RA1 would flicker between "1" and "0" for a short time. But lo= ng=20 enough that as it gets to KEEPON, RA1 could be at 0 and would not loop at= =20 KEEPON. It would go straight to clearing portB and exit. It could also = loop=20 at KEEPON a few times before exiting due to the same switch bounce proble= m. =20 A few times is very fast, since the internal oscillator is 4Mhz, so you w= ould=20 not even see the LED come on. Quick test... try a really large capacitor at the input to RA1 (Cap +ve t= o=20 RA1, cap -ve to gnd). If that solves your problem then you know it's the= =20 bounce issue. Cheers, -Neil On Tuesday 10 June 2003 19:47, rrc124+@PITT.EDU scribbled: > I can't get my inputs to work. I am using a pull up switch, have set al= l > pins but 1 to outputs, then tied them to ground. I am using a PIC16F628 > with the configs set to everything off/disabled except the power up tim= er. > I have selected the internal oscillator. I'm a programmer..not EE, so > that's my weak point but i have been checking the circuit for 3 days an= d > can't find what's wrong. The chip works because i got one of those LED > blinking things to work fine. Guys...thank you so much...it's very > upsetting when you're just starting out and can't get the easiest thing= to > work. The only odd thing i could find was that my programming software > (WinPicProg, from Dontronics) generates a different config word then do= es > MPLAB with the same settings. > > Here is my code: > > TMR0 EQU 1 > OPTION_R EQU 1 > PORTA EQU 5 > PORTB EQU 6 > TRISA EQU 5 > TRISB EQU 6 > STATUS EQU 3 > ZEROBIT EQU 2 > CARRY EQU 0 > PCON EQU 0EH > COUNT EQU 20H > > LIST P=3D16F628 = =20 > ; tells which processor is use ;MPLAB generated __CON= FIG > 0x3F10 > __CONFIG 0x3D10 ;WinPicProg generated > > org 0 > goto START > > ; config section > > START bsf STATUS, 5 > movlw b'11111111' > movwf TRISA > movlw b'00000000' > movwf TRISB > > movlw b'00000100' > movwf OPTION_R > clrf PCON > > bcf STATUS, 5 > clrf PORTA > clrf PORTB > > ; program starts now > > BEGIN btfsc PORTA, 1 > goto BEGIN > movlw b'11111111' > movwf PORTB > KEEPON btfss PORTA, 1 > goto KEEPON > clrf PORTB > goto BEGIN > > END > > Here is my circuit: > GND > > [9V+ Battery]--[914 diode]--[7805 Volt Reg]--+ > > +-----[10k Res]----+ > > A1/PIN 18-----+--[switch]--GND | > > Vdd/PIN 14------------------------+ > > Vss/PIN 05------------------------GND > > B4/PIN 10--[470 Ohm Res]--[LED]--GND > > B3/PIN 09--[470 Ohm Res]--[LED]--GND > > All other pins set as output, tied to ground. The switch part of the > circuit allows 4.5V to A1 and when pressed drops the voltage down to 0.= I > checked with my multimeter. Thank you so much everyone. > > E-Mail: rrc124@pitt.edu > > Robert Campbell -- http://www.piclist.com hint: To leave the PICList mailto:piclist-unsubscribe-request@mitvma.mit.edu