- •Інструкція з техніки безпеки та правил поведінки в комп'ютерному класі
- •Комплекс вправ для очей
- •Комплекс вправ для поліпшення мозкового кровообігу
- •Критерії оцінювання навчальних досягнень
- •Лабораторна робота №1 Тема: Програмне середовище віртуального відлагоджування Proteus isis.
- •Лабораторна робота №2 Тема: Мова інтегрованого програмування високого рівня mikroC.
- •Лабораторна робота №3 Тема: Аналого цифровий перетворювач та його програмування.
- •Лабораторна робота №4 Тема: Інтерфейс can мережді передачі даних.
- •Лабораторна робота №5 Тема: Доступ до мережі can з використанням spi інтерфейсу.
- •Лабораторна робота №6 Тема: Програмування накопичувачів типу Compact| Flash.
- •Лабораторна робота №7 Тема: Інформаційний обмін з накопичувачем ммс/sd.
- •Лабораторна робота №8 Тема: Вивід інформації на текстовий lcd дісплей у 4 бітному коді.
- •Лабораторна робота №9 Тема: Вивід інформації на графічний дісплей glcd.
- •Лабораторна робота №10 Тема: Підключення завнішнього eeprom з використанням шини i2c.
- •Лабораторна робота №11 Тема: Підключення 16 кнопочної клавіатури.
- •Лабораторна робота №12 Тема: Самосинхронізуючий манчестерський код.
- •Лабораторна робота №13 Тема: Інформаційний обмін по протоколу OneWire.
- •Лабораторна робота №14 Тема: Робота мікроконтролера з сигналом шім (широтно імпульсної модуляції).
- •Лабораторна робота №15 Тема: Інформаційний обмін по протоколу rs-485| .
- •Лабораторна робота №16 Тема: Інформаційний обмін по протоколу rs-232| .
- •Лабораторна робота №17 Тема: Взаємодія пристроїв на базі шини usb.
Лабораторна робота №15 Тема: Інформаційний обмін по протоколу rs-485| .
Мета роботи: навчитися програмувати мікроконтролер, програмно звертатися до вбудованих модулів, отримати навички по використанню програмної бібліотеки для роботи з апаратним модулем RS-485|.
Матеріальне забезпечення роботи: персональний комп’ютер, програмне забезпечення віртуального середовища Proteus ISIS, мова програмування С, відлагоджувальний комплект ICD2.
Завдання для попередньої підготовки.
Вивчити відповідний теоретичний матеріал.
Опрацювати контрольні запитання.
Підготовити звіт.
Намалювати схеми для моделювання та дослідження.
Хід роботи:
В програмному симуляторі зібрати схему згідно завдання лабораторної роботи.
Створити проект програмного коду в програмі mikroC.
Внести заготовлений код програми до програмного середовища.
Компілювати проект.
Внести отриманий двійковий компільований код до програми відлагоджувальника.
Запустити програму відлагоджувальник.
Проаналізувати роботу програми в різних режимах.
Вихідні дані до роботи:
RS-485| - це інтерфейс для зв'язку декількох пристроїв|устроїв| по одному сигнальному кабелю. MIKROC| надає набір функцій для забезпечення сумісної роботи з|із| системою на базі RS-485|, що використовує підхід ведущий/ведомый (Master/Slave). Провідний і ведений|відомий| пристрої|устрої| обмінюються пакетами інформації, кожен з яких містить|утримує| байти синхронізації, байти CRC|, адресні байти і дані. Кожен ведений|відомий| пристрій|устрій| має своя унікальна адреса і приймає тільки|лише| пакети, що адресуються йому. Ведений|відомий| пристрій|устрій| ніколи не є|з'являється| ініціатором обміну.
Відповідальність за те, щоб|аби| тільки|лише| одне пристрій|устрій| вів передачу в конкретний момент часу по шині RS-485|, лягає на програміста.
Функції обміну по RS-485| вимагають наявність апаратного модуля USART| на PORTC|. Виводи|висновки| USART| мають бути підключені до приймача|прийомопередавача| RS-485|, такому як LTC485| або йому подібному. Для управління приймачем|прийомопередавачем| (Receiver| Output| Enable| і Driver| Outputs| Enable|) використовується біт 2 PORTC| (див. малюнок в кінці|у кінці| розділу).
Примітка|тлумачення|: Адреса 50 - загальна|спільна| адреса для всіх ведених|відомих| пристроїв|устроїв| (пакети з|із| цією адресою будуть прийняті всіма веденими|відомими| пристроями|устроями|). Єдиним виключенням|винятком| є|з'являються| ведені|відомі| пристрої|устрої| з|із| адресами 150 і 169, які вимагають своєї власної адреси в пакеті.
Примітка|тлумачення|: Функція Usart_Init|() має бути викликана|спричиняти| перед ініціалізацією RS485|.
Приклад|зразок| демонструє роботу PIC| як веденого|відомого| пристрою|устрою| при обміні по RS-485|. PIC| приймає тільки|лише| пакети адресовані йому (для прикладу|зразка| його адреса 160) або адресовані всім (з|із| адресою 50). Прийняті дані відправляються|вирушають| в PORTB| і назад провідний пристрій|устрій|.
// буфер для принимаемых/передаваемых повідомлень|сполучень|
unsigned| short| dat|[8];
unsigned| short| i = 0, j = 0;
void| interrupt|(void|){
/* Кожен байт приймається RS485Slave_Read|(dat|);
Якщо повідомлення|сполучення| прийняте без помилок
data|[4] встановлюється = 255 */
if| (RCSTA|.OERR) PORTD| = 0x81;
RS485Slave_Read|(dat|);
}
main|() {
TRISB| = 0;
TRISD| = 0;
Usart_Init|(9600); // Ініціалізація модуля USART|
RS485Slave_Init|(PORTC|, 2, 160); // Ініціалізація MCU| як
// веденого|відомого| пристрою|устрою| з|із| адресою 160
PIE1|.RCIE = 1; // Дозвіл переривань
INTCON|.PEIE = 1; // по прийому байта
PIE2|.TXIE = 0; // від USART| (RS485|)
INTCON|.GIE = 1;
PORTB| = 0;
PORTD| = 0;
dat|[4]= 0; // Вуст. нач|. значення прапора прийому = 0
dat|[5]= 0; // Вуст. нач|. значення прапора помилки = 0
do| {
if| (dat|[5]) PORTD| = 0xAA|; // Якщо помилка встановити PORTD| = 0xAA|
if| (dat|[4]) { // Якщо повідомлення|сполучення| прийняте:
dat|[4]= 0; // Очистити прапор прийому
j = dat|[3]; // Прочитати к-ть прийнятих байтів
for| (i = 0; i <= j; i++|)
PORTB| = dat|[i]; // Вивести прийнятий байт в PORTB|
dat|[0]++; // Збільшити лічильник прийнятих байтів dat|[0]
RS485Slave_Write|(dat|, 1); // Відправити дані назад в провідне устр-во|
}
} while| (1);
} //~!
Підключення пристроїв
Приклад|зразок| з'єднання|сполучення| РС і PIC| MCU| по шині RS485|
