ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
AT89C4051 -> 2051. Помогите уменьшить программу
Всем доброго вечера. Понадобился мне генератор с DDS
. Там стоит по схеме AT89C4051. Но у меня есть C2051. И вот я подумал что можно и его применить , тем более что они отличаются только объемом памяти 4k-2k. В прилагаемой программе весом примерно 3.6к надо убрать лишнее (например там килобайт занимают логотипы, которые выводяться на экран от нокии 3310). Подскажите как и что удалить чтобы программа осталась рабочей. Думаю надо удалить логотипы и вывод на экран лишней информации.
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
- Реклама
логотипы занимают всего 536 байт. остальные функции так или иначе связаны с обращением к DDS генератору или LCD дисплею. имхо лучше не ипать себе (и другим!!!) мозг и купить нужную микросхему.
мне кажется, если переписать эту программу на LCD с контроллером HD44780, прога может занять значительно меньше 2КБ кода. ну если Вы не можете, в разделе "Из лап в лапы" Вам помогут.
Лично я не знаю асм для х51 контроллеров, за сим откланиваюсь.
мне кажется, если переписать эту программу на LCD с контроллером HD44780, прога может занять значительно меньше 2КБ кода. ну если Вы не можете, в разделе "Из лап в лапы" Вам помогут.
Лично я не знаю асм для х51 контроллеров, за сим откланиваюсь.
Ставим плюсы: )
Логотипы занимают явно более 500 байт, так как там порядка 60-70 строк db, по 16 констант в каждой...
Все эти строки нужно закомментировать, а в подпрограмме LCD_Init закомментировать все после строчки setb dc и до mov dptr,#header. Тогда заставки уберутся.
Все эти строки нужно закомментировать, а в подпрограмме LCD_Init закомментировать все после строчки setb dc и до mov dptr,#header. Тогда заставки уберутся.
Спасибоibiza11 писал(а):если переписать эту программу на LCD с контроллером HD44780, прога может занять значительно меньше 2КБ кода.
Еще вопросик
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
Наверняка где-нибудь в интернете валяется...Alexey_N писал(а):Еще вопросик: при компиляции в asm51, компилятор выдает ошибку что нет файла mod4051. Подскажите где его можно найти или как его написать.
Если самому, то нужно взять даташит на контроллер и из него выписать все SFR-ы вот в таком виде:
Код: Выделить всё
;MOD4051
P0 DATA 080H ;PORT 0
SP DATA 081H ;STACK POINTER
DPL DATA 082H ;DATA POINTER - LOW BYTE
DPH DATA 083H ;DATA POINTER - HIGH BYTE
...
...
...
IT0 BIT 088H ;TCON.0 - EXT. INTERRUPT 0 TYPE
IE0 BIT 089H ;TCON.1 - EXT. INTERRUPT 0 EDGE FLAG
IT1 BIT 08AH ;TCON.2 - EXT. INTERRUPT 1 TYPE
IE1 BIT 08BH ;TCON.3 - EXT. INTERRUPT 1 EDGE FLAG
...
...
...
- Реклама
В даташите такого нету. Или это для примера?Engineer_Keen писал(а):P0 DATA 080H ;PORT 0
И еще. Как отличить DATA от BIT ? В даташите просто таблица и непонятно что где

Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
Это для примера, я просто взял строчки из MOD51.
Все что у вас в квадратиках, это байты, то есть DATA. А вот отдельные биты в них это BIT.
В принципе в MOD51 есть больше чем в mod4051, так как он общий для всех 51-х контроллеров. Можно даже 51 переименовать в 4051. В программе все равно не должны использоваться имена которых нет в 4051.
Попробуйте переименовать.
Все что у вас в квадратиках, это байты, то есть DATA. А вот отдельные биты в них это BIT.
В принципе в MOD51 есть больше чем в mod4051, так как он общий для всех 51-х контроллеров. Можно даже 51 переименовать в 4051. В программе все равно не должны использоваться имена которых нет в 4051.
Попробуйте переименовать.
- Вложения
-
- MOD51.rar
- (874 байт) 172 скачивания
- Сообщения: 1163
- Зарегистрирован: Ср янв 05, 2011 16:25:15
... по приведенной таблице - диапазон АСС 0E0h-0E7h. Значит обращение к ACC.2 - 0E0h+2=0E2hИ еще. Как отличить DATA от BIT ? В даташите просто таблица и непонятно что где
Спасибо. Переименовал - все скомпилировалось. Только почему-то hex файл получился больше чем исходный, хотя я удалил лого. Может какие ключи надо asm51?
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
исходная версия
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
Измененная версия - убран логотип как писал Engineer_Keen
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
Вы сами видите что оба эти файла абсолютно идентичны? Вы точно тот исходник компилируете? Ошибок не было при компиляции?
А, пофиг, сам перекомпилировал, килобайт убрали, но все равно 2.6кБ, в 2051 не влезет...
А, пофиг, сам перекомпилировал, килобайт убрали, но все равно 2.6кБ, в 2051 не влезет...
Ха ... и у меня наконец правильно скомпилировался. Вместо ddsfinal_modified.asm почему-то компилировался ddsfinal.asm. Переименовал - все ок. Осталось избавиться от 0.6Кб
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
asm51 просто не понимает длинные имена файлов.
А вот еще уменьшить врядли... Можно убрать строчные символы и везде писать заглавные буквы, это еще -150 байт. И все, далее нужно досконально ковырять программу и разбираться как она работает. В этом случае проще написать новую с нуля, и вряд-ли кто-то этим займется...
А вот еще уменьшить врядли... Можно убрать строчные символы и везде писать заглавные буквы, это еще -150 байт. И все, далее нужно досконально ковырять программу и разбираться как она работает. В этом случае проще написать новую с нуля, и вряд-ли кто-то этим займется...
Спасибо. А на сколько удасться уменьшить программу если применить индикатор на HD44780. В нем знакогенератор встроенный вроде?
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
В программе встроены 128 символов, каждый занимает 5 байт, следовательно весь шрифт - 640 байт.
Кстати, если поменять все переходы с LCALL и LJMP на ACALL и AJMP, можно освободить еще порядка 100 байт, так как LCALL и LJMP все равно нужны только если переходы делаются дальше чем на 2 килобайта.
О, мысль, R7 вроде нигде не используется, а вот MOV [место назначения] ,#00h много, можно еще сократить, если вместо константы 0 использовать R7...
Кстати, если поменять все переходы с LCALL и LJMP на ACALL и AJMP, можно освободить еще порядка 100 байт, так как LCALL и LJMP все равно нужны только если переходы делаются дальше чем на 2 килобайта.
О, мысль, R7 вроде нигде не используется, а вот MOV [место назначения] ,#00h много, можно еще сократить, если вместо константы 0 использовать R7...
Замена ljmp и lcall на ajmp и acall уменьшила программу до 2.5Кб. Эхх... а дальше
.
Скажите, в HD44780 встроен знагокенератор или его загружать надо, а то я читал даташит на него а он на англицком
Скажите, в HD44780 встроен знагокенератор или его загружать надо, а то я читал даташит на него а он на англицком
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
Встроенный. А английский в нашем деле нужно знать...Alexey_N писал(а):Скажите, в HD44780 встроен знагокенератор или его загружать надо, а то я читал даташит на него а он на англицком
Спасибо. Будем идти в этом направлении 
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).


