Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Программирование вручную. Дополним полученную с помощью CodeWizard программу для МК-передатчика следующим кодом:






 

Дополним полученную с помощью CodeWizard программу для МК-передатчика следующим кодом:

 

- Подключение библиотек:

#include < mega16.h> #include < stdio.h>

 

- Задание глобальных переменных:

char massiv[6]={'v', 's', 'e', '_', 'o', 'k'}; //массив передаваемых данных – 6 символовbit on =0; // кнопка нажатаint i =0;

Здесь переменная on типа bit учитывает «залипание» кнопки.

 

- Инициализация микроконтроллера:

void MC_UNIT (void){UCSRA=0x00; UCSRB=0x48; // 8 - 1< < TXEN; 1 - Разрешение передачи, активирует выход TXD // 4 - 1< < TXCIE; - Разрешение прерывания по завершению передачиUCSRC=0x86; //6 - 1< < UCSZ1 и 1< < UCSZ0 - 8 бит данных в посылке, //8 - 1< < URSEL - выбор регистра UCSRC, «0» в 6-ом бите– асинхронный режимUBRRH=0x00; UBRRL=0x06; // скорость передачи 9600 бод = 1000000/16/6 = 10416, что почти = 9600, //с погрешностью 7% }

Здесь заданы: Communication Parameters: 8 Data, 1 Stop, No Parity

USART Receiver: Off USART Transmitter: On USART Mode: Asynchronous

USART Baud Rate: 9600

 

- Задание функции передачи данных PEREDACHA:

unsigned char PEREDACHA (void){ { if(PINC.0==0 & & on==0) // если нажата кнопка { UDR = massiv[i]; // записываем i-ый символ массива в регистр передачи данных UDR, i++; if(i> 5) // если переданных символов больше 6 (i от 0 до 5), { i=0; //то возвращаемся к 1-му символу массива } on=1; //введён запрет нажатия кнопки } if(PINC.0! =0) { on=0; // разрешение нажатия кнопки } } return massiv[i]; }

 

Теперь в основной функции main вызываем функцию инициализации, а в бесконечном цикле while - функцию передачи данных:

void main(void){MC_UNIT(); while(1) { PEREDACHA(); }}

В данной программе при каждом нажатии кнопки МК – передатчика, он отправляет один символ из массива massiv[6]={'v', 's', 'e', '_', 'o', 'k'} в МК – приёмник.

Код показан на рис. 26.

 

 

Рис.26 - Код МК - передатчика

 

5.1.2 Код программы МК – приёмника

 


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2026 год. (0.209 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал