Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
CherepVM
Родился
Сообщения: 17
Зарегистрирован: Пт окт 26, 2012 13:34:22
Откуда: Украина, Черновицкая обл.
Контактная информация:

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Сообщение 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 ;
;...............................................;
;....... кнопка отпущена, что-то делаем.........;
;========================;

Это с одной кнопкой..., у вас группа кнопок, обработка будет более ветеевато, но по такомуже принципу.
Selot
Родился
Сообщения: 6
Зарегистрирован: Пт ноя 23, 2012 18:51:47

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Сообщение Selot »

Спасибо. Попробовал - работает, но только когда одна кнопка... Сделал такой обработчик на две кнопки, запустил моделирование в протеусе и увидел следущее: когда сперва нажимаю кнопку "1", она выводится на индикатор, но когда еще раз нажимаю на нее - ничего не происходит, потом нажимаю "2" - на второй индикатор выводится двойка, при следущем нажатии только "1" выводится на третий индикатор. Вобщем, как я понял, 2 раза подряд одна и та же цифра не выводится. И двойка первая тоже не выводится, только единица. К обработчику дребезга пытался обращался и как к подпрограмме, и как к метке.

Отбой тревоги :) Кажется разобрался. Премного благодарен товарищу CherepVM :beer:
dimapo
Открыл глаза
Сообщения: 51
Зарегистрирован: Пт фев 12, 2010 19:42:35
Откуда: Брест

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Сообщение 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 ????
Вложения
алгоритм.jpg
(219.93 КБ) 356 скачиваний
Аватара пользователя
Ser60
Друг Кота
Сообщения: 3780
Зарегистрирован: Ср дек 24, 2008 09:58:58

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Сообщение Ser60 »

Попробуйте так:
mov [array+ bx + si], al
petrenko
Друг Кота
Сообщения: 5321
Зарегистрирован: Вт фев 21, 2012 13:51:55
Откуда: Начинающий
Контактная информация:

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Сообщение petrenko »

Ага, только вот тема то называется "Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..", а обсуждение получается MCS-86/88 . Надо бы перенести предыдущие два поста в соответствующую тему, а этот мой пост стереть, он станет ненужным после переноса.

К тому же если :
Тема – тест ОЗУ микропроцессорной системы (на х88). Курсовой. Алгоритм теста – попарное считывание по диагонали. Алгоритм приведен ниже.

, то каким боком к этому относится ПЗУ-шка :
Микросхема ROM известна ( КР556РТ16. 64К(8Кх8))

?
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
dimapo
Открыл глаза
Сообщения: 51
Зарегистрирован: Пт фев 12, 2010 19:42:35
Откуда: Брест

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Сообщение dimapo »

По ASM собственно больше и писать некуда. Проехали.

Подскажите пожалуйста .
к ячейке массива я обращаюсь используя строчку mov array[bx][si],al.
вх - строки, si- столбцы, условно говоря. Кусок программы 2-мя постами выше.

Можно ли использовать другую пару регистров и при этом использовать их одновременно.

Например mov array[bx][si],al
а когда надо mov array[dx][cx],al
Аватара пользователя
Ser60
Друг Кота
Сообщения: 3780
Зарегистрирован: Ср дек 24, 2008 09:58:58

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Сообщение Ser60 »

Насколько я помню, в оригинальном 8086 можно использовать регистровые пары bx+si/di или bp+si/di.
dimapo
Открыл глаза
Сообщения: 51
Зарегистрирован: Пт фев 12, 2010 19:42:35
Откуда: Брест

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Сообщение dimapo »

А я обыскался уже, гто то же видел вторую регистровую пару bp+di.

Ну пускай и так .
Но можно ли ими пользоваться одновременно?
Там всего лишь хранятся значения номера строки или столбца.
Аватара пользователя
Ser60
Друг Кота
Сообщения: 3780
Зарегистрирован: Ср дек 24, 2008 09:58:58

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Сообщение Ser60 »

Не понял откуда возник такой вопрос, т.е. почему имеется сомнение что нельзя. Это-же независимые регистры. В конце концов, почему просто не попробуете скомпилировать код, где они все участвуют. Ответ быстрее получите, чем ждать здесь.
Аватара пользователя
dimaib
Первый раз сказал Мяу!
Сообщения: 33
Зарегистрирован: Сб апр 02, 2011 04:05:00

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Сообщение dimaib »

Здравствуйте друзья! Поправьте если не туда написал=)
Начал изучать МК с 8051 серии. Встал вопрос с программатором, но в моем ноуте (Dell 500) конечно же неодного намека на COM и LPT. Решил собрать распространенный USBASP. После сборки все заработало все хорошо... но не тут то было софт (AVRDUDEPROG) который идет с этим программатором не поддерживает 89s серию. Нашел как переделать программатор для 8051 - http://www.circuitvalley.com/2011/06/us ... ammer.html - но не понятно каким софтом они пользуются.
Может вы подскажете что то? поможете советом!=)
Спасибо!
Аватара пользователя
Ser60
Друг Кота
Сообщения: 3780
Зарегистрирован: Ср дек 24, 2008 09:58:58

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Сообщение Ser60 »

