ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 23.01.2025

Просмотров: 3703

Скачиваний: 8

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Оглавление

Введение

1. Структура и функционирование микроконтроллера aTmega128

Указатель стека – sp.

Регистр управления делением частоты кварцевого генератора – xdiv

2. Интегрированная система программирования avr Studio v4.12

2.1. Создание проекта.

2.2. Компиляция проекта.

3.Описание лабораторного стенда лс-2.

Работа №1 микроконтроллер aTmega128: методы адресации, команды передачи данных и управления

Введение

Команды передачи данных приведены в Табл.1.1. Из таблицы видно, что набор этих команд представляет собой сочетание восьми операций с различными методами адресации.

Из табл.1.1 и табл.1.2 видно, что команды пересылки данных и команды переходов значения флагов регистра sreg не изменяют.

Работа №2 микроконтроллер aTmega128: команды обработки данных

Введение

Задания

Работа №3 цифровые системы на базе микроконтроллерa aTmega128:

Введение

Регистр управления внешними прерываниями – eicra и eicrb

Выполнение основного задания

Задания

Работа №4 цифровые системы на базе микроконтроллера aTmega128: работа с внешними устройствами через параллельные порты ввода вывода – работа с клавиатурой и светодиодным индикатором

Введение

Выполнение основного задания

Задания

Работа №5

16-Разрядные таймеры/счетчики t/c1 и t/c3

Регистры сравнения а таймеров/счетчиков - ocRxA

Выполнение основного задания

Задания

Работа №6 цифровые системы на базе микроконтроллера aTmega128:

Введение

Универсальный синхронный и асинхронный приемопередатчик usart предназначен для организации последовательной связи.

Инициализация usart.

Передача данных - Передатчик usart.

Прием данных - Приемник usart.

Описание регистров usart.

Задания

Работа №7 цифровые системы на базе микроконтроллера aTmega128:

Аналоговый компаратор.

Задания

Задания

Приложение 1.

Приложение 2.

При 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.

ВЫПОЛНЕНИЕ РАБОТЫ

  1. Изучить функционирование блока АЦП микроконтроллера ATmega128 и схему подключения входов АЦП в данном лабораторном стенде (см. рис. 8.1). Обратить внимание, что входное напряжение, подаваемое на АЦП имеет размах от 0В до 5В, а опорное напряжение равно 2,56В.

Рисунок 8.1 – Схема подключения переменного резистора к входу АЦП.

  1. Запустить на персональном компьютере интегрированную систему программирования AVRStudio. Командой ProjectNew 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-ми битного результата и выводом ни первый разряд индикатора в двоичном виде.

  1. Выполнить команду Project/Buildдля компиляции проекта.

  2. Если компиляция прошла без ошибок загрузить полученную программу lesson8.hex в микроконтроллер по методике пункта 2.4. «ЗАПИСЬ ПРОГРАММЫ В МИКРОКОНТРОЛЛЕР», при получении сообщения об ошибке исправить ее и повторить пункт 3.

  3. После запуска программы в микроконтроллере на индикаторе в первом разряде должен отобразиться результат преобразования АЦП в двоичном виде (см. табл. 8.3). Вращая ручку переменного резистора на стенде проконтролировать изменение показаний на индикаторе. Дать объяснение, почему показания изменяются не во всем диапазоне вращения ручки переменного резистора.

Таблица 8.3 – Соответствие сегментов индикатора битам в регистре результата ADCH.

Биты регистра ADCH

0

1

2

3

4

5

6

7

Сегменты индикатора

a

b

c

d

e

f

g

точка


Задания

  1. Написать аналогичную программу, измеряющую напряжение на переменном резисторе по прерываниям таймера 1 с цикличностью задаваемой преподавателем.

  2. Написать программу, отображающую округленный до 8 разрядов результат измерения в шестнадцатеричном виде на двух разрядах индикатора в диапазоне значений от 00 до FF.

  3. Написать программу, отображающую округленный до 8 разрядов результат измерения в вольтах в диапазоне от 0.00 до 2.55В.

Приложение 1.

Схема электрическая принипиальная. Часть 1.

Схема электрическая принципиальная. Часть 2.

Приложение 2.

Схема расположения элементов на печатной плате.

88