Главная » Статьи » Proton PICBasic |
Применение динамической индикации. Пример 1 - Управление 8 +nРазр.
В процессе изучения языка Proton Pic Basic обнаружилось то, что вывод информации пользователю о контролируемых и измеряемых величинах проще всего реализовать на ЖК индикаторе. Пара строк - вывод обеспечен. Другое дело обстоит с применением ССИ. Разбирая чужие примеры организации динамической индикации (ДИ), я пришел к выводу, что новичкам порой сложно понять - каким образом организован процесс вывода информации на экран. Потратив на это дело определенное количество времени и не разобравшись толком, пришлось поразмыслить и написать наиболее простой вариант, доступный для понимания большинству. Подробно описывать процесс динамической индикации описывать не буду, упомяну лишь следующие моменты: 1) В Proton подключение сегментов строго последовательное Px.0 – A, Px.1 – B, Px.2 – C, Px.3 – D, Px.4 – E, Px.5 – F, Px.6 – G, Px.7 – Dp 2) В портX сначала выводится заранее выделенная и подготовленная цифра (в данном случае первой цифрой может быть и крайняя слева и крайняя справа, но общепринятой все же является та, которая относится к младшему разряду индикатора, т. е. крайняя справа ) 3) Зажигается соответствующий цифре разряд ССИ на время 2мС (экспериментируйте) 4) Разряд гасится 5) Далее аналогично выводятся оставшиеся цифры и зажигаются соответствующие им разряды Организовать ДИ можно написав подпрограмму цикла для зажигания и гашения разрядов, но я выше оговорился что покажу самый простой и доступный способ. Итак, привожу пример банального счетчика с отображением процесса счета на ССИ: Собственно сам код Device 16F876A '----------------------------Предустановки---------------------------------------------------------- Config CP_OFF, DEBUG_OFF, WRT_OFF, CPD_OFF, LVP_OFF, BODEN_OFF, PWRTE_ON, WDT_OFF, HS_OSC Xtal 4 '----------------------------------Настройки портов------------------------------------------------- PortB_Pullups = off 'Выключить подтяжку резисторов к порту PORTB TRISA = %11111111 TRISB = %00000000 TRISC = %00000000 PORTB = %00000000 PORTC = %00000000 '-----------------------------------Конфигурация переменных----------------------------------------- Dim Ind As Word 'Переменная для вывода индицируемого значения величин в Portb Dim n As Byte ' Dim i As Word 'Переменная для счетчика цифр Dim j As Byte 'Переменная для организации задержки счета Symbol R1 PORTC.0 'разряд индикатора Symbol R2 PORTC.1 'разряд индикатора Symbol R3 PORTC.2 'разряд индикатора Symbol R4 PORTC.3 'разряд индикатора '-------------------------------------Главная программа--------------------------------------------- Start: For i = 0 To 9999 Step 1 For j = 0 To 15 Step 1 DelayMS 1 Ind = i GoSub DI Next j Next i GoTo Start End ;------------------------------Подпрограмма динамической индикации---------------------------------- DI: n = Ind Dig 0 'Выделяем из числа единицы GoSub Convert 'и отправляем на табличную конвертацию R4 = 1 'Зажигаем 1-й справа разряд индикатора DelayMS 2 'Задержка для отображения цифры R4 = 0 'Гасим разряд ' n = Ind Dig 1 'Выделяем из числа десятки GoSub Convert 'и отправляем на табличную конвертацию R3 = 1 'Зажигаем 2-й справа разряд индикатора DelayMS 2 'Задержка для отображения цифры R3 = 0 'Гасим разряд ' n = Ind Dig 2 'Выделяем из числа сотни GoSub Convert 'и отправляем на табличную конвертацию R2 = 1 'Зажигаем 3-й справа разряд индикатора DelayMS 2 'Задержка для отображения цифры R2 = 0 'Гасим разряд ' n = Ind Dig 3 'Выделяем из числа тысячи GoSub Convert 'и отправляем на табличную конвертацию R1 = 1 'Зажигаем 4-й справа разряд индикатора DelayMS 2 'Задержка для отображения цифры R1 = 0 'Гасим разряд Return '--------------------------------------------------------------------------------------------------- Convert: LookUpL n, [192,249,164,176,153,146,130,248,128,144], PORTB Return Замечания по коду: Вместо строк Код R4 = 1 DelayMS 2 R4 = 0 Можно применить всего одну: Код PulsOut R4 , 200 ' Где 200 - время присутствия импульса на ноге. Расчетное время равно 200*10uS=2mS В данном случае размер исполняемого кода для одного разряда увеличится на три программных слова Прикрепления: как прикрепить проект? В следующем примере рассмотрим сдвиговый регистр 74HC595 Похожие материалы: Применение динамической индикации. Пример 2 - Управление 3 +nРазр, Применение динамической индикации. Пример 3 - Управление по трем проводам, Применение динамической индикации. Пример 4 - Сдвиговый регистр 74НС164, Статическая индикация. Пример 5 – Управление 3 + nРазр
| |
Просмотров: 9101 | Комментарии: 3 | |
Всего комментариев: 3 | ||||
| ||||