|
siry
|
||||||
Код для at89c51 в keil uvision27.08.2013, 00:38. Показов 30399. Ответов 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 | |
|
Помогаю со студенческими работами здесь
37
Как добавить микросхему в Keil uVision 4? Ошибки про сборке проекта в Keil uVision 5 Keil uVision. Получить частоту внешнего генератора Программирование арифметических операций (i8051 Keil uVision) Keil uVision. Как просмотреть assembler code программы на Си? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|