1. Думаю, не следует все порты лепить по адресам друг за другом. Надо как-то делить на функциональные группы и между ними делать запас адресов для будущих расширений.
2. Как и для USART, для KBRD тоже необходимо прерывание, и так же бит для его вкл./выкл.. Если есть прерывание, то порт со скан-кодом можно не обнулять. Там будет код последней нажатой клавиши. И пусть уже программа сама ставит флаги и определяет что там было нажато.
3. Может быть все прерывания свести в один порт, где D7=EI, т.е. разрешает/запрещает все прерывания контроллера? Другие биты этого порта включают всё по отдельности.
4. НЕ совсем понял: Int50 у нас чем-либо отключается (кроме команды EI), или долбит сразу после подачи питания? Хреново, если это прерывание не имеет наружного вывода и подсоединено к кадровой внутри ПЛИС на постоянно. Это не есть хорошо, раз это прерывание не возможно задействовать для других целей! Может быть сделать вывод, а импульс кадровой подключать/отключать через битик в каком-то порту?





Ответить с цитированием