Там в инструкции в Step 6 рекомендуется использовать ProgISP software
http://www.avrfreaks.net/index.php?module=Freaks%20Tools&func=viewItem&item_id=803
Аватара пользователя
dimaib
Первый раз сказал Мяу!
Сообщения: 33
Зарегистрирован: Сб апр 02, 2011 04:05:00

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Сообщение dimaib »

Благодарю вас серрр!=)
Westbam
Встал на лапы
Сообщения: 82
Зарегистрирован: Пт янв 02, 2009 19:28:44
Откуда: Москва
Контактная информация:

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Сообщение Westbam »

Всем привет.

В этих мк я полный ламер :)

Есть устройство на AT89S52, с мк очень было бы не плохо вытащить прошивку, но
подозреваю контроллер залочен.
Я собрал прогер по ссылке(в полной работоспособности его я не уверен):
http://dybkowski.net/content/en/node/15
При помощи его мне удалось считать прошивку и настройки фьюзов.
Как понял прошивка так и не считалась.
Кто спец по этим контроллерам посмотрите прошивку и скрин проги, мне
нужно быть точно уверенным что камень залочен.

http://zalil.ru/34320919
Аватара пользователя
Ser60
Друг Кота
Сообщения: 3780
Зарегистрирован: Ср дек 24, 2008 09:58:58

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Сообщение Ser60 »

В хексе одни FF-ки. Ничего путного не считалось.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15545
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Сообщение BOB51 »

У AT89S52 нетуть фьюзов (разве что защита от чтения зловредными кошенятами).
Для вышеуказанной оболочки используется стандартное железо STK200m (см.схему тут: http://www.lancos.com/prog.html ).
Если установлена защита от чтения слямзить программу неудастся.
Да и гораздо проще ее заново написать... 8)
p.s.
спасибки за ссылку - у меня старая версия оболочки была - там значительно поновее выложена :beer:
Кстати этот софтинко (isp programmer) превосходно уживается с платами-расширителями PCI-LPT (NetMOs PCI Parallel Port в частности) - так что на стационарных ПК особого вопроса с LPT не возникает! 8)
Westbam
Встал на лапы
Сообщения: 82
Зарегистрирован: Пт янв 02, 2009 19:28:44
Откуда: Москва
Контактная информация:

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Сообщение Westbam »

Так и знал что облом, теперь я в этом почти уверен :)
Рад что вам пришлась по душе новая версия проги.
Чем схема по ссылке что я дал хуже STK200? как я понял она только оч упрощена.
По подробнее про фьюзы защиты, они инвертированы как AVR? Если все фьюзы
запрограммированы, писать данные во флеш контроллера можно?
Не всегда бывает проще заново написать прошивку, увы не всегда.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15545
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Сообщение BOB51 »

по поводу бит защиты - смотри оригинальные даташиты атмела на странице
http://www.atmel.com/products/microcont ... =documents
если их установили - сброс только общим стиранием кристалла с полной потерей информации для последующей записи чего-нибудь новенького.
STK200m - проверенная длительной эксплуатацией на собственном опыте схемка. Работает весьма надежно и для AVR и для mcs51
Westbam
Встал на лапы
Сообщения: 82
Зарегистрирован: Пт янв 02, 2009 19:28:44
Откуда: Москва
Контактная информация:

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Сообщение Westbam »

По ссылке что я давал, в архиве есть скрин фузов, на нем видно что галки(LB1,LB2,LB3) пусты,
это означает что камень не заблокировал? Что то не понятно мне..
На самой плате по мимо контроллера, есть: 29EE512 - епромка объемом в 64 Килобайта.
и оперативка в 32 Килобайта. Само устройство занимается тем что управляет двумя моторами,
дергает соленоид и опрашивает кучу датчиков, по мимо всего прочего общается с внешнем миром
через com порт. Думается мне что прошивка может находить еще в епромке, а камень просто загружает
код из епрома в оперативку и выполняет его от туда. Такое ведь может быть?
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15545
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Сообщение BOB51 »

Если "галки" не поставлены - значение бита=1 (не запрограммирован).
МК может работать на внутренней памяти программ до исчерпания диапазона ее адресов, затем автоматически идет выборка из внешней ПП. К внешнему ОЗУ также возможен доступ как к ВПД так и как к ВПП (подгружаемые программы) - все зависит от конкретной схемотехники. Обрати внимание на вывод /EA - при фиксированном 0 на этом выводе схема работает только с ВПП/ВПД, если там есть 1 - используется РПП в качестве биос-утилит.
Аватара пользователя
IM1
Грызет канифоль
Сообщения: 268
Зарегистрирован: Вт фев 16, 2010 12:10:38
Откуда: Воронеж, Россия

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Сообщение IM1 »

Westbam писал(а):На самой плате по мимо контроллера, есть: 29EE512 - епромка объемом в 64 Килобайта.
и оперативка в 32 Килобайта.
Что же Вы молчали об этом с самого начала? Теперь все ясно: контроллер пустой, а вся программа находится в епроме. Читайте епромку и программа Ваша.
В случае клонирования устройства - больше ничего и не надо. А если хотите подправить прошивку, то Вас ждет тяжкий труд: 64к кода, это не фунт изюма! В таком случае, однозначно, нужна полная принципиальная схема и хороший дизассемблер, я бы посоветовал IDA.
Ответить

Вернуться в «Разные вопросы по МК»