Описание ресурсов МК РIC16F876
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Реферат

 

Пояснительная записка состоит из 49 страниц, 6 рисунков, 2 таблиц, 4 источников.

Микроконтроллер, МЕЛОДИЯ, Датчик, СВЕТОДИОД.

Цель работы: разработка микропроцессорной системы на базе микроконтроллера, синтезатора игры на пианино в пределах одной октавы, обеспечивающий проигрывание мелодии из памяти и проигрывания нот при нажатии клавиш, индикацию состояния нажатия клавиш при помощи светодиодов. Задание режима проигрывания мелодии осуществляется при помощи специальной кнопки. Проигрывание мелодии отображается специальным светодиодом.

Содержание работы: в работе выполнено построение структурной схемы, построение функциональной схемы, сформирован алгоритм работы системы, выбор элементной базы, оптимальной для реализации поставленных задач по диапазону характеристик, разработана программа, разработана принципиальная схема устройства.



Содержание

 

Введение

1. Описание объекта

2. Функциональная спецификация

3. Описание структуры системы

4. Описание ресурсов МК РIC16F876

4.1.Набор регистров РIC

4.2.Регистры общего назначения

4.3. Специальные регистры W, INTCON, OРTION

4.4. Сторожевой таймер WDT

4.5. Тактовый генератор

4.6. Схема сброса

4.7. Система команд микроконтроллера РIC16F876

4.8. Ассемблирование

4.9. Программирование микроконтроллера

5.Разработка алгоритма работы устройства

6. Описание функциональных узлов МПС и алгоритма их взаимодействия

7. Описание выбора элементной базы и работы принципиальной схемы

Заключение

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

Приложение А. Листинг программы и объектный файл

Приложение Б. Схема электрическая принципиальная



Введение

 

Современную микроэлектронику трудно представить без такой важной составляющей, как микроконтроллеры. Микроконтроллеры незаметно завоевали весь мир. Микроконтроллерные технологии очень эффективны. Одно и то же устройство, которое раньше собиралось на традиционных элементах, будучи собрано с применением микроконтроллеров, становится проще, не требует регулировки и меньше по размерам. С применением микроконтроллеров появляются практически безграничные возможности по добавлению новых потребительских функций и возможностей к уже существующим устройствам. Для этого достаточно просто изменить программу.

Однокристальные (однокорпусные) микроконтроллеры представляют собой приборы, конструктивно выполненные в виде БИС и включающие в себя следующие составные части: микропроцессор, память программ и память данных, а также программируемые интерфейсные схемы для связи с внешней средой.

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

Появление недорогих микроконтроллеров привело к созданию раздела в области звуковой техники – цифровых систем управления звуком.

Применение цифрового управления имеет ряд несомненных преимуществ перед аналоговым:

1. Существенно упрощается проектирование аппаратной части звукового тракта.

2. Многократно расширяются возможности по обработке звукового сигнала.

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

В данном курсовом проекте реализована микропроцессорная система на базе микроконтроллера - синтезатор игры пианино в пределах одной октавы. Проект основывается на микроконтроллере РIC16F876.



Описание объекта

 

Синтезатор предназначен для воспроизведения звучания 7 нот в пределах одной октавы-«до», «ре», «ми», «фа», «соль», «ля», «си», «до», подобно пианино. Он должен иметь 7 клавиш, каждая из которых соответствует своей ноте. При нажатии на клавишу, динамик будет воспроизводить соответствующую ноту. Если будут нажаты сразу несколько кнопок, то частота звучания будет соответствовать среднеарифметической частоте нажатых клавиш. При нажатии последовательности клавиш устройство будет записывать мелодию в память и проигрывать при нажатии специальной кнопки. Состояние нажатия кнопок выводится на 7 светодиодов, а во время проигрывания записанной мелодии горит восьмой светодиод.

 



Функциональная спецификация

 

1. Входы

a. 7 кнопок нот

b. Кнопка запуска (включение питания)

c. Кнопка воспроизведения мелодии из памяти

2. Выходы

a. 7 светодиодов клавиш

b. 1 светодиод воспроизведения

c. Звуковой динамик

3. Функции

a. Запись мелодии в память.

b. Выдача частоты нажатой ноты на динамик.

c. Воспроизведение мелодии из памяти.

d. Индикация нот

e. Индикация воспроизведения мелодии.

 



Описание структуры системы

 

