Страница 11 из 53
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Добавлено: Пт ноя 23, 2012 22:48:39
CherepVM
Да, это просто цикл ожидания или отрабатывание паузы.
Вот, набросал небольшой примерчик по обработке одной кнопки, которая находится на P1.0 и при нажатии P1.0="0".
Код: Выделить всё
;========================;
retWaitP: jb P1.0,$ ;ждём нажатия кнопки...
;... кнопка нажата, делаем проверку достоверности нажатия через 1ms три или более раза
;.... таким образом уходим от дребезга контактов..........
call pause ; пауза не менее 1ms
jb P1.0,retWaitP ;если дребезг, то опять ждём...
call pause ; 1ms
jb P1.0,retWaitP ;
call pause ; 1ms
jb P1.0,retWaitP ;
;...........;
;....... кнопка нажата, что-то делаем или
;....... ждём когда кнопка будет отжата и
;....... потом будем что-то делать
;...........;
retWaitN: jnb P1.0,$ ;ждём когда кнопка будет отпущена...
call pause ; 1ms
jnb P1.0,retWaitN ;если дребезг, то опять ждём...
call pause ; 1ms
jnb P1.0,retWaitN ;
call pause ; 1ms
jnb P1.0,retWaitN ;
;...........;
;....... кнопка отпущена, что-то делаем.........;
;========================;
Это с одной кнопкой..., у вас группа кнопок, обработка будет более ветеевато, но по такомуже принципу.
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Добавлено: Сб ноя 24, 2012 13:44:11
Selot
Спасибо. Попробовал - работает, но только когда одна кнопка... Сделал такой обработчик на две кнопки, запустил моделирование в протеусе и увидел следущее: когда сперва нажимаю кнопку "1", она выводится на индикатор, но когда еще раз нажимаю на нее - ничего не происходит, потом нажимаю "2" - на второй индикатор выводится двойка, при следущем нажатии только "1" выводится на третий индикатор. Вобщем, как я понял, 2 раза подряд одна и та же цифра не выводится. И двойка первая тоже не выводится, только единица. К обработчику дребезга пытался обращался и как к подпрограмме, и как к метке.
Отбой тревоги

