Курсовая работа

Состав, структуру и возможности аппаратных средств микроконтроллеров. Архитектура микроконтроллера PIC16F84A. Особенности программирования и отладки микроконтроллеров. Рассмотрение схемы электрического лабораторного стенда на основе микроконтроллера.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 05.01.2021
Размер файла 1010,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Введение

Микроконтроллеры семейств PIC (Peripheral Interface Controller) компании Microchip, обладающие особой популярностью, построены на основе передовых технологий микроконтроллеров. Им свойственны следующие особенности: электрически программируемые пользователем ППЗУ, минимальное энергопотребление, высокая производительность, хорошо развитая RISC-архитектура, функциональная законченность и минимальные размеры.

Высокая скорость выполнения команд в микроконтроллерах PIC достигается за счет использования двухшинной гарвардской архитектуры, которая основывается на наборе регистров с разделенными шинами и адресными пространствами для команд и данных. Все ресурсы микроконтроллера, такие как порты ввода/вывода, ячейки памяти и таймер, представляют собой физически реализованные аппаратные регистры.

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

В настоящее время компания Microchip выпускает пять основных семейств 8-разрядных RISC-микроконтроллеров, совместимых снизу вверх по программному коду:

- PIC12CXXX - семейство микроконтроллеров, выпускаемые в виде миниатюрных изделий, содержащих всего 8-выводов. Они выпускаются как с 12-разрядной (33 команды), так и с 14-разрядной (35 команд) системой команд и содержат встроенный тактовый генератор, таймер/счетчик, сторожевой таймер, схему управления прерываниями. В составе этого семейства имеются микроконтроллеры со встроенным 8-разрядным четырехканальным АЦП;

- PIC16C5X - базовое семейство микроконтроллеров с 12-разрядными командами (33 команды), выпускаемые в 18-, 20- и 28-выводных корпусах. Эти микроконтроллеры, обладающие минимальной периферией и способные работать при малом напряжении питания (до 2 В) удобны для применения в переносных конструкциях;

- PIC16CXXX - семейство микроконтроллеров среднего уровня с 14-разрядными командами (35 команд). Это многочисленное семейство, объединяет микроконтроллеры с разнообразными периферийными устройствами, в число которых входят аналоговые компараторы, аналогово-цифровые преобразователи, контроллеры последовательных интерфейсов SPI, USART и I2C, таймеры-счетчики, модули захвата/сравнения, широтно-импульсные модуляторы, сторожевые таймеры, супервизорные схемы и так далее;

- PIC17CXXX - семейство высокопроизводительных микроконтроллеров с расширенной системой команд 16-разрядного формата (58 команд), работающие на частоте до 33 МГц и с объемом памяти программ до 16 Кслов. Кроме обширной периферии, 16-уровневого аппаратного стека и векторной системы прерываний, почти все микроконтроллеры этого семейства имеют встроенный аппаратный умножитель 8х8, выполняющий операцию умножения за один машинный цикл. Являются одними из самых быстродействующих в классе 8-разрядных микроконтроллеров;

- PIC18CXXX - семейство высокопроизводительных микроконтроллеров с расширенной системой команд 16-разрядного формата (75 команд) и встроенным 10-разрядным АЦП, работающие на частоте до 40 МГц. Содержат 31-уровневый аппаратный стек, встроенную память команд до 32 Кслов и способны адресовать до 4 Кбайт памяти данных и до 2 Мбайт внешней памяти программ. Расширенное RISC-ядро микроконтроллеров данного семейства оптимизировано под использование нового Си-компилятора.

Широкая номенклатура микроконтроллеров PIC обеспечивает использование их в устройствах, предназначенных для разнообразных сфер применения.

Микроконтроллеры PIC выпускаются с однократно программируемой памятью программ (OTP, One-Time Programmable), с возможностью внутрисхемного программирования (Flash-память) или масочным ПЗУ. Тип памяти программ определяется буквами в наименовании микросхемы: С - EPROM; CR - ROM; F - FLASH. Наличие в составе микроконтроллеров Flash-памяти программ облегчает создание и отладку прототипов промышленных образцов изделий.

1. Микроконтроллеры семейства PIC16F8X

1.1 Основные характеристики

Состав, структуру и возможности аппаратных средств микроконтроллеров будем рассматривать на примере микроконтроллеров среднего семейства (Mid-Range), а для реализаций конкретных программных структур будем применять микроконтроллер PIC16F84A, как наиболее популярный и удобный для первоначального изучения. Этот микроконтроллер, как и все микроконтроллеры среднего семейства, построен по гарвардской архитектуре с RISC-процессором, обладающим следующими основными особенностями:

