Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив2 / курсач docx283 / MK_Kursach.docx
Скачиваний:
56
Добавлен:
07.08.2013
Размер:
111.19 Кб
Скачать

Листинг по:

.INCLUDE "2313def.inc"

;Определение сегмента кода

.CSEG

.ORG 0x0000

;Таблица векторов прерываний

rjmp Reset

rjmp INT0_interrupt

rjmp INT1_interrupt

rjmp T1CAPT_interrupt

rjmp T1COMP_interrupt

rjmp T1OVF_interrupt

rjmp T0OVF_interrupt

rjmp UART_RX_interrupt

rjmp UART_UDRE_interrupt

rjmp UART_TX_interrupt

rjmp ANCOMP_interrupt

Reset: ;Прерывание по сбросу микроконтроллера

;Инициализация периферии МК

;Очистка необходимых временных регистров

clr r16

clr r17

clr r18

clr r25

clr r28

clr r29

clr r30

clr r31

;Настройка указателя стека

ldi r16, 0x7F

out SPL, r16

;Инициализация порта B

ldi r31, 0x00

out DDRB, r31

;Инициализация порта D

ldi r31, 0x40

out DDRD, r31

;Разрешение прерывания от функции выходного сравнения для таймера/счетчика 1

ldi r17, 0x40

out TIMSK, r17

;Инициализация регистра выходного сравнения значением, снятым с порта B

in r31, PORTB

sub r31, 0x0C

ldi r25, 0

out OCR1AH, r25

out OCR1AL, r31

;Включение таймера/счетчика 1

;Установка работы таймера в режиме 8-ми разрядного ШИМ

ldi r18, 0x01

out TCCR1A, r17

;Выбор делителя системной частоты 1

ldi r17, 0x01

out TCCR1B, r17

;Включение входа PD5

sbi PORTD, 6

;Глобальное разрешение прерываний

sei

;Программа

cycle:

rjmp cycle ;Бесконечный цикл

;Обработчики прерываний

T1COMP_interrupt: ;прерывание по совпадению таймера/счетчика 1

in r30, PORTD ;Проверка, включен ли

sbrc r30, 6 ;выход PD6

cbi PORTD, 6 ;Если да, то сбрасываем

com r30

sbrc r30, 6

sbi PORTD, 6 ;Если нет, то устанавливаем

ldi r17, 0xFF ;Запоминаем период ШИМ-сигнала

ldi r18, 29

adc r17, r18

ldi r18, 1

in r28, PORTB ;Считываем новые данные с порта B

sub r28, 0x0C

sbc r17, r28

mov r28, r17

out OCR1AL, r28 ;Заносим в регистр сравнения

;новое значение длины импульса

ldi r31, 0x00 ;Сбрасываем счетчик Т/С 1

out TCNT1L, r31

reti ;Возврат из прерывания

T1OVF_interrupt:

reti

T0OVF_interrupt:

reti

UART_RX_interrupt:

reti

UART_UDRE_interrupt:

reti

UART_TX_interrupt:

reti

ANCOMP_interrupt:

reti

INT0_interrupt:

reti

INT1_interrupt:

reti

T1CAPT_interrupt:

reti

Заключение

В данном проекте была разработана схема устройства для преобразования параллельного 8-ми разрядного кода в длительность ШИМ-сигнала. Все элементы в схеме подобраны правильно, поэтому данное устройство удовлетворяет поставленным требованиям. Программное обеспечение написано с помощью команд контроллера AT90S2313. Программное обеспечение проверенно и отлажено в средеAVRStudio4.0.

Список литературы

  • Хоровиц П., Хилл У., Искусство схемотехники: Пер. с англ. – Изд. 6-е. – М.: Мир, 2003 – 704 с.

  • Конспекты лекций по дисциплинам «Схемотехника» и «Микроконтроллеры».

  • Баранов В.Н., Применение микроконтроллеров AVR: схемы, алгоритмы, программы – М.: издательский дом «Додэка-XXI», 2004 – 288 с.

  • Квеглис С.В., Микроконтроллеры AVR: Метод. пособие. – Новосибирск: Изд-во НГТУ, 2003.

  • www.analog.com

- 1-

Соседние файлы в папке курсач docx283