|
Внимание! Теперь для входа на форум необходимо вводить единый пароль регистрации сервисов sibnet.ru!
Здравствуйте, гость ( Вход | Регистрация )
Сейчас обсуждают
 
| |
микроконтроллеры, всё что связано с микроконтроллерами |
|
|
север |
25.12.2008, 11:38
|
Любит поговорить
Группа: Sibnet-club
Сообщений: 262
Регистрация: 16.6.2008
Пользователь №: 37 215
Репутация: 41
|
Радиолюбительские конструкции на PIC микроконтроллерах. Н. И. Заяц
PIC.rar ( 8.86 мегабайт )
Кол-во скачиваний: 16016Серия «Солон- Радиолюбителям» три книги. Книги предназначены для широкого круга радиолюбителей, а также может быть полезна студентам, изучающим программирование микроконтроллеров. книга 1 » Спойлер (нажмите, чтобы прочесть) « Радиолюбительские конструкции на PIC микроконтроллерах В первой книге представлено 20 описаний радиолюбительских устройств различно, назначения: часы, таймеры, автоматы, программатор и многие другие, выполненные на микроконтроллере PIC16F84A. Впервые книга с различными устройствами на PIC-микроконтроллере предназначается для радиолюбителей с любым уровнем подготовленности. Даже те, кто не знаком с программированием микроконтроллеров, смогут без труда повторить любое устройство. Радиолюбители, имеющие опыт работы с программированием, могут изменить программы под свои цели. Для этого в книге даны алгоритмы работы и исходные тексты программ с подробными комментариями.
Автор также делится опытом программирования и работы с ассемблером MPLAB и программатором PonyProg2000.
книга 2 » Спойлер (нажмите, чтобы прочесть) « Во второй книге даны новые примеры применения PIC-микроконтроллеров в радиолюбительской практике. Программисты найдут в книге программы с использованием встроенного в микроконтроллер модуля - АЦП и программы с различными внешними устройствами - термодатчиками типа DS 18x20, LCD-дисплеями. Радиолюбители, которые желают повторить устройства, могут выбрать цифровой милливольтметр, для того чтобы защитить свой дом от перепадов напряжения, а трехфазный двигатель - от перегрузки. Термометр-часы, градусник и два терморегулятора будут полезными в любом доме. Ко всем программам даны алгоритмы работы и подробные комментарии.
книга 3 » Спойлер (нажмите, чтобы прочесть) « Третья книга расширяет диапазон применения PIC-микроконтроллеров в радиолюбительской практике. В ней дан пример программы с использованием встроенного в микроконтроллер модуля USART и различных внешних устройств - LCD-дисплеев и ЖКИ, выполненных по COG-технологии. Радиолюбители, которые желают повторить устройства, могут выбрать: охрану подворья, шахматные часы, таймеры на 7 и 9 выходов, а также автомат кормления аквариумных рыб. Для родной школы можно изготовить простое устройство подачи звонков по расписанию.
В отдельную главу вынесены "трудные темы" взаимодействия микроконтроллеров с внешними устройствами: ЖК-дисплеями и термодатчиками типа DS 18x20. Ко всем программам даны алгоритмы работы и подробные комментарии.
К книге прилагается компакт-диск, содержащий 48 исходных текстов программ ко всем устройствам четырех книг автора, ("Электронные самоделки. Для быта, отдыха и здоровья" и "Радиолюбительские конструкции на РIС-микроконтроллерах" в трех книгах), вышедших в издательстве СОЛОН-Пресс, справочные материалы по микроконтроллерам на русском и английском языках, установочные программы для программаторов и ассемблера MPASM.
|
|
|
|
titr |
17.5.2009, 1:28
|
Любит поговорить
Группа: Sibnet-club
Сообщений: 342
Регистрация: 26.11.2007
Пользователь №: 11 660
Репутация: 1
|
MOVLW .100 ;60 МКС (БУДЕТ УТОЧНЯТЬСЯ) MOVWF TIMER3 ;СКОПИРОВАЛ В ТАЙМЕР LLL MOVLW .250 ;60 МКС (БУДЕТ УТОЧНЯТЬСЯ) MOVWF TIMER2 ;СКОПИРОВАЛ В ТАЙМЕР KKK MOVLW .250 ;60 МКС (БУДЕТ УТОЧНЯТЬСЯ) MOVWF TIMER ;СКОПИРОВАЛ В ТАЙМЕР SCHET DECFSZ TIMER,1 ;ДЕКРЕМЕНТ, ПРОВЕРИТЬ НОЛЬ, ЕСЛИ НЕ НОЛЬ ПО GOTO GOTO SCHET DECFSZ TIMER2,1 ;ДЕКРЕМЕНТ, ПРОВЕРИТЬ НОЛЬ, ЕСЛИ НЕ НОЛЬ ПО GOTO GOTO KKK DECFSZ TIMER3,1 GOTO LLL BTFSC PORTB,6 ;ДЕКРЕМЕНТ, ПРОВЕРИТЬ НОЛЬ, ЕСЛИ НЕ НОЛЬ ПО GOTO GOTO FFFF Делений генератора не ставил, генератор 4 Мгц, вот этот цикл на симуляторе 4,5сек, а реально 18!
|
|
|
|
jonsony |
17.5.2009, 3:00
|
я есть я и никто иной
Группа: Пользователи
Сообщений: 13 154
Регистрация: 18.9.2008
Из: Омск
Пользователь №: 50 025
Репутация: 648
|
Цитата(titr @ 17.5.2009, 0:28) MOVLW .100 ;60 МКС (БУДЕТ УТОЧНЯТЬСЯ) MOVWF TIMER3 ;СКОПИРОВАЛ В ТАЙМЕР LLL MOVLW .250 ;60 МКС (БУДЕТ УТОЧНЯТЬСЯ) MOVWF TIMER2 ;СКОПИРОВАЛ В ТАЙМЕР KKK MOVLW .250 ;60 МКС (БУДЕТ УТОЧНЯТЬСЯ) MOVWF TIMER ;СКОПИРОВАЛ В ТАЙМЕР SCHET DECFSZ TIMER,1 ;ДЕКРЕМЕНТ, ПРОВЕРИТЬ НОЛЬ, ЕСЛИ НЕ НОЛЬ ПО GOTO GOTO SCHET DECFSZ TIMER2,1 ;ДЕКРЕМЕНТ, ПРОВЕРИТЬ НОЛЬ, ЕСЛИ НЕ НОЛЬ ПО GOTO GOTO KKK DECFSZ TIMER3,1 GOTO LLL BTFSC PORTB,6 ;ДЕКРЕМЕНТ, ПРОВЕРИТЬ НОЛЬ, ЕСЛИ НЕ НОЛЬ ПО GOTO GOTO FFFF Делений генератора не ставил, генератор 4 Мгц, вот этот цикл на симуляторе 4,5сек, а реально 18!
так как ты не указал тип пика, то я взял книжку по тому какие есть книга "Измерение, управление и регулирование с помощью PIC микроконтроллеров" там в начале рассматривается структура и язык пиков, так вот на странице 18, последний абзац, имеем (идёт там описание регистра счетчика реального времени RTCC): -"ВНЕШНИЙ ИЛИ ВНУТРЕННИЙ ТАКТ (ЧАСТОТА ВНУТРЕННЕГО ГЕРЕРАТОРА ТАКТИРОВАНИЯ СОСТАВЛЯЕТ Fosc/4); вот и ответ на твой вопрос Сообщение отредактировал jonsony - 17.5.2009, 3:01
|
|
|
|
jonsony |
17.5.2009, 14:31
|
я есть я и никто иной
Группа: Пользователи
Сообщений: 13 154
Регистрация: 18.9.2008
Из: Омск
Пользователь №: 50 025
Репутация: 648
|
Цитата(titr @ 17.5.2009, 13:05) В посте 7 я указал ПИК. -"ВНЕШНИЙ ИЛИ ВНУТРЕННИЙ ТАКТ (ЧАСТОТА ВНУТРЕННЕГО ГЕРЕРАТОРА ТАКТИРОВАНИЯ СОСТАВЛЯЕТ Fosc/4) с этим все понятно. Но проблема в том, что на симуляторе и в реале разные показания получаются. А должно быть одинаково.
ну книга как раз про 16С71, 16F84 и 161С5х кто тебе сказал что одинаково? может симулятор у тебя подразумевал внешнее тактирование, а там нет деления на 4 попробуй протеус, он тут был на сибнете Сообщение отредактировал jonsony - 17.5.2009, 14:36
|
|
|
|
jonsony |
17.5.2009, 15:26
|
я есть я и никто иной
Группа: Пользователи
Сообщений: 13 154
Регистрация: 18.9.2008
Из: Омск
Пользователь №: 50 025
Репутация: 648
|
Цитата(titr @ 17.5.2009, 14:16) Ты в теме я смотрю. Тогда поясни поподробнее. Ведь действительно если 4,5*4=18!
Хотя нет. Симулятор считает 4Мгц/4=0,1мкс цикл. Выходит в устройсве цикл 0,4 мкс!
а 0,4 тоже больше 0,1 как раз в 4 раза :-)) просто вопрос в том как тот симулятор считает, может и не так как надо. не особо в теме, просто малость почитываю, набирая инфу и познания. просто когда этот обзац прочитал, сразу бросилось в глаза что твой 18 как раз в 4 раза больше плановых и симуляторных вот прогу ещё попробуй (сразу скажу, я не ставил, не до неё было) Сообщение отредактировал jonsony - 17.5.2009, 17:06
Прикрепленные файлы
picsimulatoride.zip ( 1.48 мегабайт )
Кол-во скачиваний: 133
|
|
|
|
jonsony |
17.5.2009, 19:32
|
я есть я и никто иной
Группа: Пользователи
Сообщений: 13 154
Регистрация: 18.9.2008
Из: Омск
Пользователь №: 50 025
Репутация: 648
|
http://file.sibnet.ru/get/?id=215506протеус кстати, вот кусок из пдф на 16ф84 OSC1/CLKIN 16 16 I ST/CMOS Oscillator crystal input/external clock source input. OSC2/CLKOUT 15 15 O — Oscillator crystal output. (Connects to crystal or resonator in crystal oscillator mode. In RC mode, OSC2 pin outputs CLKOUT which has 1/4 the frequency of OSC1, and denotes the instruction cycle rate.) ты не забыл указать ему тип генератора? в реальной схеме Сообщение отредактировал jonsony - 17.5.2009, 20:00
|
|
|
|
titr |
20.5.2009, 22:44
|
Любит поговорить
Группа: Sibnet-club
Сообщений: 342
Регистрация: 26.11.2007
Пользователь №: 11 660
Репутация: 1
|
Цитата(jonsony @ 17.5.2009, 18:32) http://file.sibnet.ru/get/?id=215506протеус кстати, вот кусок из пдф на 16ф84 OSC1/CLKIN 16 16 I ST/CMOS Oscillator crystal input/external clock source input. OSC2/CLKOUT 15 15 O — Oscillator crystal output. (Connects to crystal or resonator in crystal oscillator mode. In RC mode, OSC2 pin outputs CLKOUT which has 1/4 the frequency of OSC1, and denotes the instruction cycle rate.) ты не забыл указать ему тип генератора? в реальной схеме Поставил ХТ, да всем голову задурил, не 0,1мкс, а 1мкс цикл. Цитата(zedimon @ 18.5.2009, 13:08) Твоя программа задержки интересная. Почему нельзя использовать готовую, к примеру вот такую:
Задержка 4,5 сек. Симулятор считает 4Мгц/4=0,1мкс цикл. Выходит в устройстве цикл 0,4 мкс!
;delay = 45'000'000 machine cycles Pause movlw .245 movwf Reg_1 movlw .73 movwf Reg_2 movlw .229 movwf Reg_3 wr decfsz Reg_1, F goto wr decfsz Reg_2, F goto wr decfsz Reg_3, F goto wr
Бегло глянул на это, тоже самое, в чем разница? Можа чего не увидел. Хотя наверное действительно твоя лучще. Я просто с месяц назад ассемблером занялся, поэтому пока шишки еще только набиваю. Цитата(jonsony @ 17.5.2009, 14:26) а 0,4 тоже больше 0,1 как раз в 4 раза :-)) просто вопрос в том как тот симулятор считает, может и не так как надо. не особо в теме, просто малость почитываю, набирая инфу и познания. просто когда этот обзац прочитал, сразу бросилось в глаза что твой 18 как раз в 4 раза больше плановых и симуляторных
вот прогу ещё попробуй (сразу скажу, я не ставил, не до неё было)
Спасибо за прогу, занятная, в некоторых случая кода требуется на пинах подавать или снимать сигналы очень удобно. В МРlab, этого нет, правда там другие хорошие примочки есть. Буду обоими работать. Кстати проверил свою программу на этой проге Тоже самое показывает!!! Не могу понять чего ей надо? Ведь в прогу я загоняю ровно то же что и в микрсхему, а результат разный. Ну, да ладно буду дальше думать.
|
|
|
|
zedimon |
21.5.2009, 10:46
|
Болтун
Группа: Sibnet-club
Сообщений: 624
Регистрация: 2.3.2008
Пользователь №: 23 091
Репутация: 22
|
Цитата(titr @ 20.5.2009, 21:44) Поставил ХТ, да всем голову задурил, не 0,1мкс, а 1мкс цикл.
На частоте 4МГц - 1мкс цикл. Задержка 4,5 сек : Я посмотрел твою задержку: получается на частоте 4 МГц 18,75 сек. Что бы получить задержку в примерно в 4,5 сек, тебе надо изменить следующее: MOVLW . 24 ; (БУДЕТ УТОЧНЯТЬСЯ) MOVWF TIMER3 ;СКОПИРОВАЛ В ТАЙМЕР LLL MOVLW .250 ; МКС (БУДЕТ УТОЧНЯТЬСЯ) MOVWF TIMER2 ;СКОПИРОВАЛ В ТАЙМЕР KKK MOVLW .250 ; 750 МКС (БУДЕТ УТОЧНЯТЬСЯ) (250*3мкс(время выполнения команд задержкой) MOVWF TIMER ;СКОПИРОВАЛ В ТАЙМЕР Сообщение отредактировал zedimon - 21.5.2009, 12:47
|
|
|
|
zedimon |
26.5.2009, 12:46
|
Болтун
Группа: Sibnet-club
Сообщений: 624
Регистрация: 2.3.2008
Пользователь №: 23 091
Репутация: 22
|
Цитата(titr @ 25.5.2009, 22:11) zedimon Я посмотрел твою задержку: получается на частоте 4 МГц 18,75 сек.
Станно у тебя 18,75 получается, а у меня на двух программах 4,65 получается??? Ты каким образом считал, расскажи. Я подогнать результат под то, что мне надо могу методом тыка. Но следующие задержки у меня довольно болшие (до нескольких минут) и на симуляторе такое время долго будет считать (весь день наверное). Вот и хочу выяснить почему разница.
Нам известно на частоте 4 МГц время выполнения одной команды 1 мкс. Время выполнения команд младшей группы задержки 3 мкс. Все время выполнения всей младшей группы 255*3=765 мкс. Все время выполнения всей средней группы 765*255=195075 мкс. На измерение одной старшей группы нужно 195075 мкс. Надо получить 4500000 мкс /195075 =23. 23 запишем в старший регистр задержки. Это грубый подсчет, не учитываются время на переходы. Далее в симуляторе отрабатываем если нужно точное время задержки. А зачем такие огромные задержки нужны? Сообщение отредактировал zedimon - 26.5.2009, 12:48
|
|
|
|
titr |
29.5.2009, 22:37
|
Любит поговорить
Группа: Sibnet-club
Сообщений: 342
Регистрация: 26.11.2007
Пользователь №: 11 660
Репутация: 1
|
Цитата(zedimon @ 26.5.2009, 11:46) Нам известно на частоте 4 МГц время выполнения одной команды 1 мкс.
Время выполнения команд младшей группы задержки 3 мкс.
Все время выполнения всей младшей группы 255*3=765 мкс. Все время выполнения всей средней группы 765*255=195075 мкс. На измерение одной старшей группы нужно 195075 мкс. Надо получить 4500000 мкс /195075 =23. 23 запишем в старший регистр задержки. Это грубый подсчет, не учитываются время на переходы. Далее в симуляторе отрабатываем если нужно точное время задержки.
А зачем такие огромные задержки нужны?
Задержки нужны для того чтобы механизм не откликался на короткие (паразитные) входящие сигналы. И только однозначно откликался на сигналы корорые длинны и устойчивы. Спасибо за разъяснение по командам задержки. И все равно не могу понять почему в симуляторе и на схеме по разному!?
|
|
|
|
1 чел. просматривают этот форум (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|