- используются только 35 простых команд;

- все команды выполняются за один цикл (4 такта генератора), кроме команд перехода, которые выполняются за 2 цикла;

- рабочая частота 0 Гц ... 10 МГц;

- раздельные шины данных (8 бит) и команд (14 бит);

- 1024 х 14 память программ, выполненная на ПЗУ или электрически перепрограммируемой Flash- памяти;

- 15 восьмиразрядных регистров специальных функций (SFR);

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

- прямая, косвенная и относительная адресация данных и команд;

- 68 восьмиразрядных регистров общего назначения (GPR);

- четыре источника прерывания:

внешний вход RB0/INT;

переполнение таймера TMR0;

изменение сигналов на линиях порта B;

завершение записи данных в память EEPROM;

- 64 x 8 электрически перепрограммируемая EEPROM память данных с возможностью выполнения 1000000 циклов стирания/записи и сохранением данных в течение как минимум 40 лет;

- сторожевой (Watchdog) таймер WDT с собственным встроенным генератором, обеспечивающим повышенную надежность;

- число выводов корпуса микросхемы 18.

Микроконтроллер PIC16F84A обладает следующими возможностями ввода/вывода:

- 13 линий ввода-вывода с индивидуальной установкой направления обмена;

- высокий втекающий/вытекающий ток, достаточный для управления светодиодами;

- 8-битный таймер/счетчик TMR0 с 8-битным программируемым предварительным делителем.

1.2 Архитектура микроконтроллера PIC16F84A

Упрощенная структурная схема микроконтроллера PIC16F84A приведена на рисунке 1.1.

Архитектура микроконтроллеров PIC16F84X, как и всех микроконтроллеров среднего семейства, основана на концепции раздельных шин и областей памяти для данных и для команд (гарвардская архитектура). Шина данных и память данных (ОЗУ) - имеют ширину 8 бит, а программная шина и программная память (ПЗУ) имеют ширину 14 бит. Такая концепция обеспечивает простую, но мощную систему команд, разработанную так, что битовые, байтовые и регистровые операции работают с высокой скоростью и с перекрытием по времени выборок команд и циклов выполнения. 14-битовая ширина программной памяти обеспечивает выборку 14-битовой команды в один цикл. Двухступенчатый конвейер обеспечивает одновременную выборку и исполнение команды. Все команды выполняются за один цикл, исключая команды переходов.

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

Рисунок 1.1. Структурная схема микроконтроллера PIC16F84A

Микроконтроллер содержит 8-разрядное АЛУ и рабочий регистр W. АЛУ является арифметическим модулем общего назначения и выполняет арифметические и логические функции над содержимым рабочего регистра и любого из регистров контроллера. АЛУ может выполнять операции сложения, вычитания, сдвига и логические операции. Если не указано иное, то арифметические операции выполняются в дополнительном двоичном коде.

В зависимости от результата операции, АЛУ может изменять значения бит регистра STATUS: C (Carry), DC (Digit carry) и Z (Zero).

Цикл выполнения команды состоит из четырех тактов: Q1...Q4. Выборка команды и ее выполнение совмещены по времени таким образом, что выборка команды занимает один цикл, а выполнение - следующий цикл. Эффективное время выполнения команды составляет один цикл. Если команда изменяет счетчик команд (например, команда GOTO), то для ее выполнения потребуется два цикла.

Выборка инструкции из памяти кода начинается с увеличения счетчика команд на 1 и выборки команды по соответствующему смещению, после чего выбранная команда защелкивается в регистре команд. Выборка текущей инструкции происходит параллельно во времени с декодированием и исполнением предыдущей инструкции за счет того, что для этих операций задействованы различные независимые друг от друга аппаратные блоки микроконтроллера. В течение тактов Q2, Q3 и Q4 происходит декодирование и выполнение команды. В такте Q2 считывается память данных (чтение операнда), а запись происходит в такте Q4.

Счетчик команд в микроконтроллерах PIC имеет ширину 13 бит и способен адресовать 8Кх14бит объема программной памяти. Однако физически на кристаллах микроконтроллера PIC16F84A реализован 1Кх14 памяти и счетчик команд в нем имеет ширину 10 бит.

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

