Пт апр 06, 2018 11:54:44
;
; заготовка драйвера для MAX7219
; для МК семейства MCS51
;
;
;
LN_SC equ 0 ; линия выборки кристалла, активный уровень 0
LN_CLK equ 1 ; линия тактового строба защелкивание данных
; по фронту положительного импульса
LN_DIN equ 2 ; линия данных
quest_m72 equ 0 ; флаг запроса обработчика дисплея
;
no_op_cmd equ 0x00 ; пустой слот (применяется при каскадном соединении
; микросхем для незадействованного драйвера
; команды записи в позиционные разряды озу
; младший байт представляется или сегментным кодом
; или тетрадным указателем кода (режим DM)
digit0_cmd equ 0x01 ; запись в позицию разряда 0
digit1_cmd equ 0x02 ; запись в позицию разряда 1
digit2_cmd equ 0x03 ; запись в позицию разряда 2
digit3_cmd equ 0x04 ; запись в позицию разряда 3
digit4_cmd equ 0x05 ; запись в позицию разряда 4
digit5_cmd equ 0x06 ; запись в позицию разряда 5
digit6_cmd equ 0x07 ; запись в позицию разряда 6
digit4_cmd equ 0x08 ; запись в позицию разряда 7
;
dec_md_cmd equ 0x09 ; резервирование позиций, для которых действует
; режим тетрадного дешифратора (режим DM)
; маска режима является младшим байтом dec_md_com
; в младшем байте позиции, работающие в режиме
; сегментного кода заполнены 0
; а позициям соответствующим режиму DM
; должны быть установлены в 1
digit0_dm equ 0 ; позиции 0 соответствует бит D0 байта маски режима DM
digit1_dm equ 1 ; позиции 1 соответствует бит D1 байта маски режима DM
digit2_dm equ 2 ; позиции 2 соответствует бит D2 байта маски режима DM
digit3_dm equ 3 ; позиции 3 соответствует бит D3 байта маски режима DM
digit4_dm equ 4 ; позиции 4 соответствует бит D4 байта маски режима DM
digit5_dm equ 5 ; позиции 5 соответствует бит D5 байта маски режима DM
digit6_dm equ 6 ; позиции 6 соответствует бит D6 байта маски режима DM
digit7_dm equ 7 ; позиции 7 соответствует бит D7 байта маски режима DM
;
intens_cmd equ 0x0A ; команда установки уровня яркости
; младший байт представляется следующими значениями
uri_1_32 equ 0x00 ; минимальная яркость
uri_3_32 equ 0x01 ;
uri_5_32 equ 0x02 ;
uri_7_32 equ 0x03 ;
uri_9_32 equ 0x04 ;
uri_11_32 equ 0x05 ;
uri_13_32 equ 0x06 ;
uri_15_32 equ 0x07 ;
uri_17_32 equ 0x08 ;
uri_19_32 equ 0x09 ;
uri_21_32 equ 0x0A ;
uri_23_32 equ 0x0B ;
uri_25_32 equ 0x0C ;
uri_27_32 equ 0x0D ;
uri_29_32 equ 0x0E ;
uri_31_32 equ 0x0F ; максимальная яркость
;
sclim_cmd equ 0x0B ; команда определяющая количество включенных позиций дисплея
; одновременно с уменьшением количества позиций увеличивается их яркость
; применение с параметрами уменьшеия числа позиций менее 4х
; не рекомендовано
; значения младшего байта для sclim_com
sclm_0 equ 0x00 ; только digit0
sclm_2 equ 0x01 ; digit0:digit1
sclm_3 equ 0x02 ; digit0:digit1:digit2
sclm_4 equ 0x03 ; digit0:digit1:digit2:digit3
sclm_5 equ 0x04 ; digit0:digit1:digit2:digit3:digit4
sclm_6 equ 0x05 ; digit0:digit1:digit2:digit3:digit4:digit5
sclm_7 equ 0x06 ; digit0:digit1:digit2:digit3:digit4:digit5:digit6
sclm_8 equ 0x07 ; digit0:digit1:digit2:digit3:digit4:digit5:digit6:digit7
;
dispon_cmd equ 0x0C ; нормальная работа дисплея или
; дисплей погашен, работа генератора остановлена
;
teston_cmd equ 0x0F ; активирован тест-режим "все сегменты включены" или
; деактивирован тест-режим "все сегменты включены"
;
; суффиксы для команд dispon_cmd и teston_cmd
cmd_true equ 1 ; команда активации режима
cmd_false equ 0 ; команда отключения режима
;
; раскладка сегментов относительно байта данных
seg_A equ 6 ; сегмент А
seg_B equ 5 ; сегмент B
seg_C equ 4 ; сегмент C
seg_D equ 3 ; сегмент D
seg_E equ 2 ; сегмент E
seg_F equ 1 ; сегмент F
seg_G equ 0 ; сегмент G
seg_H equ 7 ; сегмент H
;
; тетрадный код 0x00 - 0x09 записанный в позицию находящуюся в DM режиме
; соответствует отображению символов 0-9
; тетрадный код 0x0A-0x0F соответствует символам приведенным ниже
simv_pr equ 0x0A ; символ -
simv_E equ 0x0B ; символ E
simv_H equ 0x0C ; символ H
simv_L equ 0x0D ; символ L
simv_P equ 0x0E ; символ P
simv_blk equ 0x0F ; пробел
;
; во всех случаях работы в режиме DM,
; когда в позиции необходимо присутствие запятой
; перед объединением байта данных со словом команды
; необходимо провести операцию добавления к байту данных бита seg_H=1
; например
; orl #(1<<seg_H)
; получим в акумуляторе байт DM с активной запятой
;
; байты - суффиксы команд должны подставляться в регистр dat_m72
; а сами команды в cmd_m72
;
;----------
;
.DSEG
dat_m72 .ds1 ; байт буфера данных
cmd_m72 .ds1 ; байт буфера команд
flag_m72 .ds1 ; флаги программного комплекта
;
;----------
;
.cseg
tr_m72:
;
Вт апр 10, 2018 09:43:54
Сб апр 14, 2018 22:12:56
Вс апр 15, 2018 06:43:18
Вс апр 15, 2018 07:28:21
Вс апр 15, 2018 13:48:57
Вс апр 15, 2018 15:56:00
Вс апр 15, 2018 15:57:14
Вс апр 15, 2018 16:28:20
Пн апр 16, 2018 09:18:43
Пн апр 16, 2018 12:24:25
Пн апр 16, 2018 15:18:09
Пн апр 16, 2018 15:36:51
Пн апр 16, 2018 16:07:56
Пн апр 16, 2018 17:02:14
Пн апр 16, 2018 17:37:32
Пн апр 16, 2018 18:42:11
Ср апр 18, 2018 14:01:20