Среда, 28 ноября 2012 04:44

Графический индикатор МЭЛТ 128х64. Вывод на индикацию 9 разрядов частотомера с гашением незначащих нулей. Featured

Written by
Rate this item
(0 votes)

alt  Была просьба пояснить, как вывести на графическом индикаторе в определенном месте (разряде) изменяющиеся числа на ассемблере.  Предлагаю рассмотреть мою программу для 9 разрядного частотомера с гашением  незначащих нулей.

Программа учебная или  заготовка. Компилироваться не будет. Для запуска надо обратить внимания на комментарии ограниченные строками  ;&&&.. и дописать что нужно в конкретном случае.

 

 

 

 

В программе оставлен мой подход к управлению индикатором.

Добавлено:

- знакогенератор цифр  0…9, букв Г, ц. 

- подпрограмма гашения незначащих нулей (её можно удалить, при необходимости)

- подпрограмма вывода на индикацию 9 разрядов в формате

000.000.000 Гц  (масштаб цифр определен в размерах одной страницы)

 

Краткий алгоритм программы.

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

Затем данные преобразуются в двоично-десятичный вид.

Указываются строка и столб, откуда необходимо начинать индикацию.

В подпрограмме гашения незначащих нулей определяется, начиная со старшего разряда, равно ли число нулю, если равно, то в регистр LED данного разряда записывается число 0хА(.10). Как только число в разряде не равно нулю, то переходим на индикацию (format).

Рассмотрим для примера вывод 8 разряда.

;-----------------------------------------------------------------------------
; вывод разрядов в формате 000.000.000 Гц    (800 мкс)
;-----------------------------------------------------------------------------              
format     movf    LED8,w
           call    vib_z         ; выбрать цифру записанную в LED8
           call    a_0_2         ; вывести пробел на 2 столбца
           movf    LED7,w
           call    vib_z

В регистре LED8 после 2_10 преобразования находится число от 0…9.

Если ноль, после обработки незначащего нуля (старший разряд) будет записано .10.

Записываем значение LED8 в аккумулятор (W) и переходим  в подпрограмму вычисляемого перехода vib_z .        

;-----------------------------------------------------------------------------
; выбор цифры в данном разряде, начиная со старшего
;-----------------------------------------------------------------------------
vib_z         
           addwf   PCL,f 
           goto    a_0           ; подпрограммы вывода цифр от 0 до 9
           goto    a_1
           goto    a_2
           goto    a_3
           goto    a_4
           goto    a_5
           goto    a_6
           goto    a_7
           goto    a_8
           goto    a_9
           goto    a_0_5         ;пробел на 5 столбцов в случае гашения нулей (0A)

В соответствии, с числом записанном в W переходим на подпрограмму индикации данного числа. Если незначащий нуль, то делаем пробел на 5 столбцов и т.д. После окончания вывода цифр выводятся буквы «Гц».

Далее по алгоритму разрабатываемой программы выполняются какие то задачи и производится новая загрузка данных для индикации. Смену показаний на индикаторе лучше производить раз в секунду. Удобно для восприятия.

 

Вопросы на форуме.

 

Ссылка для скачивания доступна только авторизованным пользователям сайта !

 

 

Read 3828 times Last modified on Среда, 03 сентября 2014 11:44

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

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