89c52 с внешним ПЗУ
89c52 с внешним ПЗУ
Хочу сделать тестер микросхем 74 серии на микроконтроллере 89с52. Так как памяти у него мало, то думаю применить внешнее пзу типа 27с512. Отсюда у меня вытекает несколько вопросов:
1) Основная программа будет выполнятся во внутреннем ПЗУ микроконтроллера (опрос клавиатуры, вывод результата на символьный индикатор и отправка к базе элементов), а вот поиск по базе и необходимые действия с двумя портами (к ним цепляется проверяемая микросхема) должны выполняться из внешнего ПЗУ. Как мне это записать в ассемблере, чтобы транслятор основную программу записал во внутреннем ПЗУ, а необходимые мне подпрограммы во внешнем ?
2) После окончания выполнения подпрограмм из внешнего ПЗУ и возвращении во внутреннее ПЗУ какие настроики буду портов Р0 и Р2 (которые управляют внешним ПЗУ)- то что было до обращения к внешнему ПЗУ или что то другое ?
1) Основная программа будет выполнятся во внутреннем ПЗУ микроконтроллера (опрос клавиатуры, вывод результата на символьный индикатор и отправка к базе элементов), а вот поиск по базе и необходимые действия с двумя портами (к ним цепляется проверяемая микросхема) должны выполняться из внешнего ПЗУ. Как мне это записать в ассемблере, чтобы транслятор основную программу записал во внутреннем ПЗУ, а необходимые мне подпрограммы во внешнем ?
2) После окончания выполнения подпрограмм из внешнего ПЗУ и возвращении во внутреннее ПЗУ какие настроики буду портов Р0 и Р2 (которые управляют внешним ПЗУ)- то что было до обращения к внешнему ПЗУ или что то другое ?
- Реклама
- Леонид Иванович
- Друг Кота
- Сообщения: 4779
- Зарегистрирован: Сб апр 02, 2011 12:40:46
- Откуда: Минск
- Контактная информация:
Re: 89c52 с внешним ПЗУ
Это невозможно. Да и зачем? Возмите внешнее ПЗУ побольше и разместите в нем всю программу целиком. Для работы с внешним ПЗУ нужно заземлить ножку EA. Кроме ПЗУ понадобится еще и регистр - защелка адреса.
- ChipKiller
- Сверлит текстолит когтями
- Сообщения: 1163
- Зарегистрирован: Ср янв 05, 2011 16:25:15
Re: 89c52 с внешним ПЗУ
... смотря что будет храниться во внешнем ПЗУ. Если там будут только данные, то можно использовать EEPROM 24сХХХ.Superbear писал(а):а вот поиск по базе и необходимые действия...
ЗЫ. Вообще топикстартеру неплохо вначале изучить такую вещь, как карта памяти и дешифрация адреса. Думаю многие вопросы тогда сами отпадут.
Re: 89c52 с внешним ПЗУ
похоже на вариации на тему начального загрузчика и исполнительной системы...
Superbear, скинь адрес e-mail мне в личку - отправлю вариант схемы и программ (делал в прошлом программатор по подобному схеме)

Superbear, скинь адрес e-mail мне в личку - отправлю вариант схемы и программ (делал в прошлом программатор по подобному схеме)
Последний раз редактировалось BOB51 Пн апр 30, 2012 02:36:45, всего редактировалось 1 раз.
Re: 89c52 с внешним ПЗУ
Ну если нельзя , то значит придется покупать ATmega 32 Или 128. Спасибо всем за помощь.
- Реклама
-
petrenko
- Друг Кота
- Сообщения: 5326
- Зарегистрирован: Вт фев 21, 2012 13:51:55
- Откуда: Начинающий
- Контактная информация:
Re: 89c52 с внешним ПЗУ
Приветствую Вас !Superbear писал(а):Хочу сделать тестер микросхем 74 серии на микроконтроллере 89с52. Так как памяти у него мало, то думаю применить внешнее пзу типа 27с512. Отсюда у меня вытекает несколько вопросов:
1) Основная программа будет выполнятся во внутреннем ПЗУ микроконтроллера (опрос клавиатуры, вывод результата на символьный индикатор и отправка к базе элементов), а вот поиск по базе и необходимые действия с двумя портами (к ним цепляется проверяемая микросхема) должны выполняться из внешнего ПЗУ. Как мне это записать в ассемблере, чтобы транслятор основную программу записал во внутреннем ПЗУ, а необходимые мне подпрограммы во внешнем ?
2) После окончания выполнения подпрограмм из внешнего ПЗУ и возвращении во внутреннее ПЗУ какие настроики буду портов Р0 и Р2 (которые управляют внешним ПЗУ)- то что было до обращения к внешнему ПЗУ или что то другое ?
Во - первых, в ассемблере есть мнемоника (не путайте с командой) ORG . Поставте свою внешнюю ПЗУ на адрес например 02000hex ну и если что неясно, спросите, поможем. Однако не торопитесь прошивать как внутреннюю ПЗУ, так и внешнюю. Лучше на отладочке занесите полученный после ассемблирования код В ОЗУ кросс-а и посмотрите, что получается.
Во - вторых, у меня есть почти отладка на 80с31 , и могу посоветовать, где что найти также.
В - третьих очень не советую вешать проверяемые ИМС прямо на порты , зачем рисковать сжечь их. Советую развязку и даже раздельное питание проверяемой ИМС.
Насчёт P0 P2 - это не всегда порты - у этих выводов микросхемы два режима : собственно портов ввода-вывода и шины адреса/данных внешних устройств (не только ПЗУ ! ). Кто как, но я P0 как порт никогда не использую вообще, а P2 очень редко и только на ввод. Если не хватает линий надо использовать 580вр43 (обычно ставлю две) - схему подключения подскажу.
Последний раз редактировалось petrenko Пн апр 30, 2012 00:40:49, всего редактировалось 1 раз.
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
- paskal
- Нашел транзистор. Понюхал.
- Сообщения: 160
- Зарегистрирован: Пн сен 05, 2011 10:03:06
- Откуда: Тула
Re: 89c52 с внешним ПЗУ
Пункты 1) и 2) выполнить элементарно.
Подключаете внешнее ПЗУ как штатное для 8051.
Вывод EA сажаете на лог.1, т.е. работа от внутреннего ПЗУ.
Теперь при обращении к первым 8 Кбайт процессор будет работать от внутреннего ПЗУ, при обращении выше 8 Кбайт - к внешнему. Естественно что для этого во внешнее ПЗУ программа пишется с адреса 2000h.
Подключаете внешнее ПЗУ как штатное для 8051.
Вывод EA сажаете на лог.1, т.е. работа от внутреннего ПЗУ.
Теперь при обращении к первым 8 Кбайт процессор будет работать от внутреннего ПЗУ, при обращении выше 8 Кбайт - к внешнему. Естественно что для этого во внешнее ПЗУ программа пишется с адреса 2000h.
Если бы на станции "Мир" стояли Винды, она бы еще висела и висела...
- Леонид Иванович
- Друг Кота
- Сообщения: 4779
- Зарегистрирован: Сб апр 02, 2011 12:40:46
- Откуда: Минск
- Контактная информация:
Re: 89c52 с внешним ПЗУ
Да, верно, при EA = 1 при выходе за пределы внутренней памяти будет обращение к внешней.
Вот только не видно смысла разбивать программу на два куска. Проще всё разместить во внешней памяти. Если, конечно, засекречивать часть программы не нужно.
Вот только не видно смысла разбивать программу на два куска. Проще всё разместить во внешней памяти. Если, конечно, засекречивать часть программы не нужно.
-
petrenko
- Друг Кота
- Сообщения: 5326
- Зарегистрирован: Вт фев 21, 2012 13:51:55
- Откуда: Начинающий
- Контактная информация:
Re: 89c52 с внешним ПЗУ
А куда делся TopickStarter ? Спугнули в начале темы что ли ?
to : "paskal" А у него там именно 8КБ ? Я то написал 01000hex , полагая, что 4КБ (подправил)
to : "Леонид Иванович" Вот за что Вы "Фахiвец" выбросили ? Всё, скажу всем продавцам, чтоб сало никогда не продавали Вам !
TopickStarter наверное имел в виду, что программа во внутренннем ПЗУ, а "база данных" во внешнем. Хотя кто его знает - надо переспросить.
to : "paskal" А у него там именно 8КБ ? Я то написал 01000hex , полагая, что 4КБ (подправил)
to : "Леонид Иванович" Вот за что Вы "Фахiвец" выбросили ? Всё, скажу всем продавцам, чтоб сало никогда не продавали Вам !
TopickStarter наверное имел в виду, что программа во внутренннем ПЗУ, а "база данных" во внешнем. Хотя кто его знает - надо переспросить.
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
Re: 89c52 с внешним ПЗУ
вот это подобное по схемотехнике монстро -ежли интересно, расскажу подробнее 
- Вложения
-
- карта памяти.pdf
- (13.15 КБ) 390 скачиваний
-
- prog_at89s_vol1a.pdf
- (37.7 КБ) 472 скачивания
-
petrenko
- Друг Кота
- Сообщения: 5326
- Зарегистрирован: Вт фев 21, 2012 13:51:55
- Откуда: Начинающий
- Контактная информация:
Re: 89c52 с внешним ПЗУ
Это вроде 89xxx52 программирует своего "родственника" и умеет связываться с неким компьютером. Такого устройства схемка ? Интересно в общем, но TopickStarter-у разве надо ? Да и убежал он куда-то.
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
- paskal
- Нашел транзистор. Понюхал.
- Сообщения: 160
- Зарегистрирован: Пн сен 05, 2011 10:03:06
- Откуда: Тула
Re: 89c52 с внешним ПЗУ
У 8051 серии, ПЗУ 4 КБ, у 8052 обычно 8 КБ. Во всяком случае вопрос был про 89с52, где однозначно 8 КБ.petrenko писал(а):to : "paskal" А у него там именно 8КБ ? Я то написал 01000hex , полагая, что 4КБ (подправил)
to:BOB51
Что за странная карта памяти? К 8051 она не имеет отношения.
Если бы на станции "Мир" стояли Винды, она бы еще висела и висела...
- Леонид Иванович
- Друг Кота
- Сообщения: 4779
- Зарегистрирован: Сб апр 02, 2011 12:40:46
- Откуда: Минск
- Контактная информация:
Re: 89c52 с внешним ПЗУ
А что это?petrenko писал(а):Вот за что Вы "Фахiвец" выбросили ?
Re: 89c52 с внешним ПЗУ
to paskal
как это "не имеет отношения" ?
это ведь карта памяти к ниже ( там же ) выложенной схеме, а она вроде как MCS51
принцип схемки-работа по загруженной из базового блока (ПК в частности) программе
см. внимательно схемку и карту
to petrenko
Не только "родственников", но и любое другое, на что есть документация по протоколу загрузки и самошкрябные оболочки, подгружаемые по потребности. Возможна и прямая работа в качестве "платы прототипа" - на панельку навесить соответствующую обвязку (дисплейчик, кнопушки/датчики)... протокол обмена был примитивнейший, но подключение внешних линий с запасом на применение УСАПП... хороша была штука , да сейчас пока "в коробочке" лежит надо бы подучить чего новенького из basicов для ПК, но пока "вломушки" этим заниматься
как это "не имеет отношения" ?
это ведь карта памяти к ниже ( там же ) выложенной схеме, а она вроде как MCS51
принцип схемки-работа по загруженной из базового блока (ПК в частности) программе
см. внимательно схемку и карту
to petrenko
Не только "родственников", но и любое другое, на что есть документация по протоколу загрузки и самошкрябные оболочки, подгружаемые по потребности. Возможна и прямая работа в качестве "платы прототипа" - на панельку навесить соответствующую обвязку (дисплейчик, кнопушки/датчики)... протокол обмена был примитивнейший, но подключение внешних линий с запасом на применение УСАПП... хороша была штука , да сейчас пока "в коробочке" лежит надо бы подучить чего новенького из basicов для ПК, но пока "вломушки" этим заниматься
-
petrenko
- Друг Кота
- Сообщения: 5326
- Зарегистрирован: Вт фев 21, 2012 13:51:55
- Откуда: Начинающий
- Контактная информация:
Re: 89c52 с внешним ПЗУ
1.) "Фахiвец" на мове означает "Спяцыалист"
2.) Можно Форт - машинку сделать из MSC51 - для 51-ых есть неплохой Форт, говорят, вот сам ищу, где скачать или записать. У 52-го вообще вроде, помнится два последовательных, можно один для RS-232 , другой для PS/2 клавиатуры. А контролер дисплея на шину, только вот драйвера придётся самому, никуда не деться...
2.) Можно Форт - машинку сделать из MSC51 - для 51-ых есть неплохой Форт, говорят, вот сам ищу, где скачать или записать. У 52-го вообще вроде, помнится два последовательных, можно один для RS-232 , другой для PS/2 клавиатуры. А контролер дисплея на шину, только вот драйвера придётся самому, никуда не деться...
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
- IM1
- Грызет канифоль
- Сообщения: 268
- Зарегистрирован: Вт фев 16, 2010 12:10:38
- Откуда: Воронеж, Россия
Re: 89c52 с внешним ПЗУ
По моему, там их три, а если посмотреть вооруженным глазом, то будет..., будет..., вспомнил: точно четыре!petrenko писал(а):У 52-го вообще вроде, помнится два последовательных, можно один для RS-232 , другой для PS/2 клавиатуры.
Можно еще добавить мышь и токовую петлю
С ПРАЗДНИКОМ!
-
petrenko
- Друг Кота
- Сообщения: 5326
- Зарегистрирован: Вт фев 21, 2012 13:51:55
- Откуда: Начинающий
- Контактная информация:
Re: 89c52 с внешним ПЗУ
Вы правы. Тогда ещё и мышь !
А кто-то в других темах ещё говорил, что из микроконтроллера полноценный комп не сделать.
Вот только OS-51/52 напишем и всё !
_______________________
"А где же начальник транспортного цеха ? "
А кто-то в других темах ещё говорил, что из микроконтроллера полноценный комп не сделать.
Вот только OS-51/52 напишем и всё !
_______________________
"А где же начальник транспортного цеха ? "
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
Re: 89c52 с внешним ПЗУ
Я вернулся
. Хотелось бы уточнить несколько моментов.
1)Подключаете внешнее ПЗУ как штатное для 8051.
Вывод EA сажаете на лог.1, т.е. работа от внутреннего ПЗУ.
Теперь при обращении к первым 8 Кбайт процессор будет работать от внутреннего ПЗУ, при обращении выше 8 Кбайт - к внешнему. Естественно что для этого во внешнее ПЗУ программа пишется с адреса 2000h.
Как я понял , если вывод EA на землю , то только внешнее ПЗУ, а если к 5V , то внутреннее, а при превышении продолжаем во внешнем ПЗУ ?
2) Поясню чем мне подходит записать всю программу во внешнее ПЗУ- 2 порта мне нужны для подключения испытуемой микросхемы , еще нужно подключить матричную клавиатуру 3*4(это еще 6 выводов с порта), также 6 выводов займет символьный индикатор, а оставшиеся 3 вывода - это комутация питания испытуемой микросхемы.
Логика работы моей программы такова- вводим номер микросхемы, например 7403, микроконтроллер обрабатывает данные с клавиатуры и далее переходим на подпрограмму во внешнем ПЗУ. В этой подпрограмме записаны все необходимые действия с портами , к тором подключена испытуемая микросхема. Во время тестирования микросхемы мне нужны только два порта , остальные два порта (к ним подключен индикатор и клавиатура- можно использовать для внешнего ПЗУ, три пина управления питанием подключаем к регистру , чтоб они не изменяли свое значение на время работы внешнего ПЗУ). после прохождения теста возвращаемся во нутреннее ПЗУ и у нас снова 4-е пота в нашем распоряжении.
Все это нужно для того , чтоб использовать микросхемы, которые есть у меня в наличии. в случае использовании только внешнего ПЗУ , мне придется к клавиатуре и индикатору обращатся , как к внешнему ОЗУ - но мне это не под силам , как начинающему и проще купить другой микроконтроллер , где достаточно внутренней памяти.
3) Мне так и не понятным остался вопрос с двумя портами, к которым подключаем внешнее ПЗУ по стандартной схеме. Какое значение они примут после перекращения обслуживания внешнего ПЗУ - то что было до обращения к внешнему ПЗУ или то что осталось после (надо ли их при возващении программы во внутреннее ПЗУ снова настраивать ?)
1)Подключаете внешнее ПЗУ как штатное для 8051.
Вывод EA сажаете на лог.1, т.е. работа от внутреннего ПЗУ.
Теперь при обращении к первым 8 Кбайт процессор будет работать от внутреннего ПЗУ, при обращении выше 8 Кбайт - к внешнему. Естественно что для этого во внешнее ПЗУ программа пишется с адреса 2000h.
Как я понял , если вывод EA на землю , то только внешнее ПЗУ, а если к 5V , то внутреннее, а при превышении продолжаем во внешнем ПЗУ ?
2) Поясню чем мне подходит записать всю программу во внешнее ПЗУ- 2 порта мне нужны для подключения испытуемой микросхемы , еще нужно подключить матричную клавиатуру 3*4(это еще 6 выводов с порта), также 6 выводов займет символьный индикатор, а оставшиеся 3 вывода - это комутация питания испытуемой микросхемы.
Логика работы моей программы такова- вводим номер микросхемы, например 7403, микроконтроллер обрабатывает данные с клавиатуры и далее переходим на подпрограмму во внешнем ПЗУ. В этой подпрограмме записаны все необходимые действия с портами , к тором подключена испытуемая микросхема. Во время тестирования микросхемы мне нужны только два порта , остальные два порта (к ним подключен индикатор и клавиатура- можно использовать для внешнего ПЗУ, три пина управления питанием подключаем к регистру , чтоб они не изменяли свое значение на время работы внешнего ПЗУ). после прохождения теста возвращаемся во нутреннее ПЗУ и у нас снова 4-е пота в нашем распоряжении.
Все это нужно для того , чтоб использовать микросхемы, которые есть у меня в наличии. в случае использовании только внешнего ПЗУ , мне придется к клавиатуре и индикатору обращатся , как к внешнему ОЗУ - но мне это не под силам , как начинающему и проще купить другой микроконтроллер , где достаточно внутренней памяти.
3) Мне так и не понятным остался вопрос с двумя портами, к которым подключаем внешнее ПЗУ по стандартной схеме. Какое значение они примут после перекращения обслуживания внешнего ПЗУ - то что было до обращения к внешнему ПЗУ или то что осталось после (надо ли их при возващении программы во внутреннее ПЗУ снова настраивать ?)
- ChipKiller
- Сверлит текстолит когтями
- Сообщения: 1163
- Зарегистрирован: Ср янв 05, 2011 16:25:15
Re: 89c52 с внешним ПЗУ
... если P0 и P2 используются для подключения внешней памяти, то как о портах В/В о них можно забыть. (для получения доп. линий управления, как вариант повесить на P0 регистры, 555ир23 например, но придется городить дешифратор )Superbear писал(а):В этой подпрограмме записаны все необходимые действия с портами , к тором подключена испытуемая микросхема. Во время тестирования микросхемы мне нужны только два порта , остальные два порта (к ним подключен индикатор и клавиатура- можно использовать для внешнего ПЗУ, три пина управления питанием подключаем к регистру , чтоб они не изменяли свое значение на время работы внешнего ПЗУ). после прохождения теста возвращаемся во внутреннее ПЗУ и у нас снова 4-е пота в нашем распоряжении.
здравая мысльSuperbear писал(а):... проще купить другой микроконтроллер , где достаточно внутренней памяти.
- Леонид Иванович
- Друг Кота
- Сообщения: 4779
- Зарегистрирован: Сб апр 02, 2011 12:40:46
- Откуда: Минск
- Контактная информация:
Re: 89c52 с внешним ПЗУ
Да.Superbear писал(а):Как я понял , если вывод EA на землю , то только внешнее ПЗУ, а если к 5V , то внутреннее, а при превышении продолжаем во внешнем ПЗУ ?
В этом нет ничего сложного, подключаете регистры на шину данных и адресуете их как внешнюю память данных. Во всяком случае, это проще, чем разделять программу на два куска, а шину делить между памятью и устройствами ввода-вывода.Superbear писал(а):в случае использовании только внешнего ПЗУ , мне придется к клавиатуре и индикатору обращатся , как к внешнему ОЗУ - но мне это не под силам
Порт 2 восстановит свое состояние, а в в порт 0 будет загружены нули.Superbear писал(а):Мне так и не понятным остался вопрос с двумя портами, к которым подключаем внешнее ПЗУ по стандартной схеме. Какое значение они примут после перекращения обслуживания внешнего ПЗУ - то что было до обращения к внешнему ПЗУ или то что осталось после
Вот это единственная здравая мысль во всей ветке.Superbear писал(а):проще купить другой микроконтроллер , где достаточно внутренней памяти
Да, был у меня такой. Массу всего полезного на нем сделал. Например, был сделан программно-апаратный комплекс для снятия АЧХ. Как схем, так и акустики. Даже теперь нет таких возможностей, но уже и не надо. Конечно, пользоваться компьютером было крайне неудобно. Одна загрузка программы с кассет чего стоит. Вот и разобрал, как ненужный хлам.petrenko писал(а):1.) "Фахiвец" на мове означает "Спяцыалист"
- Вложения
-
- PC-1500_in.jpg
- (226.94 КБ) 744 скачивания
-
- s-90.gif
- (27.87 КБ) 723 скачивания