Память данных микроконтроллера разбита на две области (см. Рисунок 1.2). Первые 12 адресов - это область регистров специальных функций (SFR, Special Function Registers), а вторая - область регистров общего назначения (GPR, General Purpose Registers). Некоторые регистры специального назначения продублированы в обоих банках, а некоторые расположены в банке 1 отдельно. Область SFR управляет работой прибора.

Банк 0

Банк 1

00

INDF

80

INDF

01

TMR0

81

OPTION

02

PCL

82

PCL

03

STATUS

83

STATUS

04

FSR

84

FSR

05

PORTA

85

TRISA

06

PORTB

86

TRISB

07

87

08

EEDATA

88

EECON1

09

EEADR

89

EECON2

0A

PCLATCH

8A

PCLATCH

0B

INTCON

8B

INTCON

0C

8C

.

.

.

.

.

.

4F

8F

Рисунок 1.2. Память данных микроконтроллера

Обе области разбиты в свою очередь на банки 0 и 1. Банк 0 выбирается обнулением бита RP0 регистра статуса (STATUS), а установка бита RP0 в единицу осуществляет выбор банка 1. Каждый банк в микроконтроллере PIC16F84A имеет протяженность 80 байт, т.е. память данных существует только до адреса 04Fh.

Регистры с адресами 0Ch-4Fh могут использоваться как регистры общего назначения, которые представляют собой статическое ОЗУ. Адреса регистров общего назначения банка 1 отображаются на банк 0. Следовательно, когда установлен банк 1, то обращение к адресам 8Ch-CFh фактически адресует банк 0.

В регистре статуса помимо бита RP0 есть еще бит RP1, что позволяет обращаться к четырем страницам (банкам) будущих модификаций этого кристалла.

К ячейкам ОЗУ можно адресоваться прямо, используя абсолютный адрес каждого регистра, или косвенно, через регистр указатель FSR. Косвенная адресация использует текущее значение разрядов RP1:RP0 для доступа к банкам. Это относится и к EEPROM памяти данных.

Названия и адреса этих регистров стандартны (неизменны) и манипулировать ими (назначать свои), в отличие от регистров общего назначения, нельзя. А раз это так, то единственное, что можно с ними сделать, так это только изменить их содержимое, т.е. произвести те или иные манипуляции с их битами (установить те или иные из них их в 0 или 1). В зависимости от этих манипуляций, электронная “начинка” микроконтроллера приобретает свойства, обеспечивающие функционирование программы (а значит и устройства) по замыслу программиста.

Некоторые регистры SFR дублируются (отображаются) в обеих банках (см. рисунок 1.2). Работа с большей частью регистров SFR происходит в нулевом банке. При этом, содержимое регистров SFR нулевого банка дублируется (отображается) в первом банке.

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

Счетчик команд PCL и PCLATH имеет разрядность 13 бит. Младший байт счетчика (PCL) доступен для чтения и записи и находится в регистре 02h. Старший байт счетчика команд не может быть напрямую записан или считан и берется из регистра PClath (PC latch high), адрес которого 0Ah. Содержимое PCLATH передается в старший байт счетчика команд, когда он загружается новым значением.

Команды call и goto оперируют 11-разрядным адресным диапазоном, достаточным для смещения в пределах страницы программной памяти объемом 2К слов.

1.3 Особенности программирования и отладки микроконтроллеров

Анализ архитектуры микроконтроллеров PIC с точки зрения их программирования и отладки систем позволяет сделать следующие выводы:

- RISC-система команд обеспечивает высокую скорость выполнения инструкций, но вызывает затруднения и снижение производительности при программировании нетривиальных алгоритмов. Поскольку все инструкции в системе команд являются одноадресными, загрузка константы в любой из регистров требует двух инструкций. Вначале нужно загрузить константу в рабочий регистр w, а затем переслать его содержимое в нужную ячейку памяти данных (movlw k, movwf f);

- аналогично, все бинарные арифметико-логические операции приходится выполнять с привлечением рабочего регистра w;

- высокое быстродействие достигается в значительной степени за счет применения конвейера команд. Инструкции ветвления, изменяющие счетчик команд (безусловный переход, вычисляемый переход), не используют инструкцию из очереди, поэтому выполняются за два машинных цикла и снижают темп выполнения программы. Кроме того, сам анализ условий в архитектуре микроконтроллеров PIC требует выполнения “лишних” команд;

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

- аппаратный стек глубиной 8 слов не имеет признака переполнения и ограничивает вложенность процедур. За тем, чтобы он не переполнялся, программист должен следить самостоятельно;