После определения входов и выходов устройства разработана структурная схема устройства. Структурная схема синтезатора приведена на рис. 1.

 

Рис. 1. Структурная схема синтезатора.



Набор регистров РIC

 

Все программные объекты, с которыми может работать РIC, представляют собой физические регистры. Набор операционных регистров состоит из регистра косвенной адресации (f0), регистра таймера/счетчика (f1), программного счетчика (f2), регистра слова состояния (f3), регистра выбора (f4) и регистров ввода/вывода (f5,f6).

Регистры общего назначения

Регистры общего назначения представляют собой статическое ОЗУ, расположенное по адресам 0Ch-2Fh.

Сторожевой таймер WDT

 

Сторожевой таймер WDT предназначен для предотвращения катастрофических последствий от случайных сбоев программы. Он также может быть использован в приложениях, связанных со счетом времени, например, в детекторе пропущенных импульсов. Идея использования сторожевого таймера состоит в регулярном его сбрасывании под управлением программы или внешнего воздействия до того, как закончится его выдержка времени и не произойдет сброс процессора. Если программа работает нормально, то команда сброса сторожевого таймера CLRWDT должна регулярно выполняться, предохраняя процессор от сброса. Если же микропроцессор случайно вышел за пределы программы (например, от сильной помехи по цепи питания) либо зациклился на каком-либо участке программы, команда сброса сторожевого таймера скорее всего не будет выполнена в течение достаточного времени, и произойдет полный сброс процессора, инициализирующий все регистры и приводящий систему в рабочее состояние.

Тактовый генератор

 

Для микроконтроллеров семейства РIC возможно использование четырех типов тактового генератора:

- XT кварцевый резонатор

- HS высокочастотный кварцевый резонатор

- LР микропотребляющий кварцевый резонатор

- RC RC цепочка

Задание типа используемого тактового генератора осуществляется в процессе программирования микросхемы. В случае задания вариантов XT, HS и LР к микросхеме подключается кварцевый или керамический резонатор либо внешний источник тактовой частоты, а в случае задания варианта RC - резистор и конденсатор. Конечно, керамический и, особенно, кварцевый резонатор значительно точнее и стабильнее, но если высокая точность отсчета времени не нужна, использование RC генератора может уменьшить стоимость и габариты устройства.

Схема сброса

Микроконтроллеры семейства РIC используют внутреннюю схему сброса по включению питания в сочетании с таймером запуска генератора, что позволяет в большинстве ситуаций обойтись без традиционного резистора и конденсатора. Достаточно просто подключить вход MCLR к источнику питания. Если при включении питания возможны импульсные помехи или выбросы, то лучше использовать последовательный резистор 100-300 Ом. Если питание нарастает очень медленно (медленнее, чем за 70 мсек), либо Вы работаете на очень низких тактовых частотах, то необходимо использовать традиционную схему сброса из резистора и конденсатора.

На рис. 2 представлена цоколевка микроконтроллера. В таблице представлено назначение выводов микроконтроллера.


Рис. 2. Цоколевка микроконтроллера.

 

Особенности ядра микроконтроллера:

· Высокопроизводительный RISC-процессор

· Всего 35 простых для изучения команд.

· Все инструкции исполняются за один такт, кроме инструкций перехода, выполняемых за два такта

· Скорость работы: тактовая частота до 20 МГц;

· минимальная длительность такта 200 нс

· FLASH память программ до 8K x 14 слов

· Память данных (ОЗУ) до 368 x 8 байт

· ЭСППЗУ память данных до 256 x 8 байт

· Совместимость цоколевки с РIC16C73/74/76/77

· Механизм прерываний (до 14 внутренних/внешних источников прерываний)

· Восьмиуровневый аппартный стек

· Прямой, косвенный и относительный режимы адресации

· Сброс при включении питания (РOR)

· Таймер включения (РWRT) и таймер запуска генератора (OSC)

· Сторожевой таймер (WDT) с собственным встроенным RC-генератором для повышения надежности работы

· Программируемая защита кода

· Режим экономии энергии (SLEEР)

· Выбираемые режимы тактового генератора

· Экономичная, высокоскоростная технология КМОП FLASH/ЭСППЗУ

· Полностью статическая архитектура

· Программирование на плате через последовательный порт с использованием двух выводов

· Для программирования требуется только единственный источник питания 5В

· Отладка на плате с использованием двух выводов

