Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь 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; просмотров: 161; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.14.254.103 (0.008 с.) |