рефераты рефераты
Главная страница > Курсовая работа: Розробка мікропроцесорної системи управління та керування об'єктом на базі RISK AVR-мікроконтролера ATMega1281V-8AU  
Курсовая работа: Розробка мікропроцесорної системи управління та керування об'єктом на базі RISK AVR-мікроконтролера ATMega1281V-8AU
Главная страница
Банковское дело
Безопасность жизнедеятельности
Биология
Биржевое дело
Ботаника и сельское хоз-во
Бухгалтерский учет и аудит
География экономическая география
Геодезия
Геология
Госслужба
Гражданский процесс
Гражданское право
Иностранные языки лингвистика
Искусство
Историческая личность
История
История государства и права
История отечественного государства и права
История политичиских учений
История техники
История экономических учений
Биографии
Биология и химия
Издательское дело и полиграфия
Исторические личности
Краткое содержание произведений
Новейшая история политология
Остальные рефераты
Промышленность производство
психология педагогика
Коммуникации связь цифровые приборы и радиоэлектроника
Краеведение и этнография
Кулинария и продукты питания
Культура и искусство
Литература
Маркетинг реклама и торговля
Математика
Медицина
Реклама
Физика
Финансы
Химия
Экономическая теория
Юриспруденция
Юридическая наука
Компьютерные науки
Финансовые науки
Управленческие науки
Информатика программирование
Экономика
Архитектура
Банковское дело
Биржевое дело
Бухгалтерский учет и аудит
Валютные отношения
География
Кредитование
Инвестиции
Информатика
Кибернетика
Косметология
Наука и техника
Маркетинг
Культура и искусство
Менеджмент
Металлургия
Налогообложение
Предпринимательство
Радиоэлектроника
Страхование
Строительство
Схемотехника
Таможенная система
Сочинения по литературе и русскому языку
Теория организация
Теплотехника
Туризм
Управление
Форма поиска
Авторизация




 
Статистика
рефераты
Последние новости

Курсовая работа: Розробка мікропроцесорної системи управління та керування об'єктом на базі RISK AVR-мікроконтролера ATMega1281V-8AU

У якості гальванічного елемента використано оптрон АОД130, що являє собою пару: фотодіод та світло діод, що розташовані в одному чотирьох контактному корпусі.


4. Розробка програмного забезпечення

Згідно завдання на курсову роботу необхідно розробити програму ініціалізації МК для роботи із усіма пристроями, що входять до складу системи.

Для цього, по-перше, необхідно сконфігурувати регістри портів вводу-виводу на виконання операцій, що були зазначені для них, під час розробки принципової схеми. Конфігурування відбувається шляхом встановлення та скидання необхідних бітів у регістрах PORTх (рядки 25-38) та DDRх (рядки 39-50), а також читанням стану виводів портів через регістр PINx.

По-друге, сконфігорувати регістри вводу-виводу, що відображають внутрішнє налаштування периферійних пристроїв МК, а саме АЦП, таймера-лічильника Т1, зовнішнього ОЗП, модуля USART.

Для конфігурування АЦП необхідно встановити регістри ADCSRA та ADMUX (рядки 4-7, 52-57).

Для конфігурування таймера-лічильника Т1, щоб він працював як ШІМ, необхідно сконфігурувати регістри TCCR1A, TCCR1B, TCCR1C (рядки 13-15, 73-87).

Для конфігурації роботи із зовнішнім ОЗП використовуються регістри XMCRA, XMCRB (рядки 8, 9, 58-63).

Для конфігурування модуля USART використовуються UCSR0A, UCSR0B, UCSR0C (рядки 10-12, 64-72).

Лістинг програми

