User Tag List

Показано с 1 по 10 из 57

Тема: Контроллер на Z80 и КР580ВВ55А

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    30.12.2018
    Адрес
    г. Москва
    Сообщений
    1,375
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    384
    Поблагодарили
    346 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zx_gamer Посмотреть сообщение
    Не получается заставить ВВ55 мигать светодиодом. Частота Z80 3 МГц. Есть ПЗУ 32 КБайт (ОЗУ пока нет). Схема такая: Шины данных и адреса параллельно. ~CS (ПЗУ) включается когда A15 (Z80). ~WR (ПЗУ) когда ~MERQ (Z80) ИЛИ ~WR (Z80). ~RD (ПЗУ) когда ~MERQ (Z80) ИЛИ ~RD (Z80). A0 (ВВ55) когда A0 (Z80). A1 (ВВ55) когда A1 (Z80). ~RD (ВВ55) когда ~IORQ (Z80) ИЛИ ~RD (Z80). ~WR (ВВ55) когда ~IORQ (Z80) ИЛИ ~WR (Z80). RESET (ВВ55) на землю, RESET (Z80) к питанию через резистор.
    не увидел здесь ~CS (BB55)


    Программа такая:
    Код:
    begin:
       ; Configure VV55
       ld bc, 80h       ; port
       ld a, 0h           ; byte
       out (FFh), a    ; out
    а что здесь делает ld bc,80h?
    если я не совсем забыл мнемонику z80 - то команда out (FFh), a запишет значение из a в порт FFh - точнее в порт 00FFh (поскольку а в предыдущей команде ставится в 0) - что приведет к сбросу в 0 бита 0 порта С (который после включения питания настроен на ввод).
    если хотелось настроить все порты на вывод - то надо так

    Код:
       ld a, 80h           ; byte
       out (FFh), a    ; out
    но при этом вывод будет в порт 80FFh - так что надо смотреть как сделана дешифрация ВВ55.



    Код:
    time_wait:
       ld a, 0         ; for big loop compare
       ld c, 0         ; big wait loop
       ld b, 0         ; small wait loop
    small_loop:
       nop
       nop
       nop
       nop
       nop
       nop
       nop
       nop
       nop
       nop
       nop
        nop
       djnz small_loop   ; end small wait loop
       dec c
       cp c
       jr nz, time_wait
    ну и здесь как уже сказано - будет бесконечный цикл.

    сделать можно так:

    Код:
    time_wait:
       ld c, FFh         ; big wait loop
       ld b, 0         ; small wait loop
    small_loop:
       nop
       nop
       nop
       nop
       nop
       nop
       nop
       nop
       nop
       nop
       nop
        nop
       djnz small_loop   ; end small wait loop
       dec c
       jr nz, time_wait
    или например так:

    Код:
     ld hl, 03FFh (подобрать по вкусу)
    loop:
      dec hl
      ld a,h
      cp l
      jr nz, loop

    Зверинецъ

    Специалист (был когда-то "совсем стандарт") - 1988-2023
    Ленинград1 +256К +AY+BDI+VGA выход +Ethernet (Speccyboot) +Xmodem (115200)+divmmc
    Ленинград2 + CF карта
    Платформа 8085+Z80+CPLD (Специалист МХ2 +SD +FDD +PS/2kbd)
    БК0010-01 стоковый
    [свернуть]

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

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

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

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

Похожие темы

  1. подскажите контроллер
    от sergey2b в разделе Внешние накопители
    Ответов: 4
    Последнее: 26.09.2018, 07:34
  2. Ответов: 8
    Последнее: 05.03.2018, 12:48
  3. Контроллер FD-051
    от Giraffe в разделе MSX
    Ответов: 77
    Последнее: 15.05.2016, 02:23
  4. Контроллер TR-DOS
    от Zloy в разделе Внешние накопители
    Ответов: 13
    Последнее: 21.11.2015, 17:21
  5. Контроллер многозадачной ОС
    от Conan в разделе Оси
    Ответов: 50
    Последнее: 20.09.2009, 10:56

Ваши права

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