HomeArticlesProjectsBlogContact
Articles
Logic Probe with Pulser - Construction
Colin Mitchell
Colin Mitchell
Make sure to subscribe to our newsletter and be the first to know the news.

Table Of Contents

01
CONSTRUCTING THE LoPIC LOGIC PROBE with PULSER and Burning the Chip
02
CONSTRUCTING THE LOGIC PROBE
03
SOLDERING
04
THE IC SOCKET
05
THE BUTTON CELLS
06
THE PROBES
07
THE EARTH LEAD
08
BURNING THE CHIP
09
BURNING A PIC12C508A chip
10
BURNING A PIC16F84 chip
11
Logic Probe with Pulser F84 Program

CONSTRUCTING THE LoPIC LOGIC PROBE with PULSER and Burning the Chip


CONSTRUCTING THE LOGIC PROBE

There are two versions of the LOGIC PROBE:

  1. The PIC16F84 version - cost: $25.60 (plus post) and the ‘F84 chip can be re-programmed if you want to experiment and improve the program.
  2. The PIC12c508A version - cost: $22.60 (plus post). The chip is one-time programmable.
    The previous page discusses the advantages of each type and here is the PC board layout for each type:


Click for large 16F84 layout


Click picture to enlarge


Click for large 12c508A layout


Click picture to enlarge

All the components fit on the single-sided PC board with the overlay showing exactly where each component is placed. That’s how we design all Talking Electronics projects. The parts can be fitted without any additional diagrams or information however with this project the chip may need to be programmed, (depending on the version you select).
We will not be going into the fine detail of construction as it is expected you will have built a number of projects and know how to solder components without the fear of damaging them by overheating. However here are a few notes that specifically apply to this project:

SOLDERING

The fine solder provided in the kit will improve the quality of your soldering by at least 100%. It tends to make a much smaller connection and if you add the solder to the joint, rather than carry it to the joint, the resin (rosin) in the centre of the solder will flow over the bare metal and clean it so that the solder sticks much easier. This means the connection will be made very quickly and the component will not have time to get too hot. The LEDs are the most vulnerable. They can lose their brightness if they are heated up too much.

THE IC SOCKET

Don’t forget the put the notch in the IC socket on the board so that it indicates pin 1. This is most important because you may be removing the IC at a later date and the notch is the easiest way to see how to replace the chip. The PIC16F84 chip is actually up-side-down compared to the rest of the writing on the board and that’s why you have to be careful. The 508A chip is fitted with the writing around the same way as the text on the board.

THE BUTTON CELLS

The biggest problem with a “skeleton” project like this one, is fitting the battery. Since no holders are available for button cells, we have had to devise a way to fit them to the board. The only solution is to fit each cell individually under a strap (or two straps) of fine tinned copper wire. The “bottom terminal” is made by soldering two “saddles” of tinned copper wire to the board. These will provide the negative connection to the battery.
The positive connection is provided by two straps placed over the cell and soldered in position. The fine tinned copper wire is looped through the board to make the two straps and one end is soldered. The battery is fitted under them and the wire is pulled tightly over the cell. The wire is then soldered. Make sure the cell is facing DOWN, otherwise the wire holding it will create a short circuit. The four cells are fitted in position and the project is complete. It is important to note that the wire is not soldered to the batteries as this will cause overheating and damage the seal between the positive and negative terminals and allow the cell to leak. The wiring across each cell is “tightened” by twisting it slightly with a pair of pliers. The project takes about 1.5mA when in the “rest mode” and about 20mA when indicating a signal. It produces a beep after about 2 minutes to remind you to turn it off and if it is used for short periods of time, the 4 cells will last many months or even a year or more. The cells can be replaced by slipping each one out from under the wire strap. They can be obtained from a 12v lighter battery. These 12v batteries contain 8 cells and this will give 2 sets of replacements - enough for many hours of operation.

THE PROBES