- память данных состоит из банков, для определения текущего банка используются биты регистров STATUS (для PIC16) или BSR (для PIC17). На этапе трансляции принадлежность указанного регистра текущему активному банку проверить невозможно, для этого требуется моделирование хода выполнения программы;

- память программ разбита на страницы размером 2К слов. Для перехода на нужный адрес по командам CALL и GOTO должны быть правильно установлены биты выбора текущей страницы в регистре PCLATH. На этапе трансляции невозможно проверить корректность передачи управления во время выполнения, для этого также требуется моделирование выполнения программы;

- ограниченность ресурсов микроконтроллеров PIC делает проблематичным их программирование на языках высокого уровня.

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

- основным назначением этих средств является поддержка программирования на языке ассемблер и перенос программы на плату системы управления;

- мощные драйверы портов ввода/вывода, состояние которых однозначно описывается значениями в регистрах управления, упрощают функцию замещения электрофизических параметров прототипной БИС, поэтому такие порты можно имитировать с помощью БИС программируемой логики;

- стоимость инструментальных средств должна соответствовать невысокой стоимости одноплатного контроллера.

2. Описание схемы

Согласно задания разработка должна производится с использованием лабораторного стенда на основе микроконтроллера PIC16F84 описанного в [1]. Схема электрическая принципиальная стенда приведена в приложении А. Из задания следует, что разрабатываемая система использует только микроконтроллер и подсистему вывода из 4-х знакосинтезирующих индикаторов.

Из схемы следует, что данные с входа RB4 МК поступают в последовательную цепочку сдвиговых регистров DD4-DD7. Продвижение данных в регистрах осуществляется отрицательными синхроимпульсами поступающими на с порта RB5 МК на синхровходы регистров.

Выходы регистров подключены непосредственно к катодам семисегментных светодиодных знакосентезируюших индикаторов. Таким образом, преобразование значения выводимого на индикатор необходимо осуществлять программным путем. Так же нужно учитывать тот факт, что в системе используются индикаторы с общим анодом, по этому выходные данные должны подаваться в инверсном виде. Т.е. для того чтобы включить сегмент на выходе соответствующего регистра должен быть регистра должен быть лог. 0

3. Разработка программы

Согласно задания на индикаторы необходимо вывести последовательно числа от 0 до 255 которые не делятся на 7. Блок схема алгоритма программы приведена на рис. 3.1.

Рисунок 3.1. Блок схема алгоритма программы.

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

Вывод информации на индикаторы осуществляется в виде инверсных семисегментных кодов по этому сначала необходимо преобразовать выводимое значение в двоично-десятиченое, а потом из специальной таблицы выбрать соответствующие каждому разряду коды и вывести их на индикаторы. Данные преобразования хорошо описаны в [1]. Полный код программы на языке Assembler PIC приведен в приложении Б.

Заключение

В процессе создания курсовой работы была разработана программа для вывода на дисплей (DD4-DD7, HL1-HL-4) последовательности десятичных чисел в диапазоне 0…255, которые не делятся на 7.

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

Чернецкий, В.О. Применение микроконтроллеров в системах управления: учебное пособие - Челябинск: Издательский центр ЮУрГУ, 2016. - 95 с.

Боборыкин, А.В. Однокристальные микроЭВМ. / А.В. Боборыкин, Г.П. Липовецкий, Г.В. Литвинский и др.- М.: МИКАП, 1994. - 400с.

Гук, М. Интерфейсы ПК: справочник. / М. Гук. - СПб.: Питер Ком, 1999. - 416 с.

Цилькер, Б.Я. Организация ЭВМ и систем: учебник для вузов. / Б.Я. Цилькер, С.А. Орлов. - СПб.: Питер, 2004. - 668 с.: ил.

Сташин, В.В. Проектирование цифровых устройств на однокристальных микроконтроллерах. / В.В. Сташин, А.В. Урусов, О.Ф. Мологонцева. - М.: Энергоатомиздат, 1990. - 224 с.

Однокристальные микроконтроллеры Microchip: PIC16C8X / пер. с англ.; под ред. А.Н. Владимирова. - Рига: ORMIX, 1996. - 120 с.

Приложение А

Схема электрическая лабораторного стенда на основе микроконтроллера PIC16F84

Продолжение схемы электрической

Приложение Б

; -----------------------------------------------------------------------------------------------

; РЕГИСТРЫ СПЕЦИАЛЬНОГО НАЗНАЧЕНИЯ

OPT EQU 01h

