7-miestny merač frekvencie/digitálna stupnica

Konštrukcia je založená na princípoch popísaných v Microchip Application note No 563 (použitie PIC16C5X mikrokontrolérov s LCD) a 592 (merač frekvencie).

Niektoré myšlienky boli použité z projektu "Simple low-cost digital frequency meter using a PIC 16C54" (frqmeter.asm) vytvoreného Jamesom Hutchbym, MadLab Ltd. 1996

Program pre LCD interfacing bol čiastočne prevzatý z Microchip Application note 587, ale predovšetkým z LCD.ASM, ktorého autorom je Peter Ouwehand.

Matematické rutiny sú (prevážne) mojím autorstvom.

Je to 7-miestny merač frekvencie, ktorý by mal merať až do vstupnej frekvencie 35 MHz {počítadlo je trojbajtové, maximálna hodnota je $FF FF FF, t. j. 167.77215 MHz). V skutočnosti je maximálna frequencia neprekročí 50 MHz, čo je maximum dané konštrukciou PICu. Reálne možno dosiahnuť okolo 27 MHz a s 1/6 74HC14 (Schmitt trigger) až 38 MHz.

Hardvér je veľmi jednoduchý, obsahuje:

  • PIC 16F84
  • 1 NPN HF Si tranzistor,
  • 16-znakový (2x8) jednoriadkový LCD displej,
  • Xtal 1..10 MHz,
  • nejaké rezistory, kondenzátory a 2 Si spínacie diódy...

Poznámka:
LCD displej je 16-znakový jednoriadkový LCD displej PVC160101PTN, ktorý sa zdá byť kompatibilný s DVOJRIADKOVÝM HITACHI LCD displejom, s tým rozdielom, že má 2x8 znakov v jednom riadku.

Merač frekvencie využíva vnútornú preddeličku PICu ako najnižší bajt počítadla, TMR0 ako stredný bajt a jeden register ako najvyšší bajt. Inkrementovanie najvyššieho bajtu je odvodené z pretečenia TMR0.

Meracia prióda je 100 000 us.
Procesorový cyklus je T = 4/fx [us,MHz], fx je frekvencia Xtálu

Počet procesorových cyklov za meraciu periódu:

N = 100 000/T procesorových cyklov
N = fx x 100 000/4 = 25 000 x fx

Algoritmus merania (zjednodušene):

  1. prekódovať 3 bajty na 7 dekadických čísel,
  2. prekódovať dekadiskú hodnotu na znak,
  3. v prípade potreby nastaviť desatinnú bodku,
  4. poslať výsledok na PORTB (LCD),
  5. naštartovať meranie,
  6. testovať pretečenie TMR0, ak áno zvýšiť TimerH,
  7. skok na 5 až do konca meracieho intervalu,
  8. zastaviť meranie,
  9. zistiť obsah preddeliča,
  10. skok na 1

Celkový časovací vzorec:

N = 25 000 x fx = ((9*T1+4)*T2+4)*T3+5+9*T4+Z

Ako zistiť T1,T2....? Pomocou pripraveného programu!