3.8 Система дискретного вводу-виводу

Системи дискретного вводу та виводу інформації являють собою системи прийому та видачі сигналів дискретної форми сигналу, тобто цифрові сигнали. Для підвищення точності сигналів та уникнення неоднозначності у інтерпретації даних необхідно ввести у склад обох систем гальванічні розв’язки сигналів.

У якості гальванічного елемента використано оптрон АОД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

Висновок

В данній курсовій работі була розроблена система управління та керування об’єктом на базі одно кристального RISK AVR-мікроконтролера ATMega1281V-8AU , що складається з:

-  Системи аналогового вводу інформації;

-  Системи аналогового виводу інформації;

-  Системи дискретного вводу інформації;

-  Системи дискретного виводу інформації;

-  Клавіатура;

-  Індикація;

-  Зовнішній ОЗП;

-  Інтерфейс зв’язку з ПЕОМ.


Список використаних джерел

1.  Евстифеев А.В. Микроконтроллеры AVR семейства Mega. Руководство пользователя. – М.: Издательский дом «Додэка-ХХІ», 2007. – 592с.: ил.

2.  Голубцов М.С., Кириченкова А.В. Микроконтроллеры AVR: от простого к сложному. Изд.2-е, испр. и доп. – М.: СОЛОН-Пресс, 2004. – 304с.

3.  Трамперт В. Измерение, управление и регулирование с помощью AVR микроконтроллеров.: Пер. с нем. – К.: «МК-Пресс», 2006. – 208с.

4.  Микропроцессоры: В 3 кн. Кн. 2. Средства сопряжения. Контролирующие и информационно-управляющие системы: Учеб. для втузов/В.Д. Вернер, Н.В. Воробьев, А.В. Горячев и др.; Под. ред. Л.Н. Преснухина. – М.: Высш. шк., 1986. -383 с.: ил.

5.  http://atmel.ru/Articles/Atmel17.htm

6.  http://tehdoka.ru/BP/mst.php

7.  http://www.gaw.ru/html.cgi/txt/interface/rs232/


Информация о работе «Розробка мікропроцесорної системи управління та керування об'єктом на базі RISK AVR-мікроконтролера ATMega1281V-8AU»
Раздел: Коммуникации и связь
Количество знаков с пробелами: 24003
Количество таблиц: 6
Количество изображений: 2

0 комментариев


Наверх