Мітка Команда Операнди Примітка
1 .nolist
2 .include "С:\Kursovoy\PMS_Kursovoy \"m1281def.inc"
3 .list
;--Содержимое регистров
4 .equ ADCRS = 0b10000101 ;ADEN=1 - АЦП включ., ADSC=0, ;ADATE=0 (одиночный режим), ADIF=0, ;ADEN=0, ADFPS[2..0]=101 (делитель ;частоты на 32) --> рабочая частота ;АЦП=2МГц : 32 = 62,5кГц
5 .equ ADMX0 = 0b00000000 ;несимметричный вход ADC0, внешнее ;опорное напряжение
Мітка Команда Операнди Примітка
6 .equ ADMX6 = 0b00000110 ;несимметричный вход ADC6, внешнее ;опорное напряжение
7 .equ ADMX3_1 = 0b00010011 ;симметричный входы ADC3-1, внешнее ;опорное напряжение
8 .equ XMCR_A = 0b10000001 ;SRE=1 (разрешена работа с вн. ОЗУ), ;SRL[2..0]=0 (один сектор), ;SRW[11..00]=0001 (один такт ожидания)
9 .equ XMCR_B = 0b00000100 ;XMBK=0, биты 6-3 зарезервир ;XMM[2..0]=100 (выводы РС[7..4] могут ;свободно использоваться как порты ВВ)
10 .equ UCSRA = 0b00100000 ; регистр А управления USART
11 .equ UCSRB = 0b00000010 ; регистр B управления USART
12 .equ UCSRC = 0b00100110 ;UMSEL[01..00]=00 (асинхр. режим ;работы), UPM[01..00]=10 (проверка на ;четность), UCSZ[01..00 (8-ми битный ;формат посылок)]
13 .equ TCCRA = 0b00110010 ;COM1A[1..0]=00 отключен вывод ;OCR1A, COM1B[1..0]=11 OCR1B при ;прямом счете на выходе равен 1, при ;инверстном счете - 0, COM1C[1..0]=00 ;отключен вывод OCR1C, ;WGM[11..10]=10 определяет 10 режим ;работы
14 .equ TCCRB = 0b00010010 ;WGM[13..12]=10 определяет 10 режим ;работы, CS[12..10]=010 источник ;тактового сигнала (clk_IO/8)
15 .equ TCCRC = 0b00000000 ; регистр управления Т1
;--Рабочие регистры
16 .def t0 = r16 ; регистру r16 присвоить имя t0
17 .def t1 = r17 ; регистру r176 присвоить имя t10
;--Начало
18 .cseg ; начало сегмента кода
19 .org 0
20 rjmp Initial ; переход к подпрограмме Initial
Мітка Команда Операнди Примітка
;--Инициализация МК
21 Initial: ldi t1, low(RAMEND) ;инициализация
22 out SPL, t1 ;младшего и старшего байтов
23 ldi t1, high(RAMEND) ;указателя
24 out SPH, t1 ;стека

;--Конфигурация портов ввода-вывода

;--Включаем подтягивающие резисторы и задаем начальное значение выводов

25 ldi t0, 0x00 ; для порта А не требуются
26 out PORTA, t0 ; подтягивающие резисторы
27 ldi t0, 0b00111111 ; для выводов PB5-0 включить
28 out PORTB,t0 ; подтягивающие резисторы
29 ldi t0, 0b11110000 ; для выводов PС7-4 включить
30 out PORTC,t0 ; подтягивающие резисторы
31 ldi t0, 0b11000000 ; для выводов PD7, PD6 включить
32 out PORTD,t0 ; подтягивающие резисторы
33 ldi t0, 0b11111101 ; для всех выводов портаЕ, кроме РF1,
Мітка Команда Операнди Примітка
34 out PORTЕ,t0 ;включить подтягивющие резисторы
35 ldi t0, 0xFF ; для всех выводов порта F
36 out PORTF,t0 ;включить подтягивющие резисторы
37 ldi t0, 0b11100000 ; для выводов порта PG7-5
38 out PORTG,t0 ;включить подтягивющие резисторы
;--Конфигцрируем выводы портов (режим работы)
39 ldi t1, 0xFF ;выводы РА
40 out DDRA, t1 ;определить как выходы
41 ldi t1, (1<<DDB7)|(1<<DDB6) ;выводы РВ7, РВ6 определить как
42 out DDRB,t1 ;выходы, остальные - как входы
43 ldi

