Реализация десятичного калькулятора на PIC16F874

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

?рерывание при изменении значения на выводе. // Также используется при программировании кристалла.Порт СRС0/T1OSO/T1CKII/OSTПорт ввода / вывода. // Выход генератора TMR1 // Вход внешней тактовой частотыRС1/T1OSI/CCP2I/OSTПорт ввода / вывода. // Вход генератора TMR1 // Модуль CCP2 (защелкивание2 - вход, сравнение2 - выход, ШИМ2 - выход)RС2/CCP1I/OSTПорт ввода / вывода. // Модуль CCP1 (защелкивание1-вход, сравнение1 - выход, ШИМ1 - выход)RС3/SCK/SCLI/OSTПорт ввода / вывода // Тактовая частота для режимов SPI, I2CRС4/SDI/SDAI/OSTПорт ввода / вывода // Вход данных в режиме SPI // Вход/выход данных в режиме I2CRС5/SDOI/OSTПорт ввода / вывода // Выход данных в режиме SPIRС6/TX/CKI/OSTПорт ввода / вывода // В режиме SCI (асинхронном) выход данных // В режиме SCI (синхронном) тактовая частотаRС7/RX/DTПорт ввода / вывода // В режиме SCI (асинхронном) вход данных // В режиме SCI (синхронном) вход / выход данныхПорт DRD [0:7]/PSP [0:7]I/OST/TTLДвунаправленный порт (RD0..RD7) ввода / вывода // Параллельный порт-защелка (PSP0..PSP7) для подключения к микропроцессорной шине в качестве сопроцессораПорт ЕE0 //RD/AN5, E1 //WR/AN6, E2 //CS/AN7I/OST/TTLДвунаправленный порт ввода / вывода // Сигнал чтения в режиме микропроцессорной шины // Аналоговый вход каналаВыводы кристалла, не входящие в порты/MCLR/VppI/PSTНизкий уровень на этом входе генерирует сигнал сброса для контроллера. Активный низкий.OSC1/CLKINICMOSДля подключения кварца или вход внешней тактовой частотыOSC2/CLKOUTOГенератор, выход тактовой частоты в режиме RC генератора, в остальных случаях - для подключения кварцевого резонатораVddР-Напряжение питанияVssР-Общий(земля)Условные обозначения: I - только вход, O - только выход, I/O - вход / выход, P - питание, TTL - уровень ТТЛ, ST - вход триггера Шмитта.

Порт А - это порт разрядностью 6 бит, соответствующие выводы кристалла RA [5:0]. Выводы RA [3:0], RA5 двунаправленные. Относящийся к порту А управляющий регистр TRISA расположен по адресу 85h.

Порт В-это двунаправленный порт разрядностью 8 бит (адрес регистра 06h). Относящийся к порту В управляющий регистр TRISB расположен по адресу 86h.

Порт С - это двунаправленный порт разрядностью восемь бит (адрес регистра 07h). Относящийся к порту C управляющий регистр TRISC расположен по адресу 87h.

Порт D - это двунаправленный порт разрядностью восемь бит (адрес регистра 08h). Относящийся к порту D управляющий регистр TRISD расположен по адресу 88h.

Порт Е имеет три линии (RE0, RE1, RE2), которые могут быть настроены как линии ввода / вывода (адрес регистра 09h. Относящийся к порту E управляющий регистр TRISE (рис. 6) расположен по адресу 89h.

 

76543210IBFOBFIBOVPSPMODETRISE2TRISE1TRIS0 - входной буфер заполнен;

OBF - выходной буфер заполнен;

IBOV - входной буфер переполнен;

PSPMODE - выбирает режим для порта D и порта E;

TRISE [2:0] - биты управления направлением на выводах RE [2:0] соответственно

Аналого-цифровой преобразователь (АЦП)

Модуль АЦП (рис. 7) содержит восемь аналоговых каналов, мультиплексируемых на одну схему выборки / хранения и далее на АЦП. Опорное напряжение поступает извне через вывод RA3/AIN3/Vref или формируется внутри кристалла из напряжения питания Vdd.

Таймерная система

В семействе PIC16 находятся 3 таймера TMR0, TMR1, TMR2.

Таймер TMR1. Таймер 1 - это 16-битовый таймер / счетчик (рис. 7), который имеет два 8-битовых регистра (TMR1H и TMR1L). Эти регистры доступны для чтения и записи. Таймер 1 инкрементируется от 0000h до FFFFh, после чего опять переходит в 0000 h.

 

 

2. Разработка системы

 

.1 Параметры устройства

 

Разрабатываемая система должна обеспечить:

ввод и редактирование входных значений;

выполнение операции в зависимости от нажатой кнопки (+, -, =, +\-, С);

индикацию результата;

Для выполнения данных функций ОМЭВМ должна обладать следующими ресурсами:

встроенный АЦП;

8 выходных линий для подключения ЖК индикатора при динамической индикации;

8 выходных линии для подключения матричной клавиатуры;

система таймеров;F874 удовлетворяет всем требованиям данной задачи

 

.2 Обоснование выбранных устройств. Организация диалога с пользователем

 

В качестве индикатора устройства используются широко распространенный 10-разрядный жк-индикатор. Для управления

На лицевой панели устройства находятся 10-разрядный жк-индикатор, предназначенный для вывода результатов вычислений, кнопки ввода, редактирования и вычислений заданных арифметических операций.

 

Лицевая панель устройства

 

Тип и назначение каждой из кнопок:

Кнопка 0 - 9 предназначен для записи чисел в регистры REG1 и REG2 и вывода на индикацию.

Кнопка С предназначена для очистки регистров (REG1, REG2, REZ) и индикации.

Кнопка + предназначена для записи значения + в регистр операций OPER.

Кнопка - предназначена для записи значения - в регистр операций OPER.

Кнопка +\- предназначена для изменения знакового разряда числа.

Кнопка = предназначена для подсчета результатов в зависимости от выполняемой операции и вывод на индикацию индицируемого регистра SPI.

калькулятор программа микроконтроллер десятичный

2.3 Схема устройства

 

Для индикации используется 10-разрядный жк-индикатор. Для управления индикатором используется интерфейс SPI.

Для управления устройством используется матричная клавиатура (используемые регистры: A0 - A5, B4 - B7). Она реализована следующим образом: выводы RB4-RB7 подтянуты к Vdd, т.е. при чтении порта возвращают логическую единицу. Четыре вывода из RA0-RA3 та?/p>