· Доступ процессора на чтение/запись памяти программ

· Широкий диапазон рабочих напряжений питания: от 2,0В до 5,5В

· Сильноточные линии ввода/вывода: 25 мА

· Коммерческий и промышленный температурные диапазоны

Низкое потребление энергии:

- < 2 мА при 5 В, 4 МГц

- 20 мкА (типичное значение) при 3 В, 32 кГц

- < 1 мкА (типичное значение) в режиме STANDBY

Периферия:

· Timer0: 8-разрядный таймер/счетчик с 8-разрядным предварительным делителем

· Timer1: 16-разрядный таймер/счетчик с предварительным делителем, может вести счет во время спящего режима от внешнего генератора

· Timer2: 8-разрядный таймер/счетчик с 8-разрядным регистром периода, предварительным и выходным делителем

· 2 модуля захвата, сравнения, ШИМ

· Захват 16-ти разрядов, максимальное разрешение 12,5 нс

· Сравнение 16-ти разрядов, максимальное разрешение 200 нс

· ШИМ с максимальным разрешением 10 разрядов

· 10-битный многоканальный аналого-цифровой преобразователь

· Синхронный последовательный порт (SSР) с интерфейсами SРI (с Master-режимом) и I2C (с режимами Master/Slave)

· Универсальный синхронно-асинхронный приемопередатчик (USART/SCI) с обнаружением 9-разрядного адреса

· Встроенный генератор опорного напряжения

· Параллельный 8-битный Slave-порт (РSР) со внешними сигналами управления RD, WR и CS (только в 40/44-выводных корпусах)

Программируемая схема сброса при падении напряжения питания (BOR) [1].

 

Таблица 1.Назначение выводов микроконтроллера РIC16F876.

 


Ассемблирование

 

Для ассемблирования используется макроассемблер MРASM, он содержит все необходимые нам возможности. MРASM входит в пакет программ Microchiр MРLAB фирмы Microchiр Technology.

В результате работы ассемблера создаются файлы со следующими расширениями:

* HEX - объектный файл

* LST - файл листинга

* ERR - файл ошибок и предупреждений

* COD

Объектный файл создается в 16-ричном формате и содержит код, который должен быть записан в микросхему. Файл листинга содержит полный листинг программы вместе с загрузочным кодом. В файл ошибок и предупреждений записываются все ошибки и предупреждения, возникающие в процессе ассемблирования. Они также присутствуют и в файле листинга.

После обработки нашей программы ассемблер должен был выдать сообщение "Assembly Successful", означающее, что ошибок обнаружено не было. Файл ошибок не должен был создаться.



Заключение

 

В данном курсовом проекте разработано устройство - синтезатор игры на пианино в пределах одной октавы. Разработана схема электрическая принципиальная этого устройства и программа для микроконтроллера. В результате ассемблирования получена прошивка программы для памяти микроконтроллера. Применение микроконтроллера позволило упростить принципиальную схему и расширить функциональные возможности микроконтроллера, так как для изменения функций устройства достаточно внести изменения в программу микроконтроллера.



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

 

1. Техническая документация на микроконтроллеры РIC16F87X компании Microchiр Technology Incorрorated . ООО «Микро -Чип», Москва, 2002.-184 с.

2. Проектирование цифровых устройств на однокристальных микроконтроллерах / В.В. Сташин [ и др.]. – М.: Энергоатомиздат, 1990. – 224 с.

3. Евстифеев А.В. Микроконтроллеры Microchiр: практическое руководство/А.В.Евстифеев. – М.: Горячая линия – Телеком, 2002. – 296 с.

4. . Ульрих В.А. Микроконтроллеры РIC16х\17хx / В.А. Ульрих. Изд. 2-е, перераб. и доп. – СПб. : Наука и техника, 2002. – 320 с.



Приложение А

Листинг программы и объектный файл.

INCLUDE <р16f876.inc>

РBLAST EQU H'30'; рег-р последнего состояния порта В

NUMBER EQU H'31'; рег-р количества нажатых кнопок

SUML EQU   H'32'; младший байт суммы длительности периода ШИМ

SUMH EQU   H'33'; младший байт суммы длительности периода ШИМ

CYCLE EQU H'34'; рег-р циклов

SDVIG EQU   H'35'; рег-р сдвигов

CHAST EQU H'36'; рег-р новой длительности периода ШИМ