Each end of the PC board has a probe soldered to it. These probes should be as sharp as possible. This gives them a spike so they can touch a component or test-point on a PC board without slipping off. Long pins are ideal for this and you have to cut the end off by filing the shaft with a file and breaking with pliers. Do not cut the pin with side-cutters as the hard steel shaft will damage the cutters. The pins can be easily soldered to the PC board and for added strength, the board allows fine wire to be wrapped around the probe.

THE EARTH LEAD

The earth clip is connected to the Logic Probe / Pulser via a 30cm lead. This clip must be connected to the project-under-test so that the Logic Probe will detect a signal. Without it, the probe will not detect a HIGH. When using the Logic Pulser, the earth clip completes the circuit so that a HIGH can be injected into the project or component under test.

BURNING THE CHIP

This is the most complex section of the project and requires construction of our Multi Chip Programmer and putting the IC-Prog.exe software on your computer to perform the burning operation. We call it “burning” rather than “programming” to separate it from our programming section. Firstly you will need to construct our Multi Chip programmer. This is a very simple project containing a programming socket, a few components and a lead to the serial port of a computer. The Multi Chip Programmer will burn ‘508A chips as well as F84 (and many others) but before you use it to program a ‘508A, it should be tested for performance. The best way is to burn an F84 and put it in our 5x7 Display Project. As you can see, all our projects are interlinked and you really need the three of them (with more to follow) to get the full benefit of the course.

BURNING A PIC12C508A chip

The program for a PIC12C508A chip is shown below. Don’t forget, this is a one-time programmable chip, so you don’t get a second go at burning the program. This version of the Logic Probe is for those who want to produce the most compact probe and want to finalise the program in an 8-pin, one-time programmable chip.

Logic Probe with Pulser ‘508A Program

;PIC12c508A chip

Start   ORG   0x00
        MOVLW 08          ;Put 08 into W (GP3 can only be input anyway!)
        TRIS  06         ;to make GP3 input, others output
        CLRF  06         ;Clear port 6
        CLRF  11h        ;Clear 1 minute alarm file
        GOTO  Main

Alarm   MOVLW 20h         ;Length of the alarm
        MOVWF 12h
Alarm1  MOVLW 40h         ;The HIGH/LOW time
        MOVWF 13h
Alarm2  DECFSZ 13h,1      ;Time for ON and OFF periods
        GOTO  Alarm2
        MOVLW 20h         ;Toggle the Piezo line
        XORWF 06,1
        DECFSZ 14,1       ;256 loops of ON/OFF
        GOTO  Alarm1
        DECFSZ 12h,1
        GOTO Alarm1
        CLRF 11h          ;Clear the alarm 1-minute timer file
        BCF   06,5        ;Turn off piezo bit
        RETLW 00

Delay   MOVLW 05          ;5 loops of routine below
        MOVWF 0E
Delay1  MOVLW 0B0h        ;Create the 1/4sec ON period
        MOVWF 0Dh
Delay2  CALL  Input
        CALL  TstA
        DECFSZ 0Dh,1      ;Loop for 0B loops to create 1/4 sec
        GOTO  Delay2
        DECFSZ 0Eh,1      ;Loop 5 lots of 0B loops
        GOTO  Delay1
        RETLW 00


    ;The "Input" sub-routine will put a
    ;value in files 1E and 1F

Input   CLRF  1E          ;Clear the HIGH count file
        CLRF  1F          ;Clear the LOW count file
        MOVLW 08h         ;8 loops
        MOVWF 0Ch         ;0C is 8 for 8 loops
Input1  BSF   06,4        ;Make probe Tip HIGH
        NOP
        NOP
        NOP               ;Allow time for 47p to charge
        NOP
        BTFSS 06,3        ;Test the input line GP3
        GOTO  Input2      ;Input is LOW
        INCF  1E,1        ;Increment the HIGH file
        GOTO  Input3
Input2  INCF  1F,1        ;Increment the LOW file
Input3  BCF   06,4        ;Make probe tip LOW
        NOP
        NOP
        NOP
        NOP
        NOP               ;Allow time for 47p to discharge
        NOP
        MOVLW 05
        MOVWF 13h
