This page contains various tips & ideas for your PIC-based designs. We don't mean to replace or duplicate all the wonderful PIC resources and websites on the 'net, but we do focus on the applications of PICs for your ham accessories in the shack. Many of the items here are solutions and success story excerpts from our Ham-Pic mail list. If you have any other "lessons learned" or scathingly brilliant approaches to your PIC hardware or software project, let us all know about it!


How do I start learning about PICs?

(From George, N2APB) -- You probably already have or know about the "Easy PICn" book ... for $29.95 you get a real easy reading book overviewing the devices and how one uses them. Part Number 136645 from Jameco Electronics (800) 831-4242 ( ). This book is in stock. There's a follow-on book that gets into more technical detail. It's called PIC'n up the Pace, p/n 145736, and costs $34.95. This is also in stock. You would be doing yourself a great disservice in your leaning quest if you didn't spend HOURS at David Tait's "PIC Links" website ( ). This is a top-notch colection of references, projects, FAQs, and more.

(back to top of page)

Looking for a PIC programmer (... The most common question!)

(From George N2APB) -- I've had lots of success with the simple little EPIC Pocket Programmer from Jameco for $59.95. The Parallax software comes with the EPIC board: assembler and downloading/programming software that works over the parallel port. Programs the 16C554, 556, 558, 61, 620, 71, 710, 711, 83, 84, and 8-pin 12C508 and 509. You can see the specs of the board at the Jameco website:

(From Craig, AA0ZZ) -- I just got the PIC-1+ from ITUTECH. I bought it in kit form, with both ZIF sockets, for $89 (instead of $109 for the assembled unit). Took me about an hour to put it together. This unit comes with the Microchip MPASM assembler. It also has a DOS diskette to actually send the hex file to the chip. I do it using a parallel port from my laptop computer. Real easy. I just programmed my first 16F84 chip, and verified it. Cool.

(From Rick Arzadon, WA8RXI) -- Read the fine article by John Hansen, W2FS in October 98 - QST. The article contains a Programmer for the 16C84 & 16F64 PIC's and explains the method of programming.
1) Use Windows Notepad or DOS Edit to write assembly lang. instructions.
2) Use MPASM to compile to HEX
3) Use PIX to load HEX file into PIC.

(From Dave Beach, VE3STI) -- The September issue of 'Electronics Now' had an article on a 'No Parts PIC Programmer' for the 16F84 chip. The programmer does need *some* parts (one transistor, two diodes, 2 caps and 5 resistors) but the software is free from the Gernsback site So you can get started for *almost* nothing. Even my junk box has these parts! Oh yeah, you do need a +5V and +12V power source. This 'NOPPP' is based on David Tait's TOPIC programmer which has been quite successful as a 'free' design and also has been marketed as a kit by Maplin in the UK. You use MPLAB/MPASM to generate the code then use the NOPPP software to program it into the chip. More information can also be found at

(From Chuck Olson, WB9KZY) -- I've used the serial programmer designed by Jens Madsen to program the 12C508 and 12C509. It is a PC DOS serial port design that doesn't need an external supply. The design requires 2 2n3904 NPN transistors, 2 zener diodes, 4 1n914 diodes, 2 resistors and 2 caps. He also includes his Pascal source code. I think it also programs the 16C84 and a serial eeprom, too although I haven't any experience with those parts.

(back to top of page)

In search of a good (inexpensive) LCD display for a PIC project?

