LCD čítač s EEPROM pamäťou
Program: LCD4DIEC.asm, LCD4DIEC.HEX
Kontakt na autora: Osmo OH6CJ
Dátum vzniku: 29. apríl 2001
Naposledy zmenené: september 2001
Osmo, OH6CJ, urobil kus práce! Digitálnu stupnicu rozšíril o niekoľko zaujímavých
funkcií:
Popis
Zariadenie vychádza z digitálnej stupnice, variantu so 4-bitovou komunikáciou.
Bola pridaná možnosť nastavenia parametrov programu prostredníctvom PIC EEPROM
pamäte a možnosti do nej ukladať dáta. Program bol napísaný pre 4 MHz Xtál.
V tejto verzii sa na komunikáciu medzi procesorom a LCD displejom používajú
4 bity, ostatné vodiče možno použiť na komunikáciu s procesorom. V súčasnosti
sú možné dva módy:
- čítačový mód,
- EEPROM mód.
RB0...RB3 majú v týchto módoch rozdielne funkcie:
Čítačový mód:
RB |
False (0) |
True (1) |
0 |
čítačový mód |
EEPROM mód*) |
1 |
RF ofset1 |
RF ofset2 |
2 |
Ofset 1 & 2 |
priamo frekvencia |
3 |
normálny mód |
delenie 10 (poloha bodky) |
EEPROM mód:
RB |
False (0) |
True (1) |
0 |
- |
Zvýšiť EEPROM adresu |
1 |
- |
Zvýšiť hodnotu dát |
2 |
- |
Znížiť hodnotu dát |
3 |
- |
Uložiť do EEPROM |
*) Vstup do EEPROM módu sa zapína nastavením RB0=1 a zapnutím napájania +5 V.
Ukončenie EEPROM módu sa urobí vypnutím napájania. Ak je pri zapnutí RB0=0,
štartuje sa čítačový mód.
adresa EEPROM |
popis |
00 |
MFt1_HigB = horný bajt RF offset1 (def. 0D) 9001.50 kHz = 0DBC36 |
01 |
MFt1_MidB = stredný bajt RF offset1 (def. BC) |
02 |
MFt1_LowB = dolný bajt RF offset1 (def. 36) |
03 |
MFt2_HigB = horný bajt RF offset2 (def. 0D) 8998.50 kHz = 0DBB0A |
04 |
MFt2_MidB = stredný bajt RF offset2 (def. BB) |
05 |
MFt2_LowB = dolný bajt RF offset2 (def. 0A) |
06 |
Direct_freq = čítač (nie digitálna stupnica) = 00 h
Sub alebo Add funkcia aktivovaná = 01...FFh (def. 00h) |
07 |
EE_Fine1 = Hodnota čítača pre kalibráciu 1 == 3*4/fx = 3 us (def. 15) |
08 |
EE_Fine2 = Hodnota čítača pre kalibráciu 2 == 4*4/fx = 4 us (def. 01) |
09 |
1x16_Disp = typ LCD displeja: 0 = 1x16 LCD, 1 = 2x20 LCD (def. 01) |
0A |
Digits = Počet desatinných bodiek: 0 = 7 digits, 1 = 6 (def. 1) |
0B...0Eh |
(nepoužité) |
0F |
Defaults = ak nastavené na 01...FFh nastavia sa základné hodnoty EEPROM
pri najbližšom zapnutí. |
Začiatok merania
Po naprogramovaní 16F84 (16C84) a zapnutí napájania +5 V,
do EEPROM procesora sa automaticky uložia základné hodnoty.
Ak sa má merať frekvencia VFO a zariadenie sa má použiť ako digitálna stupnica,
potom treba poznať presne hodnotu medzifrekvencie (455 kHz, 9.000 MHz.. a pod).
V móde SSB treba ešte poznať hodnotu BFO a použiť ich na posun nameranej hodnoty,
t.j. napr. frekvencia BFO pre LSB je 9001.5 MHz a USB 8998.5 MHz. Pri AM a FM móde
sa použije priamo hodnota medzifrekvencie.
Pre zadanie do pamäti treba túto hodnotu konvertovať do hexadecimálneho
tvaru tak, aby prvé číslo sprava znamenalo desiatky Hz, teda napr. pri MF=9.000.000 MHz,
potom na hexadecimálny tvar treba konvertovať hodnotu 10-krát menšiu, t. j.
900.000, čo je 0D BB A0. Tieto hodnoty sa vložia do registrov nasledovne:
0D = MFt1_HigB
BB = MFt1_MidB
A0 = MFt1_LowB
Pre MFt2 sa hodnoty vypočítajú rovnako.
Nastavenie parametrov
- Nastaviť RB0 na 1 a zapnúť napájanie.
- Zobrazí sa text "EEPROM MODE x.x" (x.x = verzia programu),
- Zobrazuje sa asi 1.4 s, kým RB0...RB3=0,
- Potom sa zobrazí text "ADDR:00 DATA: FF". To znamená, že dáta na EEPROM adrese 00h
majú hodnotu FFh.
- Treba stlačiť RB1 (increment) alebo RB2 (decrement) na nastavenie vypočítaných
hodnôt MF.
- Dáta sa uložia do pamäti stlačením RB3.
Zobrazí sa text "*SAVED*" a dáta sa načítajú a znovu zobrazia pre kontrolu.
- Vyberie sa ďalšia adresa 01h pomocou RB0 a nastaví sa ďalšia hodnota. Stlačením RB3
sa hodnota uloží do EEPROM.
- Opakuje sa, kým sa neuložia všetky parametre (EEPROM adresy 01...0Ah).
- Adresy 0B...0Eh nie sú použité.
- Práca v EEPROM móde sa ukončí vypnutím napájania.
- Znovu sa zapne napájanie. Teraz by sa mala objaviť na displeji meraná frekvencia.
- Kalibrácia zariadenia sa robí porovnaním s iným spoľahlivým zariadením.
Príklad:
Najmenší krok ladenia pri kryštáli 4 MHz je 1 us pri použití EE_fine1 & 2. Relatívny
účinok jedného kroku je 1 us/100000 us = 0.00001.
O niečo menšia hodnota T4 (pozri zdrojový kód) ako
vypočítaná sa použije na +/- korekciu pri kalibrácii cez zadávanie EE_fine1 a EE_fine2.
Presná kalibračná hodnota sa nájde kombináciou EE_fine1&2 a porovnania s referenčným
oscilátorom (ja používam 20.000000 MHz oscilátor z pokazenej sieťovej karty, poznámka
OM3CPH). Ak napr. skutočná hodnota vstupnej frekvencie je 10.00000 MHz a čítač
ukazuje 9.99980 MHz, potom merací interval je kratčí, ako treba. Treba zvýšiť DELAY
podľa tabuľky uvedenej nižšie.
Najpresnejšie sa čítač nastaví doladením niektorého kondenzátora pri kryštáli.
|
07 h |
08 h |
DELAY |
EE_fine1 |
EE_fine2 |
|
1== 3 us |
1== 3 us |
60 us |
02h |
09h |
61 us |
13h |
01h |
62 us |
12h |
02h |
63 us |
03h |
09h |
64 us |
14h |
01h |
65 us |
13h |
02h |
66 us |
12h |
03h |
67 us |
15h ----> |
01h ---> Default |
68 us |
14h |
02h |
69 us |
13h |
03h |
70 us |
16h |
01h |
71 us |
15h |
02h |
72 us |
14h |
03h |
73 us |
13h |
04h |
74 us |
16h |
02h |
- Hodnoty EEPROM na adresách 07 a 08 sa nastavujú podľa tabuľky,
až kým sa nedosiahne najlepšia hodnota zobrazenej frekvencie.
Použitie
Port |
popis |
RB1 |
nastavenie výberu ofsetu 1 alebo 2 |
RB2 |
nastavenie módu čítača |
RB3 |
nastavenie posunutia desatinnej bodky o jedno
číslo doprava, ak je použitý preddelič 10 (v prípade VHF čítačov).
V tomto móde sa druhá bodka nezobrazuje. |
RA2 |
nastavenie pričítanie alebo odčítanie MF. |
Poznámka:
Ak na adrese 0Fh = 01...FFh, potom sa pri najbližšom zapnutí do pamäti uložia
základné hodnoty.
|