Input4  BTFSC 06,3        ;Test the input line GP3
        GOTO  Input5
        DECFSZ 13h,1
        GOTO  Input4
        INCF  1F,1        ;Increment the LOW file
        GOTO  Input6
Input5  INCF  1E,1        ;Increment the HIGH file
Input6  DECFSZ 0Ch,1
        GOTO  Input1
        BCF   06,0        ;Turn off LOW LED
        BCF   06,1        ;Turn off HIGH LED
        RETLW 00

   ;This routine checks to see if file1E is zero
   ; if not, it does a subtraction with W to
   ; see if it is 1, 2 or 3. This indicates a pulse!
   ;The routine then checks for a constant HIGH or LOW

TstA    MOVLW 00h         ;Eliminate file 1E if it is zero,
        XORWF 1E,0        ;XOR file 1E with W
        BTFSC 03,2        ;Test the zero flag to see if file 1E is zero
        GOTO  TstA1       ;File 1E is zero
        MOVLW 04          ;Put 04 into W for subtract operation
        SUBWF 1E,0        ;Carry will be set if 1E is = or more than 4
        BTFSS 03,0        ;Test the carry flag
        GOTO  Hi          ;Will go to Hi if 1E is 1, 2, or 3

TstA1   MOVLW 00h         ;This tests if the waveform is never LOW
        XORWF 1F,0        ; - it must be HIGH
        BTFSC 03,2        ;Test zero bit in Option file
        GOTO  Hi
        MOVLW 00h         ;This tests if the waveform is never LOW
        XORWF 1E,0
        BTFSC 03,2        ;Zero flag in Option file will be set
        GOTO  Lo          ; if 1E is equal to zero
        RETLW 00

Hi      MOVLW 40h         ;Length of Hi tone
        MOVWF 1A
        BSF   06,1        ;Turn on HIGH LED
        GOTO Tone

Lo      BSF 06,0          ;Turn on LOW LED
        GOTO Tone

Tone    DECFSZ 1A,1
        GOTO Tone
        MOVLW 20h
        XORWF 06,1        ;Toggle the piezo bit
        CLRF 11h          ;Clear the 1 minute alarm file
        RETLW 00


Main    BSF 06,2          ;Set the Pulser output HIGH
        CALL Delay
        BCF 06,2          ;Set the pulser output LOW
        CALL Delay
        MOVLW 05          ;5 loops for file 0E
        MOVWF 0E
Main1   MOVLW 0B0h        ;B0 loops for file 0D
        MOVWF 0D
Main2   MOVLW 04h         ;toggle the Logic Pulser output GP2
        XORWF 06,1
        CALL  Input
        CALL  TstA
        DECFSZ 0Dh,1   ;B0 loops
        GOTO  Main2
        DECFSZ 0Eh,1   ;5 lots of B0 loops
        GOTO  Main1
        BCF   06,2    ;Set the Pulser output LOW
        CALL  Delay
        INCF  11h,1   ;increment the 1 minute alarm file
        MOVLW 40h  ;40h = 64 loops of 1 second = 1 minute
        XORWF 11h,0   ;Is alarm file =zero
        BTFSC 03,2   ;Test the zero flag
        CALL  Alarm   ;"turn off Logic Probe" beep
        BSF   03,5    ;Go to page1 for setting-up the ports
        BCF   06,5    ;Set RB5 to output
        BCF   03,5    ;Go to page0 for programming
        BCF   06,5    ;Turn off piezo bit
        GOTO  Main END

The block of numbers below is the HEX file for Logic Probe with Pulser for 12C508A. Copy and paste it into a text program such as TEXTPAD or NOTEPAD and call it: LoPIC08.hex

