Для конфігурації роботи із зовнішнім ОЗП використовуються регістри 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
ADMX0 = 0b00000000
;несимметричный вход ADC0, внешнее ;опорное напряжение
6
ADMX6 = 0b00000110
;несимметричный вход ADC6, внешнее ;опорное напряжение
7
ADMX3_1 = 0b00010011
;симметричный входы ADC3-1, внешнее ;опорное напряжение
8
XMCR_A = 0b10000001
;SRE=1 (разрешена работа с вн. ОЗУ), ;SRL[2..0]=0 (один сектор), ;SRW[11..00]=0001 (один такт ожидания)
9
XMCR_B = 0b00000100
;XMBK=0, биты 6-3 зарезервир ;XMM[2..0]=100 (выводы РС[7..4] могут ;свободно использоваться как порты ВВ)
10
UCSRA = 0b00100000
; регистр А управления USART
11
UCSRB = 0b00000010
; регистр B управления USART
12
UCSRC = 0b00100110
;UMSEL[01..00]=00 (асинхр. режим ;работы), UPM[01..00]=10 (проверка на ;четность), UCSZ[01..00 (8-ми битный ;формат посылок)]
13
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
TCCRB = 0b00010010
;WGM[13..12]=10 определяет 10 режим ;работы, CS[12..10]=010 источник ;тактового сигнала (clk_IO/8)
15
TCCRC = 0b00000000
; регистр управления Т1
;--Рабочие регистры
16
.def
t0 = r16
; регистру r16 присвоить имя t0
17
t1 = r17
; регистру r176 присвоить имя t10
;--Начало
18
.cseg
; начало сегмента кода
19
.org 0
20
rjmp
Initial
; переход к подпрограмме Initial
;--Инициализация МК
21
Initial:
ldi
t1, low(RAMEND)
;инициализация
22
out
SPL, t1
;младшего и старшего байтов
23
t1, high(RAMEND)
;указателя
24
SPH, t1
;стека
;--Конфигурация портов ввода-вывода
;--Включаем подтягивающие резисторы и задаем начальное значение выводов
25
t0, 0x00
; для порта А не требуются
26
PORTA, t0
; подтягивающие резисторы
27
t0, 0b00111111
; для выводов PB5-0 включить
28
PORTB,t0
29
t0, 0b11110000
; для выводов PС7-4 включить
30
PORTC,t0
31
t0, 0b11000000
; для выводов PD7, PD6 включить
32
PORTD,t0
33
t0, 0b11111101
; для всех выводов портаЕ, кроме РF1,
34
PORTЕ,t0
;включить подтягивющие резисторы
35
t0, 0xFF
; для всех выводов порта F
36
PORTF,t0
37
t0, 0b11100000
; для выводов порта PG7-5
38
PORTG,t0
;--Конфигцрируем выводы портов (режим работы)
39
t1, 0xFF
;выводы РА
40
DDRA, t1
;определить как выходы
41
t1, (1<<DDB7)|(1<<DDB6)
;выводы РВ7, РВ6 определить как
42
DDRB,t1
;выходы, остальные - как входы
43
t1, (1<<DDC3)|(1<<DDC2)|
(1<<DDC1)|(1<<DDC0)
; выводы РС3-0 определить как выходы
44
DDRC,t1
; остальные – как входы
45
t1, (1<<DDD5)|(1<<DDD4)|
(1<<DDD3)|(1<<DDD2)|
(1<<DDD1)|(1<<DDD0)
; выводы PD6, PD7 определить как
; входы
46
DDRD,t1
;остальные выводы – как выходы
47
t1, (1<<DDE1)
; вывод РЕ1 установить как выход,
48
DDRE,t1
;остальные как вход
49
t1, (1<<DDG4)|(1<<DDG3)|
(1<<DDG2)|(1<<DDG1)|
(1<<DDG0)
;выводы PG7-5 установить как входы
50
DDRG,t1
;остальные как выходы
51
nop
;--Инициализация АЦП
52
t1, ADMX0
;записать в регистр ADMUX значение
53
XL, ADMUX
;соответствующее необходимому режиму
54
st
X, t1
;работы мультиплексора АЦП
55
t1, ADCRS
;записать в регистр ADCSRA значение
56
XL, ADCSRA
57
X,t1
;работы АЦП
;--Инициализация работы с внешним ОЗУ
58
t1, XMCR_A
;сконфигурировать регистр А
59
XL, XMCRA
;управления
60
; внешним ОЗУ
61
t1, XMCR_B
;сконфигурировать регистр В
62
XL, XMCRB
63
;--Порт USART
64
t1, UCSRA
65
XL, UCSR0A
66
; модулем USART
67
t1, UCSRB
;сконфигурировать регистр B
68
XL, UCSR0B
69
70
t1, UCSRC
;сконфигурировать регистр C
71
XL, UCSR0C
72
;--Инициализация ШИМ
73
t1, TCCRA
74
XL, TCCR1A
75
;таймером-счетчиком Т1
76
t1, TCCRB
77
XL, TCCR1B
78
79
t1, TCCRC
;сконфигурировать регистр С
80
XL, TCCR1C
81
82
t0, 0x07
; установка коеффициента
83
XL, ICR1H
; пересчета ТОР
84
X, t0
; равного
85
; ТОР=2^(N-1), где
86
XL, ICR1L
; N=11, т.е.
87
; ТОР=2047
;--Инициализация ЖКИ
88
initLCD_1:
t0,$20
;4-битный интерфейс, 1-строка, шрифт-5х7 точек
89
initLCD_2:
t0,$0C
;включить дисплей, выключить курсор
90
initLCD_3:
t0,$01
;очистить дисплей и установить курсор в начальную позицию
91
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://tehdoka.ru/BP/mst.php
7. http://www.gaw.ru/html.cgi/txt/interface/rs232/
Страницы: 1, 2, 3