| NedoPC Project | NedoPC Forum | NedoPC Group |

NedoPC-85-A


  22 июня 2004 года была закончена сборка и отладка тестовой платы микроконтроллера NedoPC-85-A на основе процессора P8085AH (клон старого интеловского 8085), работающего на частоте 2 МГц. Плата имеет на борту перепрограммируемое ПЗУ KM2865A-25 (8Kx8) и статическое ОЗУ HM6264P-12 (8Kx8), а также 3 корпуса мелкой логики: 74ALS573, 74LS138, 74LS08. Общая стоимость комплектующих: $27. Потребляемый ток не более 200 мА.

Внешний вид собранной платы:

Внешний вид платы без больших микросхем:

Внешний вид платы со стороны пайки:

Принципиальная схема устройства
(для увеличения нужно кликнуть на картинку):

Как видно, адресное пространство делится на 8 частей по 8 килобайт каждая:

RangeCS
#0000...#1FFFROM
#2000...#3FFFRAM
#4000...#5FFF-
#6000...#7FFF-
#8000...#9FFF-
#A000...#BFFF_CS
#C000...#DFFFRAM
#E000...#FFFFROM

Сигнал _CS является выходным сигналом платы, наряду с некоторомы другими сигналами, составляющими ряд из 15 контактов:

PinNameDescription
1GNDЗаземляющий контакт
2_CSВыбор внешнего устройства (акт.0)
3ALEНа данных младший байт адреса (акт.1)
4M_IOИспользование памяти (1) или портов (0)
5_RDРазрешение чтения (акт.0)
6_WRРазрешение записи (акт.0)
7D0Бит 0 данных (или адреса)
8D1Бит 1 данных (или адреса)
9D2Бит 2 данных (или адреса)
10D3Бит 3 данных (или адреса)
11D4Бит 4 данных (или адреса)
12D5Бит 5 данных (или адреса)
13D6Бит 6 данных (или адреса)
14D7Бит 7 данных (или адреса)
15VCCПитающий контакт (+5В)

Назовем этот интерфейс "Nedo Interface 15" (по числу контактов) или для краткости NI-15 (позже мы создадим ряд схем для работы с платой NedoPC-85-A через этот интерфейс). Итак, что же этот интерфейс позволяет:

  • читать 1 байт из 256 байтов внешней памяти (диапазон допустимых адресов #A000...#A0FF и далее с шагом 256 байт до #BF00...#BFFF)
  • писать 1 байт в 256 байтов внешней памяти (диапазон допустимых адресов #A000...#A0FF и далее с шагом 256 байт до #BF00...#BFFF)
  • читать 1 байт из 32 портов ввода (диапазон допустимых номеров портов #A0...#BF)
  • писать 1 байт в 32 порта вывода (диапазон допустимых номеров портов #A0...#BF)
Без дополнительной схемы демультиплескирования данных и младшего байта адреса по сигналу ALE, интерфейс адресует 1 байт по любому адресу из диапазона #A000...#BFFF или 1 порт по любому номеру порта из диапазона #A0...#BF.

С помощью интерфейса NI-15 плата втыкается в любую стандартную breadboard и при некоторой обвязке позволяет производить определенные действия (например мигать светодиодами по зашитой в ПЗУ программе):

Принципиальная схема девайса
(для увеличения нужно кликнуть на картинку):

Пример простой программы для мигания светодиодами по очереди справа-налево:

    ORG 0
START:
    JMP #E003
_E003:
    MVI B,1
LOOP1:
    LXI H,0
LOOP2:
    DCX H
    MOV A,H
    ORA L
    JNZ LOOP2
    MOV A,B
    OUT #A0
    RLC
    MOV B,A
    JMP LOOP1

А вот оттранслированный листинг программы (в адресах #0000 и #E000):

Adr1Adr2CodeCommandComment
#0000#E000#C3JMP #E003Переход в последнее окно
#0001#E001#03
#0002#E002#E0
#0003#E003#06MVI B,1Начальное состояние
#0004#E004#01
#0005#E005#21LXI H, #0000Обнуление счетчика
#0006#E006#00
#0007#E007#00
#0008#E008#2BDCX HДекремент счетчика
#0009#E009#7CMOV A,HПроверка на 16-битный 0
#000A#E00A#B5ORA L
#000B#E00B#C2JNZ #E008Повтор если еще не 0
#000C#E00C#08
#000D#E00D#E0
#000E#E00E#78MOV A,BКопируем состояние в A
#000F#E00F#D3OUT #A0Отправляем в порт #A0
#0010#E010#A0
#0011#E011#07RLCСдвиг влево
#0012#E012#47MOV B,AСохранение состояния
#0013#E013#C3JMP #E005Переход на начало цикла
#0014#E014#05
#0015#E015#E0

Программирование ПЗУ осуществляется с помощью программатора NedoProg-1. При частоте процессора 2 МГц (частота кристалла 4 МГц) прохождение всей линейки из 8 светодиодов по одному составляет 6.3 секунды.

Обсудить на форуме 


Rambler's Top100
^ Вверх
© 2002-2008 NedoPC.org