Кажется разобрался. Премного благодарен товарищу CherepVM

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Добавлено: Вт ноя 27, 2012 18:52:59
dimapo
Коты, кто силен в адресации на ASMе подскажите!
Тема – тест ОЗУ микропроцессорной системы (на х88). Курсовой. Алгоритм теста – попарное считывание по диагонали. Алгоритм приведен ниже.
По алгоритму: ASR –адрес контролируемая ячейка памяти, AIJ – остальные ячейки памяти. S, I номера строки, R, J номера столбцов. L и M конечные номера ячеек строки и столбца соответственно.
В контролируемую ячейку ASR записывается 0, в остальные ячейки 1. Затем происходит считывание ячеек и контролируется правильность записи.
Микросхема ROM известна ( КР556РТ16. 64К(8Кх8))
Теперь вопрос:
1. Каким образом обращаться к ячейке памяти? Как матрица? или используя базово -индексную адресацию.? Как это прописать, учитывая что нужно смещаться и по строкам и по столбцам.
Где-то видел
;------ввод массива-----
mov si,0 ;j
mov bx,0 ;i
mov cx,10
forI:
push cx
mov cx,10
mov si,0
forJ:
mov ah,1h
int 21h
mov array[bx][si],al
mov ah,2h
mov dl,' '
int 21h
inc si
loop forJ
Может так - mov array[bx][si],al ????
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Добавлено: Вт ноя 27, 2012 19:19:48
Ser60
Попробуйте так:
mov [array+ bx + si], al
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Добавлено: Чт ноя 29, 2012 16:22:12
petrenko
Ага, только вот тема то называется "Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..", а обсуждение получается MCS-86/88 . Надо бы перенести предыдущие два поста в соответствующую тему, а этот мой пост стереть, он станет ненужным после переноса.
К тому же если :
Тема – тест ОЗУ микропроцессорной системы (на х88). Курсовой. Алгоритм теста – попарное считывание по диагонали. Алгоритм приведен ниже.
, то каким боком к этому относится ПЗУ-шка :
Микросхема ROM известна ( КР556РТ16. 64К(8Кх8))
?
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Добавлено: Чт ноя 29, 2012 18:31:50
dimapo
По ASM собственно больше и писать некуда. Проехали.
Подскажите пожалуйста .
к ячейке массива я обращаюсь используя строчку mov array[bx][si],al.
вх - строки, si- столбцы, условно говоря. Кусок программы 2-мя постами выше.
Можно ли использовать другую пару регистров и при этом использовать их одновременно.
Например mov array[bx][si],al
а когда надо mov array[dx][cx],al
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Добавлено: Чт ноя 29, 2012 19:00:57
Ser60
Насколько я помню, в оригинальном 8086 можно использовать регистровые пары bx+si/di или bp+si/di.
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Добавлено: Чт ноя 29, 2012 19:20:14
dimapo
А я обыскался уже, гто то же видел вторую регистровую пару bp+di.
Ну пускай и так .
Но можно ли ими пользоваться одновременно?
Там всего лишь хранятся значения номера строки или столбца.
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Добавлено: Чт ноя 29, 2012 20:57:18
Ser60
Не понял откуда возник такой вопрос, т.е. почему имеется сомнение что нельзя. Это-же независимые регистры. В конце концов, почему просто не попробуете скомпилировать код, где они все участвуют. Ответ быстрее получите, чем ждать здесь.
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Добавлено: Пн дек 17, 2012 13:47:33
dimaib
Здравствуйте друзья! Поправьте если не туда написал=)
Начал изучать МК с 8051 серии. Встал вопрос с программатором, но в моем ноуте (Dell 500) конечно же неодного намека на COM и LPT. Решил собрать распространенный USBASP. После сборки все заработало все хорошо... но не тут то было софт (AVRDUDEPROG) который идет с этим программатором не поддерживает 89s серию. Нашел как переделать программатор для 8051 -
http://www.circuitvalley.com/2011/06/us ... ammer.html - но не понятно каким софтом они пользуются.
Может вы подскажете что то? поможете советом!=)
Спасибо!
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Добавлено: Пн дек 17, 2012 16:06:09
Ser60
Там в инструкции в Step 6 рекомендуется использовать ProgISP software
http://www.avrfreaks.net/index.php?modu ... tem_id=803
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Добавлено: Вт дек 18, 2012 00:15:33
dimaib
Благодарю вас серрр!=)
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Добавлено: Вт мар 05, 2013 21:45:42
Westbam
Всем привет.
В этих мк я полный ламер
Есть устройство на AT89S52, с мк очень было бы не плохо вытащить прошивку, но
подозреваю контроллер залочен.
Я собрал прогер по ссылке(в полной работоспособности его я не уверен):
http://dybkowski.net/content/en/node/15
При помощи его мне удалось считать прошивку и настройки фьюзов.
Как понял прошивка так и не считалась.
Кто спец по этим контроллерам посмотрите прошивку и скрин проги, мне
нужно быть точно уверенным что камень залочен.
http://zalil.ru/34320919
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Добавлено: Вт мар 05, 2013 23:23:53
Ser60
В хексе одни FF-ки. Ничего путного не считалось.
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Добавлено: Вт мар 05, 2013 23:26:34
BOB51
У AT89S52 нетуть фьюзов (разве что защита от чтения зловредными кошенятами).
Для вышеуказанной оболочки используется стандартное железо STK200m (см.схему тут:
http://www.lancos.com/prog.html ).
Если установлена защита от чтения слямзить программу неудастся.
Да и гораздо проще ее заново написать...

p.s.
спасибки за ссылку - у меня старая версия оболочки была - там значительно поновее выложена

Кстати этот софтинко (isp programmer) превосходно уживается с платами-расширителями PCI-LPT (NetMOs PCI Parallel Port в частности) - так что на стационарных ПК особого вопроса с LPT не возникает!

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Добавлено: Ср мар 06, 2013 21:42:18
Westbam
Так и знал что облом, теперь я в этом почти уверен

Рад что вам пришлась по душе новая версия проги.
Чем схема по ссылке что я дал хуже STK200? как я понял она только оч упрощена.
По подробнее про фьюзы защиты, они инвертированы как AVR? Если все фьюзы
запрограммированы, писать данные во флеш контроллера можно?
Не всегда бывает проще заново написать прошивку, увы не всегда.
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Добавлено: Ср мар 06, 2013 22:47:02
BOB51
по поводу бит защиты - смотри оригинальные даташиты атмела на странице
http://www.atmel.com/products/microcont ... =documents
если их установили - сброс только общим стиранием кристалла с полной потерей информации для последующей записи чего-нибудь новенького.
STK200m - проверенная длительной эксплуатацией на собственном опыте схемка. Работает весьма надежно и для AVR и для mcs51
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Добавлено: Пт мар 08, 2013 23:37:02
Westbam
По ссылке что я давал, в архиве есть скрин фузов, на нем видно что галки(LB1,LB2,LB3) пусты,
это означает что камень не заблокировал? Что то не понятно мне..
На самой плате по мимо контроллера, есть: 29EE512 - епромка объемом в 64 Килобайта.
и оперативка в 32 Килобайта. Само устройство занимается тем что управляет двумя моторами,
дергает соленоид и опрашивает кучу датчиков, по мимо всего прочего общается с внешнем миром
через com порт. Думается мне что прошивка может находить еще в епромке, а камень просто загружает
код из епрома в оперативку и выполняет его от туда. Такое ведь может быть?
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Добавлено: Сб мар 09, 2013 09:51:05
BOB51
Если "галки" не поставлены - значение бита=1 (не запрограммирован).
МК может работать на внутренней памяти программ до исчерпания диапазона ее адресов, затем автоматически идет выборка из внешней ПП. К внешнему ОЗУ также возможен доступ как к ВПД так и как к ВПП (подгружаемые программы) - все зависит от конкретной схемотехники. Обрати внимание на вывод /EA - при фиксированном 0 на этом выводе схема работает только с ВПП/ВПД, если там есть 1 - используется РПП в качестве биос-утилит.
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Добавлено: Сб мар 09, 2013 11:54:31
IM1
Westbam писал(а):На самой плате по мимо контроллера, есть: 29EE512 - епромка объемом в 64 Килобайта.
и оперативка в 32 Килобайта.
Что же Вы молчали об этом с самого начала? Теперь все ясно: контроллер пустой, а вся программа находится в епроме. Читайте епромку и программа Ваша.
В случае клонирования устройства - больше ничего и не надо. А если хотите подправить прошивку, то Вас ждет тяжкий труд: 64к кода, это не фунт изюма! В таком случае, однозначно, нужна полная принципиальная схема и хороший дизассемблер, я бы посоветовал IDA.