"DVDXpert" - компас в мире Hi-Fi и High End техники и другой stereo и home cinema аппаратуры.

ПРОГРАММЫ И СХЕМЫ ПИШЕМ ПЕРВЫЕ ПРОГРАММЫ

19-01-2024

Первая схема показана на рис. 31. Все приведенные далее учебные программы ориентированы на работу с приведенными в книге схемами и протестированы автором.

Эту схему можно собрать на небольшом кусочке макетной платы или фольгированного текстолита, выполнив соединения тонким проводом МГТФ Схему можно питать от любого имеющегося источника стабилизированного напряжения +5 вольт. В качестве стабилизатора желательно применить микромощный стабилизатор 78LM05 Он предохранит микроконтроллер от повреждения при неправильной установке в панельку или при ошибке в монтаже.

HELLO, WORLD! МИГ АЮЩИЙ СВЕТОДИОД

Простейшая ассемблерная программа, заставляющая мигать светодиод, подключенный к одному из портов, имеет такое же культовое значение, как программа, выводящая строку "Hello, World!" для начинающих программистов на языке С или Perl. Она позволяет ощутить, с чем и как вы работаете, и увидеть воочию результат своего труда. Далее мы приводим листинг этой программы. Если вы будете вводить ее текст в текстовом редакторе, то не обязательно вводить строки комментариев, которые следуют после точки с запятой. Мы очень подробно опишем алгоритм первой программы для тех, кто только начинает программировать, а более подготовленных читателей просим отнестись к этому с пониманием. Далее мы будем двигаться по принципу "от простого к сложному".

Как вы уже знаете, информация о слове состояния процессора, будучи записанной в кристалл, впоследствии может быть изменена только при помощи программатора. Он получает эту информацию автоматически, из выходного hexфайла, но биты слова состояния запрограммированного контроллера вы можете изменить, пользуясь интерфейсом программы, поддерживающей программатор (в нашем случае это PicPro Light).

Как работает программа? Указав ассемблеру тип процессора и подключив соответствующий файл описания p!6F84.inc, мы описываем, в каких ячейках ОЗУ (регистрах общего применения) будут храниться значения наших переменных. Затем приступаем к настройке портов. Сначала обнуляем значения в выходных защелках портов. В нашей программе мы могли бы этого и не делать, но правильный стиль программирования микроконтроллеров РІС требует, чтобы значения в выходных защелках были явно определены перед тем, как

некоторые линии будут настроены на вывод. Давайте привыкать к этому с самого начала.

Затем, установив в 1 бит R.P0 регистра STATUS, мы получаем доступ к регистровому банку 1. Теперь, обращаясь к регистрам PORT А и PORTB, мы обращаемся не к выходным защелкам, а к регистрам состояния этих портов, и настраиваем часть линий на ввод, а часть на вывод, что соответствует схеме. Устанавливаем бит RP0 обратно в О, обнуляем служебную Переменную ledset.

Далее (метка loop) при помощи операции "исключающее или" инвертируем бит <1> переменной ledset, сохраняя значение обратно в ledset (xorwf ledset, f) и, скопировав результат в аккумулятор (movf ledset, w), выводим значение ledset в выходную защелку порта А. На линии RA1 появляется уровень, соответствующий текущему значению бита<1> переменной ledset.


Смотрите также:
 Маршрутизатор
 Интерактивное оборудование
 Эфирное цифровое телевидение: DVB-T
 Небесная битва
 Интерактивное телевидение

Добавить комментарий:
Введите ваше имя:

Комментарий:

Защита от спама - решите пример: