Важная информация

User Tag List

Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 14 из 14

Тема: Ассемблер i8080, семисегментные индикаторы.

  1. #11
    Member Аватар для scaraby
    Регистрация
    06.06.2015
    Адрес
    г. Раменское, Московская обл.
    Сообщений
    93
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    10 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В этом примере исходный байт преобразовывается в два семисегментных кода. Значение адреса, по которому располагается "знакогенератор", не важно.

    Скрытый текст

    Код:
    	;ПК8000
    	;Прекрасный ассемблер КР580ВМ80А
    	;http://asdasd.rpg.fi/~svo/i8080/
    
    .binfile hex7led.bin
    .org 4000h	;начальный адрес программы в ОЗУ
    
    ;--------------------------------------------------------------------------------
    ; Константы									;
    ;--------------------------------------------------------------------------------
    
    
    
    
    ;--------------------------------------------------------------------------------
    ; Переменные									;
    ;--------------------------------------------------------------------------------
    
    	;массив кодов символов семисегментного индикатора
    	;в случае индикатора с общим анодом, значения инвертировать
    
    Led:
    	db 01100000b
    	db 11011010b
    	db 11110010b
    	db 01100110b
    	db 10110110b
    	db 10111110b
    	db 11100000b
    	db 11111110b
    	db 11110110b
    	db 11101110b
    	db 00111110b
    	db 10011100b
    	db 01111010b
    	db 10011110b
    	db 10001110b
    
    HexData db 0	;исходное шестнадцатиричное число
    
    Led0 db 0	;код символа для младшего полубайта 
    Led1 db 0	;код символа для старшего полубайта
    
    ;--------------------------------------------------------------------------------
    ; Главный модуль								;
    ;--------------------------------------------------------------------------------
    
    Start:
    
    	;фрагмент, формирующий значение, которое необходимо отобразить
    
    	lda HexData
    
    	;младший полубайт
    
    	ani 0fh		;обнуляем 4 старших бита
    	
    	call HexToLed
    
    	sta Led0	;сохраняем этот код в ОЗУ для дальнейшего использования
    
    	;старший полубайт
    
    	lda HexData
    
    	ani 0f0h	;обнуляем 4 младших бита
    	rrc		;и меняем полубайты местами
    	rrc
    	rrc
    	rrc
    
    	call HexToLed
    
    	sta Led1	;сохраняем этот код в ОЗУ для дальнейшего использования
    
    ;	out xx		;вывод в порт старшего полубайта
    ;	lda Led0
    ;	out xx		;вывод в порт младшего полубайта
    
    	ret		;выход из программы
    	
    ;--------------------------------------------------------------------------------
    ; Процедуры									;
    ;--------------------------------------------------------------------------------
    
    
    	;процедура расчёта адреса байта для семисегментного кода
    	;на входе acc - число от 0 до 0fh, на выходе в acc - семисегментный код
    
    HexToLed:
    	lxi h,Led	;адрес начала массива семисегментных кодов
    	add l		;находим адрес кода, соответствующий весу цифры
    	mov l,a		;не забывам, что результат сложения остаётся в acc
    	mov a,m		;загружаем в acc найденный код
    
    	rnc		;если не было переноса CF=0, то возврат
    
    	mov a,h		;если вылез CF, то это необходимо учесть
    	aci 0		;прибавляем CF к старшему полубайту адреса искомого кода
    	mov h,a		;помним, что результат всегда в acc
    
    	mov a,m		;загружаем в acc найденный код
    
    	ret
    [свернуть]
    Последний раз редактировалось scaraby; 07.06.2016 в 19:49.

  2. #12
    Master
    Регистрация
    19.11.2012
    Адрес
    г. Луганск
    Сообщений
    698
    Спасибо Благодарностей отдано 
    29
    Спасибо Благодарностей получено 
    82
    Поблагодарили
    55 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Может лучше это или это?

  3. #13
    Banned
    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,841
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    658
    Поблагодарили
    512 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от PATHNK Посмотреть сообщение
    Намного легче поставить дешифратор.
    Цитата Сообщение от PATHNK Посмотреть сообщение
    Может лучше это или это?
    триплфеиспальм
    а чем это поможет аффтару первого поста
    вывести
    0 до F и любые другие
    вполне можно выжать символы
    A a B b C c E d e F G g H h I i J L N n O o P r q S t U u Y Z
    Б Г г П п У Ч, Ы Ь Э


    для большей наглядности



    при наличии фантазии есть где разогнаться


    а потом из за таких любителей "по дешифровать"
    программно не выведешь долбанную полосочку посредине...
    Последний раз редактировалось NEO SPECTRUMAN; 08.06.2016 в 00:00.

  4. #14
    Moderator Аватар для MM
    Регистрация
    20.04.2013
    Адрес
    г. Павловский Посад
    Сообщений
    4,133
    Спасибо Благодарностей отдано 
    470
    Спасибо Благодарностей получено 
    519
    Поблагодарили
    412 сообщений
    Mentioned
    42 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Китайские 2.54 см. индикаторы, до 18 сегментов ( 16 + 2 точки ), общий анод или катод, 10 шт.- 574 руб, включая почту :

    http://ru.aliexpress.com/item/1inch-...d-0434a28091ef
    длинные сегменты - по 2 диода последовательно. На фото - ток ~10 ма ( с 1533АП6 через резистор 150 ом ).
    ( Прислали через 20 дней после оплаты ).
    Блог : http://collectingrd.kxk.ru/ . В ЛС прошу не писать, все сообщения [email protected]

Страница 2 из 2 ПерваяПервая 12

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. PMI-80 - одноплатник на i8080
    от rw6hrm в разделе Разное
    Ответов: 72
    Последнее: 02.09.2022, 12:27
  2. Код эмуляции i8080 на С
    от medvdv в разделе Эмуляторы отечественных компьютеров
    Ответов: 15
    Последнее: 27.03.2015, 03:43
  3. Эмулятор i8080
    от Higgins в разделе Разное
    Ответов: 2
    Последнее: 20.05.2011, 11:43
  4. Забавные индикаторы
    от Orionsoft в разделе Несортированное железо
    Ответов: 11
    Последнее: 27.01.2007, 23:05

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •