Авторизация


...

Кто на сайте?

Сейчас 140 гостей и 3 зарегистрированных пользователей на сайте

  • heydeeste
  • inmiernikwesto

Статистика

-Посетители : 22989
-Материалы : 209

Пользователь сайта продает...

  DUB-E100

Пользователь сайта покупает...

Библиотека для динамической индикации (АСМ)

Автор: Alex Просмотров: 4339

Например. Если Вы хотите сделать для общих выводов активный уровень - лог.1, то закоментируйте первую строку. Если он будет лог 0, то снимите знак коментария.
Так-же и для сегментных выводов (2-я строчка).
Этими строками можно с лёгкостью поменять тип индикатора, например с ОА на ОК, или наоборот. Так-же можно быстро проинвертировать выводы если используются ключи (транзисторы) как на общих выводах, так и на сегментных.

Далее.

;==================================================================================================
; Назначение выводов
;==================================================================================================
.....
.....

Думаю, тут всё понятно. В этом участке кода настраиваются каждый вывод индикатора под конкретный пин МК.
ind_1 - ind_8 это пины для общих выводов индикаторов.
ind_A - ind_P это пины для сегментных выводов индикаторов, от A до P.
TRIS'ы так-же должны соответствовать используемым пинам.

Далее. В блоке

;==================================================================================================
; Объявление переменных
;==================================================================================================
.....
.....

Необходимо закоментировать неиспользуемые переменные led_x.
Т.е., если у Вас используется 4 индикатора, то закоментируем led_5 - led_8.
Пример:

		Led1       
		Led2
		Led3            
		Led4
;			Led5       
;			Led6         
;			Led7            
;			Led8

Использование процедур библиотеки

IND_INIT
Инициализирует пины.
Настраивает необходимые для индикатора выводы МК на выход и устанавливает на них соотв. уровни.
Вызывается, как не сложно догадаться, в начале программы.

IND_OFF
Гашение индикаторов.
Выставляет на пинах, соответствующих общим выводам индикаторов, необходимые для гашения уровни.
Вызывается перед вызовом процедуры IND_OUT.
Так-же, процедуру можно использовать для изменения яркости индикатора, привязав её к таймеру гашения. Пример реализации яркости в архиве.

IND_OUT
Зажигает очередной индикатор и выводит на его сегменты соответствующее значение.
Вызывается в переодично-повторяющемся месте программы, например оброботчике прерывания таймера.
Процедура не гасит предыдущий индикатор ! По этому, перед её вызовом, необходимо вызвать IND_OFF. Если этого не сделать, библиотека просто зажгёт все индикаторы и на них будет "абракадабра".

Использование переменных библиотеки

Led1-Ledx Где x - количество индикаторов
Переменные текущих значений индикаторов. В них записывается то, что нужно вывести на индикаторы.
Например, для вывода 1234, в led_1 записываем .1, в led-2 - .2, и т.д..

movlw	.1	; На первый индикатор
movwf   Led1	; Цифру 1
movlw	.2	; На второй индикатор
movwf   Led2	; Цифру 2
movlw	.3	; На третий индикатор
movwf   Led3	; Цифру 3
movlw	.4	; На четвёртый индикатор
movwf   Led4	; Цифру 4


Для создания собственных символов необходимо в таблицу добавить свои значения.
Таблица:

;************************************************************************************************** 
; Таблица значений сегментов
;************************************************************************************************** 
SEGTAB	addwf       PCL,F       ;
		retlw       b'00111111' ; ..FEDCBA = 0
		retlw       b'00000110' ; .....CB. = 1
		retlw       b'01011011' ; .G.ED.BA = 2
		retlw       b'01001111' ; .G..DCBA = 3
		retlw       b'01100110' ; .GF..CB. = 4
		retlw       b'01101101' ; .GF.DC.A = 5 or S
		retlw       b'01111101' ; .GFEDC.A = 6
		retlw       b'00000111' ; .....CBA = 7
		retlw       b'01111111' ; .GFEDCBA = 8
		retlw       b'01101111' ; .GF.DCBA = 9
		retlw       b'00000000' ; ........ = 10 пробел
		retlw       b'01000000' ; .G...... = 11 символ "минус"

Как видно, по мимо цифр 0-9, добавлено ещё 2 символа - пробел и минус. Коды их соответсвуют порядковому номеру в таблице (10,11).

ind_p
Переменная для вывода точек на индикаторы.
Значение каждого бита в переменной является условием вывода точки на индикатор, соответствующий порядковому номеру бита.
Т.е., если нужно зажечь точку на 3-ем индикаторе, необходимо установть 2-ой бит в этой переменной. Биты адресуются с 0-ого по 7-ой, по этому и разница на еденицу. Это для тех, кто не понял :)

bsf		ind_p, 1 ; Точка на 2-ом индикаторе

Удачного программирования !

Обсудить статью  и скачать материал на форуме

Случайные статьи....

Prev Next

Получение синусоидального сигнала с ЦАП микроконтроллера.

14-01-2016 Николай Викторов

Получение синусоидального сигнала с ЦАП микроконтроллера.

В некоторых микроконтроллерах есть встроенные модули DAC(цифро-аналоговый преобразователь) в частности PIC12F1822  о котором далее пойдет речь  и хотя в данном МК разрядность модуля не велика, но все равно можно получить относительно неплохой синусоидальный сигнал. Вообще сам метод применим и к...

Доработка логического анализатора цифровых сигналов LOGIC-U

11-09-2011 Александр Милевский

Доработка логического анализатора цифровых сигналов LOGIC-U

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

Варианты записи конфигурационных битов

30-07-2011 Анатолий

Варианты записи конфигурационных битов

Для выбора различных режимов работы микроконтроллера используются биты конфигурации. В микроконтроллерах среднего семейства биты конфигурации располагаются в регистре по адресу 2007h. Регистр этот несколько необычен, так как имеет в своем составе не 8, а 14 битов. Обращение к нему возможно...

Доводчик стёкол автомобиля на PIC-контроллере

22-03-2011 wws63

Доводчик стёкол автомобиля на PIC-контроллере

    В продаже сейчас можно встретить устройства импортного производства, названные фирмами-производителями - « Модули движения стёкол автомобиля в одном направлении». Проще говоря, эти устройства представляют собой автомат поочерёдного подъёма стёкол автомобиля при постановке последнего в режим «охраны».  


Все права принадлежат ChipMK.ru. При копировании материала ссылка обязательна. 2011-2017 © ChipMK.ru

ChipMk.ru Яндекс.Метрика
PRCY.ru