80C51GB

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

Re: 80C51GB

Сообщение BOB51 »

префикс # для обозначения данных, а без него это будет обращение к регистру по указанному адресу (независимо что указано - десятичный или какой другой формат)
mov a,0x20 ; в А содержимое ячейки по адресу 0x20
mov a,#0x20 ; в А код 0x20 (32D)
:tea:
Последний раз редактировалось BOB51 Чт ноя 03, 2011 14:19:30, всего редактировалось 1 раз.
Реклама
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: 80C51GB

Сообщение МитяРа »

BOB51 писал(а):преикс # для обозначения данных,
Мя немного очепятался..
Имелась ввиду разница между #20h и #0x20...
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15575
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: 80C51GB

Сообщение BOB51 »

а это скорее для совместимости - в разных диалектах использовались то 0х..., то ...h - а тут взяли и разрешили оба варианта написания (то же и атмеловского асма) :beer:
кстати формат 0x... одинаково работает и у mcs51 и у avr и у pic
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: 80C51GB

Сообщение МитяРа »

BOB51 писал(а):формат 0x... одинаково работает
Это, как мя понял - СИ-шная запись, а # - это Интелловское представление....
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
IM1
Грызет канифоль
Сообщения: 268
Зарегистрирован: Вт фев 16, 2010 12:10:38
Откуда: Воронеж, Россия

Re: 80C51GB

Сообщение IM1 »

BOB51 писал(а):а это скорее для совместимости - в разных диалектах использовались то 0х..., то ...h - а тут взяли и разрешили оба варианта написания (то же и атмеловского асма) :beer:
кстати формат 0x... одинаково работает и у mcs51 и у avr и у pic
Точно так, ради интереса проверил на Raisonance IDE, работает. А раньше и мысли даже не было попробовать такую форму записи, т.е. в смысле до Keil-а. Хотя программы в основном на Franklin и RIDE писались. Вот, что значит инерционность мышления.
МитяРа писал(а):
BOB51 писал(а):формат 0x... одинаково работает
Это, как мя понял - СИ-шная запись, а # - это Интелловское представление....
Вот те раз :( , и "МЯ" и "ТЯ" сразу в одном флаконе: ведь BOB51 объяснил вроде как популярно о значении решеточки ("#") или нет?
Реклама
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: 80C51GB

Сообщение МитяРа »

IM1 писал(а):о значении решеточки ("#") или нет?
Дык.. это всё давно знакомо.. вопрос перешёл в разряд философических.. :tea: /один мышь, аФФФтар не появляется.../ :))
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15575
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: 80C51GB

Сообщение BOB51 »

а не надо на нас зря насчет трактовок "#" 8)
мало кто вникает в тонкости синтаксиса разных версий, тем более на разных версиях программ (еще и от разных производителей!)
я по ходу самосадомазахизма проработал асмы от 2500AD software, атмелевский c51asm , microchip mpasm (mid range&pic18) и атмеловский для attiny&nega ... ну и бред получился ...
одначе работает! а там ко всему прочему еще куча своих "недокументированных" пакостей, которые только в процессе работы вылазят
вот например варианты представления форматов числовых значений в mpasm :

шестнадцатеричный H'nn' или 0xnn
(для c51asm 0nnH или 0xnn)

десятичный D'nn' а также (недокументировано воткрытую, но есть в некоторых текстах и работает) .nn
(для c51asm nn или nnd)

двоичный B'nnnnnnnn' (для c51asm nnnnnnnnB или 0bnnnnnnnn)

восьмеричный O'nn'
(для c51asm nno = nnQ = Onn)

ASCII 'nn' или A'nn' (для c51asm 'nn' = "nn")

где nn сами циферки-буковки
а за трактовку : после метки , # , $ , . , -- , _ , __ , и прочего до и после меток и/или директив я уж вообще... тем более, что часть из них работает при режиме абсолютной адресации, а часть при относительной :shock:
за С ничего не скажу - пока не пытался окончательно "поехать" :)))
Аватара пользователя
IM1
Грызет канифоль
Сообщения: 268
Зарегистрирован: Вт фев 16, 2010 12:10:38
Откуда: Воронеж, Россия