t1, (1<<DDC3)|(1<<DDC2)|

(1<<DDC1)|(1<<DDC0)

; выводы РС3-0 определить как выходы
44 out DDRC,t1 ; остальные – как входы
45 ldi

t1, (1<<DDD5)|(1<<DDD4)|

(1<<DDD3)|(1<<DDD2)|

(1<<DDD1)|(1<<DDD0)

; выводы PD6, PD7 определить как

; входы

46 out DDRD,t1 ;остальные выводы – как выходы
47 ldi t1, (1<<DDE1) ; вывод РЕ1 установить как выход,
48 out DDRE,t1 ;остальные как вход
49 ldi

t1, (1<<DDG4)|(1<<DDG3)|

(1<<DDG2)|(1<<DDG1)|

(1<<DDG0)

;выводы PG7-5 установить как входы
50 out DDRG,t1 ;остальные как выходы
51 nop
;--Инициализация АЦП
52 ldi t1, ADMX0 ;записать в регистр ADMUX значение
53 ldi XL, ADMUX ;соответствующее необходимому режиму
54 st X, t1 ;работы мультиплексора АЦП
55 ldi t1, ADCRS ;записать в регистр ADCSRA значение
56 ldi XL, ADCSRA ;соответствующее необходимому режиму
57 st X,t1 ;работы АЦП
Мітка Команда Операнди Примітка
;--Инициализация работы с внешним ОЗУ
58 ldi t1, XMCR_A ;сконфигурировать регистр А
59 ldi XL, XMCRA ;управления
60 st X, t1 ; внешним ОЗУ
61 ldi t1, XMCR_B ;сконфигурировать регистр В
62 ldi XL, XMCRB ;управления
63 st X, t1 ; внешним ОЗУ
;--Порт USART
64 ldi t1, UCSRA ;сконфигурировать регистр А
65 ldi XL, UCSR0A ;управления
66 st X, t1 ; модулем USART
67 ldi t1, UCSRB ;сконфигурировать регистр B
68 ldi XL, UCSR0B ;управления
69 st X, t1 ; модулем USART
70 ldi t1, UCSRC ;сконфигурировать регистр C
71 ldi XL, UCSR0C ;управления
72 st X, t1 ; модулем USART
Мітка Команда Операнди Примітка
;--Инициализация ШИМ
73 ldi t1, TCCRA ;сконфигурировать регистр А
74 ldi XL, TCCR1A ;управления
75 st X, t1 ;таймером-счетчиком Т1
76 ldi t1, TCCRB ;сконфигурировать регистр В
77 ldi XL, TCCR1B ;управления
78 st X, t1 ;таймером-счетчиком Т1
79 ldi t1, TCCRC ;сконфигурировать регистр С
80 ldi XL, TCCR1C ;управления
81 st X, t1 ;таймером-счетчиком Т1
82 ldi t0, 0x07 ; установка коеффициента
83 ldi XL, ICR1H ; пересчета ТОР
84 st X, t0 ; равного
85 ldi t0, 0xFF ; ТОР=2^(N-1), где
86 ldi XL, ICR1L ; N=11, т.е.
87 st X, t0 ; ТОР=2047
;--Инициализация ЖКИ
88 initLCD_1: ldi t0,$20 ;4-битный интерфейс, 1-строка, шрифт-5х7 точек
89 initLCD_2: ldi t0,$0C ;включить дисплей, выключить курсор
90 initLCD_3: ldi t0,$01 ;очистить дисплей и установить курсор в начальную позицию
91 nop
92 ret

Страницы: 1, 2, 3, 4, 5

рефераты
Новости