17436

Ознайомлення з принципом роботи частотомірів

Лабораторная работа

Коммуникация, связь, радиоэлектроника и цифровые приборы

Мета роботи Ознайомлення з принципом роботи частотомірів Теоретичні відомості Вимірювання частоти та періоду сигналів по методу прямого перетворення базується на реалізації двох операцій: перетворенні вимірюваного сигналу в послідовність дискретних імпульсів ц

Украинкский

2013-07-01

701 KB

5 чел.


Мета роботи

Ознайомлення з принципом роботи частотомірів

Теоретичні відомості

Вимірювання частоти та періоду сигналів по методу прямого перетворення базується на реалізації двох операцій: перетворенні вимірюваного сигналу в послідовність дискретних імпульсів цієї ж самої частоти та підрахунку кількості цих імпульсів на протязі відомого та строго-визначеного часового інтервалу. Принцип дії таких частотомірів, на прикладі часового інтервалу, який формується за 10 періодів тактового генератора відомого періоду Т0, ілюструється часовою діаграмою представленою на рис.1.

Рис. 1 – Часова діаграма роботи частотоміра, який працює
по методу прямого перетворення

Для вимірювання частоти з допомогою мікроконтролера необхідно:

  •  з допомогою одного з таймерів сформувати часовий інтервал відомої тривалості Т0;
  •  на протязі цього часового інтервалу лічильником підрахувати кількість імпульсів сформованих формувачем NX;
  •  розрахувати частоту вхідного сигналу fX згідно виразу .

Якщо сформований часовий інтервал 1 с., то

Завдання:

  •  Виміряти частоту вихідної напруги мультивібратора напруги та відобразити виміряне значення на рідкокристалічному дисплеї;

№ варіанту

1

2

3

4

5

6

7

8

9

0

Частота кварцу, МГц

11,5

11

10,5

10

9,5

9

8,5

8

7,5

12

Програмна реалізація

#include <REG51.H>

#include <stdio.h>

/*---------------------------------*/

#define Fclc 10000000

#define TREF 1.0

unsigned char idata THH0;

unsigned char idata TL0_T;

unsigned char idata TH0_T;

unsigned char idata THH0_T;

/*---------------------------------*/

#define LCD_DAT P2

#define LCD_RS P2_1

#define LCD_RW P2_2

#define LCD_E P2_3

/*---------------------------------*/

void init_LCD(void);

void out_com_lcd(char out);

char putchar(unsigned char out);

void inc_kursor_pos_lcd(unsigned char n);

unsigned char print_ram_adres_lcd;

unsigned char freq_pos;

/*---------------------------------*/

void init_T0(void);

void init_T1(void);

/*---------------------------------*/

void delay(unsigned int n);

/*---------------------------------*/

void main(void)

{

init_LCD();

printf("\n   ");

freq_pos=print_ram_adres_lcd;

init_T0();        //Timer

init_T1();        //Counter

EA=1;

while(1)

 {

 }

}

/*---------------------------------*/

void delay(unsigned int n)

{

unsigned int i,j;

for(j=0;j<n;j++)

 for(i=0;i<0x200;i++);

}

/*---------------------------------*/

void init_LCD(void)

{

unsigned char init_comand[]={0x30,0x30,0x30,0x38,0x0F,0x1,0x6};

unsigned char i;

LCD_RS=0;

LCD_RW=0;

LCD_E=0;

delay(100);

for(i=0;i<7;i++)

 out_com_lcd(init_comand[i]);

print_ram_adres_lcd=0;

}

/*---------------------------------*/

void out_com_lcd(char out)

{

unsigned char a;

LCD_RS=0;

LCD_RW=0;

LCD_DAT &= 0x0F;   //4-bit interface

LCD_DAT |= out & 0xF0;

for(a=0;a<200;a++);

LCD_E=1;

for(a=0;a<200;a++);

LCD_E=0;

for(a=0;a<200;a++);

LCD_DAT &= 0x0F;

LCD_DAT |= (out <<4) & 0xF0;

for(a=0;a<200;a++);

LCD_E=1;

for(a=0;a<200;a++);

LCD_E=0;

for(a=0;a<200;a++);

delay(5);

}

/*---------------------------------*/

char putchar(unsigned char out)

{

unsigned char a;

if(out=='\n')

 {

 print_ram_adres_lcd=0x2;

 out_com_lcd(0x80+print_ram_adres_lcd);

 return out;

 }

out_com_lcd(0x80+print_ram_adres_lcd);

LCD_RS=1;

LCD_RW=0;

LCD_E=0;

LCD_DAT &= 0x0F;   //4-bit interface

LCD_DAT |= out & 0xF0;

for(a=0;a<200;a++);

LCD_E=1;

for(a=0;a<200;a++);

LCD_E=0;

for(a=0;a<200;a++);

LCD_DAT &= 0x0F;

LCD_DAT |= (out <<4) & 0xF0;

for(a=0;a<200;a++);

LCD_E=1;

for(a=0;a<200;a++);

LCD_E=0;

inc_kursor_pos_lcd(1);

return out;

}

/*---------------------------------*/

void inc_kursor_pos_lcd(unsigned char n)

{

unsigned char i;

for(i=0;i<n;i++)

 {

 print_ram_adres_lcd++;

 if(print_ram_adres_lcd==0x11)print_ram_adres_lcd=0x42;

 if(print_ram_adres_lcd==0x51)print_ram_adres_lcd=0x12;

 if(print_ram_adres_lcd==0x21)print_ram_adres_lcd=0x52;

 if(print_ram_adres_lcd==0x61)print_ram_adres_lcd=0x2;

 }

}