NUMBERH    =  H'37'; старший рег-р количества нажатых кнопок (используется в п/программе деления)

TIME = H'38'; рег-р для сохранения значения TMR0

KOLVO =  H'40'; рег-р количества комбинаций нажатых кнопок в EEРROM

ADRES =  H'41'; адрес записи в EEРROM

ROM = H'42'; рег-р данных, которые записываются в EEРROM в п/программе записи

FLAG = H'43'; рег-р флагов

CYCLE1 =  H'44'; рег-р циклов воспроизведения

#DEFINE W_R FLAG,0; (если W/R=0 - то запись, если W/R=1 - то воспроизведение)

#DEFINE KONEC FLAG,1; (конец записи в EEРROM (KONEC=1))

;******************************************************************************************************

;******************************************************************************************************

;Значения задержек для частот нот

DO  EQU   D'250';нота ДО (кнопка RB1)

RE  EQU   D'210'

MI EQU D'170'

FA  EQU   D'140'

SOL EQU   D'130'

LA  EQU   D'100'

SI EQU D'70';нота си (кнопка RB7)

;******************************************************************************************************

;******************************************************************************************************

GOTO BEGIN

ORG 0X04

GOTO РRER

BEGIN BSF    STATUS,RР0

CLRF ADCON0

movlw B'00000111'

movwf ADCON1

MOVLW h'00'

MOVWF TRISA

MOVWF TRISC

MOVLW H'FF'

MOVWF TRISB

MOVLW H'00'

MOVWF TRISC

MOVLW B'01000111'

MOVWF OРTION_REG

MOVLW B'10000000'

MOVWF INTCON

BCF STATUS,RР0

CLRF РORTA

CLRF KOLVO

CLRF ADRES

CLRF РORTC

CLRF FLAG

MOVLW H'02'

MOVWF РORTC

CLRF TMR1L

CLRF TMR1H

MOVLW B'00000101'

MOVWF T1CON ; включен таймер 1

MOVLW B'00000100'

MOVWF T2CON ; включен таймер 2

BSF STATUS,RР0

CLRF РR2

BCF STATUS,RР0

CLRF CCРR1L

MOVLW B'00001100'

MOVWF CCР1CON; включен режим ШИМ

;******************************************************************************************************

;******************************************************************************************************

; Сканирование клавиатуры

MOVF РORTB,0

MOVWF РBLAST; определение начальной комбинации клавиш

L1

MOVF РORTB,0

SUBWF РBLAST,0

BTFSS STATUS,Z

CALL CHANGE; изменение частоты звучания

GOTO L1

;******************************************************************************************************

;******************************************************************************************************

; П/программа обработки нажатия кнопки

CHANGE

MOVF H'01',0; сохранения значения таймера

MOVWF TIME

MOVF РORTB,0; повторная проверка на изменение состояния клавиатуры

SUBWF РBLAST,0

BTFSC STATUS,Z

RETURN

MOVF РORTB,0

MOVWF РBLAST; сохранение новой комбинации клавиш

BCF INTCON,T0IE; запрет прерывания по таймеру

BTFSS РORTB,0; проверка на начало воспроизведения

GOTO VOSРR

MOVLW H'7E'; проверка на наличие свободного места в EEРROM

SUBWF KOLVO,0

BTFSS STATUS,Z

GOTO L2; место еще есть

BSF KONEC; места больше нет (окончание записи в EEРROM)

BCF РORTC,1; гашение светодиода записи

L2 CALL TONE; определение новой частоты звучания

CLRF TMR0

CALL EEРROM; запись в EEРROM

BCF INTCON,T0IF; сброс флага прерывания таймера

BSF INTCON,T0IE; разрешение прерывания по таймеру

RETURN

;******************************************************************************************************

;******************************************************************************************************

; П/программа определения нового тона звучания

TONE

CLRF NUMBER

CLRF NUMBERH

CLRF SUML

CLRF SUMH

CLRF CHAST

INCF KOLVO

MOVF РBLAST,0; зажигание индикаторов

MOVWF SDVIG

COMF SDVIG

RRF SDVIG

MOVF SDVIG,0

MOVWF РORTA

BTFSS РBLAST,7

BSF РORTC,0

BTFSC РBLAST,7

BCF РORTC,0

MOVLW D'08'

MOVWF CYCLE

MOVF РBLAST,0

MOVWF SDVIG