PCL EQU 02h

STATUS EQU 03h

PORTB EQU 06h

; -----------------------------------------------------------------------------------------------

; УПРАВЛЯЮЩИЕ РЕГИСТРЫ ПОРТОВ ВВОДА-ВЫВОДА

TRISB EQU 86h

; -----------------------------------------------------------------------------------------------

; БИТЫ РЕГИСТРА STATUS

C EQU 0h ; ФЛАГ ПЕРЕНОСА ИЛИ ЗАЕМА

RP0 EQU 5h ; БИТ ВЫБОРА СТРАНИЦЫ

; -----------------------------------------------------------------------------------------------

; БИТЫ РЕГИСТРА OPTION

RBPU EQU 7h ; ПОДКЛЮЧЕНИЕ ПОДТЯГИВАЮЩИХ

; РЕЗИСТОРОВ

; -----------------------------------------------------------------------------------------------

; БИТЫ РЕГИСТРА PORTB

INDDAT EQU 4h ; БИТ ДАННЫХ ДИСПЛЕЯ

INDWR EQU 5h ; БИТ СИНХРОНИЗАЦИИ ДИСПЛЕЯ

; -----------------------------------------------------------------------------------------------

; ОЗУ

;

COD EQU 0Ch ; РАБОЧИЕ РЕГИСТРЫ

WORK1 EQU 0Dh

WORK2 EQU 0Eh

WORK3 EQU 0Fh

DIVIEQU 10h

; -----------------------------------------------------------------------------------------------

ORG 0h ;НАЧАЛО ИСПОЛНЯЕМОГО КОДА

GOTO START

ORG 4h ;ПРОГРАММА ОБРАБОТКИ ПРЕРЫВАНИЙ

RETFIE ;ОТСУТСТВУЕТ

;

; -----------------------------------------------------------------------------------------------

; ПОДПРОГРАММА ВЫВОДА НА 4-РАЗРЯДНЫЙ ДИСПЛЕЙ ЧИСЛА

; ИЗ РЕГИСТРА COD В ДЕСЯТИЧНОМ ФОРМАТЕ.

;

DISPLAY

MOVF COD,0 ;ЧИСЛО - В РАБОЧИЙ РЕГИСТР

MOVWF WORK1

;

MOVLW D'10';ВЫВОД ЦИФРЫ МЛАДШЕГО РАЗРЯДА

;ЧИСЛА, ДЛЯ ЧЕГО ТРЕБУЕТСЯ :

CALL DIV;ПОЛУЧИТЬ ЦИФРУ (ОНА РАВНА ОСТАТКУ

;ОТ ДЕЛЕНИЯ ЧИСЛА НА ОСНОВАНИЕ

;СИСТЕМЫ СЧИСЛЕНИЯ)

CALL CODE_SEG;ПОЛУЧИТЬ КОД ЦИФРЫ

;ДЛЯ 7-СЕГМЕНТНОГО ИНДИКАТОРА

CALL OUT_SEG;ВЫВЕСТИ КОД ЦИФРЫ

;

MOVLW D'10' ;ВЫВОД ОСТАЛЬНЫХ РАЗРЯДОВ

CALL DIV ;(АНАЛОГИЧНО)

CALL CODE_SEG

CALL OUT_SEG

;

MOVLW D'10'

CALL DIV

CALL CODE_SEG

CALL OUT_SEG

;

MOVLW B'11111111' ;ГАШЕНИЕ "ЛИШНЕГО" РАЗРЯДА

CALL OUT_SEG

;

RETURN

; -----------------------------------------------------------------------------------------------

; ПОДПРОГРАММА ДЕЛЕНИЯ ("СТОЛБИКОМ").

; ДЕЛИМОЕ (БЕЗ ЗНАКА) - WORK1

; ДЕЛИТЕЛЬ (БЕЗ ЗНАКА,<128) - В АККУМУЛЯТОРЕ

; ЧАСТНОЕ - WORK1

; ОСТАТОК - В АККУМУЛЯТОРЕ

;

DIV

CLRF WORK3 ;УСТАНОВКА СЧЕТЧИКА

BSF WORK3,3 ;ЦИКЛА (8, ТАК КАК ДЕЛИМОЕ

;СОДЕРЖИТ 8 БИТОВ)

CLRF WORK2 ;РЕГИСТР ДЛЯ ВЫЧИТАНИЯ ДЕЛИТЕЛЯ

;

DI00

