|
siry
|
||||||
Код для at89c51 в keil uvision27.08.2013, 00:38. Показов 30692. Ответов 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 программы на Си? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 30. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем
**Полевые заметки о двухнедельной совместной работе**. . .
|
Теория всего 12. ВГК
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики
1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
|
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928
Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
|
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего
Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
|
|
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы
Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
|
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока
Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
|
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
|
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат»
Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
|