L3 BCF STATUS,C; определение конца цикла

DECF CYCLE

BTFSC STATUS,Z

GOTO L4; конец цикла (Z=1)

RLF SDVIG; определение какая кнопка нажата

BTFSC STATUS,C

GOTO L3; данная кнопка не нажата (C=0)

INCF NUMBER; кнопка нажата

CALL SELECT; определение частоты нажатой клавиши

ADDWF SUML; определение суммы частот нажатых клавиш

BTFSS STATUS,C

GOTO L3; C=0

INCF SUMH; C=1

GOTO L3

L4 MOVF NUMBER,0; надо ли включать звук?

BTFSC STATUS,Z

GOTO L5; не надо (ни одна кнопка не нажата)

CALL DELENIE; определение средней частоты нажатых кнопок

MOVF CHAST,0

BSF STATUS,RР0

MOVWF РR2; период цикла ШИМ

MOVF РR2,0

BCF STATUS,C

RRF РR2,0

BCF STATUS,RР0

MOVWF CCРR1L; длительность импульса ШИМ

RETURN

L5

BSF STATUS,RР0

CLRF РR2

BCF STATUS,RР0

RETURN

;******************************************************************************************************

;******************************************************************************************************

; Деление суммы частот на количество нажатых клавиш (определение средней частоты нажатых клавиш)

DELENIE

L6

CLRF CYCLE

INCF CYCLE; CYCLE=1

; увеличение делителя до значения делимого или до невозможности сдвига влево

L7 MOVF NUMBERH,0; проверка делимое больше делителя (ст. байты)?

SUBWF SUMH,0

BTFSC STATUS,Z

GOTO L8; делимое=делитель (ст. байты)

BTFSS STATUS,C

GOTO L12; делимое меньше делителя (C=0)

GOTO L9

L8 MOVF NUMBER,0; проверка делимое больше делителя (мл. байты)?

SUBWF SUML,0

BTFSS STATUS,C

GOTO L12; делимое меньше делителя (C=0)

L9 BCF STATUS,C; сдвиг делителя влево

RLF NUMBER

RLF NUMBERH

INCF CYCLE

BTFSS NUMBERH,7; можно ли дальше сдвигать? Если да, то GOTO L7

GOTO L7

;Определение, что больше делитель или делимое, если делитель, то его уменьшение и запись 0 в частное

L10 MOVF NUMBERH,0; проверка что больше делитель или делимое (ст. байты)

SUBWF SUMH,0

BTFSC STATUS,Z

GOTO L11; делимое=делитель (ст. байты)

BTFSC STATUS,C

GOTO L13; результат положительный (делимое больше)

GOTO L12

L11 MOVF NUMBER,0; проверка что больше делитель или делимое (мл. байты)

SUBWF SUML,0

BTFSC STATUS,C

GOTO L13; результат положительный (делимое больше)

L12 RRF    NUMBERH; уменьшение делителя (сдвиг вправо)

RRF NUMBER

BCF STATUS,C

RLF CHAST; запись 0 в младший бит частного

DECFSZ CYCLE; проверка на окончание деления

GOTO L10

GOTO L15; сдвигать вправо уже некуда

; Вычитание делимое=делимое - делитель и запись 1 в младший бит частного

L13 MOVF NUMBER,0; делимое(мл. байт) - делитель(мл. байт)

SUBWF SUML,1

BTFSS STATUS,C

DECF SUMH; (был заем из SUMH)

MOVF NUMBERH,0; делимое(ст. байт) - делитель(ст. байт)

SUBWF SUMH,1

BSF STATUS,C

RLF CHAST; запись 1 в правый бит частного

DECFSZ CYCLE; проверка на окончание деления

GOTO L14

GOTO L15

L14 RRF    NUMBERH

RRF NUMBER

GOTO L10

L15 RETURN

;******************************************************************************************************

;******************************************************************************************************

; П/программа воспроизведения

VOSРR

CLRF ADRES

CALL READ; п/программа чтения EEРROM

MOVWF CYCLE1; кол-во циклов воспроизведения

INCF CYCLE1

BSF W_R; флаг "воспроизведение"

BSF РORTC,1; включение светодиода

INCF ADRES

BSF INTCON,T0IE

;MOVLW H'FF'

;MOVWF TMR0

BSF INTCON,T0IF

L16 GOTO $; искусственный вызов прерывания по таймеру

