Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
01.08.2011, 12:16
|
|
Прописка
Регистрация: 01.11.2006
Сообщений: 199
Сказал спасибо: 0
Сказали Спасибо 15 раз(а) в 13 сообщении(ях)
|
Нужен образец программы для at89c51rc24pi
Уважаемые господа. Нужен образец программы на ассемблере для X8051 для at89c51rc24pi. Не очень понятны вопросы конкретного программирования (текста на ассемблере): запрета ALE, выставления адреса на P0 и (или) данных на P0 с учетом того, что там два транзистора управляют выходом и два регистра отвечают за адрес. Нужен конкретный участок из программы для настройки регистров SFR и мультиплицированния адреса и данных на P0.
Заранее благодарен.
|
|
|
Сказали "Спасибо" avgust75
|
|
|
01.08.2011, 12:45
|
|
Прописка
Регистрация: 25.09.2009
Адрес: Ivanovo
Сообщений: 156
Сказал спасибо: 3
Сказали Спасибо 67 раз(а) в 60 сообщении(ях)
|
Re: Нужен образец программы для at89c51rc24pi
Сообщение от avgust75
|
Уважаемые господа. Нужен образец программы на ассемблере для X8051 для at89c51rc24pi. Не очень понятны вопросы конкретного программирования (текста на ассемблере): запрета ALE, выставления адреса на P0 и (или) данных на P0 с учетом того, что там два транзистора управляют выходом и два регистра отвечают за адрес. Нужен конкретный участок из программы для настройки регистров SFR и мультиплицированния адреса и данных на P0.
Заранее благодарен.
|
Чегото вопрос не совсем понятен. К какому устройству вы обращаетесь? К внешней памяти? Для этого по любому надо использовать защелку адреса,или подключить память к старшим адресам. Для блокирования ALE (зачем?)
надо установить бит 0 в регистре AUXR типа:
Код:
|
AUXR EQU 8EH ;РЕГИСТР УПРАВЛЕНИЯ
MOV AUXR,#00000001B ;ALE lock |
ALE в этом случае будет выдаваться только при использовании команд типа MOVC/MOVX.
Последний раз редактировалось heady69; 01.08.2011 в 12:55.
|
|
|
Сказали "Спасибо" heady69
|
|
|
01.08.2011, 15:19
|
|
Прописка
Регистрация: 01.11.2006
Сообщений: 199
Сказал спасибо: 0
Сказали Спасибо 15 раз(а) в 13 сообщении(ях)
|
Re: Нужен образец программы для at89c51rc24pi
Спасибо за ответ, но как раз это и не выходит по Вашему примеру - заблокировать ALE. Что-то упускаю, может быть в настройке МК. Есть конкретная схема с защелкой на ИР33 младшего адреса и так же по шине адреса поступают и выдаются данные и осуществляется обмен с памятью. Взят чистый контроллер и с него никак не удается выставить адрес на P0 МК, даже установить 1 на каком-либо разряде (по другим портам все получается). Сказывается отсутствие опыта в написании программ для Atmel. Защелкнутый адрес на ИР33 служит далее для разрешения работы других цепей принимающих код по общей шине данных-адреса от P0 МК. Нужен пример программы с выставлением адреса и так же пример с последующим выставлением данных. При выставлении на P0 адреса он(адрес) защелкнется на ИР33, и мне необходимо оставить его (запретить ALE), чтобы выставить данные на другие регистры по организованной разрешительной цепи для них.
|
|
|
Сказали "Спасибо" avgust75
|
|
|
01.08.2011, 15:36
|
|
Прописка
Регистрация: 25.09.2009
Адрес: Ivanovo
Сообщений: 156
Сказал спасибо: 3
Сказали Спасибо 67 раз(а) в 60 сообщении(ях)
|
Re: Нужен образец программы для at89c51rc24pi
Порт P0 на 8051 не имеет внутренних подт.резисторов (в отличие от других портов данного МК).Подтяни к "+".
Также не забывай,что этот МК не имеет специальных регистров для настройки направления передачи данных портов(IN\OUT типа DDRx для AVR).Поэтому когда считываеш состояние сигналов на порту,не забудь выдать на него сначала 0xFF. А то выходным "0" можес исказить входную "1"(у него порты работают по принципу типа "открытого коллектора")
Последний раз редактировалось heady69; 01.08.2011 в 16:18.
|
|
|
Сказали "Спасибо" heady69
|
|
|
01.08.2011, 15:58
|
|
Прописка
Регистрация: 25.09.2009
Адрес: Ivanovo
Сообщений: 156
Сказал спасибо: 3
Сказали Спасибо 67 раз(а) в 60 сообщении(ях)
|
Re: Нужен образец программы для at89c51rc24pi
Сообщение от avgust75
|
При выставлении на P0 адреса он(адрес) защелкнется на ИР33, и мне необходимо оставить его (запретить ALE), чтобы выставить данные на другие регистры по организованной разрешительной цепи для них.
|
Вспомнил,когда-то делал что-то подобное(давно было).
Попробуй так:
Запрещаеш ALE (см.выше-должны исчезнуть импульсы на ALE)
Код:
|
mov r0,#arrd
movx a,@r0 //защелкиваем адрес не меняя состояния P2
mov P0,#data //выводим данные на P0(для примера) |
в программе только надо избегать использования MOVX чтобы случайно не перезащелкнуть адресный регистр.
Нашел инициализацию AUXR из программы (все вроде работало)
Код:
|
mov a,08eh
setb acc.0 ;выключить ale
clr acc.1 ;внутреняя память
setb acc.4 ;---1792 byte XRAM
clr acc.3 ; !
clr acc.2 ;-!
clr acc.5 ;wr/rd -норма
; setb acc.5 ;увел. длит. wr\rd
mov 08eh,a |
Последний раз редактировалось heady69; 02.08.2011 в 12:17.
|
|
|
Сказали "Спасибо" heady69
|
|
|
08.08.2011, 13:44
|
|
Прописка
Регистрация: 01.11.2006
Сообщений: 199
Сказал спасибо: 0
Сказали Спасибо 15 раз(а) в 13 сообщении(ях)
|
Re: Нужен образец программы для at89c51rc24pi
Спасибо за помощь, все заработало, но как следствие есть вопросы.
Первый - в промышленной схеме на плате нет подтягивающих регистров для P0 (место есть, а они не поставлены и при установке МК из этой схемы импульсы полные). Где-то помню читал, что при MOVX верхний транзистор сам подключается, но у меня не подключается. Поэтому имею половину импульса, опять что-то упускаю в настройках регистров МК.
Второй - где взять описание SFR регистров для данного МК (на сайте производителя не нашел) и в даташите на МК не все регистры описаны.
(Как было хорошо в описаниях на PIC, а здесь просто беда).
|
|
|
Сказали "Спасибо" avgust75
|
|
|
08.08.2011, 15:38
|
|
Прописка
Регистрация: 25.09.2009
Адрес: Ivanovo
Сообщений: 156
Сказал спасибо: 3
Сказали Спасибо 67 раз(а) в 60 сообщении(ях)
|
Re: Нужен образец программы для at89c51rc24pi
Сообщение от avgust75
|
Спасибо за помощь, все заработало, но как следствие есть вопросы.
Первый - в промышленной схеме на плате нет подтягивающих регистров для P0 (место есть, а они не поставлены и при установке МК из этой схемы импульсы полные). Где-то помню читал, что при MOVX верхний транзистор сам подключается, но у меня не подключается. Поэтому имею половину импульса, опять что-то упускаю в настройках регистров МК.
Второй - где взять описание SFR регистров для данного МК (на сайте производителя не нашел) и в даташите на МК не все регистры описаны.
(Как было хорошо в описаниях на PIC, а здесь просто беда).
|
Можно попробовать сбросить 7 бит AUXR он управляет подтягивающими резисторами.Не знаю только,влияет ли это на порт P0(по даташиту он вроде open_drain ,у меня там всегда подтяжка висела).
В даташите на at89c51rb2 / rc2 новые регистры вроде все описаны. По старым SFR можно в даташит на at89c51,at89c52 почитать.
Последний раз редактировалось heady69; 08.08.2011 в 16:09.
|
|
|
Сказали "Спасибо" heady69
|
|
|
08.08.2011, 15:42
|
|
Прописка
Регистрация: 25.09.2009
Адрес: Ivanovo
Сообщений: 156
Сказал спасибо: 3
Сказали Спасибо 67 раз(а) в 60 сообщении(ях)
|
Re: Нужен образец программы для at89c51rc24pi
Сообщение от heady69
|
Как было хорошо в описаниях на PIC, а здесь просто беда
|
Приходилось как то с ПИ-И-И-КАМИ возиться,так там голимые ошибки в описаниях были. AVR/ARM рулят!!!
Последний раз редактировалось heady69; 08.08.2011 в 15:46.
|
|
|
Сказали "Спасибо" heady69
|
|
|
08.08.2011, 18:59
|
|
Прописка
Регистрация: 01.11.2006
Сообщений: 199
Сказал спасибо: 0
Сказали Спасибо 15 раз(а) в 13 сообщении(ях)
|
Re: Нужен образец программы для at89c51rc24pi
Спасибо. По MOVX подтягивающие регистры подключаются на момент выставления кода и адреса автоматически. Все заработало. Прочитал немного про AVR - тот же PIC, только немного другой. Но это первое впечетление от AVR. Описание регистров нашел в даташите производителя Philips.
Последний раз редактировалось avgust75; 08.08.2011 в 19:11.
|
|
|
Сказали "Спасибо" avgust75
|
|
|
09.08.2011, 10:08
|
|
Прописка
Регистрация: 25.09.2009
Адрес: Ivanovo
Сообщений: 156
Сказал спасибо: 3
Сказали Спасибо 67 раз(а) в 60 сообщении(ях)
|
Re: Нужен образец программы для at89c51rc24pi
Сообщение от avgust75
|
Прочитал немного про AVR - тот же PIC
|
Конечно если писать на "C" -особой разницы не ощущается. А на асме гораздо "жирнее" . Все регистры равноправные,с каждым можно любые операции выполнять.Поэтому "рабочий" (вот название подобрали!!) отсутствует.Не надо из него и обратно данные кидать. Несколько индексных регистров. Конечно я со старшими моделями PIC-ов не работал,там может все уже гораздо лучше стало...
Последний раз редактировалось heady69; 09.08.2011 в 10:10.
|
|
|
Сказали "Спасибо" heady69
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 02:04.
|
|