Курсовая работа: Система вимірника струмів

lcd_gotoxy(5,1); // Встановлення адреси знакомісця на 5 позицію у другій строці

lcd_putchar(a1 + 0x30); // Вивід першої значущої цифри результату із зміщенням

lcd_gotoxy(6,1); // Встановлення адреси знакомісця на 6 позицію у другій строці

lcd_putchar(0x2C); // Вивід символу коми

lcd_gotoxy(7,1); // Встановлення адреси знакомісця на 7 позицію у другій строці

lcd_putchar(a2 + 0x30); // Вивід другої значущої цифри результату із зміщенням

lcd_gotoxy(8,1); // Встановлення адреси знакомісця на 8 позицію у другій строці

lcd_putchar(a3 + 0x30); // Вивід третьої значущої цифри результату із зміщенням

3.5 Проектування процедури перетворення інформації

Для виводу інформації на дисплей її необхідно обробити. АЦП має 10 розрядів, тобто він може перетворювати вимірювану величину з кроком 1/1023*Uref. Для простоти перетворень задамось, що максимальне значення нашої змінної яка буде зберігати значення після перетворення буде дорівнювати 2048. Таким чином ми отримуємо формулу для перетворення:

Current = 2 * ADC

Current = ((long)2 * (long)A;

Максимальне значення АЦП – 1023 буде відповідати значенню 2048 нашої змінної.

Тепер нам необхідно перекодувати значення змінної Current до BCD формату. Це можна реалізувати за допомогою функцій:


a1 = a/1000;

a2 = (a - (a1 * 1000))/100;

a3 = (a - (a1 * 1000) - (a2 * 100))/10;

a4 = (a -(a1 * 1000) - (a2 * 100) - (a3 * 10));

де а – вхідна змінна типу int;

а1 – тисячі;

а2 – сотні;

а3 – десятки;

а4 – залишок;

3.6 Проектування процедури main()

Процедура main() повинна складатися з процедур ініціалізації, основного тіла програми та незкінченного циклу. Після ініціалізації всіх вузлів дозволяються усі переривання і ми очікуємо переривання від АЦП, при приході переривання ми аналізуємо флаг ADCFlag , і якщо він дорівнює 1, то ми переходимо до тіла основної програми. Зчитуємо значення АЦП, перетворюємо його, виводимо текстове повідомлення на РКІ. Далі ми аналізуємо чи змінилось значення АЦП, і якщо так, то забороняємо переривання, викликаємо процедури перетворення та відображення результату, відновлюємо дозвіл на переривання.

void main(void)

{

init_mega();

lcd_init(16);

К-во Просмотров: 397
Бесплатно скачать Курсовая работа: Система вимірника струмів