Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Программирование на платформе Atmega 128

Автор:   •  Февраль 15, 2019  •  Лабораторная работа  •  606 Слов (3 Страниц)  •  377 Просмотры

Страница 1 из 3

МИНОБРНАУКИ РФ

Федеральное государственное бюджетное образовательное

 учреждение высшего образовании

“Ижевский государственный технический университет

 имени М.Т.Калашникова”

Кафедра «Конструирование  радиоэлектронной аппаратуры»            

Лабораторная работа №3

по дисциплине «Микроконтроллеры и микропроцессоры»

на тему «Программирование на платформе Atmega 128»

Выполнил: студент гр. Б05-071-1

Князев И.В.

Проверил: преподаватель

Данилов Е. О.

Ижевск, 2018

Цель: составить программу на платформе Atmega 128 и проверить работоспособность программы в программе Proteus.

Задача:

        Составить программу динамической подсветки, в результате которой на четырехразрядный четырнацетисегментный индикатор выведется слово «ВОДА».

Ход работы:

Составим схему включения индикатора к микроконтроллеру Atmega 128 в программе Proteus, представленный на рисунке 1.

[pic 1]

Рис. 1. Схема включения

Скетч программы представлен в приложении №1.

В самом начале программы прописываем директиву .include "m128def.inc", она необходима для  подключения списка команд для Atmega 128.

Вводим необходимые значения для вывода букв с помощью .equ, т.е. их кода. В .dseg (ОЗУ) резервируем 9 байт памяти для  загрузки кода слова «ВОДА».

Далее прописываем .cseg и начинаем работать с таблицей прерываний, в которой я разрешил и настроил таймер-счетчик 0 на переполнение (это необходимо для быстрого переключения ячеек индикатора). При срабатывании прерывания программа переходит на метку TIM0_OVF в которой и происходит динамическое переключение выводов.

При первом отсчете программа переходит на метку Reset. В данной метке я установила порты А, В и С на выход. Внес значения кодов с . equ, в ОЗУ и с помощью директивы .db записал в программную память значения для общих выводов.

Приложение №1:

;Подключаем заголовочный файл ATMega128

.include "m128def.inc"

; Присваиваем регистрам символические имена

.def temp = r16

.def sys = r17

.def try = r18

;код для буквы В

.equ chV=0b00111101

.equ chV1=0b00100011

;код для буквы О

.equ chO=0b00111111

.equ chO1=0b00000000

;код для буквы Д

.equ chD=0b10001111

.equ chD1=0b00001000

;код для буквы А

.equ chA=0b00110111

.equ chA1=0b01100010

; оперативка

.dseg

Visible:

.byte 8 ; в ОЗУ зараезервируем 9 байт

;основная программа

.cseg

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

.org $0000

rjmp Reset ; переход на метку Reset

.org $0002

reti

.org $0004

reti

.org $0006

reti

.org $0008

reti

.org $000A

reti

.org $000C

reti

.org $000E

reti

.org $0010

reti

.org $0012

reti

.org $0014

reti

.org $0016

reti

.org $0018

reti

.org $001A

reti

.org $001C

reti

.org $001E

reti

.org $0020 ; Адрес вектора таймера 0 по переполнении

jmp TIM0_OVF ;Переходим на TIM0_OVF

.org $0022

reti

.org $0024

reti

.org $0026

reti

.org $0028

reti

.org $002A

reti

.org $002C

reti

.org $002E

reti

.org $0030

reti

.org $0032

reti

.org $0034

reti

.org $0036

reti

.org $0038

reti

.org $003A

reti

.org $003C

reti

.org $003E

...

Скачать:   txt (7.2 Kb)   pdf (380 Kb)   docx (1 Mb)  
Продолжить читать еще 2 страниц(ы) »
Доступно только на Essays.club