\
РАДИОЛЮБИТЕЛЬ - НАЧИНАЮЩИМ
[
присуща всем аспектам человеческой
деятельности - и размеры линейкой мы
меряем с точностью не лучше полумил-
лиметра, и время не точнее секунды
и
вес - вряд ли точнее грамма, а, тем не
менее, нас это устраивает! Надо лишь
заранее учитывать эту особенность при
разработке своих .устройств, и все. Су
ществует масса программистских при-
емов, позволяющих свести к миниму-
му влияние дискретности обработки
сигналов микроконтроллером, с неко-
торыми из которых я обязательно буду
вас знакомить.
Дополнительно следует заметить,
что дискретность работы связана в пер-
вую очередь с тем, что все процессы
внутренней работы микроконтроллера
синхронизируются тактовым генерато-
ром, чаще с внешним кварцевым резо-
натором, реже-встроенным. Соответ-
ственно, повышая частоту тактового
генератора, мы уменьшаем дискрет-
ность обработки (при этом, правда, под-
нимаем потребляемый микроконтрол-
лером ток). Разумеется, бесконечно по-
вышать тактовую частоту нельзя, по-
этому всегда приходится искать комп-
ромиссы.
Глава 3.
Последняя тео р ети ч еская
Сначала ответы на задания из пре-
дыдущей части. Числа 147 и 20340 в
восьмеричной системе запишутся как
223
и 47564,
в
пятеричной
1042
и
1122330, а в девятеричной соответ-
ственно 173 и 30810. Тем, кто не су-
мел разобраться с переводом, подска-
жу: надо сначала определить “вес” каж-
дого разряда числа в выбранной сис-
теме счисления, например, для пяте-
ричной это будут (как всегда, справа
налево) 1,5,25,625 и т.д. Ряд этот надо
продолжить, пока очередной “вес” не
станет больше переводимого числа.
Затем надо определить, сколько еди-
ниц наибольшего веса “умещается" в
числе, т.е. поделить число на наиболь-
ший вес - целая часть от деления и
будет значением соответствующего
разряда. Затем надо взять остаток от
деления и вес предыдущего разряда
и снова путем деления определить зна-
чение предыдущего разреда, и так про-
должать до самого младшего разряда.
Так последовательно можно опреде-
лить значения всех разрядов числа в
I И
|
-----------
нужной системе счисления - потрени-
руйтесь!
Теперь к сути. Это будет последняя
“вступительная” глава, которая касает-
ся лишь общих для всех микроконтрол-
леров нюансов. В ней мы слегка зат-
ронем проблему языков программиро-
вания и проблему выбора микроконт-
роллера, а уже начиная со следующей
главы будем детально изучать конк-
ретный микроконтроллер на конкрет-
ных примерах, т.е. перейдем от обще-
го к частному.
Итак, языки программирования. Что
это такое? Не углубляясь в тонкости
можно сказать, что язык программи-
рования - это набор слов и правил, при
помощи которых отдаются команды
микроконтроллеру, выполняя которые
он решаеттребуемую задачу. Програм-
ма на определенном языке программи-
рования - это перечень определенных
команд для исполнения микроконтрол-
лером. Человек обычно составляет про-
грамму в виде текстового файла, затем
этот файл преобразуется в специаль-
ные коды, воспринимаемые микрокон-
троллером. По сути, язык программи-
рования является посредником между
человеком и микроконтроллером, по-
зволяя им “взаимодействовать” друг с
другом. Как и языки человеческого об-
щения, языки программирования быва-
ют простыми и сложными для освоения,
причем сложный в освоении язык обыч-
но позволяет проще и удачнее реали-
зовывать задуманные программы, а бо-
лее простой в освоении наоборот, име-
ет достаточное количество ограниче-
ний и недостатков. Наиболее популяр-
ными языками для программирования
микроконтроллеров в настоящее вре-
мя являются
Си
и
ассем блер.
Прежде всего, ассемблер. Я ярый
приверженец этого языка и считаю, что
тот, кто знает ассемблер - знает все.
Этот язык позволяет максимально пол-
но использовать все потенциальные
возможности любого микроконтролле-
ра, обеспечивая при этом максималь-
ное быстродействие программы. Мы
еще не рассматривали понятие быст-
родействия, но думаю, вам станет все
понятно, если вы вспомните наши рас-
суждения о дискретности обработки
информации - чем меньше времени
контроллер тратит на каждый шаг, тем,
соответственно, выше быстродействие
его программы. Так вот, ассемблер по-
зволяет достичь наименьшего време-
ни работы программы, но при этом на
разработку программы тратится боль-
ше времени ©.
В отличие от ассемблера, язык Си
позволяет программисту Oi юрировать
не аналогами машинных команд, а бо-
лее понятными, почти “человеческими”
словами (правда, английскими), в ре-
зультате чего программа приобретает
более понятный вид. Кроме того, Си
позволяет обрабатывать информацию
существенно иными способами, неже-
ли ассемблер, например, целыми бло-
ками по 2, 4, 8 и даже более байт за
одну команду. Это сильно упрощает
процесс разработки программы, одна-
ко не надо забывать, что в конце кон-
цов любой текст программы будет пре-
образован в машинный код. Так вот,
почти всегда при решении одинаковых
задач на Си и ассемблере объем полу-
чающихся из программы на Си машин-
ных кодов будет больше, чем из про-
граммы на ассемблере, а быстродей-
ствие программы - ниже. Простота про-
граммирования на Си оборачивается
низким
быстродействием и ростом
объема.
Многих пугает ассемблер. Однако
я связываю это лишь с системой ко-
манд конкретного микроконтроллера.
Дело в том, что ассемблер - не что иное,
как обычная подстановка вместо кодов
команд их мнемонического условного
наименования. Делается это примерно
так: команда “увеличить на 1 содержи-
мое ячейки памяти” в виде кода выгля-
дит как число 98 (предположим ©), но,
разрабатывая программу на ассембле-
ре, мы вместо этого напишем “INC” -
сокращение от increment, т.е. прираще-
ние на 1. Так вот, сложность освоения
ассемблера зависит от того,
какие
именно команды реализованы в мик-
роконтроллере, а так же от того, как
конкретный микроконтроллер устроен,
т.е. от его внутренней архитектуры. Мы
для своего курса изучения микроконт-
роллеров будем использовать неувяда-
ющее семейство MCS51, обладающее,
на мой взгляд, наилучшей системой
команд: логичной, удобной и простой.
Как же разрабатывается програм-
ма для микроконтроллера на ассемб-
лере? Для этого обычно требуется,
само собой, компьютер, а также две
| Радиолюбитель - 0
/2 0 0 7
предыдущая страница 50 Радиолюбитель 2007-01 читать онлайн следующая страница 52 Радиолюбитель 2007-01 читать онлайн Домой Выключить/включить текст