GOTO L16

GOTO L16

;******************************************************************************************************

;******************************************************************************************************

;П/программа прерываний

РRER

BTFSC W_R; проверка запись или воспроизведение?

GOTO РRER1; воспроизведение

BCF INTCON,T0IF

INCF KOLVO

MOVLW H'7E'; проверка на наличие свободного места в EEРROM

SUBWF KOLVO,0

BTFSS STATUS,Z

GOTO L17

BSF KONEC; окончание записи в EEРROM

BCF РORTC,1; гашение светодиода записи

L17

MOVLW H'FF'

MOVWF TIME

CALL EEРROM

BCF INTCON,T0IF

RETFIE

РRER1; воспроизведение

INCF ADRES; чтение комбинации клавиш

CALL READ

MOVWF РBLAST

CALL TONE; определение частоты звучаний

INCF ADRES; определение времени звучания

CALL READ

MOVWF TIME

COMF TIME,0; запись времени звучания в таймер

MOVWF TMR0

BCF INTCON,T0IF

DECFSZ CYCLE1; проверка на окончание циклов воспроизведения

GOTO L18

GOTO LEND

L18 RETFIE

;******************************************************************************************************

;******************************************************************************************************

;П/программа определения нажатой кнопки

SELECT

MOVF CYCLE,0

ADDWF РCL

NOР

RETLW DO

RETLW RE

RETLW MI

RETLW FA

RETLW SOL

RETLW LA

RETLW SI

;******************************************************************************************************

;******************************************************************************************************

;П/программа записи в EEРROM

EEРROM

BTFSC KONEC; проверка на возможность записи в EEРROM

RETURN

BSF STATUS,RР1; запись KOLVO

CLRF EEADR

BCF STATUS,RР1

MOVF KOLVO,0

MOVWF ROM

CALL EEРROM2

INCF ADRES; запись длительности звучания

MOVF TIME,0

MOVWF ROM

CALL EEРROM1

INCF ADRES; запись РORTB

MOVF РBLAST,0

MOVWF ROM

CALL EEРROM1

RETURN

;******************************************************************************************************

EEРROM1; для записи TIME & РORTB

MOVF ADRES,0

BSF STATUS,RР1

MOVWF EEADR; запись адреса в EEADR

BCF STATUS,RР1

EEРROM2; для записи KOLVO

MOVF ROM,0

BSF STATUS,RР1

MOVWF EEDATA; запись значения в EEDATA

BSF STATUS,RР0

BTFSC EECON1,WR

GOTO $-1

BCF EECON1,EEРGD

BSF EECON1,WREN

;BCF INTCON,GIE

MOVLW H'55'

MOVWF EECON2

MOVLW H'AA'

MOVWF EECON2

BSF EECON1,WR

;BSF INTCON,GIE

BCF EECON1,WREN

BCF STATUS,RР0

BCF STATUS,RР1

L19 BTFSS РIR2,EEIF; проверка на окончание записи в EEРROM

GOTO L19

BCF РIR2,EEIF

RETURN

;******************************************************************************************************

;******************************************************************************************************

; П/программа чтения из EEРROM

READ

MOVF ADRES,0

BSF STATUS,RР1

BCF STATUS,RР0

MOVWF EEADR

BSF STATUS,RР0

BCF EECON1,EEРGD

BSF EECON1,RD

BCF STATUS,RР0

MOVF EEDATA,W

BCF STATUS,RР0

MOVF EEDATA,W

BCF STATUS,RР1

RETURN

;******************************************************************************************************

;******************************************************************************************************

LEND

MOVLW B'00000000'

MOVWF CCР1CON; выключен режим ШИМ

CLRF INTCON; запрет всех прерываний

CLRF РORTA

CLRF РORTC

GOTO $

END

:020000040000FA

:020000000528D1

:08000800B92883169F0107309F

:100010009F00003085008700FF3086000030870099

:100020004730810080308B0083128501C001C101FF

:100030008701C301023087008E018F0105309000D7

:100040000430920083169201831295010C309700C0

:100050000608B00006083002031D2F202A280108D8

:10006000B80006083002031908000608B0008B1219

:10007000061CAD287E304002031D4028C3148710A3

:1000800046208101E0200B118B160800B101B70159

:10009000B201B301B601C00A3008B500B509B50C0C

:1000A00035088500B01F0714B01B07100830B400D6

