Смекни!
smekni.com

Розробка мікропроцесорної системи МПС управління та керування обєктом на базі одно кристального (стр. 3 из 3)

Для цього, по-перше, необхідно сконфігурувати регістри портів вводу-виводу на виконання операцій, що були зазначені для них, під час розробки принципової схеми. Конфігурування відбувається шляхом встановлення та скидання необхідних бітів у регістрах 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/