- •Інструкція з техніки безпеки та правил поведінки в комп'ютерному класі
- •Комплекс вправ для очей
- •Комплекс вправ для поліпшення мозкового кровообігу
- •Критерії оцінювання навчальних досягнень
- •Лабораторна робота №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.
Лабораторна робота №11 Тема: Підключення 16 кнопочної клавіатури.
Мета роботи: навчитися програмувати мікроконтролер, програмно звертатися до вбудованих модулів, отримати навички програмування клавіатури та її динамічного опитування.
Матеріальне забезпечення роботи: персональний комп’ютер, програмне забезпечення віртуального середовища Proteus ISIS, мова програмування С, відлагоджувальний комплект ICD2.
Завдання для попередньої підготовки.
Вивчити відповідний теоретичний матеріал.
Опрацювати контрольні запитання.
Підготовити звіт.
Намалювати схеми для моделювання та дослідження.
Хід роботи:
В програмному симуляторі зібрати схему згідно завдання лабораторної роботи.
Створити проект програмного коду в програмі mikroC.
Внести заготовлений код програми до програмного середовища.
Компілювати проект.
Внести отриманий двійковий компільований код до програми відлагоджувальника.
Запустити програму відлагоджувальник.
Проаналізувати роботу програми в різних режимах.
Вихідні дані до роботи:
MIKROC| надає бібліотеку для роботи з|із| клавіатурою 4x4. Функції також можуть використовуватися для обслуговування клавіатур 4x1, 4x2, і 4x3 (див. схему підключення в кінці|у кінці| розділу).
Наступний|такий| код може бути використаний для перевірки клавіатури. Він підтримує клавіатури з|із| матричною організацією від 1 до 4 рядків і від 1 до 4 колонок. Код, повертаний бібліотечними функціями перекодуються| в ASCII| коди [0..9,A..F]. На додаток, невеликий однобайтовий лічильник використовується для виведення загальної|спільної| кількості натиснень на клавіші в другому рядку LCD|.
unsigned| short| kp|, cnt|;
char| txt|[5];
void| main|() {
cnt| = 0;
Keypad_Init|(&PORTC|);
Lcd_Init|(&PORTB|); // Ініціалізація LCD| на PORTC|
Lcd_Cmd|(LCD_CLEAR|); // Очищення|очистка| дисплея
Lcd_Cmd|(LCD_CURSOR_OFF|); // Відключення курсора
Lcd_Out|(1, 1, "Кеу :");
Lcd_Out|(2, 1, "Times|:");
do| {
kp| = 0;
//--- Очікування|чекання| натиснення клавіші
do|
//--- закоментувати одну з функцій опиту|опитування| клавіатури (невживану)
kp| = Keypad_Released|();
//kp| = Keypad_Read|();
while| (!kp);
cnt++|;
//--- підготувати значення для виводу|висновку|
if| (kp| > 10)
kp| += 54;
else|
kp| += 47;
//--- виведення його на LCD|
Lcd_Chr|(1, 10, kp|);
WordToStr|(cnt|, txt|);
Lcd_Out|(2, 10, txt|);
} while| (1);
}//~!
Підключення пристроїв
Схема підключення клавіатури 4x4
Лабораторна робота №12 Тема: Самосинхронізуючий манчестерський код.
Мета роботи: навчитися програмувати мікроконтролер, програмно звертатися до вбудованих модулів, отримати навички по використанню програмної бібліотеки з манчестерським кодуванням.
Матеріальне забезпечення роботи: персональний комп’ютер, програмне забезпечення віртуального середовища Proteus ISIS, мова програмування С, відлагоджувальний комплект ICD2.
Завдання для попередньої підготовки.
Вивчити відповідний теоретичний матеріал.
Опрацювати контрольні запитання.
Підготовити звіт.
Намалювати схеми для моделювання та дослідження.
Хід роботи:
В програмному симуляторі зібрати схему згідно завдання лабораторної роботи.
Створити проект програмного коду в програмі mikroC.
Внести заготовлений код програми до програмного середовища.
Компілювати проект.
Внести отриманий двійковий компільований код до програми відлагоджувальника.
Запустити програму відлагоджувальник.
Проаналізувати роботу програми в різних режимах.
Вихідні дані до роботи:
MIKROC| надає бібліотеку для маніпулювання сигналами в коді манчестер. Код манчестером є код, що самосинхронізуючий|, де дані і синхронізація передаються одним сигналом. Кожен біт даних кодується переходом в середині бітового інтервалу, 1 кодується фронтом, а 0 - спадом, т.е в першій половині бітового інтервалу передається рівень, комплементарний біту інформації, а в другій - відповідний біту інформації (відповідний, означає|значить| високий для одиниці і низький для нуля|нуль-індикатора|, а компліментарний - все навпаки).
Примітка|тлумачення|: Виклики функцій прийому коди манчестер (Man_Receive_Config|, Man_Receive_Init|, Man_Receive|) є|з'являються| блокуючими. Це означає|значить|, що PIC| чекатиме, поки|доки| дія (тобто прийом байта, синхронізація, і тому подібне) не буде виконана. Функції прийому обмежені в за швидкістю обміну на рівні 340 ~ 560 бод.
Дана програма приймає повідомлення|сполучення| в коді манчестер:
unsigned| short| error|, ErrorCount|, IdleCount|, temp|, LetterCount|;
void| main|() {
ErrorCount| = 0;
TRISC| = 0; // Індикатор помилки
PORTC| = 0;
Man_Receive_Config|(&PORTD|, 6); // Синхронізація приймача
Lcd_Init|(&PORTB|); // Ініціалізація LCD| на PORTB|
while| (1) { // Нескінченний|безконечний| цикл
IdleCount| = 0; // Скидання|скид| лічильника бездіяльності
do| {
temp| = Man_Receive|(error|); // Спроба прийняти байт
if| (error|)
ErrorCount++|
else|
PORTC| = 0;
if| (ErrorCount| > 20) { // Якщо помилок дуже|занадто| багато
ErrorCount| = 0; // Спробувати знову синхронізувати приймач
PORTC| = 0xAA|; // Індикатор помилки
Man_Receive_Init|(&PORTD|); // Синхронізація приймача
}
IdleCount++|;
if| (IdleCount| > 18) { // Якщо нічого не прийнято протягом деякого часу
IdleCount| = 0; // спробувати знову
Man_Receive_Init|(&PORTD|); // синхронізувати приймач
}
} while| (temp| != 0x0B|); // Маркер кінця повідомлення|сполучення|
if| (error| != 255) { // Якщо помилок не було - вивести повідомлення|сполучення|
Lcd_Cmd|(LCD_CLEAR|);
LetterCount| = 0;
while| (LetterCount| < 17) { // Повідомлення|сполучення| з|із| 16 символів
LetterCount++|;
temp| = Man_Receive|(error|);
if| (error| != 255)
Lcd_Chr_Cp|(temp|)
else| {
ErrorCount++|; break|;
}
}
temp| = Man_Receive|(error|);
if| (temp| != 0x0E|)
ErrorCount++|;
} // end| if|
} // end| while|
}
Приклад|зразок| підключення пристроїв
Просте підключення передавача
Просте підключення приймача