Re: 80C51GB

Сообщение IM1 »

BOB51 писал(а):а не надо на нас зря насчет трактовок "#" 8)...
...а за трактовку : после метки , # , $ , . , -- , _ , __ , и прочего до и после меток и/или директив я уж вообще... тем более, что часть из них работает при режиме абсолютной адресации, а часть при относительной :shock: ...
Будьте добры, расскажите поподробней о других трактовках применения "#" кроме этих:
#data (8-bits constant included in the instruction) и
#data16 (16-bit constant included in instruction).
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: 80C51GB

Сообщение МитяРа »

IM1 писал(а):других трактовках применения "#" кроме этих:
Да нет других трактовок..

IM1, у нас BOB51 - многостаночник.. Ему, что МК51, что ПИК, что АВР - одноМЫШЬно с чем работать.. :))
Мя так сразу не могу..
Когда только начинал, то приходилось одновременно писать для 8080/85 и МК51, так команды путал - только так, а потом ничего - привык разделять..
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15575
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: 80C51GB

Сообщение BOB51 »

http://www.atmel.com/dyn/resources/prod ... in_1-2.zip
а там внутри юзерс гвиде что-то типа doc3710_C51ASM.pdf (C Preprocessor Style Directives... и прочее...),
хотя.. у кейла аналогично, но вчитываться не стал...
кстати вот цитатка из того doc3710_C51ASM.pdf :
"C51ASM is meant to be compatible with other standard 8051 assemblers that follow the syntax of the original Intel® ASM51 (discontinued). These include assemblers such as the freely available ASM51 from MetaLink™ Corporation or ASEM-51 by W.W. Heinz; and the commercial A51/Ax51 assembler from Keil. Note that some differences will exist between any assembler, such that every source file may not assemble directly in another assembler without some source modifications or tweaks to the command line." и дальше ссылки на соответствующую документацию.
а для работы с другими у меня шпоры собственными когтями вышкрябанные (на основе системы мнемоник того же интела) - так что немного проще разбираться :beer:
а вот и на металинковский ящичек с дистрибутивом ссылка http://www.metaice.com/ASM51/ASM51.htm 8)
Аватара пользователя
IM1
Грызет канифоль
Сообщения: 268
Зарегистрирован: Вт фев 16, 2010 12:10:38
Откуда: Воронеж, Россия

Re: 80C51GB

Сообщение IM1 »

BOB51 писал(а):http://www.atmel.com/dyn/resources/prod ... in_1-2.zip
а там внутри юзерс гвиде что-то типа doc3710_C51ASM.pdf (C Preprocessor Style Directives... и прочее...),
хотя.. у кейла аналогично, но вчитываться не стал...
кстати вот цитатка из того doc3710_C51ASM.pdf :
"C51ASM is meant to be compatible with other standard 8051 assemblers that follow the syntax of the original Intel® ASM51 (discontinued). These include assemblers such as the freely available ASM51 from MetaLink™ Corporation or ASEM-51 by W.W. Heinz; and the commercial A51/Ax51 assembler from Keil. Note that some differences will exist between any assembler, such that every source file may not assemble directly in another assembler without some source modifications or tweaks to the command line." и дальше ссылки на соответствующую документацию.
а для работы с другими у меня шпоры собственными когтями вышкрябанные (на основе системы мнемоник того же интела) - так что немного проще разбираться :beer:
а вот и на металинковский ящичек с дистрибутивом ссылка http://www.metaice.com/ASM51/ASM51.htm 8)
Я просто убит потоком информации, а по существу вопроса что? Где примеры трактовок "#", которых как бы до-фига и "собственными когтями вышкрябанные (на основе системы мнемоник того же интела)"? Первую ссылку не принимаю, т.к. там речь идет о применении директив C-препроцессора при условном ассемблировании (типа: The #IFDEF statement begins a C-Preprocessor style #IFDEF-#ELSE-#ENDIF construct that is used for conditional program assembly), а это по теме ну совсем "не пришей рукав". По второй ссылке вообще не нашел необычного применения для "#". Может быть, конечно, я чего-то не понимаю, дайте тогда конкретные номера страниц в документах. А то мне кажется, что с Вашей стороны идет обыкновенный словоблуд. Вот мудрый МитяРа сразу написал:
МитяРа писал(а):
IM1 писал(а):других трактовках применения "#" кроме этих:
Да нет других трактовок..
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15575
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: 80C51GB

Сообщение BOB51 »

в мнемониках команд пока что других трактовок нет.
а вот что касается применения символа # - так это как минимум в вышеуказанном имеется и не факт, что их еще где-нибудь понатыкают в будущем
к сожалению, не разбил сообщение по пунктам, что позволяет ( IM1 ) свободно перетащить один фрагмент в соответствие другому, в будущем учтемс... :)
Аватара пользователя
seedbutcher
Первый раз сказал Мяу!
Сообщения: 32
Зарегистрирован: Пн окт 10, 2011 19:47:06
Откуда: Екатеринбург

