PIC-контроллеры(P16F877A) что? как? почему я?

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Родился
Сообщения: 6
Зарегистрирован: Вт сен 29, 2009 17:25:07

Сообщение Valerian »

Представить не могу, как вас отблагодарить, Анастасия! Быть может, подняв ставки до трех бутылок вы найдете время на некоторое пояснение: :roll:

Код: Выделить всё

            cblock      20h
Регистр:3
Др_регистр:3
            endc
Это описание констант? Эквивалентное:

Код: Выделить всё

Регистр EQU 3
???

Для чего вообще необходима "необходимая пауза" и соответственно регистр и Др_регистр?

Как расчитаны задержки и зачем их столько много? :o

Неужели это простейшие вещи? :shock: :shock: :shock:
Реклама
Мявтор!
Аватара пользователя
Сообщения: 878
Зарегистрирован: Чт авг 07, 2008 09:12:38
Откуда: не скажу

Сообщение Настя »

Код: Выделить всё

            cblock      20h 
Регистр:3 
Др_регистр:3 
            endc
Это блочная адресация регистров (начиная с адреса 20h)
(20h - запись числа в 16ричном формате, 20h = .32)
(.32 - запись числа в 10тичном "человеческом" формате)
(20h = .32 = b'00100000' , где b'00100000' - запись в 2ичном формате)
(существует еще несколько разновидностей записи, но это основные)
Это эквивалентно

Код: Выделить всё

Регистр EQU 20h
Др_регистр EQU 23h
Мало того, здесь через двоеточие ":" мы резирвируем несколько
адресов (Регистр:3 ) . Обращение к зарезервированным регистрам
получаем через записи

Код: Выделить всё

Регистр+1
Регистр+2
Др_регистр+1
Др_регистр+2
где через "+ число" мы показываем приращение значения
(показываем для компилятора, ну и для себя тоже).

В секции "необходимая пауза" мы подготавливаем "Др_регистр'ы"
для того, чтобы в последствии их уменьшать в цикле, т.е.
последовательно ДЕКРЕМЕНТИРОВАТЬ, обеспечивая временнУю
задержку. Подготовка заключается в КОПИРОВАНИИ значений из
одних "регистр'ов" в "др_регистр'ы". "Региcтр'ы" фактически
у нас остаются не затронуты, до тех пор, пока по факту нажатия
на одну из кнопок мы не изменим содержимое "регистр'ов".

Факт нажатия оценивается путем битовой проверки каждой линии
порта. Т.к. кнопок у нас 8 штук, мы подготовили 8 подсекций
со значениями, которые будут определять длительность задержек.
Нажатие кнопки на соответствующей линии иницирует переход
в подсекцию со значениями, где в "региcтр'ы" ВНОСЯТСЯ
новые значения.

Для рассчета задержек существует множество программ,
одна из которых называется PIC_Delay_1_7. См вложение.

Вещи становятся простыми, если о них просто рассказать
великим, могучим русским языком )) +3 бутылки буратино
Вложения
PIC_Delay_1_7.rar
(40.95 КБ) 120 скачиваний
Последний раз редактировалось Настя Чт окт 01, 2009 16:52:56, всего редактировалось 2 раза.
натуральная блондинка
Контактная информация:
Реклама
Мявтор!
Аватара пользователя
Сообщения: 878
Зарегистрирован: Чт авг 07, 2008 09:12:38
Откуда: не скажу

Сообщение Настя »

это тоже пригодится
Вложения
BinHexDec.rar
программка перевода чисел между форматами (БИНарный_Hex_ДЕСятичный)
(250.97 КБ) 111 скачиваний
натуральная блондинка
Контактная информация:
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»