|
siry
|
||||||
Код для at89c51 в keil uvision27.08.2013, 00:38. Показов 30798. Ответов 36
Метки нет (Все метки)
Доброго времени суток!
Я догадывался, что рано или поздно придется программировать. Этот день наступил. Необходимо написать программу для тестирования параметров данного мк. Писать решил на ассемблере. До этого писал пару программок в паскале аля п ничего не писал. Хочу спросить, будет ли работать то, что я написал (это кусок того, что надо сделать)? Если нет, то какие ошибки здесь есть (то есть, это и так все одна большая ошибка..)? Здесь проверяю напряжения высоких/низких уровней... где-то.. Адреса этих "где-то" взял в файле, где sfr разные (0x80,0x8E). В чем суть. Мк ждет сигнала на одном из пинов порта 2 (0xA0). Когда фиксирует этот импульс, ищет в таклице команд нужную и переходит на выполнение этой команды в самом коде. Я уверен, что работать не будет. Возможность проверить в деле будет только через неделю. Спасибо.
|
||||||
| 27.08.2013, 00:38 | |
|
Ответы с готовыми решениями:
36
Подпрограмма для keil uvision 8051 Keil Uvision 4 , МК51
|
|
siry
|
||||||||||||||||
| 29.08.2013, 16:10 | ||||||||||||||||
KEY0 BIT P0.0 и тд в вашем варианте - это мои SITB P0.0, SITB P1.0? Просто хочу быть уверен. С ALE меня сбило то, что в даташите написаны значения низкого/высокого уровня на нем. апдэйт. понял про KEY, P0 апдэйт2.
|
||||||||||||||||
|
siry
|
|
| 29.08.2013, 16:16 | |
|
То есть получается, что в общем и целом логику программы я составил верно, а осталось нормально определять секцию программы, писать все в нормальном порядке, разделяя подпрограммы и основную часть?
|
|
|
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,752
|
|||||||||||||||||
| 29.08.2013, 16:29 | |||||||||||||||||
Вы можете написать:
Где нибудь в конце листинга (или в другом файле) может быть таблица с константами:
0
|
|||||||||||||||||
|
siry
|
|
| 29.08.2013, 18:39 | |
|
Ну woythigh здесь - определенный кусок кода. А PROG нигде не написано же, кроме того места. Ээээ... Секунду, имя сегмента? Ааааа, то есть это мы чисто символически называем так сегмент.
Но ведь The RSEG directive selects a generic sikmimt that was previously declared using the SEGMENT directive. Woythigh у меня определено, что такое (ну под ним кроются строчки кода). Но под PROG же у меня ничего нет.. |
|
|
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,752
|
|||||||
| 29.08.2013, 18:46 | |||||||
По сути любая программа для МК имеет такой рабочий цикл:
0
|
|||||||
|
1 / 1 / 0
Регистрация: 28.01.2010
Сообщений: 537
|
|||
| 30.08.2013, 01:27 | |||
А причина в том, что выводы портов представляют собой схему с открытым стоком. Получается монтажное И. Строчка типа
И если выход этой схемы не типа открытый сток (коллектор), да еще вдруг буфферезирован, то порт твоего МК может выйти из строя. Делай выводы. Замени просто на JB P0.0
0
|
|||
|
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,752
|
|
| 31.08.2013, 15:14 | |
|
Уместно будет добавить про команды перехода (JMP, AJMP, SJMP, LJMP) и вызова (ACALL, LCALL).
Они имеют разную область видимости и не всегда очевидно где применить одну, где другую. Ассемблер uVision A51 допускает использование обобщенного имени команд JMP и CALL, которые в процессе трансляции заменяются оптимальными по формату командами перехода или вызова. Поэтому можно везде применять JMP и CALL, препроцесор заменит их оптимальными.
0
|
|
|
siry
|
||||
| 01.09.2013, 10:40 | ||||
________________________________________ _____________
________________________________________ _____________
|
||||
|
Oxford
|
|
| 01.09.2013, 10:53 | |
|
Не надоело на асме писать?
|
|
|
siry
|
|
| 01.09.2013, 12:25 | |
|
Так я первый раз вообще пишу.
|
|
|
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
|
|||
| 01.09.2013, 13:15 | |||
0
|
|||
|
siry
|
|
| 01.09.2013, 14:38 | |
|
Аа, понял!
|
|
|
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,752
|
||
| 01.09.2013, 22:22 | ||
У вас в голове полная каша, к data мы ничего не можем относить, т.к. этот сегмент не обьявлен и не задействован. Ну нет у вас переменных...
0
|
||
|
siry
|
|
| 03.09.2013, 15:38 | |
|
мм, про дату и код я просто ошибся. что у меня переменных нет это я помню.
|
|
|
siry
|
|||||||||||
| 03.09.2013, 18:34 | |||||||||||
|
Еще вот непонятно. Надо бы проверить, как работает юарт, таймеры. Ну еще можно флэш-память, но в последний момент,т.к. мне кажется, это самое сложное.
Вот с юартом. Хочу просто с ножки TX передать что-то через, грубо говоря, перемычку, получить это на RX, сравнить. если полученное равно отправленному, то выставить соответствующий флаг. Смотрю пример. И, я так понимаю, мне в основном интересны только две строчки:
|
|||||||||||
|
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,752
|
||
| 03.09.2013, 20:43 | ||
0
|
||
|
shp
|
|
| 10.09.2013, 01:49 | |
|
siry, все же советую писать на Си. Сэкономленное время лучше потратьте на изучение контроллера и других штук. При этом в итоге можно получить также очень компактный и быстрый бинарник, если иметь прямые руки и почаще заглядывать в отладчик, что там из вашего сишного кода получается на выходе.
|
|
| 10.09.2013, 01:49 | |
|
Как добавить микросхему в Keil uVision 4? Ошибки про сборке проекта в Keil uVision 5 Keil uVision. Получить частоту внешнего генератора Программирование арифметических операций (i8051 Keil uVision) Keil uVision. Как просмотреть assembler code программы на Си? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|