Рефераты. Разработка микропроцессорной системы "Автомобильные часы-термометр-вольтметр" на базе микроконтроллера

89 - многократно (до 10000 раз) перепрограммируемая ПЗУ на кристалле, электрически стираемая.

AT- название фирмы изготовителя ATMEL #"#">DS - Dallas, N- Intel, P-Philips...

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

Данный микроконтроллер программируется стандартным программатором, поддерживающим программирование этого типа микроконтроллеров (например, программатор UNIPRO).


Рис.3. Общий вид выводов AT89C2051


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


Для ассемблирования используется макpоассемблеp MPASM, он содеpжит все необходимые нам возможности. MPASM входит в пакет программ Microchip MPLAB фирмы Microchip Technology.

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

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

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

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

* COD

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

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

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


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


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

После установки флага "Одна секунда" проверяется бортовое напряжение. Если присутствует его отклонение от установленного, то включается звуковой сигнал. Если отклонения нет, то измеренные значения перекодируются для индикации в двоично-десятичный код.

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

Если кнопка "Режим" нажата, то на единицу увеличивается регистр режима. По значению регистра режима из таблицы выбирается режим индикации (рис. 5).

При индикации напряжения ранее перекодируемые значения напряжения переписываются в регистры индикации.

При индикации часов проверяется, был ли ранее введен курсор в поле индикатора. Если значение регистра курсора — ненулевое, то выполняется установка часов. Если при этом нажата кнопка "Установка", то к выбранному разряду прибавляется единица, а регистры индикации заполняются новыми значениями. Если установка отсутствует, то регистры индикации заполняются значениями текущего времени.



Рис. 4. Алгоритм работы автомобильных часов (начало)


Рис. 5. Алгоритм работы автомобильных часов (продолжение)


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

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

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

Прерывание организовано обычным образом: по переполнению таймера TMR0. При частоте кварцевого резонатора 32 768 Гц коэффициент деления предделителя составляет 32, что вместе с коэффициентом деления таймера, равным 256, и циклом, равным 4, дает одну секунду (4x32x256 = 32 768).


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

схемы


Микросхема КР1820ВГ1 [1] используется для управления 36-сегментным ЖКИ в режиме 3-уровневого мультиплексирования. Микросхема изготавливается по КМОП-технологии и выпускается в 20-выводном пластмассовом DIP-корпусе. Микросхема содержит встроенный тактовый генератор, резистивный делитель напряжения и делители частоты, с помощью которых формируются сигналы управления строками (общими электродами) и столбцами (сегментными электродами) ЖКИ в режиме 3-уровневого мультиплексирования. Одна микросхема имеет три выхода управления строками и 12 выходов управления столбцами. Предусмотрена возможность каскадирования схем, что позволяет использавать их для управления мультиплексным ЖКИ с числом сегментов более 36. Микросхема не требует никаких навесных компонентов и работает в диапазоне напряжения питания от 3 до 6 вольт. Назначение выводов микросхемы КР1820ВГ1 показано в таблице 1.


Таблица 1. Назначение выводов микросхемы КР1820ВГ1.

Вывод

Обозначение

Тип

Назначение

1...3

COB1, COC3, COB3

Выход

Управление столбцами В1, С3, В3

4

CS

Вход

Выбор кристалла

5

Ucc

-

Напряжение источника питания

6

GND

-

Общий

7

D

Вход

Данные

8...13

COA2, COB4, COB2, COA1, COC2, COC4

Выход

Управление столбцами A2, B4, B2, A1, C2, C4

14

C

Вход

Тактовый сигнал С

15

COA/G

Выход

Управление сторокой А (вход генератора G)

16

COC/G

Выход

Управление сторокой С (выход генератора G)

17

COB

Выход

Управление строкой В

18...20

COC1, COA3, COA4

Выход

Управление столбцами B1, A3, A4


Микросхема КР1820ВГ1 имеет четыре режима работы: одиночный, старший, младший и тестовый. В одиночном режиме одна микросхема управляет 36-сегментным ЖКИ, обеспечивая полную синхронизацию его работы. Старший и младний режимы предназначены для организации управления ЖКИ с числом сегментов более 36, тестовый режим – для контроля качества микросхем в процессе изготовления. Данные вводятся в микросхему в последовательном коде по входу D с синхронизацией записи фронтом тактовых импульсов по входу C (рис. 6).

Рис. 6. Загрузка микросхемы КР1820ВГ1 по последовательной шине


Код записываемых данных определяется конкретной схемой подключения шин управления строками и столбцами к сегментам ЖКИ, а также конфигурацией ЖКИ.


Рис.7. Конфигурация сегментов ЖКИ.


На рис. 7 показан пример конфигурации ЖКИ, а в таблице 2 показан порядок следования битов в кодовой посылке для этого варианта подключения такого ЖКИ.


Таблица 2. Порядок следования битов в кодовой посылке

Бит

Вывод

Сегмент ЖКИ


Бит

Вывод

Сегмент ЖКИ

D0

COA1, COC/G

H1


D20

COB3, COC/G

D3

D1

COB1, COB

G1


D21

COA3,COB

C3

D2

COC1,COA/G

F1


D22

COA3, COA/G

B3

D3

COC1, COB

E1


D23

COB3, COA/G

A3

D4

COB1, COC/G

D1


D24

COA4, COC/G

H4

D5

COA1,COB

C1


D25

COB4, COB

G4

D6

COA1, COA/G

B1


D26

COC4,COA/G

F4

D7

COB1, COA/G

A1


D27

COC4, COB

E4

D8

COA2, COC/G

H2


D28

COB4, COC/G

D4

D9

COB2, COB

G2


D29

COA4,COB

C4

D10

COC2,COA/G

F2


D30

COA4, COA/G

B4

D11

COC2, COB

E2


D31

COB4, COA/G

A4

D12

COB2, COC/G

D2


D32

COC1, COC/G

P1

D13

COA2,COB

C2


D33

COC2, COC/G

P2

D14

COA2, COA/G

B2


D34

COC3, COC/G

P3

D15

COB2, COA/G

A2


D35

COC4, COC/G

P4

D16

COA3, COC/G

H3


D36

Не используется

-

D17

COB3, COB

G3


D37

Q6

-

D18

COC3,COA/G

F3


D38

Q7

-

D19

COC3, COB

E3


D39

Q8

-

Страницы: 1, 2, 3, 4, 5, 6



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.