2.5.Алгоритъм на управление:
Управлението на системата „електронен честотомер” се базира на цикличното повтаряне на една основна програма, която има за цел непрекъснатото визуализиране на данните получени при измерването върху светодиодния дисплей.
Настройката на режима на работа (измерване на честота/период и броене на импулси) става посредством бутона “MODE”. При натискането на този бутон се генерира прекъсване което инкрементира стойността на променлива която съхранява номера на избрания режим. Когато тази променлива достигне стойност по-голяма от 2, тя се нулира (вариантите са 3: MODE=0 -> режим на измерване на честота; MODE=1 -> режим на измерване на период; MODE=2 -. Режим на броене на импулси).
При натискане на бутона „RANGE” на същия принцип се променя променлива отразяваща обхвата в който се извършва измерването, като тук обхватите са 6 и всеки един е свързан със специфични настройки на вътрешни регистри:
Обхват
|
Състояние на RC4
|
Състояние на TMR1CS
|
Състояние на T1CKPS0/1
|
Състояние на CCP1CON<3:0>
|
Необходима честота за постигане на точност 0,1%
|
Еквивалентна работна честота
|
1-9,999Hz
|
1
|
1
|
10 (1/4)
|
0101
|
1kHz
|
25kHz
|
10-99,99Hz
|
1
|
1
|
01 (1/2)
|
0101
|
10kHz
|
50kHz
|
100-999,9Hz
|
1
|
1
|
00
|
0101
|
100kHz
|
100kHz
|
1-9,999kHz
|
1
|
0
|
00
|
0101
|
1MHz
|
5MHz
|
10-99,99kHz
|
1
|
0
|
00
|
0110
|
10MHz
|
20MHz
|
100-999,9kHz
|
0
|
0
|
00
|
0111
|
100MHz
|
160MHz
|
При натискане на бутона S/S се генерира прекъсване и се стартира измерването като се активира Таймер 1 и RC5=0, при повторно натискане на бутона таймера и електронната врата се спират и се прекратява измерването.
При стартирането на измерването за режими на измерване на честота и период, се правят 4 измервания и чрез съответните математически операции се намира средната продължителност на периода на измервания сигнал. От него ако е необходимо се намира и честотата на сигнала. След като се направят цикъл от 4 измервания и се намери средната стойност на периода на сигнала, ако не е прекратено измерването започва нов цикъл.
За режима на броене на импулси се инкрементира променлива при всяко постъпване на прекъсване от CCP1 модула, като стойността и своевременно се изобразява на дисплея. Отброяването се прекратява с прекратяване на измерването (натискане на S/S бутона), но стойността на променливата се запазва до започване на ново измерване или промяна на режима на измерване.
Индицирането на обхвата става посредством позицията на десетичната точка и помощните индикатори за множители.
Индицирането на текущия режим на измерване също става чрез помощни светодиодни индикатори. Управлението на светодиодните индикатори става с помоща на Таймер 2, който генерира прекъсване на всеки 250μs*, установява данните на порт D за катодите на съответната цифра, според стойността на клетките от паметта, в които е записан резултата от измерването, и превключва транзисторите.
Начално установяване на системата
1.Конфигуриране на изходите.
Тъй като след стартирането по подразбиране, всички портове са конфигурирани като входове, се налага да се извърши реконфигуриране на онези портове които се използват като изходи и които не се използват (конфигурират се като изходи). За целта се записват съответните битове в управляващите регистри на портовете (TRIS регистрите).
2.Конфигуриране на работните клетки памет.
За да се избегне попадането на случайни числа, а и за да работи правилно системата е необходимо след рестартиране в работните клетки от паметта да се заредят начални стойности на използваните параметри. Поради което се налага първоначалното записване на стойности от използваните клетки в паметта (например зануляването им).
3.Конфигуриране на USART модула
За даможе да се извършва предаване на информация по асинхронен сериен порт към персонален компютър или друг терминал е необходимо USART модула да бъде конфигуриран като асинхронен приемо-предавател и да се настрои режима му на работа.
SPEN=1 (RCSTA<7>)
TREISC<7:6>=1 – конфигурират се RC6 и RC7 като вход и изход на USART
TXIE=0 (PIE1<4>) – Забранява се прекъсването от предавателя
RCIE=0 (PIE1<5>) – Забранява се прекъсването от приемника.
Конфигуриране на предавателя: Регистър TXSTA
<6> TX9=1 –Разрешава се 9 битово приемане на данни;
<5> TXEN=1 – Разрешава се приемането на данни
<4> SYNC=0 – Режим на предаване – Асинхронен
<2> BRGH=0 – Определя се скоростта на предаване – Low Baud Rate (FOSC/(64+(X+1))
Конфигуриране на приемника: Регистър RCSTA
<7> SPEN=1 – разрешава серийния порт
<6> RX9=1 – разрешава приемането на 9-ти бит
<4> CREN=1 – Разрешава продължително приемане на данни
4.Конфигуриране и стартиране на Таймер 1 и CCP1 периферни устройства става в зависимост от избрания режим на работа и в процеса на работа на системата.
III.Графична част
4>6>7>2>4>5>6>5>4>7>
Сподели с приятели: |