The Weeder Frequency Counter PIC 16F84
port by Peter Cousens
This is a port by Peter Cousens
to the PIC 16F84 of the
50Mhz
Frequency counter kit {originally available} from
Weeder Technologies . Since it uses
a base PIC that is easily programmable, and provides a usefull bit of bench
test equipment at very low cost, it makes an ideal PIC learning project.
If you don't want to spend the time on the PCB, collecting the parts or even
not programming the uP, you can order the kit (for a very resonable price)
from http://www.weedtech.com
News: Weeder Tech no longer makes this kit. They have moved on to a very
nice version that works with a local PC via the serial port for display and
control. It is also "stackable" for multiple counters at once or with other
modules for control and measurement of all kinds. See
http://www.weedtech.com for more
information. The original kit has been licenced to
Invent Electronics and Ken
has made some improvements and provides a very nice (closed source)
kit for $49
and a PCB for
$10 (prices as of 2004/03/05)
The result is a nice frequency counter that reads frequency from 1 Hz to
50 MHz and displays it on a 16 character LCD
display. Auto-range feature provides floating decimal point and automatic
placement of suffix (Hz, KHz, or MHz). Gate speed automatically decreases
to one second below 100 KHz to display frequency with a resolution down to
an amazing 1 Hz.
-
Auto-ranging with floating decimal point.
-
Up to 7 digits displayed.
-
Auto-adjusting gate speed (0.1 sec to 1 sec).
-
Microcontroller-based circuitry provides for simplicity, ease of assembly,
and highly stable readout.
-
Sensitivity approximately 100 mV RMS (100 Hz to 2 MHz), 800 mV RMS @ 50 MHz.
-
Input overload protected.
You will need:
-
The circuit you may want to make a
PCB
-
The files are as follows (right click and save as .asm or .hex files)
-
wct 5.asm or
.hex (right click on hex and select "Save
as...") is the original program Peter ported to 16f84 in October 1998
-
wct6.asm is a version that diplays an
introductory message. It is not assembled it as you should change it to your
own personalised message and options. There is lots of spare program space.
DO NOT FORGET TO SET THE WatchDog TIMER TO OFF AND THE OSC TO XT
-
weedfreq8x2LCD is a version for two line,
8 char per line LCD displays
-
A way to program the uP. (one of
the simplest ways is Tony
Nixons ASCII Programmer )
Also:
See also:
Comments:
-
-
-
-
digs.dxus@gamil.com
" no puedo hacer funcionar el contador de
frequencias mostrado, hay un error con el LCD, no enciende"
-
aceware@spray.se
-
I have found a bug. When the display should show 255Hz, it shows 511Hz. 254
or 256 is fine, but not 255. The same goes for 511. It shows 767 instead.
767 -> 1023
1023 -> 1279
1279 -> 1535
1535 -> 1791
1791 -> 2047
2047 -> 2303
2303 -> 2559
2559 -> 2815
2815 -> 3071
I didn't bother to test more frequencies. I'm not very good at asm so I can't
see why this happens. Maybe someone else has the solution. /Daniel
-
Bary Smith says: "4 bit LCD / Serial
Output Here is my updated version of the driver code for this using the
PIC16F628 as a drop in replacement for the F84 (F84 is also still supported).
The other main changes are a switch to 4-bit LCD interface to free up some
pins and USART output so the frequency can be fed to a PC COM port."
-
oswa_mene@yahoo.com.mx
" if you want to measure more than 80mhz with
this counter without a prescaler just see
http://www.geocities.com/alibhernlem/Radio/freq.html Make
the modifications shown on the page at that link
(cached 20060208) and use a
74AS00,
I`ve measured no more than 80mhz because that is the highest frequency source
I had in hand, I guess it could get higher.
It is important the AS in the 74AS IC because they work at higher frequency.
-
Hi, I just got this circuit to work, ended up using the WCT5.asm file and
adding the code for 2x8 then compiling in MPLAB. One thing that really confused
me was the schematic provided for this circuit.. you have to notice that
the data buss lines get reversed.. IE pin 6 on the PIC goes to pin 7 on the
LCD, not pin 14 as it would apear at first glance.. just hoping someone else
can avoid this problem. Before when i had the data lines reversed the LCD
just displayed the last half as black boxes.. so that is probably the reason
that some people were getting the black boxes.
-
mss001@hotmail.com
I've made a pcb for this circuit, I omitted the preamp as i'm using it for
a homebrew function generator. If anyone wanna use this pcb I'd be happy
to email it to you.
Thanks! I've posted the files here:
Frequency Counter
PCB
-
tzhang: some lcd can't init with this program, because the lcd need time
to process the instruction. so i insert some "call int_del"
into the start routine. then it works.
-
WoW! Thanx for the 8X2 code!i tried making it myself but i failed.I did a
search for 16X1 Lcd but could not find it. Now i can have my own frequency
counter. The listing that contains a startup message is all messed up,i sorted
it out and modified it for the 8X2 LCD, where should i mail it so that it
can be added to this webpage?
James Newton
replies: Just post it using the form at the bottom, or email it to webmaster.
-
cklymko@hotmail.com
I have a fix for the pesky 8x2 displays that have been packaged as 16x1 displays.
If you are only getting the first half of the display to work let me know.
I'll send you the code that worked for me. (tested on model L1671 8x2 display)
Thanks! I've posted the code here:
8x2
LCD code
-
Having tried the vanilla WCT5 to build the frequency ctr, i found that it
didn't work. So i added a CONFIG line in the ASM source, and then it worked
flawlessly! My CONFIG statement looks like this: __CONFIG _CP_OFF & _XT_OSC
& _WDT_OFF & _PWRTE_ON regards, --Thilo
Thanks much for the help!
Steve Brune says:
If you use the 16F84A for this project the
software needs to be updated for bank switching to access the OPTION, TRISA
and TRISB registers. The OPTION and TRIS commands compile with a warning
in MPIDE but do not execute when burned in the 16F84A microcontroller.
Questions: