Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
09.11.2008, 08:02
|
#1
|
Прохожий
Регистрация: 23.08.2008
Сообщений: 5
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
подскажите новичку по MCS51
нарисовал в протеусе схемку
написал програмку
ajmp tm1
org 30h
tm1:
mov dptr, #c000h
mov a, #01h
movx @dptr, a
ajmp tm1
прога записывает во внешнюю память данных число 01H по адресу С000H и зацикливается. С этой пограммой (да и с любой другой) работает стабилно правильно если программу залить непосредственно в МК. Но если работать с ВПП то программа ведет себя не предсказуемо. (бывает не хочет возвращаться на нужный адрес по метке или на индикаторе совсем не то что должно быть и т.п.)
При выполнении выше указаной прогаммы в режиме ВПП. не выполняется инструкция ajmp tm1 (переход на одрес 030Н) продолжает перебирать адреса в плоть до FFFFH. И сразу после записи числа 01Н по аресу С000Н появляется непонятный адрес 3FxxH от куда он взялся?
может надо как-то особо настроить МК для работы с ВПП? тогда как? Или это я гдето допустил ошибку?
-- Прилагается рисунок: --
-- Прилагается рисунок: --
|
|
|
|
09.11.2008, 08:05
|
#2
|
Прохожий
Регистрация: 23.08.2008
Сообщений: 5
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
вот график состояний.
-- Прилагается рисунок: --
|
|
|
|
09.11.2008, 14:38
|
#3
|
Прохожий
Регистрация: 23.08.2008
Сообщений: 5
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
эта же прогарамма в этой же схеме только залита в мк
и в параметрах прописал DBG_FETCH=0
-- Прилагается рисунок: --
|
|
|
|
09.11.2008, 16:03
|
#4
|
Почётный гражданин KAZUS.RU
Регистрация: 26.08.2006
Сообщений: 1,405
Сказал спасибо: 1
Сказали Спасибо 89 раз(а) в 69 сообщении(ях)
|
на диаграмме до слов "запись числа по адресу" видим что с адреса 0036 выбирается первый байт команды
ajmp tm1 (для адреса 0030 код первого байта команды ajmp равен 01) Это "ложное", но характерное для 51 процев упреждающее чтение очередного байта команды , которое в данном случае просто "отбрасывается" как и должно быть, потому что команда записи в ВПД не завершилась еще. И Протеус тут вроде еще не врет.
Но после "запись числа по адресу" по сигналу PSEN должно всё в точности повториться опять с выборкой этой-же команды , то есть должна призойти выборка с адреса 0036 первого байт команды ajmp tm1 . Но тут Протеус ошибается и начинает глючить. Если посмотреть что дальше происходит - то видно что выбирает команду NOP с 38 адреса и далее 39, 3А и т.д каждые полцикла процессора, то есть в два раза чаще чем бы полагалось.
С адреса 37 после записи дважды вынимался адрес перехода "30" , те 30...30 , т.е впустую выполнялась протеусом команда XCHD, а должно было быть 01...30 . Но протеус глючил.
|
|
|
|
09.11.2008, 18:18
|
#5
|
Прохожий
Регистрация: 23.08.2008
Сообщений: 5
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Вы подтвердили мои подозрения
К стати протеус заглучил тем что долженбыл сбросить в 00Н, а он просто сделал инверсию Р2 с C0 в 3F (т.е. 11000000В в 00111111В), и еще регистр 74373 из 3 состояния на ходах по сигналу ALE создал на выходе 00 тем самым в куче с той инверсией получился совсем новый адрес 3F00H. нормально пабочий симулятор MCS51 для протеуса в инете найти не получилось они вообще существуют?
|
|
|
|
10.11.2008, 07:28
|
#6
|
Прохожий
Регистрация: 23.08.2008
Сообщений: 5
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Ладно не важно. Лучше собрать схему как положено на плате и сней играться. Протеус все равно не заменит реально построеную схему. tauP10 большое спасибо.
|
|
|
|
10.11.2008, 09:29
|
#7
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
Сообщение от Diamanten
|
Протеус все равно не заменит реально построеную схему.
|
И не должен заменять - он моделирует только.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:32.
|
|