logo search
Metodichka_Modul_6_red

Лабораторна робота 5 Тема 5: Реалізація виведення даних на жк-дисплей та обмін інформацією між пеом та мікроконтролером через послідовний порт rs-232

Мета роботи: вивчити принципи передачі даних між ПЕОМ та мікроконтролером через послідовний порт RS-232.

Лабораторна робота виконується в індивідуальному порядку. На кожному робочому місці повинні бути встановлені: багатофункціональний лабораторний макет на базі мікроконтролера AVR ATMEGA 2561, ПЕВМ типу IBM PC/AT з інстальованим програмним забезпеченням: операційною системою MS–WINDOWS v. 9x, 2000, XP, програматором на основі кросс-компілятора мови програмування C CodeVision AVR, утилітою Terminal для роботи з послідовним інтерфейсом RS232C. Завдання виконуються на лабораторному макеті на базі 8-ми розрядного мікроконтролера AVR ATMEGA 128. Додатково в роботі використовується кабель з 9-контактними роз'ємами DB-9 (див. рис. 1.8) для з'єднання лабораторного макету з ПЕВМ через послідовний інтерфейс RS232C.

Призначення сигналів інтерфейсу RS232C наступне:

FG – захисне заземлення (екран);

TxD – дані, що передаються комп'ютером в послідовному коді (логіка негативна);

RxD – дані, що приймаються комп'ютером в послідовному коді (логіка негативна);

RTS – сигнал запиту передачі. Активний протягом всього часу передачі;

CTS – сигнал скидання (очищення) для передачі. Активний протягом всього часу передачі. Говорить про готовність приймача;

DSR – готовність даних. Використовується для завдання режиму модему;

SG – сигнальне заземлення, нульовий провід;

DCD – лінія детектування сигналу, що приймається;

DTR – готовність вихідних даних;

RI – індикатор виклику. Говорить про прийом модемом сигналу виклику по телефонній мережі;

Для трьохпровідної двонаправленої лінії зв'язку використовуються сигнали RXD, TXD і SG. Всі 10 сигналів інтерфейсу будуть задіяні тільки при роботі з модемом. Модулі USART0 і USART1 входять до складу мікроконтролера. Додатково в лабораторному макеті міститься блок перетворення рівнів RS232/ТТЛ. Для зв'язку з ПЕВМ через СОМ – порт використовується тільки асинхронний режим роботи інтерфейсу RS232С.

Робота з програмою Terminal (див. рис. 1.16) виконується шляхом налаштування відповідних параметрів протоколу обміну у верхній частині робочого вікна і введення тих, що відправляються (в області Transmit) або спостереження даних, що приймаються (в області Receive), в десятковому, шістнадцятирічному або двійковому вигляді.

Рисунок 1.16 Програма "Terminal"

Перед початком виконання практичної частини лабораторної роботи проводиться експрес–контроль знань по принципам функціонування модулів USART, що входять до складу мікроконтролера AVR ATMEGA 2561, а також по протоколу обміну даними по інтерфейсу RS232C.

Завдання. Розробити в середовищі програмування Code Vision AVR програму на мові С для виведення даних на ЖК-дисплей.

Рішення.

#include <mega2561.h>

#include <delay.h>

#include <stdio.h>

#asm

.equ __lcd_port=0x2;

#endasm

#include <lcd.h>

flash char Decode2Rus[255-192+1]= {

0x41,0xA0,0x42,0xA1,0xE0,0x45,0xA3,0xA4,

0xA5,0xA6,0x4B,0xA7,0x4D,0x48,0x4F,0xA8,

0x50,0x43,0x54,0xA9,0xAA,0x58,0xE1,0xAB,

0xAC,0xE2,0xAD,0xAE,0xAD,0xAF,0xB0,0xB1,

0x61,0xB2,0xB3,0xB4,0xE3,0x65,0xB6,0xB7,

0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0x6F,0xBE,

0x70,0x63,0xBF,0x79,0xE4,0x78,0xE5,0xC0,

0xC1,0xE6,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7 };

#define _ALTERNATE_PUTCHAR_

int i=3000, k=300;

void putchar(char c)

{ if(c>=192) lcd_putchar(Decode2Rus[c-192]);

else lcd_putchar(c); }

void main() { DDRD=0xFF;

lcd_init(16);

lcd_clear();

lcd_gotoxy(0,0);

printf("Велiканов С.К.");

lcd_gotoxy(0,1);

printf("Довгий А.М.");

delay_ms(i); }

Завдання. Розробити в середовищі програмування Code Vision AVR програму на мові С для зв'язку мікроконтролера AVR ATMEGA 2561 з ПЕВМ по інтерфейсу RS232C.

Приклад виконання завдання. Розробити програму для передачі 20 чисел (від 0 до 19) з мікроконтролера AVR ATMEGA 2561 в ПЕВМ по інтерфейсу RS232C у відповідність з протоколом: модуль USART1, швидкість обміну даними 19200 біт/с, режим обміну асинхронний, 7 бітів даних без біта парності.

Рішення. Виходячи з параметрів обміну необхідно налаштувати регістри управління/статусу і швидкості передачі даних модуля USART1, а потім в циклі вивести дані в регістр UDR1. Алгоритм програми приводиться на рис 1.17.

Рисунок 1.17 Алгоритм передачі інформації між ПЕОМ та мікроконтролером

Повний текст початкового модуля програми на мові С з докладними коментарями приводиться нижче:

#include <mega2561.h> //Підключити заголовний файл mega2561.h;

#include <delay.h> //підключити заголовний файл delay.h;

char i; //опис глобальної змінної i;

main() { //основна частина програми;

UCSR1A=0x00; //установка стандартного режиму завдання швидкості передачі даних;

UCSR1B=0x08; //установка 3-го біта регістра UCSR1B для //ініціалізації USART1 режимі передавача;

UCSR1C=0x04; //установка формату кадру: 7 біт даних з //відключеним режимом парності;

UBRR1H=0x00; //установка значення дільника (35) відповідного

UBRR1L=35; //швидкості прийому даних 19200 біт/с;

for (i=0; i<=19; i++) { //організувати цикл на 20 ітерацій;

delay_ms(20); //встановити тимчасову затримку 20 мс;

UDR1=i; } //виконати передачу значення параметра циклу i;

}

*Завдання : Реалізувати програму яка буде поєднувати в собі клавіатуру, дисплей та блок світло діодів , які будуть між собою взаємопов’язані .