Re: 80C51GB

Сообщение seedbutcher »

Слежу я за Вами) и за веткой тоже) и программа пишется) как еще немного до ума доведу, то думаю поделиться и критику услышать)
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: 80C51GB

Сообщение МитяРа »

seedbutcher, если только за этой веткой следишь, то может пригодится документация на русском: https://sunduk.radiokot.ru/search/index ... &x=12&y=14
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Аватара пользователя
seedbutcher
Первый раз сказал Мяу!
Сообщения: 32
Зарегистрирован: Пн окт 10, 2011 19:47:06
Откуда: Екатеринбург

Re: 80C51GB

Сообщение seedbutcher »

Благодарю!
Аватара пользователя
seedbutcher
Первый раз сказал Мяу!
Сообщения: 32
Зарегистрирован: Пн окт 10, 2011 19:47:06
Откуда: Екатеринбург

Re: 80C51GB

Сообщение seedbutcher »

В общем пока что программа дописана.
Задумка такая:
на входы АЦП0 подаются сигналы от трех датчиков 4..20мА.
Два из них измеряют углы (азимут и угол места), третий расстояние.
Углы измеряются от 0 до 180 градусов, расстояние до 1000 м.
Снимаются данные с АЦП и в порты 0 и 1 выдается значение в градусах или метрах.
в порт 0 число сотен. в порт 1 число десятков и единиц.
В архиве: исходный код на ассемблере (adc.asm), файл с регистрами контроллера (С8051F020.inc), файл debug.ini (там код на с, с помощью которого в кейле можно имитировать сигналы на входе ацп)
Вложения
vision.rar
(4.73 КБ) 146 скачиваний
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: 80C51GB

Сообщение МитяРа »

Бегло просмотрел программу..
Команда разрешения прерывания обычно ставится после всех настроек портов, переферии и прочего..
Перенеси её и поставь перед меткой ANGLE..

И ещё, у тя в программе есть подпрограмма обработки прерывания, но в ней ты не сохраняешь никакие регистры, которые эта программа изменяет..
Такой приём чреват геморром при отладке.. :))
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Аватара пользователя
seedbutcher
Первый раз сказал Мяу!
Сообщения: 32
Зарегистрирован: Пн окт 10, 2011 19:47:06
Откуда: Екатеринбург

Re: 80C51GB

Сообщение seedbutcher »

Спасибо, учту)

Но вот про подпрограмму. В принципе можно.

В пятницу покажу преподавателю, может он еще что скажет сделать)
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: 80C51GB

Сообщение МитяРа »

seedbutcher писал(а):Но вот про подпрограмму. В принципе можно.
Мя не разбирался конкретно и применительно к F020, что ты там написал..
Но сама программа написана и оформлена "корявенько", да и лишних команд понаставлено..

P.S. Ничего - научишься.. :beer:
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Аватара пользователя
seedbutcher
Первый раз сказал Мяу!
Сообщения: 32
Зарегистрирован: Пн окт 10, 2011 19:47:06
Откуда: Екатеринбург

Re: 80C51GB

Сообщение seedbutcher »

МитяРа писал(а): Но сама программа написана и оформлена "корявенько", да и лишних команд понаставлено..
Если будет возможность у Вас, то был бы очень благодарен советам)
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»