ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 23.01.2025
Просмотров: 3703
Скачиваний: 8
СОДЕРЖАНИЕ
1. Структура и функционирование микроконтроллера aTmega128
Регистр управления делением частоты кварцевого генератора – xdiv
2. Интегрированная система программирования avr Studio v4.12
3.Описание лабораторного стенда лс-2.
Работа №1 микроконтроллер aTmega128: методы адресации, команды передачи данных и управления
Работа №2 микроконтроллер aTmega128: команды обработки данных
Работа №3 цифровые системы на базе микроконтроллерa aTmega128:
Регистр управления внешними прерываниями – eicra и eicrb
16-Разрядные таймеры/счетчики t/c1 и t/c3
Регистры сравнения а таймеров/счетчиков - ocRxA
Работа №6 цифровые системы на базе микроконтроллера aTmega128:
Передача данных - Передатчик usart.
Прием данных - Приемник usart.
Работа №7 цифровые системы на базе микроконтроллера aTmega128:
При ADLAR = 1:
|
Разряд |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
|
|
ADC9 |
ADC8 |
ADC7 |
ADC6 |
ADC5 |
ADC4 |
ADC3 |
ADC2 |
ADCH |
|
|
ADC1 |
ADC0 |
- |
- |
- |
- |
- |
- |
ADCL |
|
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
||
|
Чтение/запись |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
|
|
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
||
|
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
По завершении преобразования результат помещается в этих двух регистрах. При использовании дифференциального режима преобразования результат представляется в коде двоичного дополнения.
Левосторонний формат ADLAR=1 представления результата удобно использовать, если достаточно 8 разрядов. В этом случае 8-разрядный результат хранится в регистре ADCH и, следовательно, чтение регистра ADCL можно не выполнять. При правостороннем формате необходимо сначала считать ADCL, а затем ADCH.
ВЫПОЛНЕНИЕ РАБОТЫ
Изучить функционирование блока АЦП микроконтроллера ATmega128 и схему подключения входов АЦП в данном лабораторном стенде (см. рис. 8.1). Обратить внимание, что входное напряжение, подаваемое на АЦП имеет размах от 0В до 5В, а опорное напряжение равно 2,56В.
Рисунок 8.1 – Схема подключения переменного резистора к входу АЦП.
Запустить на персональном компьютере интегрированную систему программирования AVRStudio. Командой ProjectNew Project создать новый проект Lesson8. С использованием редактора текста создать демонстрационную программу:
.device ATmega128
.include "m128def.inc"
;** таблица векторов прерываний ****************************
.CSEG
.org $0000 ;начальный адpес пpогpаммы
rjmp Start ;пеpеход к началу пpогpаммы
.org $002A
rjmp ADC_end ;Преобразование АЦП завершено
;** Основная программа **************************************
Start:
ldi R16,High(RAMEND);инициализация стека
out SPH,R16
ldi R16,Low(RAMEND) ;
out SPL,R16 ;
;** настройка первого разряда индикатора для вывода результата **
in R16,DDRE
sbr R16,(1<<PE4) ;установка линии первого разряда на выход
out DDRE, R16 ;разрешение работы линии порта на выход
sbr R16,$FF ;установка всех линий сегментов на выход
out DDRC, R16 ;разрешение работы линии порта на выход
out PORTC,R16 ;выключение всех сегментов
;*****************************************************************
in R16,ADCSRA
sbr R16,(1<<ADEN)|(1<<ADIE)|(1<<ADPS2)|(1<<ADPS1)
out ADCSRA, R16 ;разрешение работы АЦП
in R16,ADMUX
sbr R16,(1<<ADLAR) ;уст. левостороннего формата результата,
out ADMUX, R16 ;нулевого канала и внешнего ИОН
sei ;разрешение всех прерываний
sbi ADCSRA,ADSC ;запуск первого преобразования
loop:
rjmp loop ;зацикливание программы до прихода прерывания
;***** Обработка прерывания от АЦП *******************************
ADC_end:
in R16,ADCH ;считывание результата преобразования
com R16 ;инверсия для правильного отображения
out PORTC,R16 ;вывод на сегменты
;на индикаторе будет отображаться двоичный код результата преобразования
sbi ADCSRA,ADSC ;запуск следующего преобразования
reti ;выход из прерывания
Эта программа демонстрирует настройку и обслуживание блока АЦП микроконтроллера ATmega128 для работы в режиме однократного преобразования по прерываниям с получением 8-ми битного результата и выводом ни первый разряд индикатора в двоичном виде.
Выполнить команду Project/Buildдля компиляции проекта.
Если компиляция прошла без ошибок загрузить полученную программу lesson8.hex в микроконтроллер по методике пункта 2.4. «ЗАПИСЬ ПРОГРАММЫ В МИКРОКОНТРОЛЛЕР», при получении сообщения об ошибке исправить ее и повторить пункт 3.
После запуска программы в микроконтроллере на индикаторе в первом разряде должен отобразиться результат преобразования АЦП в двоичном виде (см. табл. 8.3). Вращая ручку переменного резистора на стенде проконтролировать изменение показаний на индикаторе. Дать объяснение, почему показания изменяются не во всем диапазоне вращения ручки переменного резистора.
Таблица 8.3 – Соответствие сегментов индикатора битам в регистре результата ADCH.
|
Биты регистра ADCH |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
Сегменты индикатора |
a |
b |
c |
d |
e |
f |
g |
точка |
Задания
Написать аналогичную программу, измеряющую напряжение на переменном резисторе по прерываниям таймера 1 с цикличностью задаваемой преподавателем.
Написать программу, отображающую округленный до 8 разрядов результат измерения в шестнадцатеричном виде на двух разрядах индикатора в диапазоне значений от 00 до FF.
Написать программу, отображающую округленный до 8 разрядов результат измерения в вольтах в диапазоне от 0.00 до 2.55В.
Приложение 1.
Схема электрическая принипиальная. Часть 1.
Схема электрическая принципиальная. Часть 2.
Приложение 2.
Схема расположения элементов на печатной плате.