Software for PIC16F84


The microcontroller in the "Engineer's Assistant" doesn't need to be a PIC16F84A (20MHz). The instrument's oscillator is a 10MHz quartz crystal, so a normal PIC16F84-10 (10MHz) works just as fine. You can also use the industrial version of the device: PIC16F84-10I

Remember to choose which processor to use in MPLAB before compiling!


The DATA EEPROM area of the PICmicro needs to be programmed. To include these bytes into the HEX-file make sure that the DATA EEPROM area in the source-code is un-commented before assembling into HEX. It's found in the source-code at ORG 0x2100.


The signal polarity in "Serial" mode can be changed to fit a TTL signal or an RS-232 signal. This is indicated at the display with a character which is either a <space> (blank) or an <i>. The <i> means inverse, or TTL.

To me it seems more logical to indicate RS-232 with an <R> and TTL with a <T>. I changed this minor "problem" by modifying two instructions in the source-code. Have a look at AN689A, page 24, lines 454 and 456. Here are the two modifications:

  movlw ' '   changes to   movlw 'R'
  movlw 'i'   changes to   movlw 'T'


Files to download   Contains probe1.pcb (PCB layout) and the original source-code file from the author; probe.asm. (Un-comment DATA EEPROM area and change to <R> and <T>)
  probe.asm   Source-code with DATA EEPROM area implemented (un-commented) and <space> / <i> changed to <R> / <T>
  probe.hex   This is the compiled HEX-file for PIC16F84 (not PIC16F84A). The file contains the DATA EEPROM bytes, and indicates serial signal polarity with an <R> or a <T>.


I am using MPLAB ver. 4.12.12 to edit source-code, simulate and assemble into HEX-file format.

To program the chip I'm using PicProg ver. 0.6 with a home-made programmer. This program is capable of programming the DATA EEPROM area of the PICmicro.


Erik Grindheim, 01.05.2000