:10000000080C0600660071005F0A200C3200400CEC
:100010003300F302090A200CA601F402070AF202D7
:10002000070A7100A6040008050C2E00B00C2D0074
:100030001F094209ED02180AEE02160A00087E00A6
:100040007F00080C2C008605000000000000000066
:1000500066072C0ABE022D0ABF02860400000000BB
:100060000000000000000000050C330066063C0A9A
:10007000F302360ABF023D0ABE02EC02230A06045E
:1000800026040008000C9E0143064A0A040C9E0048
:100090000307530A000C9F014306530A000C9E01FC
:1000A0004306570A0008400C3A002605590A06057F
:1000B000590AFA02590A200CA601710000084605E7
:1000C000140946041409050C2E00B00C2D00040C74
:1000D000A6011F094209ED02670AEE02650A4604FD
:1000E0001409B102400C910143060509A305A604B9
:0600F000A304A6045F0A50
:00000001FF

BURNING A PIC16F84 chip

The program for a PIC16F84 chip is shown below.

Logic Probe with Pulser F84 Program

;PIC16F84 chip

Start   ORG   0x00
        BSF   03,5    ;Go to page1 for setting-up the ports
        MOVLW 08h     ;Put 08 into W
        MOVWF 06h     ;to make RB3 input, others output
        BCF   03,5    ;Go to page0 for programming
        CLRF  06      ;Clear port 6
        CLRF  11h     ;Clear 1 minute alarm file
        GOTO  Main

Alarm   MOVLW 20h     ;Length of the alarm
        MOVWF 12h
Alarm1  MOVLW 40h     ;The HIGH/LOW time
        MOVWF 13h
Alarm2  DECFSZ 13h,1  ;Time for ON and OFF periods
        GOTO Alarm2
        MOVLW 20h     ;Toggle the Piezo line
        XORWF 06,1
        DECFSZ 14,1   ;256 loops of ON/OFF
        GOTO Alarm1
        DECFSZ 12h,1
        GOTO Alarm1
        CLRF 11h      ;Clear the alarm 1-minute timer file
        BCF 06,5      ;Turn off piezo bit
        RETURN
Delay   MOVLW 05      ;5 loops of routine below
        MOVWF 0E
Delay1  MOVLW 0B0h    ;Create the 1/4sec ON period
        MOVWF 0Dh
Delay2  CALL  Input
        CALL  TstA
        DECFSZ 0Dh,1  ;Loop for 0B loops to create 1/4 sec
        GOTO  Delay2
        DECFSZ 0Eh,1  ;Loop 5 lots of 0B loops
        GOTO  Delay1
        RETURN

    ;The "Input" sub-routine will put a
    ;value in files 1E and 1F

Input   CLRF  1E      ;Clear the HIGH count file
        CLRF  1F      ;Clear the LOW count file
        MOVLW 08h     ;8 loops
        MOVWF 0Ch     ;0C is 8 for 8 loops
Input1  BSF   06,4    ;Make probe Tip HIGH
        NOP
        NOP
        NOP           ;Allow time for 47p to charge
        NOP
        BTFSS 06,3    ;Test the input line RB3
        GOTO  Input2  ;Input is LOW
        INCF  1E,1    ;Increment the HIGH file
        GOTO  Input3
Input2  INCF  1F,1    ;Increment the LOW file
Input3  BCF   06,4    ;Make probe tip LOW
        NOP
        NOP
        NOP
        NOP
        NOP           ;Allow time for 47p to discharge
        NOP
        MOVLW 05
        MOVWF 13h
Input4  BTFSC 06,3    ;Test the input line RB3
        GOTO  Input5
        DECFSZ 13h,1
        GOTO  Input4
        INCF  1F,1    ;Increment the LOW file
        GOTO  Input6
Input5  INCF  1E,1    ;Increment the HIGH file
Input6  DECFSZ 0Ch,1
        GOTO  Input1
        BCF   06,0    ;Turn off LOW LED
        BCF   06,1    ;Turn off HIGH LED
        RETURN

   ;This routine checks to see if file1E is zero
   ; if not, it does a subtraction with W to
   ; see if it is 1, 2 or 3. This indicates a pulse!
   ;The routine then checks for a constant HIGH or LOW