BSF STATUS,C ;ПОЛАГАЕМ, ЧТО ОЧЕРЕДНОЙ БИТ

RLF WORK1,1 ;ЧАСТНОГО БУДЕТ РАВЕН 1

RLFWORK2,1 ;ПЕРЕНОС ОЧЕРЕДНОГО БИТА ДЕЛИМОГО

;В РЕГИСТР ДЛЯ ВЫЧИТАНИЯ ДЕЛИТЕЛЯ

SUBWF WORK2,1 ;ВЫЧИТАНИЕ ДЕЛИТЕЛЯ

BTFSC STATUS,C ;ЕСЛИ НЕ БЫЛО ЗАЕМА, ТО ОЧЕРЕДНОЙ

GOTO DI01 ;БИТ ЧАСТНОГО ДЕЙСТВИТЕЛЬНО 1

ADDWF WORK2,1 ;ЕСЛИ БЫЛ ЗАЕМ, ПРИБАВИТЬ

BCF WORK1,0 ; ОБРАТНО ДЕЛИТЕЛЬ И ОБНУЛИТЬ

; ОЧЕРЕДНОЙ БИТ ЧАСТНОГО

DI01

DECFSZ WORK3,1

GOTO DI00

;

MOVF WORK2,0;ПЕРЕСЛАТЬ ОСТАТОК

;В АККУМУЛЯТОР

RETURN

; -----------------------------------------------------------------------------------------------

; ПОДПРОГРАММА ВЫВОДА КОДА ЦИФРЫ НА ССИ.

; КОД - В АККУМУЛЯТОРЕ

;

OUT_SEG

MOVWF WORK2 ;КОД - В РАБОЧИЙ РЕГИСТР

MOVLW 8 ;СЧЕТЧИК ЦИКЛА (БУДЕТ ВЫВОДИТЬСЯ

MOVWF WORK3 ;8 БИТОВ)

OU00

BCF PORTB,INDDAT;СБРОС БИТА ДАННЫХ ДИСПЛЕЯ

;(ПОЛАГАЕМ, ЧТО ОЧЕРЕДНОЙ

;БИТ ДАННЫХ БУДЕТ РАВЕН 0)

RRF WORK2,1 ;СДВИГ КОДА

BTFSC STATUS,C ;ЕСЛИ ПЕРЕНОС, ТО УСТАНОВКА

BSF PORTB,INDDAT ;БИТА ДАННЫХ ДИСПЛЕЯ

;(ОЧЕРЕДНОЙ БИТ ДАННЫХ

;ОКАЗАЛСЯ РАВНЫМ 1)

BCF PORTB,INDWR ;ЗАПИСЬ БИТА ДАННЫХ

BSF PORTB,INDWR ;В РЕГИСТР СДВИГА ДИСПЛЕЯ

DECFSZ WORK3,1

GOTO OU00

RETURN

; -----------------------------------------------------------------------------------------------

; ПОДПРОГРАММА ПОЛУЧЕНИЯ КОДА ССИ ИЗ ЦИФРЫ.

; ВХОДНОЕ ЧИСЛО (ЦИФРА) - В АККУМУЛЯТОРЕ,

; ВЫХОДНОЙ КОД - ТАМ ЖЕ

; !! КОД ПОДПРОГРАММЫ ДОЛЖЕН РАСПОЛАГАТЬСЯ ВНУТРИ

; ОДНОГО ПАРАГРАФА ПАМЯТИ (256 СЛОВ) !!

;

CODE_SEG

ADDWF PCL,1

RETLW B'00000011' ;"0" ПОСКОЛЬКУ ИСПОЛЬЗУЮТСЯ

RETLW B'10011111' ;"1" ИНДИКАТОРЫ С ОБЩИМ АНОДОМ,

RETLW B'00100101' ;"2" В БИТАХ (B'abcdefgh'), КОТОРЫЕ

RETLW B'00001101' ;"3" СООТВЕТСТВУЮТ

RETLW B'10011001' ;"4" ВЫСВЕЧИВАЕМЫМ СЕГМЕНТАМ,

RETLW B'01001001' ;"5" ДОЛЖНЫ БЫТЬ НУЛИ

RETLW B'01000001' ;"6"

RETLW B'00011111' ;"7"

RETLW B'00000001' ;"8"

RETLW B'00001001' ;"9"

; -----------------------------------------------------------------------------------------------

; ПРОГРАММНАЯ ПАУЗА (~ 40 МСЕК).

PAUS

MOVLW D'50'

MOVWF WORK1