/*---------------------------------*/

void init_T0(void)

{

long t,NT0;

t=TREF*Fclc/12.0;

NT0=0xFFFFFF-t;

TL0_T=NT0;

TH0_T=(NT0&0xFF00)>>8;

THH0_T=(NT0&0xFF0000)>>16;

TL0 = TL0_T;

TH0 = TH0_T;

THH0= THH0_T;

TMOD &= 0XF0;                    /* clear Timer 0   */

TMOD  |= 0X1;

ET0 = 1;        /* IE.1*/

TR0 = 1;                /* TCON.4 start timer  */

}

/*---------------------------------*/

void init_T1(void)

{

TMOD  &= 0XF;       /* clear Timer 1 control    */

TMOD = 0X51 ;

TL1 = 0X0 ;                  /* value set by user         */

TH1 = 0X0 ;                 /* value set by user          */

ET1 = 1 ;          /* ET0 is IE.3         */

TR1 = 1;                /* TCON.6  start timer      */

}

/*---------------------------------*/

void int_T0(void) interrupt 1

{

unsigned int N,Freq;

THH0++;

if(THH0==0)

 {

 TR0=0;

 TR1=0;

 TL0 = TL0_T;

 TH0 = TH0_T;

 THH0=THH0_T;

 N=(TH1<<8);

 N=N|TL1;

 TH1=0;

 TL1=0;

 Freq = N/TREF;

 print_ram_adres_lcd=freq_pos;

 printf("%d Hz",Freq);

 TR0=1;

 TR1=1;

 }

}

/*---------------------------------*/

void int_T1(void) interrupt 3

{

TR1=0;

TR1=1;

}

/*---------------------------------*/

Результати  даної  роботи

Висновок

На даній лабораторній роботі я   ознайомився з принципом роботи частотомірів, 

а також   з його застосуванням. Розробив програму  яка відповідає вихідному результату.


 

А также другие работы, которые могут Вас заинтересовать

31294. Мінімізація логічних функцій 449.5 KB
  Основна задача при побудові систем керування дискретними обєктами і процесами на основі логічних функцій: приведення логічних функцій керування до найбільш простого виду при якому система керування буде виконувати свої задачі. Для ручної мінімізації логічних функцій використовуються карти Карно і діаграми Вейча причому останні будують як розгорнення кубів на площині карти Карно.
31295. Тема: Синтез комбінаційних схем на мікросхемах середнього ступеня інтеграції Мета заняття:Закріпити отр. 1.08 MB
  Традиційно ця назва застосовується до вузлів робота яких не описується досить простим алгоритмом а задається таблицею відповідності входів і виходів.1 Якщо декодер має входів виходів і використовує всі можливі набори вхідних змінних то . Число входів і виходів декодера вказують таким чином: декодер 38 читається три на вісім 416 410 неповний декодер. Мультиплексор це функціональний вузол що здійснює підключення комутацію одного з декількох входів даних до виходу.
31298. Синтез схем синхронних автоматів з памяттю 3.18 MB
  Закріпити отримані теоретичні знання зі знань теорії дискретних автоматів, навчитися визначати бульові функції і будувати функціональні схеми простих синхронних автоматів, заданих словесним описом
31299. Синтез схем асинхронних автоматів з пам’яттю за словесним описом 880 KB
  Для КС його задають у вигляді логічних виразів а для ЦА абстрактного автомата. Щоб краще зрозуміти їх суть уточнимо поняття структурного автомата який є кінцевою метою синтезу рис.2 Функціональна схема структурного автомата На відміну від абстрактного автомата що має один вхідний і один вихідний канал на які надходять сигнали у вхідному та вихідному алфавітах структурний автомат має вхідних каналів і вихідних на яких зявляються сигнали в структурному алфавіті автомата. Кожен вхідний сигнал абстрактного автомата можна закодувати...
31300. Системи числення, кодування інформації 287.5 KB
  Можна вигадати незлічену кількість способів запису числа цифровими знаками але практично застосована система числення повинна давати змогу: зображувати будьяке число в розглядуваному діапазоні величин; одержувати єдине зображення кожної величини; просто виконувати операції з числами. Розрізняють позиційні і непозиційні системи числення. Непозиційною системою числення називають спосіб зображення чисел коли значення цифри не залежить від її позиції в числі наприклад римський запис числа.
31301. Методичні вказівки щодо виконання контрольних робіт з дисципліни “Теорія автоматичного керування” 4.7 MB
  Диференціальні рівняння і передавальні функції елементів САК 5 Задача 2. Часові та частотні характеристики динамічних ланок САК 6 Задача 3 Дослідження стійкості лінійних САК 10 Задача 4 Синтез коректувальних пристроїв за логарифмічними частотними характеристиками 14 Додаток. Метою її вивчення є освоєння принципів побудови різних типів систем автоматичного керування САК; вивчення властивостей і особливостей лінійних нелінійних і дискретних САК; вивчення методів аналізу стійкості та якості...
31302. Методичні вказівки щодо виконання курсової роботи з дисципліни “Теорія автоматичного управління” 2.74 MB
  Методичні вказівки щодо виконання курсової роботи з дисципліни “Теорія автоматичного управління” для студентів денної та заочної форм навчання зі спеціальностей: 7.092203 - "Електромеханічні системи автоматизації та електропривод”, 7.092204 - “Електромеханічне обладнання енергоємних виробництв”