1. У меня по заданию контроллёр индикатора, зачем мне внешняя память?
Если Вы посмотрите в справочнике про К1816ВЕ31, то увидите, что у неё нет внутренней памяти программ и обязательно нужна внешняя (в отличии от К1816ВЕ
51).
2. Если память все таки нужно то правильно ли я все сделал (препод сделал набросок не очень разборчивый, я восстановил, как смог).
Правильно. Но этот способ будет работать, только если программа (которую вы собираетесь во внешней памяти хранить) будет не более 256 байт. В противном случае вам нужно ещё провести старшие адреса из МК в ROM, причём без промежуточного регистра (надеюсь, Вы знаете, что регистр здесь нужен для мультиплексирования данных и адресов). Я точно не помню какой там порт отвечает, вроде P2, но лучше уточните в справочнике.
3. Препод сказал, что там нужно выбрать регистр и память, чтобы полдхолдили под сигналы ALE, PSEN и т.д. Тут я вообще ничего не понимаю.
Опять жу отсылаю Вас к справочникам и учебникам (напр. "Однокристальные микро-ЭВМ" издательства МИКАП). На словах это объяснить трудно, обычно в учебниках дают временные диаграммы, из которых всё сразу ясно.
Если вкрадце, то сигнал ALE "сопровождает" младший байт адреса и он падает с "1" до "0" в середине этой посылки. Т. о. регистр нужно выбирать так, чтобы запись в него происходила по заднему фронту STB. Через некоторое время после записи в регистр, PSEN становится "0" и должны прочитаться данные из памяти, которые идут обратно в порт P0. Поэтому память нужно выбирать согласно этому.
Я могу что-то наврать, поэтому лучше смотрите в учебнике.