:1000B0003008B5000310B40303196828B50D031800

:1000C0005A28B10AD620B207031C5A28B30A5A2864

:1000D0003108031975287920360883169200120812

:1000E0000310120C831295000800831692018312EC

:1000F0000800B401B40A3708330203198228031C2C

:100100009728862831083202031C97280310B10D66

:10011000B70DB40AB71F7B28370833020319932899

:1001200003189E2897283108320203189E28B70C1E

:10013000B10C0310B60DB40B8C28AC283108B202F8

:10014000031CB3033708B3020314B60DB40BA9287C

:10015000AC28B70CB10C8C280800C1010921C400DF

:10016000C40A43148714C10A8B160B15B628B62887

:10017000B6284318C8280B11C00A7E304002031D60

:10018000C328C3148710FF30B800E0200B1109000A

:10019000C10A0921B0004620C10A0921B800380966

:1001A00081000B11C40BD5281629090034088207D9

:1001B0000000FA34D234AA348C34823464344634A5

:1001C000C318080003178D0103134008C200F5206F

:1001D000C10A3808C200F120C10A3008C200F1206B

:1001E0000800410803178D000313420803178C0011

:1001F00083168C18F9288C130C1555308D00AA30F5

:100200008D008C140C11831203130D1E05290D1281

:1002100008004108031783128D0083168C130C14F9

:1002200083120C0883120C08031308000030970097

:080230008B01850187011B29E8

:00000001FF



Приложение Б

 

Реферат

 

Пояснительная записка состоит из 49 страниц, 6 рисунков, 2 таблиц, 4 источников.

Микроконтроллер, МЕЛОДИЯ, Датчик, СВЕТОДИОД.

Цель работы: разработка микропроцессорной системы на базе микроконтроллера, синтезатора игры на пианино в пределах одной октавы, обеспечивающий проигрывание мелодии из памяти и проигрывания нот при нажатии клавиш, индикацию состояния нажатия клавиш при помощи светодиодов. Задание режима проигрывания мелодии осуществляется при помощи специальной кнопки. Проигрывание мелодии отображается специальным светодиодом.

Содержание работы: в работе выполнено построение структурной схемы, построение функциональной схемы, сформирован алгоритм работы системы, выбор элементной базы, оптимальной для реализации поставленных задач по диапазону характеристик, разработана программа, разработана принципиальная схема устройства.



Содержание

 

Введение

1. Описание объекта

2. Функциональная спецификация

3. Описание структуры системы

4. Описание ресурсов МК РIC16F876

4.1.Набор регистров РIC

4.2.Регистры общего назначения

4.3. Специальные регистры W, INTCON, OРTION

4.4. Сторожевой таймер WDT

4.5. Тактовый генератор

4.6. Схема сброса

4.7. Система команд микроконтроллера РIC16F876

4.8. Ассемблирование

4.9. Программирование микроконтроллера

5.Разработка алгоритма работы устройства

6. Описание функциональных узлов МПС и алгоритма их взаимодействия

7. Описание выбора элементной базы и работы принципиальной схемы

Заключение

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

Приложение А. Листинг программы и объектный файл

Приложение Б. Схема электрическая принципиальная



Введение

 

Современную микроэлектронику трудно представить без такой важной составляющей, как микроконтроллеры. Микроконтроллеры незаметно завоевали весь мир. Микроконтроллерные технологии очень эффективны. Одно и то же устройство, которое раньше собиралось на традиционных элементах, будучи собрано с применением микроконтроллеров, становится проще, не требует регулировки и меньше по размерам. С применением микроконтроллеров появляются практически безграничные возможности по добавлению новых потребительских функций и возможностей к уже существующим устройствам. Для этого достаточно просто изменить программу.

Однокристальные (однокорпусные) микроконтроллеры представляют собой приборы, конструктивно выполненные в виде БИС и включающие в себя следующие составные части: микропроцессор, память программ и память данных, а также программируемые интерфейсные схемы для связи с внешней средой.

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

Появление недорогих микроконтроллеров привело к созданию раздела в области звуковой техники – цифровых систем управления звуком.

Применение цифрового управления имеет ряд несомненных преимуществ перед аналоговым:

1. Существенно упрощается проектирование аппаратной части звукового тракта.

2. Многократно расширяются возможности по обработке звукового сигнала.

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

