Страница 1 из 1
DS1990 и ЖКИ
Добавлено: Сб окт 27, 2007 20:55:33
Andrsn
Уважаемые участники подскажите!
Имеется ключ таблетка DS1990 и ЖКИ 16x2
Читаем серийник таблетки DS1990 при помощи МК получаем HEX число. Есть необходимость вывести этот hex на ЖКИ с контроллером HD44780.
Вопрос: Как обойти знакогенератор контроллера? Если подпрограммы преобразующие HEX для вывода не символов а самого HEX-a.
Re: DS1990 и ЖКИ
Добавлено: Сб окт 27, 2007 21:17:59
tych
Andrsn писал(а):Если подпрограммы преобразующие HEX для вывода не символов а самого HEX-a.
Функция printf, для LCD - sprintf.
Пример DS1990 в CVAVR есть в папке
C:\CVAVR\examples\DS1990
И в PROTEUS все виртуально работает в папке
SAMPLES\VSM for AVR\One-Wire\NETWORK
Добавлено: Сб окт 27, 2007 21:42:56
Andrsn
tych уточняю, на асемблере на Си и так понятно. Для MCS-51.
Добавлено: Сб окт 27, 2007 22:06:32
tych
Andrsn писал(а):tych уточняю, на асемблере на Си и так понятно.
Посмотрите АСМ листинг того что компилятор накомпилярит.
Andrsn писал(а):Для MCS-51.
MCS-51 с амого начала пошагам.
На АСМе.
Добавлено: Сб окт 27, 2007 22:23:35
Andrsn
tych всетаки Вы непонимаете что мне нужно.
Вы в своем первом посте писали...Функция printf...
Мне это понятно, так как данная функция справедлива только для языка Си я же пишу исключительно на ASM и в нем нет этого. По этому я уточнил.
Теперь по Вашей логике я должен свой же листинг посмотреть на предмет чего???????????????. Что я должен в нем найти?
Давайте конкретно отвечать.
Добавлено: Сб окт 27, 2007 22:34:55
tych
Andrsn писал(а):я же пишу исключительно на ASM и в нем нет этого. По этому я уточнил.
Теперь по Вашей логике я должен свой же листинг посмотреть на предмет чего???????????????. Что я должен в нем найти?
Давайте конкретно отвечать.
Сделайте на Си вывод серийного номера на LCD - там где я сказал показано как - и вы сами написали что вам:
Andrsn писал(а):на Си и так понятно.
посмотрите как это сделать на асме в АСМ листинге компилятора и сделайте так же в своем поекте на АСМе.
Добавлено: Сб окт 27, 2007 22:43:16
Andrsn
tych Ход Ваших мыслей мне понятен. Но, к сожалению, Вы предлагаете для меня ( может для других это просто сделать, когда хорошо знаешь си) сложный путь. Первое что я должен сделать это поставить всю среду для си и попытаться разобраться в этом. Тут могут порадиться другие проблемы. Не проще бы что-то иное советовать. Не усложняя того что требуется?
Добавлено: Сб окт 27, 2007 23:20:32
Andrsn
Есть некоторая проблема, существует готовая программа на Асемблере считования этого ключа. Необходима некоторая доработка или написание подпрограммы реализации HEX данных не сопоставляя их со знакогенератором. Вобщем хочется увидеть серийный номер DS1990 на ЖКИ, А не вместо символов.
Добавлено: Сб окт 27, 2007 23:41:19
starsystem
Интересная задача, интересно было бы узнать и вправду как обойти знакогенератор. В некоторых случаях а именно в отладке это бы очень пригадилось. А еще интереснее получить что нибуть на ассемблере в качестве подпрограммки. Трансляторы и компиляторы СИ переводят не коректно в асем. Если какие нибуть разработки людей? поделитися плиззз..
Добавлено: Вс окт 28, 2007 00:16:19
tych
starsystem писал(а):компиляторы СИ переводят не коректно в асем.
Да ?

и как же тогда проги работают ?
Листинг CVAVR прекрасно ассемблируется в Астудии.
Добавлено: Вс окт 28, 2007 00:41:50
starsystem
tych писал(а):
Да ?

и как же тогда проги работают ?
Проги работают откомпилированные на Си а уж потом переводятся на асм в листинге. И вы уважаемый забыли такую особенность что асм бывают разные и по этому ваш совет можно расценивать так: Ляпнул
Добавлено: Вс окт 28, 2007 12:53:54
starsystem
Нашел вот такую подпрограммку посмотрите может чем поможет
Добавлено: Вс окт 28, 2007 23:18:10
__Alexander
А зачем обходить знакогенератор?
Теория следующая, делал на си, но и на асме тоже можно.
Делаем массив символов от нуля до 99 (можно добавить приставку "0х"). И размещаем в памяти флешки по соответсвующим адресам от нуля до 99.
Получая реальный хекс, берем символы по порядку и выводим на экран. типа следующего PUT_CHAR_LCD(Массив[полученный хекс])
если без приставки то их будет по два, с приставкой четыре.
на асме массив объявляется через .DB
Добавлено: Пн окт 29, 2007 12:56:01
starsystem
__Alexander хороший прием спасибо за совет. Но меня выручила выше упомянутая подпрограммка. Я просто с помощью подпрограммки выводил hex как 2 числа соответсвующим тем же символам что и в знакогенераторе дисплея, что в принципе для меня оказалось очень удобно. Поскольку есть например: hex число скажем 2Bh мне нужно было получить отдельно символ 2 и отдельно B вот сопственно и все.