There are two versions of the LOGIC PROBE:
Click for large 12c508A layout
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:
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.
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 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.
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 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.
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.
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.
;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
The program for a PIC16F84 chip is shown below.
;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
Quick Links
Legal Stuff
Social Media