Завдання:
Сформувати вихідний сигнал ШІМ з частотою та формою заданими згідно варіанту.
№ варіанту |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
0 |
Частота ШІМ, Гц |
50 |
60 |
70 |
80 |
90 |
100 |
110 |
120 |
130 |
140 |
Форма вихідного аналогового сигналу |
Синусо-їда |
Три кут-ник |
Трапе-ція |
Синусо-їда |
Три кут-ник |
Трапе-ція |
Синусо-їда |
Три кут-ник |
Трапе-ція |
Синусо-їда |
Порядок виконання роботи
Розробити та скласти схему пристрою.
Написати та відлагодити програму роботи мікроконтролера.
Запрограмувати мікроконтролер.
Перевірити функціонування схеми.
Оформити звіт.
Приклад схеми перевірки функціонування ШІМ
Приклад програми на С51
#include <REGX51.H>
#define F_clk 12000000
#define Freq 100
#define P_OUT P1_2
bit PWM_out;
#define vawe_count_MAX 8
unsigned char code vawe[vawe_count_MAX]={10,20,50,80,90,80,50,20};
unsigned char vawe_count;
unsigned char TL1_t;
unsigned char TH1_t;
unsigned char TL0_t;
unsigned char TH0_t;
void init_T0(void);
void init_T1(void);
/*------------------------*/
void main(void)
{
init_T0();
init_T1();
EA=1;
while(1);
}
/*------------------------*/
void init_T0(void)
{
ET0=1;
PT0=1;
TMOD &= 0XF0; /* clear Timer 0 */
TMOD |= 0X2;
PWM_out=1;
P_OUT=PWM_out;
TH0=0xff-200+2*vawe[vawe_count];
TL0=0xff-2*vawe[vawe_count];
TR0=1;
}
/*------------------------*/
void int_T0(void) interrupt 1
{
//P1_4=!P1_4;
TR0=0;
if(!PWM_out)
{
TH0=TH0_t;
TL0=TL0_t;
}
PWM_out=!PWM_out;
P_OUT=PWM_out;
TR0=1;
}
/*------------------------*/
void init_T1(void)
{
unsigned long t;
vawe_count=0;
t=0xffff-F_clk/12/Freq/vawe_count_MAX;
TL1_t=t;
TH1_t=(t&0xff00)>>8;
TL1=TL1_t;
TH1=TH1_t;
ET1=1;
TMOD &= 0XF; /* clear Timer 1 */
TMOD |= 0X10;
TR1=1;
}
/*------------------------*/
void int_T1(void) interrupt 3
{
TR1=0;
TL1=TL1_t;
TH1=TH1_t;
vawe_count++;
if(vawe_count==vawe_count_MAX)vawe_count=0;
TH0_t=0xff-100+vawe[vawe_count];
TL0_t=0xff-vawe[vawe_count];
if(TH0_t>0xE0)TH0_t=0xE0;
if(TL0_t>0xE0)TL0_t=0xE0;
P1_3=!P1_3;
TR1=1;
}
/*---------------------------*/
Осцилограма роботи схеми
Лабораторна робота № 2
Тема: Вимірювання частоти сигналів по методу прямого перетворення.
Мета: Ознайомлення з принципом роботи частотомірів роботою.
Короткі теоретичні відомості
Вимірювання частоти та періоду сигналів по методу прямого перетворення базується на реалізації двох операцій: перетворенні вимірюваного сигналу в послідовність дискретних імпульсів цієї ж самої частоти та підрахунку кількості цих імпульсів на протязі відомого та строго-визначеного часового інтервалу. Принцип дії таких частотомірів, на прикладі часового інтервалу, який формується за 10 періодів тактового генератора відомого періоду Т0, ілюструється часовою діаграмою представленою на рис.1.
Рис. 1 – Часова діаграма роботи частотоміра, який працює по методу прямого перетворення
Першу з представлених операцій здійснюють схемами, які називаються формувачами імпульсів, а другу здійснюють з допомогою універсальних двійкових або декадних лічильників. В першому випадку результат буде представлено в двійково-десятковому коді, який є зручним для представлення з допомогою індикаторів, а в другому випадку результат представлено у двійковому коді, який є зручним для опрацювання з допомогою процесорів.
При вимірюванні частоти інтервал часу Т0 формують з використанням високостабільного генератора, наприклад з кварцовим заданням частоти. Вибір частоти цього генератора здійснюється виходячи зі зручності переводу числа імпульсів зафіксованого лічильником в величину виражену в Герцах.
Отже для вимірювання частоти з допомогою мікроконтролера необхідно:
з допомогою одного з таймерів сформувати часовий інтервал відомої тривалості Т0;
на протязі цього часового інтервалу лічильником підрахувати кількість імпульсів сформованих формувачем NX;
розрахувати частоту вхідного сигналу fX згідно виразу
.
Якщо
сформований часовий інтервал 1 с., то
.