P00

CLRF WORK2

P01

DECFSZ WORK2,1

GOTO P01

DECFSZ WORK1,1

GOTO P00

RETURN

; -----------------------------------------------------------------------------------------------

; ПРОГРАММНАЯ ПАУЗА (~ 1 СЕК).

; ЗАДЕРЖКА 1 000 000 МАШИННЫХ ЦИКЛОВ

; ДЛИТЕЛЬНОСТЬ ЗАДЕРЖКИ 1000 МИЛЛИСЕКУНД

; ЧАСТОТА ЗАДАЮЩЕГО ГЕНЕРАТОРА 4 МГЦ

PAUSE1C

MOVLW.173

MOVWFWORK1

MOVLW .19

MOVWF WORK2

MOVLW .6

MOVWF WORK3

DECFSZ WORK1,F

GOTO $-1

DECFSZ WORK2,F

GOTO $-3

DECFSZ WORK3,F

GOTO $-5

RETURN

; -----------------------------------------------------------------------------------------------

; ОСНОВНАЯ ПРОГРАММА

;

START

CLRF COD ;НАЧАЛЬНОЕ ЗНАЧЕНИЕ ВЫВОДИМОГО

;ЧИСЛА

BSF STATUS,RP0

BCF OPT,RBPU;ПОДКЛЮЧЕНИЕ ПОДТЯГИВАЮЩИХ

;РЕЗИСТОРОВ К ВХОДАМ PORTB

MOVLW B'11001111' ;НАСТРОЙКА ПОРТА PORTB :

MOVWF TRISB ;УСТАНОВКА RB4,RB5 НА ВЫВОД

BCF STATUS,RP0

MOVLW B'11111111' ;ВЫВОД НАЧАЛЬНОГО ЗНАЧЕНИЯ

MOVWF PORTB;В PORTB (ГЛАВНОЕ, ЧТОБЫ НА RB5

;БЫЛ УСТАНОВЛЕН ВЫСОКИЙ УРОВЕНЬ -

;ЭТО НЕОБХОДИМО ДЛЯ ПРАВИЛЬНОЙ

;РАБОТЫ МИКРОСХЕМ КР1533ИР24

;В СДВИГОВОМ РЕГИСТРЕ ДИСПЛЕЯ)

MOVLW .7;НАСТРОЙКА РЕГИСТРА ДЕЛИТЕЛЯ

MOVWF DIVI;

LOOP

CALL DISPLAY ;ВЫВОД ИСХОДНОГО ЧИСЛА НА

;ДИСПЛЕЙ

CALL PAUSE1C

L0

INCFSZ COD,1 ;УВЕЛИЧИТЬ ЧИСЛО

GOTO L1;НЕТ ПЕРЕПОЛНЕНИЯ, ПРОДОЛЖАЕМ СЧЕТ

GOTO L2;ПЕРЕПОЛНЕНИЕ, ТРЕБУЕТСЯ ИНИЦИАЛИЗАЦИЯ ДЕЛИТЕЛЯ

L1

DECFSZDIVI,1

GOTO LOOP

L2

MOVLW .7;НАСТРОЙКА РЕГИСТРА ДЕЛИТЕЛЯ

MOVWF DIVI;

GOTOL0

END

Размещено на Allbest.ru

...