TstA    MOVLW 00h    ;Eliminate file 1E if it is zero,
        XORWF 1E,0   ;XOR file 1E with W
        BTFSC 03,2   ;Test the zero flag to see if file 1E is zero
        GOTO  TstA1  ;File 1E is zero
        MOVLW 04     ;Put 04 into W for subtract operation
        SUBWF 1E,0   ;Carry will be set if 1E is = or more than 4
        BTFSS 03,0   ;Test the carry flag
        GOTO  Hi     ;Will go to Hi if 1E is 1, 2, or 3

TstA1   MOVLW 00h    ;This tests if the waveform is never LOW
        XORWF 1F,0   ; - it must be HIGH
        BTFSC 03,2   ;Test zero bit in Option file
        GOTO  Hi
        MOVLW 00h    ;This tests if the waveform is never LOW
        XORWF 1E,0
        BTFSC 03,2   ;Zero flag in Option file will be set
        GOTO  Lo     ; if 1E is equal to zero
        RETURN

Hi      MOVLW 40h    ;Length of Hi tone
        MOVWF 1A
        BSF   06,1   ;Turn on HIGH LED
        GOTO Tone

Lo      BSF   06,0   ;Turn on LOW LED
        GOTO  Tone

Tone    DECFSZ 1A,1
        GOTO   Tone
        MOVLW  20h
        XORWF  06,1   ;Toggle the piezo bit
        CLRF   11h    ;Clear the 1 minute alarm file
        RETURN

Main    BSF 06,2      ;Set the Pulser output HIGH
        CALL Delay
        BCF 06,2      ;Set the pulser output LOW
        CALL Delay
        MOVLW 05      ;5 loops for file 0E
        MOVWF 0E
Main1   MOVLW 0B0h    ;B0 loops for file 0D
        MOVWF 0D
Main2   MOVLW 04h     ;toggle the Logic Pulser output RB2
        XORWF 06,1
        CALL  Input
        CALL  TstA
        DECFSZ 0Dh,1  ;B0 loops
        GOTO  Main2
        DECFSZ 0Eh,1  ;5 lots of B0 loops
        GOTO  Main1
        BCF   06,2    ;Set the Pulser output LOW
        CALL  Delay
        INCF  11h,1   ;increment the 1 minute alarm file
        MOVLW 40h     ;40h = 64 loops of 1 second = 1 minute
        XORWF 11h,0   ;Is alarm file =zero
        BTFSC 03,2    ;Test the zero flag
        CALL  Alarm   ;"turn off Logic Probe" beep
        BSF   03,5    ;Go to Page 1 for setting up the ports
        BCF   06,5    ;Set RB5 to output
        BCF   03,5    ;Go to Page0 for programming
        BCF   06,5    ;Turn off piezo bit
        GOTO Main

  END

The block of numbers below is the HEX file for Logic Probe with Pulser for 16F84. Copy and paste it into a text program such as TEXTPAD or NOTEPAD and call it: LoPIC84.hex

:100000008316083086008312860191016128203012
:10001000920040309300930B0B2820308606940BFF
:100020000928920B092891018612080005308E00DC
:10003000B0308D00212044208D0B1A288E0B1828FB
:1000400008009E019F0108308C0006160000000089
:1000500000000000861D2E289E0A2F289F0A0612E7
:1000600000000000000000000000000005309300C8
:1000700086193E28930B38289F0A3F289E0A8C0B2E
:10008000252806108610080000301E0603194C288B
:1000900004301E02031C552800301F060319552882
:1000A00000301E0603195928080040309A008614B3
:1000B0005B2806145B289A0B5B282030860691018A
:1000C0000800061516200611162005308E00B030E7
:1000D0008D0004308606212044208D0B69288E0B6C
:1000E000672806111620910A4030110603190720CF
:0A00F000831686128312861261281F
:00000001FF


Colin Mitchell

Colin Mitchell

Expertise

electronics
writing
PIC-Chips

Social Media

instagramtwitterwebsite

Related Posts

TODO
Transistor Test
© 2021, All Rights Reserved.

Quick Links

Advertise with usAbout UsContact Us

Social Media