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
|
Go
to: Introduction
to the Logic Probe with Pulser
- discusses how the project works etc
Construction - Copy and Paste the
program (Hex files) for the Probe/Pulser - this page!
Go to: Using
the Logic Probe - Testing circuits with the Logic Probe
Go to:
Using
the Logic Pulser - Testing circuits with the Logic Pulser
Go to:
Going
Further
- Adding more features to the program such as Sounds and Tones
- downloading the full program for "Probe/Pulser and Sounds/Tones"
Go to: Multi
Chip Programmer - for burning '508 and F84 chips
Go to: 5x7
Display - for burning F84 chips ONLY
|