(From George, N2APB) -- I think I've finally found a good 16 char LCD display to be using for the various little PIC (and other uC) projects I've got going. After having tried a bunch of different "bargain basement" $5 specials that were too good to be true (like from BG Micro and some others), I finally paid $12.88 for several from DigiKey (p/n 73-1012-ND) and they seem to be much less finicky regarding the timing for issuing commands during initialization. [You'll understand this when you try to debug some LCD display projects yourself.] I'm guessing that the "bargains" were fallout from various company's QA process ... hence the *very* attractive pricing.

(back to top of page)

How do you do input Morse Code from a paddle in software?

(From George, N2APB) -- An implementation of morse paddle code, you can take a look at the MicroBeacon page on the NJ-QRP website and go to the bottom of that page to get to the software listing. Check out the "dodit" and "dodah" routines, alphabetically located in the subroutine area. It's 68HC705B5 assembly code (i.e., not a PIC microcontroller), but it's pretty easy to understand, as it uses the BASIC alogorithm descibed in the July/August QEX article by Al Williams on a Basic Stamp keyer. You can find the BASIC software at

(back to top of page)

Keeping accurate time with the 1654

(From Dave Beach, VE3STI) -- A reference for juggling timing problems is the clock design by Microchip described in the application note #AN615. It is at the Microchip web site and describes how to make a 16c54 keep accurate time, scan keys, run a buzzer and multiplex four seven segment displays all at the same time - in less than 500 bytes! Worth a look - and the code is not very long!

(back to top of page)

How do you convert code from STAMP to PIC?

(From Dave Beach VE3STI) -- Scott Edwards 'famous' book, The PIC Source Book, showed how to take the various PBasic Stamp commands and translate them into PIC code (using the Parallax assembler). It was meant to ease the transition from Stamps to PICs. It is now out of print BUT he has been generous enough to put it on-line for FREE! (Used to be $40!) You can get a copy in the Files area of the Dontronics web site: There is the text and a zipped file of the source code. If you have the Microchip assembler, you will need to do a bit of further translation from Parallax to Microchip. However, a macro-based converter (which I have not tried) is also available at the Dontronics site. (I think that is where I got it....)

(back to top of page)

What's the difference between MPASM and SPASM assemblers?

(From Parallax development kit) -- In April '96, Parallax introduced a new assembler called SPASM, meant to merge and upgrade the existing products PASM and PASMX. Like many first releases of new software, SPASM has a few peculiarities. Significant to users of the Source Book routines are the elimination of the NEG instruction; requirement that the device directive precede all other directives, and renaming of the OPTION register to !OPTION.

Until either SPASM or PSIM is modified to fix this problem, we'll continue to include old, reliable PASM. If your Parallax programmer includes SPEP (SPASM's counterpart host software), see the Parallax README file that came with it for information on using PASM-generated object code. Or just use PASM for simulation and SPASM for programming actual PICs.

(back to top of page)

The "MIT" PICLIST Mail List

(From George, N2APB) -- The PIC List is a very active mail list for PIC-related discussions. It's just about as big as QRP-L and has just about as much non-technical material too, so be prepared with that DEL key :-) So if you're up to wading through yet-another-list, you can subscribe at the PICLIST Archives page: And as the name suggests, they have messages archived there, although that too would require lots of patience (and online time) to sift through for good info.

(back to top of page)

What are MPLAB, MPSIM and MPASM?

(From Claton KA0GKC) -- MPLAB is the windows program front that act as a shell for an editor, assembler and programmer for there PICSTART programmer hardware.

MPSIM is a computer PIC simulator, I think it's in the lab as well. I'm not quite clear on what a simulator does myself.

MPASM is the PIC assembler contained within MPLAB but it will or there are versions that will run standalone in DOS too.

(back to top of page)

Okay then, what is the MP-LAB "PIC Simulator"?

(From Curt, WB2V) -- A simulator is a software program that mimics the PIC. Once you've written a program for your PIC you can load the program into the simulator. The simulator will have commands or sometimes a graphical user interface that allows you do things like reset, single step to the next instruction, set a break point and let the program run up to that point and so on. The simulator program will also have a window(s) which allows you to see the contents of all the registers as they would be on the real PIC. So if you single step your program you can see which bits changed where. (Sometimes it's not what you thought it should be.) I've found that a simulator can save a lot of time. I use the Parallax PSIM simulator so I can't speak for the Microchip simulator. The next step up is an emulator which adds hardware which mimics the PIC. Now you can plug the emulator into the project where the PIC would be and actually run your program in your project without having to program a PIC. Emulators also provide reset, single step, break points etc. Emulators are quite expensive but can really save time if you do a lot of program development.

(back to top of page)

PIC "Embedded Control" Reference Manual

(From Ron, KA3J) -- Someone asked for the location of the midrange PIC reference manual on microchip's website. You can download each section as you need it. Alternatively, you can get all of them on their CD-ROM plus a lot of other stuff.

(back to top of page)

(Back to NJ-QRP Home Page)
Last Modified: October 17, 1998