Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Розробка програмного забеспеченняСодержание книги
Поиск на нашем сайте Общая структура программы Опис програми (реалізованій на arduino);
Розробка протоколів зв'язку пк з ПЕОМ. Згідно з завданням пристрій повинен керувати за допомогою по інтерфейсу RS-232. Для цього потрібно розробити протокол, згідно з яким будуть передаватися команди. Для зручної обробки команди слід скласти відповідно до наступної послідовності. 1) «$» - знак позначає початок передачі команди. Займає 1 байт 2) Абревіатура переданої команди з 3-х букв. Вона буде відрізняти команду від інших. Займає 3 байта. 3) «,» кома як роздільник.. 4) Дані які передаються в команді. 5) Знак «*» означає, що наступна числова комбінація - контрольна сума пакета. 6) Контрольна сума пакета. Займає 1 байт. 7) Ознаки закінчення передачі пакета - новий рядок (0x0D) і повернення каретки (0x0A).
ПК-ПЕОМ Команда отримання значення аналогового сигналу каналу певного в команді $ AIN, 0 - 4, 0 -1024 * КС <0x0d> <0x0a> Значення датчика температури можна отримає цієї ж командою позначивши 8-й канал. Команда отримання значення цифрового сигналу каналу певного в команді. $ DIN, 0 - 4,0 / 1 * КС <0 x0d> <0 x0a> Команда загального стану дискретних входів. $ DIN, 0-255 * КС <0x0d> <0x0a> При виникненні помилки буде надходити така команда, причому буде виводитися номер помилки. $ ERR, (№ошібкі) * КС <0x0d> <0x0a> Команда, яка символізує успішність виконання я команди. $ ОК!, * КС <0x0d> <0x0a>
ПЕОМ-ПК Команда запиту значення аналогового сигналу каналу певного в команді $ AIN, (№канала) * КС <0x0d> <0x0a> Команда запиту значення цифрового сигналу каналу певного в команді. $ DIN, (№канала) * КС <0x0d> <0x0a> Запит загального стану дискретних входів $ DIN, * КС <0x0d> <0x0a> $ AUT, (№канала), (значення) * КС <0x0d> <0x0a> $ DOU, (№канала), 0/1 * КС <0x0d> <0x0a> $ DOU, 0-255 * КС <0x0d> <0x0a> $ OK?, * КС <0x0d> <0x0a>
КС - контрольна сума всіх значень до символу «*» Заключення В результаті виконання курсового проекту - розробка мікроконтролера (МК) управління зовнішнім об'єктом на базі комплекту БІС мікропроцесора сімейства AVR виробництва фірми "ATMEL", були закріплені навички роботи з мікропроцесорами. В даний час дані мікропроцесори знайшли широке застосування мікропроцесорних пристроях і системах.
Список используемой литературы
Сташин В.В., Урусов А.В., Мологонцева О.Ф. Проектирование цифровых устройств на однокристальных микроконтроллерах. М.: Энергоатомиздат, 1990. 224 с. Однокристальные микроЭВМ/ А.В.Боборыкин, Г.П.Липовецкий, Г.В.Литвинский и др. М.: МИКАП, 1994. 400 с. Ваша первая программа для микроконтроллера Intel 8051: Методические указания к лабораторной работе №1 по курсу “Микропроцессоры и вычислительные устройства”/ Добряк В.А. Екатеринбург: УГТУ, 1999. 32 с. Микропроцессоры. В 3-х кн. Кн. 1. Архитектура и проектирование микро-ЭВМ. Организация вычислительных процессов: Учебник для втузов/ П.В.Нестеров, В.Ф.Шаньгин, В.Л.Горбунов и др.; Под ред. Л.Н.Преснухина. М.: Высшая школа, 1986. 495 с. А.В. Евстифеев. Микроконтроллеры AVR семейства классик фирмы «АTMEL»Додека 21. 2002 -208 стр.
Приложение №1 Текст программы. /* * GccApplication4.c * * Created: 17.06.2016 7:39:31 * Author: dmitry */
#include <avr/io.h> #define F_CPU 1000000UL #include <avr/io.h> #include <util/delay.h> #include <stdio.h>
// Установка лог. "1" на лінії E #define LCD_E_SET PORTA | = 0x02 / * Установка лог. "0" на лінії E * / #define LCD_E_CLR PORTA & = 0xFD / * Установка лог. "1" на лінії RS * / #define LCD_RS_SET PORTA | = 0x01 / * Установка лог. "0" на лінії RS * / #define LCD_RS_CLR PORTA & = 0xFE
/ * Макрос, який вказує функції, що передаються команди * / #define LCD_COMMAND 0 / * Макрос, який вказує функції, що передаються дані * / #define LCD_DATA 1
#define lcd_putc(x) lcd_putbyte(x, LCD_DATA)
unsigned int ACP; ISR(TIMER0_OVF_vect){
PORTD&=~(1<<0); } ISR(TIMER0_COMP_vect){
PORTD|=(1<<0); } ISR(ADC_vect){ ACP=ADCW; ADCSRA|=(1<<ADSC); } int main(void) { DDRD=0b11111111; OCR0=150; TIMSK|(1<<1); TIMSK|(1<<0); asm("sei"); ////////////////////// // НАСТРОЙКА АЦП // //////////////////// DDRB&=~(1<<0); ADCSRA|=(1<<ADEN)|(1<<ADIE)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0); ADMUX|=(1<<REFS0)|(1<<MUX3)|(1<<MUX2)|(1<<MUX1)|(1<<MUX0); ADCSRA|=(1<<ADSC);
init_port();
// ініціалізація жк дисплея lcd_init();
char buf[10]; sprintf(buf,"%d","Done At Home");
lcd_gotoxy(0,0); lcd_putstring("helloq");
while(1){}; } while(1) { asm("nop"); } }
/* ініціалізація портів підключення до жк */ void init_port() { PORTD=0x00; DDRD=0xFF; } * Функція передачі символ в жк * / void lcd_putnibble(char t) { t<<=4; LCD_E_SET; _delay_us(50); PORTD&=0x0F; PORTD|=t; LCD_E_CLR; _delay_us(50); }
/ * Функція передачі байта в ки. char c - сам байт char rs - змінна, яка вказує що передається: rs = 0 - команда (встановлюється лінія RS) rs = 1 - дані (скидається лінія RS) * / void lcd_putbyte(char c, char rs) { char highc=0; highc=c>>4; if (rs==LCD_COMMAND) LCD_RS_CLR; else LCD_RS_SET; lcd_putnibble(highc); lcd_putnibble(c); }
void lcd_putchar(char c) { char highc=0; highc=c>>4; LCD_RS_SET; lcd_putnibble(highc); lcd_putnibble(c); }
/* функция инициализации работы жки в 4-битном режиме, без курсора */
void lcd_init() { _delay_ms(15); lcd_putnibble(0b00000011); _delay_ms(4); lcd_putnibble(0b00000011); _delay_us(100); lcd_putnibble(0b00000011); _delay_ms(1); lcd_putnibble(0b00000010); _delay_ms(1); lcd_putbyte(0x28, LCD_COMMAND); _delay_ms(1); lcd_putbyte(0x0C, LCD_COMMAND); _delay_ms(1); lcd_putbyte(0x06, LCD_COMMAND); _delay_ms(1); }
/ * Функція очищення дисплея і повернення курсору в початкову позицію * / void lcd_clear() { lcd_putbyte(0x01, LCD_COMMAND); _delay_us(1500); }
/ * Функція переміщення курсора в задану позицію col - номер знакоместа по горизонтальній осі (від 0 до 15) row - номер рядка (0 або 1) * / void lcd_gotoxy(char col, char row) { char adr; adr=0x40*row+col; adr|=0x80; lcd_putbyte(adr, LCD_COMMAND); }
void lcd_putstring (char stroka[]) { char i; for(i=0;stroka[i]!='\0';i++) lcd_putchar(stroka[i]); }
Повна схема дана по завданю
8 аналогових датчиків підключених до каналів АЦП, ЖК екран 4бітного звязку
Гальванічна розвязка дискертих входів(цифровий датчик) та виходів(нагрузка представлена кулером)
Схема пониження напруги джерела живлення МК
|
||||||||||
|
Последнее изменение этой страницы: 2016-08-01; просмотров: 220; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.119 (0.006 с.) |