Подобные документы

  • Целесообразность применения МП-устройства. Архитектура микропроцессорной системы. Структурная организация БИС ВТ с изолированными шинами. Содержание и возможная направленность микроконтроллера. Обобщенная структура простого встраиваемого микроконтроллера.

    реферат [224,5 K], добавлен 28.04.2011

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

    дипломная работа [1,7 M], добавлен 07.06.2012

  • Назначение, особенности, структура и функционирование различных моделей микроконтроллеров. Средства их отладки и программирования. Способы адресации и система команд. Набор периферийных устройств. Порты ввода/вывода. Модуль формирования ШИМ-сигналов.

    курсовая работа [201,9 K], добавлен 25.12.2014

  • Архитектура микроконтроллеров AVR и PIC. Описание и структура регистров из области ввода/вывода. Внутренняя и внешняя память SRAM микроконтроллеров AVR. Особенности аналого-цифрового преобразования. Переключение в режим параллельного программирования.

    лекция [755,2 K], добавлен 28.05.2010

  • Назначение и применение микроконтроллеров - интегральных микросхем, предназначенных для управления электронными схемами. Описание способа адресации. Разработка программы, описание электрической и структурной схемы разрабатываемого микроконтроллера.

    курсовая работа [177,6 K], добавлен 30.06.2014

  • Отличительные особенности микроконтроллеров AVR семейства Mega. Характеристики процессора, подсистемы ввода-вывода. Архитектура ядра и организация памяти. Регистры общего назначения. Алгоритмы моделирования команд. Реализация модели внешнего устройства.

    курсовая работа [3,7 M], добавлен 24.06.2013

  • Роль микроконтроллеров в современных системах управления. Проектирование схемы на основе микроконтроллера Aduc812, которая будет контролировать работу бытовой стиральной машины. Элементная база, описание и функционирование программы, ее листинг.

    курсовая работа [101,3 K], добавлен 23.12.2012

  • Создание приемника команд RC5 для персонального компьютера на основе микроконтроллера ATmega8. Особенности написания файла прошивки и симулирование устройства. Порядок выполнения сборки собственной схемы и характеристика полученного микроконтроллера.

    курсовая работа [2,0 M], добавлен 24.11.2013

  • Создание рабочего модуля аналого-цифрового преобразователя с минимальным количеством микросхем на основе микроконтроллера ATmega8L. Описание блок-схемы АЦП. Схема запуска преобразования. Программа микроконтроллера в среде программирования CodeVision.

    курсовая работа [1,2 M], добавлен 04.10.2013

  • Разработка проекта аппаратной реализации сетевой игры "Пинг Понг", рассчитанной на двух игроков на базе микроконтроллеров AVR АТMEGA 128. Выполнение прошивки микроконтроллера с помощью пользовательского интерфейса среды программирования CodeVisionAVR.

    курсовая работа [1,2 M], добавлен 25.04.2012

  • Особенности применения светодиодной индикации в микроконтроллерных системах. Характеристика основных приемов программирования универсальных портов ввода-вывода микроконтроллеров AVR. Этапы проектирования елочной гирлянды с микроконтроллерным управлением.

    лабораторная работа [291,7 K], добавлен 17.11.2012

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

    курсовая работа [621,5 K], добавлен 24.09.2010

  • Идея создания системы удаленного управления и контроля устройств. Разработка электрической принципиальной и структурной схемы. Обоснование выбора микроконтроллера и чипа ENC28J60. Обоснование выбора и отладки среды моделирования, программы и компилятора.

    курсовая работа [3,5 M], добавлен 26.08.2014

  • Описание микроконтроллера и периферийных устройств. Распределение битов регистра. Выбор элементной базы. Основные части и алгоритм работы основной программы. Архитектура микроконтроллера AduC812 и построение на его основе бортового компьютера автомобиля.

    курсовая работа [210,2 K], добавлен 23.12.2012

  • Интегрированная система, концепция и особенности интеллектуальных зданий. Принципы построения системы управления зданием. Принципы управления распределением энергоресурсов. Отопление с централизованным управлением, управление отопительными приборами.

    реферат [83,5 K], добавлен 05.08.2010

  • Моделирование заданных команд, внутренних функциональных устройств и объектов ввода-вывода микроконтроллера. Разработка программа для демонстрации совместной работы микроконтроллера и моделируемого внешнего устройства. Компоненты архитектуры ATMega128.

    курсовая работа [3,6 M], добавлен 12.06.2013

  • Структура и основные элементы микроконтроллера. Разрядность и система команд процессора. Методы представления информации. Память и её типы. Режимы работы портов электронного устройства. Многофункциональность выводов микро-ЭВМ. Семейства микроконтроллеров.

    презентация [1,2 M], добавлен 16.12.2011

  • Общие сведения о микроконтроллерах AVR, их основные параметры. Функции термометра, реализованного на микроконтроллере AVR. Порядок программирования микроконтроллера с использованием программы на языке С. Передача данных сом-порт, вывод значений на ЖКИ.

    курсовая работа [35,8 K], добавлен 08.04.2010

  • Особенности использования микроконтроллеров в различных изделиях. Создание максимально гибко настраиваемого контроллера температуры и влажности. Создание физической модели контроллера. Реализация удаленного управления микроконтроллера через сеть Wi-Fi.

    курсовая работа [3,8 M], добавлен 04.02.2021

  • Описание и принцип действия программы-отладчика микроконтроллера I8051 (К1816ВЕ51), предназначенной для программирования микроконтроллера на уровне языка ассемблера. Компиляция программы в объектный код и специфика тестирования разработанной программы.

    реферат [21,1 K], добавлен 04.12.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.