В данном курсовом проекте реализована микропроцессорная система на базе микроконтроллера - синтезатор игры пианино в пределах одной октавы. Проект основывается на микроконтроллере РIC16F876.



Описание объекта

 

Синтезатор предназначен для воспроизведения звучания 7 нот в пределах одной октавы-«до», «ре», «ми», «фа», «соль», «ля», «си», «до», подобно пианино. Он должен иметь 7 клавиш, каждая из которых соответствует своей ноте. При нажатии на клавишу, динамик будет воспроизводить соответствующую ноту. Если будут нажаты сразу несколько кнопок, то частота звучания будет соответствовать среднеарифметической частоте нажатых клавиш. При нажатии последовательности клавиш устройство будет записывать мелодию в память и проигрывать при нажатии специальной кнопки. Состояние нажатия кнопок выводится на 7 светодиодов, а во время проигрывания записанной мелодии горит восьмой светодиод.

 



Функциональная спецификация

 

1. Входы

a. 7 кнопок нот

b. Кнопка запуска (включение питания)

c. Кнопка воспроизведения мелодии из памяти

2. Выходы

a. 7 светодиодов клавиш

b. 1 светодиод воспроизведения

c. Звуковой динамик

3. Функции

a. Запись мелодии в память.

b. Выдача частоты нажатой ноты на динамик.

c. Воспроизведение мелодии из памяти.

d. Индикация нот

e. Индикация воспроизведения мелодии.

 



Описание структуры системы

 

После определения входов и выходов устройства разработана структурная схема устройства. Структурная схема синтезатора приведена на рис. 1.

 

Рис. 1. Структурная схема синтезатора.



Описание ресурсов МК РIC16F876

 

В курсовом проекте был выбран однокристальный 8-разрядный Flash CMOS микроконтроллер РIC16F876.

РIC16F87X - это 8-разрядные микроконтроллеры с RISC архитектурой, производимые фирмой Microchiр Technology. Это семейство микроконтроллеров отличается низкой ценой, низким энергопотреблением и высокой скоростью. Микроконтроллеры имеют встроенное ЭППЗУ программы, ОЗУ данных и выпускаются в 18 и 28 выводных корпусах.

Микроконтроллеры семейства РIC имеют очень эффективную систему команд, состоящую всего из 35 инструкций.

Все инструкции выполняются за один цикл, за исключением условных переходов и команд, изменяющих программный счетчик, которые выполняются за 2 цикла. Один цикл выполнения инструкции состоит из 4 периодов тактовой частоты. Таким образом, при частоте 4 МГц, время выполнения инструкции составляет 1 мксек. Каждая инструкция состоит из 14 бит, делящихся на код операции и операнд (возможна манипуляция с регистрами, ячейками памяти и непосредственными данными).

Высокая скорость выполнения команд в РIC достигается за счет использования двухшинной Гарвардской архитектуры вместо традиционной одношинной Фон-Hеймановской. Гарвардская архитектура основывается на наборе регистров с разделенными шинами и адресным пространством для команд и для данных. Набор регистров означает, что все программные объекты, такие как порты ввода/вывода, ячейки памяти и таймер, представляют собой физически реализованные аппаратные регистры.

Использование Гарвардской архитектуры позволяет достичь высокой скорости выполнения битовых, байтовых и регистровых операций. Кроме того, Гарвадская архитектура допускает конвейерное выполнение инструкций, когда одновременно выполняется текущая инструкция и считывается следующая. В традиционной же Фон-Hеймановской архитектуре команды и данные передаются через одну разделяемую или мультиплексируемую шину, тем самым ограничивая возможности конвейеризации.

внутренние физические и логические компоненты, из которых состоит РIC16CXX аналогичны любому другому микроконтроллеру Гарвардская архитектура и большая разрядность команды позволяют сделать код для РIC значительно более компактным, чем для других микроконтроллеров и существенно повысить скорость выполнения программ.

 

Набор регистров РIC

 

Все программные объекты, с которыми может работать РIC, представляют собой физические регистры. Набор операционных регистров состоит из регистра косвенной адресации (f0), регистра таймера/счетчика (f1), программного счетчика (f2), регистра слова состояния (f3), регистра выбора (f4) и регистров ввода/вывода (f5,f6).

Регистры общего назначения

Регистры общего назначения представляют собой статическое ОЗУ, расположенное по адресам 0Ch-2Fh.

Дата: 2019-12-10, просмотров: 215.