Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
Карта сайта | Пишите нам | В избранное | eng     

Внимание! У нас изменились номера телефонов. Звоните:
(495) 638-88-00, (499) 940-95-75, факс (499) 735-04-91;
+7(909) 638-88-00 и +7(903) 530-10-01 (Билайн).
       о фирме        электроника     обратная связь

Микроэлектронные проекты. Владислав Мирский. Калькулятор.


Калькулятор может выполнять следующие математические операции: знаковое сложение и вычитание с плавающей запятой; знаковое умножение и деление с плавающей запятой; знаковое возведение в степень и нахождение обратного числа (1/Х) с плавающей запятой. Вводимые числа могут содержать не более четырех цифр, т.е. максимальное вводимое число по модулю равно |9999|, а минимальное по модулю равно |0,999|. Максимальный результат по модулю равен |99999999|.
Вводимые числа и результат представлены в следующем формате: REG*10EXP. В регистре REG находится непосредственно шестнадцатеричный код числа с учетом знака. В регистре EXP – показатель степени с учетом знака (-127<>EXP<127).>

Приципиальная электрическая схема


Для индикации используется 10-разрядный жк-индикатор с контроллером HT1611. Питание данного индикатора подается на вторую слева (GND) и на крайнюю правую клеммы (+1,5В). Вывод HK (пятая клемма) следует соединить с общим проводом. Для управления индикатором используется интерфейс SPI, поэтому вход данных индикатора DI (4 клемма) соединен через резистор R6 с выходом данных SPI, а тактовый вход CLK (3 клемма) через резистор R5, с тактовым выходом SPI. Также следует соединить общие провода индикатора и микроконтроллера. Более подробную информацию о данном индикаторе, а также и заказать его, вы можете на сайте фирмы «Телесистемы» - www.telesys.ru.
Клавиатура реализована следующим образом: выводы RB4-RB7 подтянуты к Vdd, т.е. при чтении порта возвращают логическую единицу. Четыре вывода из RA0-RA5 также находятся в высоком состоянии, а один – в низком, причем этот вывод периодически меняется. Если какая-либо из кнопок нажата, то при логическом нуле на соответствующем выводе порта А, ноль будет и на одном из выводов порта В. Таким образом, зная какие из выводов портов А и В в данный момент находятся в низком состоянии, можно определить, какая кнопка нажата.

Блок-схема программы



Рассмотрим алгоритм работы данного устройства. В начале программы подготавливаются все используемые регистры, и выводится ноль на индикацию. Затем, начинается описанное выше, сканирование клавиатуры. После нажатия кнопки, определяется, что было нажато – цифра или команда. При нажатии цифры, следует проверка на переполнение водимого числа (не больше 4-х цифр) и уменьшение его порядка, если до этого была нажата точка. Затем формируются двоично-десятичные коды для преобразования числа в двоичный код, и отдельно – для индикации. После этого вводимое число появляется на индикаторе. Если была нажата математическая команда, то ее код сохраняется в специальном регистре, и формируется двоичный код первого числа, который заносится в регистр первого числа. Затем подготавливаются регистры для ввода второго числа, и микроконтроллер снова переходит к сканированию клавиатуры. При нажатии точки, устанавливается флаг «точка», при наличии которого, происходит декрементирование порядка вводимого числа с каждой новой нажатой цифрой. Если же была нажата команда +/-, то происходит инвертирование знака вводимого числа. При нажатии кнопки «равно», формируется двоичный код второго числа, который заносится в регистр второго числа. Затем считывается код нажатой математической операции, и происходит ее выполнение. После этого результат оптимизируется и выводится на индикатор.

На сайте www.picro.narod.ru вы можете взять файл calc.rar, где находятся: calc.hex - файл-прошивка для микроконтроллера; calc.asm - файл программы MpLab с подробнейшими комментариями; bc_bcd.inc, bcd_bc.inc, degree.inc, divf.inc, minf.inc, multf.inc, sumf.inc - файлы с математическими подпрограммами; calc.sch и calc.pcb - соответственно принципиальная схема и печатная плата в формате ACCEL EDA. Также на этом сайте в разделе ПРОГРАММЫ, вы можете найти алгоритмы и описания математических подпрограмм, используемых в данном проекте.

Со всеми вопросами и с пожеланиями обращайтесь по адресу: picro@list.ru.

автор пректа: Владислав Мирский

 Разместите Ваш проект у нас на сайте и его смогут увидеть сотни посетителей в день. Ваши проекты присылайте вебмастеру.
Правила оформления проектов
  1. Необходимо наличие схемы, описания устройства и т.д. (для отдельных проектов - драйвера, программное обеспечение и их описание)
  2. Схемы и другие картинки должны быть в форматах .jpg или.gif. К ним обязательно должны идти подписи, поясняющие, что на данной схеме (картинке) изображено.
  3. Описание устройства - в форматах .doc, .txt или .html.
  4. Проект не должен нарушать чьих-либо авторских прав.
Ваши проекты присылайте вебмастеру
Приглашаем специалистов
В России кризис и увольнения персонала, а в Телесистемах, как обычно, не так как у всех: мы расширяем деятельность, набираем новых сотрудников и ищем новых партнеров.
Изделия для разработчиков
Программатор «PICPROG» «PICPROG» - универсальный промышленный программатор.
Копировщик PIC16x8x Копировщик PIC16x8x - тиражирование в автономном режиме.
Наши телефоны: (495) 638-88-00, (499) 940-95-75, факс (499) 735-04-91, мобильные: (903) 530-10-01 и (909) 638-88-00 (БиЛайн).
E-mail:

Copyright © ООО "Телесистемы", 1997 — 2024    Копируйте на здоровье! За ссылку на www.telesys.ru мы вам будем очень признательны.

Rambler's Top100