Устройства на микроконтроллерах pic своими руками: Цветомузыка и автомат световых эффектов на микроконтроллере PIC16F628A » RADIOSHEM.RU

Содержание

Тактовый генератор для PIC контроллеров

Опубликовал admin | Дата 8 октября, 2019

Внешний тактовый генератор для PIC контроллеров

В данной статье рассматривается схема внешнего кварцевого генератора для синхронизации работы контроллеров семейства PIC. Основой генератора является микросхема жесткой логики ЛА3 серии К1533 или ее зарубежных аналогов 74АС00, 74AS00 и т.д. Схема генератора показана на рисунке 1.


Вариантов схем генераторов на микросхемах данного типа много. Два варианта схем внешнего тактового генератора представлены в документации микроконтроллера PIC16F628A.

Для моих нужд необходим генератор с двумя выходами, один для контроля частоты тактового генератора, другой – непосредственного для тактирования PIC (будущий термостат), поэтому я анализировал схему на рисунке 1. Вы можете собрать генератор по любой другой схеме, имеющей подстройку частоты. В схеме на рисунке 1 частоту можно изменять, подбирая емкость конденсатора С1. При макетировании и настройке схемы оказалось, что лучшие результаты подстройки частоты генератора получаются, если конденсатор С1 заменить перемычкой, а последовательно кварцу поставить триммер 6÷25пФ, для кварца 4 мГц. С китайским кварцем на 4мГц свободно получалась 4000000Гц. Данная схема была опробована с кварцами на частоты – 4, 8, 10, 12, 16, 20 и даже на 22,5Мгц. На всех частотах контроллер с пробной программой нормально работал.

Для чего нужен такой генератор? Для того, что бы сделать частотомер с параметрами близкими к профессиональным приборам, точные часы, измерители параметров импульсов и т.д. Для этого и необходим термостатированный кварцевый генератор.

В Сети много схем различных частотомеров реализованных на микроконтроллерах с различными тактирующими частотами. Но не во всех публикациях выложены исходные файлы, где можно было бы в битах конфигурации изменить тактирование контроллера с внутреннего генератора на внешний. Да, и радиолюбителям не знакомым с программированием это сделать будет порой проблематично. Такая проблема была и у меня, когда я и понятия не имел, что такое это программирование, хотя она решается очень просто. Я буду приводить примеры из документов на микроконтроллер PIC16F628A, т.к. они переведены на русский язык. И так. Микроконтроллеры PIC16F62X могут работать в одном из восьми режимов тактового генератора. Нам интересен режим с внешним тактом.

Но в файле P16F628A.INC бит конфигурации внешнего тактового генератора обозначен по-другому, как _EXTCLK_OSC.

Теперь, поменяв в битах конфигурации _XT_OSC на _EXTCLK_OSC, вы смело можете вместо внутреннего генератора использовать внешний, подав его сигнал на вывод OSC1, это вывод 16 для контроллера P16F628A, или, например вывод 9, для PIC1687X. Но есть еще один способ внешнего тактирования. В документации есть строки:

Подчеркнутые красным… . Это говорит о том, что можно не менять конфигурацию внутреннего тактового генератора контроллера в исходном файле программы, а подавать внешние тактирующие импульсы при отключенном кварце непосредственно на микроконтроллер. Но в этом случае такт подается не на вывод OSC1, а на OSC2. Это вывод 15 применительно к PIC16F628A. Все эксперименты я проводил с этим контроллером. Осталось за малым, разработать или приобрести готовый термостатированный генератор на соответствующую частоту. Информации на эту тему можно найти в Интернете много. Вот, например, публикация в журнале «Радио» за 1981 год номер 9, стр. 66. Николай Тюлиев, «Термостатированный кварцевый генератор». Журнал Радио 2005 г. № 10 — Страница 43 И. Нечаев «Малогабаритный термостат». Но не забывайте, что для высокостабильного генератора c высокими электрическими параметрами нужен и соответствующего качества кварц. Все компоненты, входящие в состав схемы, лучше заранее про термоциклировать. У нас на производстве существовала входная приемка. В нее ведомее была и стадия входного термоциклирования. Осуществлялось шесть циклов по два часа +60°С и -60°С. Кстати, вовремя данной процедуры некий процент некачественных деталей отсеивался сразу. Ну, в домашних условиях жесткость этих условий можно и снизить.

Для тепла можно использовать духовку, а для мороза – морозильную камеру. Генераторы, собранные из таких компонентов, намного быстрее входят в режим стабильности показаний. К профессиональному генератору должно быть профессиональное отношение. Вообще я уже лет двадцать, как храню все радиодетали в герметичной таре (пластиковые пищевые контейнеры) сперва на балконе, а теперь на чердаке дома, можно сказать на улице. У меня получилось природное термоциклирование, от холодрыги до жарищи. Следующая статья будет посвящена такому генератору с термостатом на микроконтроллере PIC12F675 и датчике температуры DS18B20 – «Генератор кварцевый термостатированный».

Удачи. К.В.Ю.

Скачать “Тактовый генератор для PIC контроллеров” Внешний-тактовый-генератор-для-PIC-контроллеров.rar – Загружено 114 раз – 172 КБ

Обсудить эту статью на - форуме "Радиоэлектроника, вопросы и ответы".

Просмотров:420


Использование модулей АЦП и ШИМ в микроконтроллерах PIC16 | RadioLaba. ru


Микроконтроллеры PIC16 имеют на борту 10-ти разрядный модуль аналого-цифрового преобразователя (АЦП) последовательного приближения. Метод последовательного приближения предполагает получение результата за несколько измерений (сравнений), с постепенным увеличением точности в каждом последующем сравнении. Таким образом, преобразование выполняется за несколько машинных циклов. Естественно данный метод уступает параллельным АЦП по скорости преобразования, в которых результат получают за один такт (машинный цикл). Я не буду здесь углубляться в тонкости различных методов, необходимую информацию можно найти в сети.

На рисунке ниже представлена структурная схема аналогового входа АЦП:

Здесь Rs – это внутреннее сопротивление источника напряжения, ANx – линия порта микроконтроллера, обладающая емкостью Cpin и током утечки Iu. Внутренние соединения микроконтроллера имеют сопротивление Ric. Переключатель SS имеющий сопротивление Rss, подключает линию порта ANx к конденсатору Chold модуля АЦП. Коммутация переключателя SS производится при выборе аналогового канала, каждому каналу соответствует свой переключатель. Сопротивление переключателя защелки зависит от напряжения питания, график зависимости показан на рисунке справа.

Процесс измерения напряжения выглядит следующим образом: при выборе аналогового канала происходит коммутация переключателя SS, тем самым конденсатор Chold подключается к соответствующей линии порта микроконтроллера и начинает заряжаться. После получения команды начинается процесс преобразования, на время которого конденсатор отключается от линии порта.

После выбора аналогового канала битами CHS(2:0) регистра ADCON0, необходимо организовать определенную паузу (Tacq) перед началом преобразования, для того чтобы конденсатор Chold успел зарядиться. В технической документации приводится расчет этого времени, который представлен ниже:

В основном на время заряда влияет внутреннее сопротивление источника напряжения Rs, которое не должно превышать 10 кОм, для компенсации внутреннего тока утечки Iu, кроме этого влияние оказывает сопротивление переключателя защелки Rss и емкость самого конденсатора Chold, которая может различаться у различных моделей микроконтроллеров.

Время преобразования составляет 12Tad, где Tad это время получения одного бита, для корректного результата Tad не должно быть меньше 1,6 мкс. Время Tad в зависимости от частоты тактового генератора подбирается настройкой битов ADCS(2:0), в даташите на микроконтроллер для этого приводится таблица, где можно подобрать правильное значение. После окончания преобразования необходимо выдержать паузу не менее 2Tad перед началом нового преобразования, в течение этого времени конденсатор Chold не подключен к выбранной линии порта микроконтроллера. В принципе, если аналоговый канал не меняется и частота преобразований небольшая (время между преобразованиями больше чем Tacq+2Tad), можно и не рассчитывать временные задержки Tacq, 2Tad, и забыть о них.

Чтобы использовать линии порта микроконтроллера для АЦП, необходимо их настроить как аналоговые входы битами ANS(7:0) регистра ANSEL, при этом линия порта должна быть настроена на вход битами регистра TRIS. После этого выбирается требуемый аналоговый канал.

Результат преобразования (10 бит) сохраняется в регистрах ADRESH и ADRESL. Эти регистры представляют собой спаренный 16-ти разрядный регистр, запись результата может выполняться с правым или левым выравниваем, как показано на картинке ниже. Настройка выравнивания осуществляется с помощью бита ADFM регистра ADCON0.


В качестве опорного напряжения может использоваться внешнее напряжение с вывода Vref, или внутреннее Vdd от источника питания, настройка осуществляется битом VCFG. Для увеличения точности результата опорное напряжение должно быть стабилизированным с минимальным уровнем пульсаций. При опорном напряжении Vref =5 В, получим дискретность 5В/1024=0,0049 В=4,9 мВ для 10-ти битного результата. Для получения 8-ми битного результата необходимо применить левое выравнивание и считывать только регистр ADRESH, в этом случае для Vref =5 В дискретность составит 5В/256=0,0195 В=9,5 мВ.

Включение модуля АЦП производится битом ADON регистра ADCON0, запуск преобразования осуществляется установкой бита GO/-DONE регистра ADCON0, который аппаратно сбрасывается после окончания преобразования, то есть проверкой этого бита можно определить конец преобразования.

Перейдем к рассмотрению 10-ти разрядного ШИМ (широтно-импульсная модуляция) в микроконтроллерах PIC16. ШИМ осуществляется посредством модуля CCP, который настраивается в регистре CCP1CON, и содержит 16-ти разрядный регистр CCPR1, состоящий из двух регистров CCPR1H и CCPR1L. Сигнал от модуля в режиме ШИМ передается на вывод CCP1 микроконтроллера, который должен быть настроен на выход. Для реализации ШИМ используется таймер TMR2, период ШИМ задается в регистре PR2, старшие 8 бит длительности импульса задаются в регистре CCPR1L , младшие 2 бита в регистре CCP1CON(5:4). Ниже представлена структурная схема модуля ШИМ:


Когда значение таймера TMR2 в процессе инкремента сравнивается с числом в регистре PR2, происходит обнуление TMR2, одновременно с этим устанавливается высокий логический уровень на выводе CCP1 (если длительность импульса в регистрах CCPR1L и CCP1CON равна нулю, высокий логический уровень не устанавливается). Также в этот момент происходит загрузка значения длительности импульса из регистров CCPR1L, CCP1CON в регистр CCPR1H и внутреннюю двухразрядную защелку, которые образуют буфер ШИМ.

Буферизация необходима для возможности записи нового значения длительности импульса в регистры CCPR1L, CCP1CON, без искажения предыдущего значения. Биты в регистре CCPR1L и CCP1CON(5:4) могут быть изменены в любое время, но значение в регистре CCPR1H не изменяется, пока не произойдет совпадение значений TMR2 и PR2. В ШИМ режиме регистр CCPR1H доступен только для чтения.

Таймер TMR2 и внутренний двухразрядный счетчик образуют условный 10-ти разрядный счетчик, при этом если TMR2 инкрементируется в каждом машинном цикле с частотой Fosc/4 (при коэффициенте предделителя 1:1), то внутренний двухразрядный счетчик тактируется за каждый период тактового генератора с частотой Fosc, тем самым получается условный 10-ти разрядный счетчик. Когда значение CCPR1H и внутренней двухразрядной защелки сравнивается со значением TMR2 и внутреннего двухразрядного счетчика, на выводе CCP1 устанавливается низкий логический уровень. Ниже можно увидеть временную диаграмму одного периода ШИМ:

Период ШИМ можно рассчитать по следующей формуле из даташита:

Tшим=(PR2+1) ×4×Tosc×(коэффициент предделителя TMR2)

По мне лучше переписать данное уравнение в более удобную форму:

Fшим=Fosc/(4×(PR2+1)×(коэффициент предделителя TMR2))

Подставляя частоту тактового генератора, например, в килогерцах, получим результирующую частоту ШИМ в тех же единицах, так как остальные параметры безразмерные.

В даташите также приведена таблица с рассчитанными значениями частоты и разрешения ШИМ для частоты тактового генератора в 20 МГц:

Удобнее всего начинать расчет параметров ШИМ, выбрав требуемое разрешение, исходя из которого, можно рассчитать три возможных комбинации значения частоты ШИМ и выбрать наиболее подходящее.

Выполним несколько расчетов для частоты тактового генератора в 4 МГц. Значение разрешения ШИМ примем равным 8 бит, для получения наибольших частот ШИМ для заданной частоты тактового генератора, значение длительности импульса необходимо загружать в регистры CCPR1L и CCP1CON с “правым выравниванием”. То есть старшие 6 бит длительности импульса загружаем в биты (5:0) регистра CCPR1L (в 6-й и 7-й бит CCPR1L записываем нули), а младшие 2 бита длительности импульса в регистр CCP1CON(5:4) как показано на рисунке ниже:

При этом числовое значение для регистра PR2, определяющее период ШИМ, составит 0x3F=63. Посчитаем частоту ШИМ при коэффициенте предделителя TMR2 равного (1:1):

Fшим=4000 кГц/(4×(63+1)×1)=15,625 кГц

Для коэффициента предделителя TMR2 (1:4):

Fшим=4000 кГц/(4×(63+1)×4)=3,9 кГц

При коэффициенте (1:16) получим: Fшим=976 Гц.

Используя “левое выравнивание” можно получить наименьшие значения частот ШИМ для заданной частоты тактового генератора, при этом значение длительности импульса загружается только в регистр CCPR1L (в 5-й и 4-й бит CCP1CON записываем нули), как показано на рисунке ниже:

Числовое значение для регистра PR2 составит 0xFF=255, для коэффициентов предделителя TMR2 (1:1; 1:4; 1:16) получим частоты ШИМ 3,9 кГц; 976 Гц; 244 Гц. Подбор частоты путем различного “выравнивания” возможен, если только разрешение ШИМ меньше 10 бит. Таким образом, выбрав требуемое разрешение и варьируя частотой тактового генератора, коэффициентом предделителя TMR2, применяя различное “выравнивание”, можно подбирать различные частоты для ШИМ.

Теперь рассмотрим практическое применение модулей АЦП и ШИМ на основе 8-ми выводного микроконтроллера PIC12F683. Будем регулировать яркость светодиода мощностью в один ватт при помощи переменного резистора, схема представлена ниже:

Как видно из схемы, измерение напряжения производится на среднем выводе переменного резистора, линия микроконтроллера GP0/AN0 используется в качестве аналогового входа модуля АЦП. Напряжение на среднем выводе переменного резистора варьируется от 0 до 5В, для АЦП используется внутреннее опорное напряжение от источника питания Vdd, то есть 5В. Разрешение АЦП и ШИМ я настроил на 8 бит, это значение очень часто применяется в конструкциях. Полученный после преобразования байт передается в модуль ШИМ, сигнал от которого с вывода GP2/CCP1 передается на затвор полевого транзистора, который коммутирует светодиод.

Код программы представлен ниже, в принципе необходимо только настроить АЦП и ШИМ, а дальше все просто:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Основная программа Start bsf STATUS,RP0 movlw b'01100001' ;установка тактовой частоты микроконтроллера movwf OSCCON ;в 4 МГц, внутренний тактовый генератор bcf STATUS,RP0 ; ; movlw b'00000000' ;запись нулей в выходные защелки movwf GPIO ; ; movlw 0x07 ;выключение компараторов movwf CMCON0 ; ; bsf STATUS,RP0 ; movlw b'11111011' ;настройка линии GP2 на выход для модуля ШИМ, movwf TRISIO ;остальные линии на вход bcf STATUS,RP0 ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;настройка модуля АЦП bsf STATUS,RP0 ;установка времени преобразования для АЦП movlw b'01010001' ;Tad = 4мкс (Fosc/16), настройка линии movwf ANSEL ;GP0(AN0) как аналоговый вход для АЦП, остальные bcf STATUS,RP0 ;линии цифровые входы ; movlw b'00000000' ;Установка левого выравнивания результата АЦП, movwf ADCON0 ;внутренний источник опорного напряжения от Vdd, ;выбор аналогового канала AN0, преобразование ;не запущено, модуль АЦП выключен ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;настройка модуля ШИМ bsf STATUS,RP0 ; movlw . 255 ;запись числа 255 в регистр периода ШИМ movwf PR2 ; bcf STATUS,RP0 ; ; movlw .0 ;запись нулей в регистры длительности импульса movwf CCPR1L ;ШИМ, CCPR1L и CCP1CON(5:4) bcf CCP1CON,4 ; bcf CCP1CON,5 ; ; movlw b'00000110' ;установка предделителя TMR2 (1:16) movwf T2CON ;включение таймера TMR2 ; movlw b'00001100' ;включение CCP1 модуля в режим ШИМ movwf CCP1CON ;при этом ранее сброшенные младшие биты (5:4) ;длительности импульса ШИМ не меняем ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Рабочая программа bsf ADCON0,ADON ;включение модуля АЦП begin bsf ADCON0,GO_DONE ;установка бита GO_DONE регистра ADCON0 для ;запуска преобразования АЦП ; prov btfsc ADCON0,GO_DONE ;опрос бита GO_DONE goto prov ;бит GO_DONE не равен 0, преобразование не ;закончено, переход на метку prov ; movf ADRESH,W ;бит GO_DONE равен 0, преобразование закончено, movwf CCPR1L ;копирование значения регистра ADRESH в регистр ;CCPR1L, то есть результат преобразования ;загружаем в регистр длительности импульса ШИМ ; call pause ;вызов подпрограммы паузы goto begin ;переход на метку begin, для повторного ;запуска преобразования ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;пауза 100 мс pause movlw . 130 ;подпрограмма паузы 100 мс movwf Sec1 ; p2 movlw .255 ; movwf Sec ; p1 decfsz Sec,F ; goto p1 ; decfsz Sec1,F ; goto p2 ; return ;выход из подпрограммы ;

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Основная программа

 

Start         bsf         STATUS,RP0

              movlw       b'01100001'     ;установка тактовой частоты микроконтроллера

              movwf       OSCCON          ;в 4 МГц, внутренний тактовый генератор

              bcf         STATUS,RP0      ;

                                          ;

              movlw       b'00000000'     ;запись нулей в выходные защелки

              movwf       GPIO            ;

                                          ;

              movlw       0x07            ;выключение компараторов

              movwf       CMCON0          ;

                                          ;

              bsf         STATUS,RP0      ;

              movlw       b'11111011'     ;настройка линии GP2 на выход для модуля ШИМ,  

              movwf       TRISIO          ;остальные линии на вход

              bcf         STATUS,RP0      ;

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;настройка модуля АЦП

              

              bsf         STATUS,RP0      ;установка времени преобразования для АЦП

              movlw       b'01010001'     ;Tad = 4мкс (Fosc/16), настройка линии

              movwf       ANSEL           ;GP0(AN0) как аналоговый вход для АЦП, остальные

              bcf         STATUS,RP0      ;линии цифровые входы

                                          ;          

              movlw       b'00000000'     ;Установка левого выравнивания результата АЦП,  

              movwf       ADCON0          ;внутренний источник опорного напряжения от Vdd,

                                          ;выбор аналогового канала AN0, преобразование

                                          ;не запущено, модуль АЦП выключен

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;настройка модуля ШИМ

 

              bsf         STATUS,RP0      ;

              movlw       . 255            ;запись числа 255 в регистр периода ШИМ

              movwf       PR2             ;

              bcf         STATUS,RP0      ;

                                          ;

              movlw       .0              ;запись нулей в регистры длительности импульса

              movwf       CCPR1L          ;ШИМ, CCPR1L и CCP1CON(5:4)

              bcf         CCP1CON,4       ;

              bcf         CCP1CON,5       ;

                                          ;

              movlw       b'00000110'     ;установка предделителя TMR2 (1:16)

              movwf       T2CON           ;включение таймера TMR2

                                          ;

              movlw       b'00001100'     ;включение CCP1 модуля в режим ШИМ  

              movwf       CCP1CON         ;при этом ранее сброшенные младшие биты (5:4)

                                          ;длительности импульса ШИМ не меняем

                                          

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Рабочая программа

 

              bsf         ADCON0,ADON     ;включение модуля АЦП

begin         bsf         ADCON0,GO_DONE  ;установка бита GO_DONE регистра ADCON0 для

                                          ;запуска преобразования АЦП

                                          ;  

prov          btfsc       ADCON0,GO_DONE  ;опрос бита GO_DONE

              goto        prov            ;бит GO_DONE не равен 0, преобразование не

                                          ;закончено, переход на метку prov

                                          ;

              movf        ADRESH,W        ;бит GO_DONE равен 0, преобразование закончено,

              movwf       CCPR1L          ;копирование значения регистра ADRESH в регистр

                                          ;CCPR1L, то есть результат преобразования

                                          ;загружаем в регистр длительности импульса ШИМ

                                          ;

              call        pause           ;вызов подпрограммы паузы

              goto        begin           ;переход на метку begin, для повторного

                                          ;запуска преобразования

            

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;пауза 100 мс

 

pause         movlw       . 130            ;подпрограмма паузы 100 мс

              movwf       Sec1            ;

p2            movlw       .255            ;

              movwf       Sec             ;

p1            decfsz      Sec,F           ;

              goto        p1              ;

              decfsz      Sec1,F          ;

              goto        p2              ;

              return                      ;выход из подпрограммы

                                          ;  

Вначале идет настройка внутреннего тактового генератора микроконтроллера на 4 МГц, запись нулей в выходные защелки, отключение компараторов. Далее настраиваем линию GP2/CCP1 на выход, чтобы использовать ее для ШИМ, остальные линии на вход, в том числе и GP0/AN0 для АЦП, эти настройки производятся в регистре TRISIO, который расположен в 1-ом банке.

Следующим шагом будет настройка модуля АЦП. В регистре ANSEL (находится в 1-ом банке) устанавливаем время преобразования одного бита Tad равное 4 мкс (Fosc/16), для частоты тактового генератора в 4 МГц из таблицы в даташите микроконтроллера доступно два значения: 2 мкс (Fosc/8) и 4 мкс (Fosc/16). В этом же регистре настраиваем линию GP0/AN0 как аналоговый вход для правильного функционирования АЦП, остальные линии как цифровые входы. Затем следует настройка регистра ADCON0, где устанавливаем левое выравнивание результата преобразования для регистров ADRESH, ADRESL. Для 8-ми битного результата считывать будем только регистр ADRESH. Здесь же выбираем внутренний источник опорного напряжения Vdd, при этом модуль АЦП не включаем, и преобразование не запускаем. На этом настройку модуля можно считать завершенной.

Далее настраиваем ШИМ, первым делом устанавливаем период в регистре PR2 (находится в 1-ом банке). Будем использовать 8-ми битный ШИМ с загрузкой длительности импульса с “левым выравниванием”, то есть только в регистр CCPR1L, соответственно в PR2 записываем 0xFF=255. После этого устанавливаем длительность импульса равной нулю, чтобы после запуска ШИМ вывод GP2/CCP1 оставался в низком логическом уровне, в принципе этого можно и не делать. Неиспользуемые в данном случае младшие биты (5:4) длительности импульса в регистре CCP1CON должны быть сброшены, иначе получим некорректный результат. В регистре T2CON устанавливаем коэффициент предделителя TMR2 равным (1:16), и запускаем таймер. Частота ШИМ составит 244 Гц, чего вполне достаточно, для исключения мерцания светодиода. В регистре CCP1CON включаем режим ШИМ, при этом следим чтобы биты (5:4) были сброшены, как было сказано выше. Вот и все, ШИМ настроен и запущен.

Далее идет рабочая программа: включаем модуль АЦП, затем запускаем преобразование установкой бита GO/-DONE, кстати, включение модуля и запуск преобразования должны выполняться разными командами, о чем говориться в даташите. Путем цикличной проверки бита GO/-DONE, определяем конец преобразования. Копируем результат преобразования из регистра ADRESH в регистр длительности импульса CCPR1L. Уходим на паузу в 100 мс, после чего переходим на метку begin, для выполнения нового цикла, в принципе все просто.

Ниже представлен видеоролик демонстрирующий работу модулей АЦП и ШИМ. Здесь в вышеприведенную схему я дополнительно добавил цифровое табло на драйвере MC14489AP, для отображения результата измерения модуля АЦП.


Прошивка МК и исходник+модель Proteus 7.7

Схемы для сборки своими руками | 2 Схемы

Радиолюбительские радиосхемы приборов, усилителей, блоков питания и других устройств для самостоятельной сборки

Представляем полу-самодельный универсальный А/В-метр на базе готовых компонентов (модулей), которые имеются в продаже, и корпуса напечатанного на 3д принтере специально под этот измеритель. Это цифровой …

В большинстве автомобилей нет контроля потребления жидкости омывателя ветрового стекла, а если такой контроль есть, он лишь в виде индикатора, указывающего на почти пустой бачок. …

Это несложное, но очень полезное в быту устройство — самодельный усилитель звука для наушников, он питается от двух AAA батареек на 3 В и имеет …

Здесь вы сможете посмотреть схему и готовую конструкцию автоматического зарядного устройства для батареек Крона типоразмера 6F22 (на 9 В), выполненное на специализированном чипе MAX712. Зарядное …

Представляем проект самодельной активной электронной нагрузки. Сама по себе активная нагрузка не является чем-то особенным, но здесь расширение базы представляет собой микроконтроллер, используемый для измерения …

PICO SCOPE — это миниатюрный цифровой осциллограф. Основа его микроконтроллер, Atmega8. Естественно ЖК, как у nokia 3310 — это небольшие размеры и низкая стоимость. Имеется …

Представляем описание довольно интересной конструкции — хоть и не связанной с электроникой, но, безусловно, полезной для мастеров самодельщиков. Это компрессор, построенный на основе старого компрессора …

Изначально озонатор были сделан для дезинфекции системы кондиционирования в автомобиле, но со временем выяснилось, что он также способен справляться с комнатами в доме или дезинфекции …

Представляем концепцию двух стереоусилителей с низким энергопотреблением и рабочим напряжением для питания небольших колонок или наушников. Было несколько мотивов для реализации этого проекта. Одним из …

Это стабилизирующая часть лабораторного источника питания с плавной регулировкой тока и напряжения. Напряжение на выходе меняется от 0 В до 30 В (с использованием выпрямителя …

Всё больше радиоэлектронных устройств переводится на стандартное питание USB (5 вольт), но многие девайсы всё ещё требуют 12-ти вольтового питания. Как же адаптировать их под …

Эта статья содержит описание схемы простейшего импульсного повышающего преобразователя для авто усилителей (например на TDA7294 или любой другой микросхеме с двухполярным питанием), без лишних расчетов …

Представляем проект для тестирования осветительной системы и проводки прицепа, подключаемого розеткой на тягаче (все варианты распиновки фаркопов смотрите тут). Это устройство будет полезным для тех, …

Различные усилители звука, как микрофонные, так и мощные оконечные УМЗЧ, нуждаются при настройке в эталонном сигнале постоянной величины. Многие испытывают и настраивают схемы УНЧ просто …

Большой популярностью среди автолюбителей самодельщиков пользуются тиристорные автозарядки, в которых питание от мощного трансформатора поступает на АКБ через тиристор, управляемый открывающими его импульсами от генератора. …

Усилитель. Под этим словом большинство людей понимают обычную коробку с парой регуляторов и кнопок. Новички в электронике уже представляют, что это такая плата с микросхемой, …

Создайте робота своими руками на PIC-микроконтроллере - 6 Марта 2013

Категории раздела

Статистика


Онлайн всего: 1

Гостей: 1

Пользователей: 0

Файлообменники

Ввод/Вывод WM

Главная » 2013 » Март » 6 » Создайте робота своими руками на PIC-микроконтроллере

16:59

Создайте робота своими руками на PIC-микроконтроллере

Книга Майка Предко посвящена разработке и программированию автоматических устройств на основе популярных микроконтроллеров PIC16F84 и PIC16F627 фирмы Microchip. Автор описывает архитектуру микроконтроллеров PICmicro, излагает основы их программирования на языке C, а затем обращается к более сложным темам, рассматривая электронные устройства самого разного назначения.
Приведенные схемы роботов не содержат дефицитных элементов: самую сложную работу берет на себя микроконтроллер. Большинство схем можно собрать за один час. В русском издании добавлены отечественные аналоги всех используемых элементов.
Издание предназначено для широкого круга читателей - от начинающих радиолюбителей, интересующихся микроконтроллерами, и студентов технических учебных заведений до специалистов, занятых разработкой и эксплуатацией электронных автоматических устройств.

Название: Создайте робота своими руками на PIC-микроконтроллере
Автор: Майк Предко
Издательство: ДМК Пресс
Год: 2005
Страниц: 401
Формат: PDF
Размер: 62,9 МБ
ISBN: 5-94074-226-2, 0-07-140851-7
Качество: Хорошее
Серия или Выпуск: В помощь радиолюбителю

Содержание:

1. Использование микроконтроллеров в автоматике
   1.1. Управление роботом
   1.2. Основные компоненты устройств управления
   1.3. Память и устройства ввода-вывода
   1.4. Прерывания
   1.5. Периферийные устройства микроконтроллеров
   1.6. Подключение устройства управления к роботу
2. Разработка программного обеспечения
   2.1. От исходного текста программы к HEX-файлу
   2.2. Ассемблер
   2.3. Интерпретаторы
   2.4. Компиляторы
   2.5. Симуляторы и эмуляторы
   2.6. Интегрированные средегва разработки
3. Микроконтроллеры PICmicro
   3.1. Основные особенности микроконтроллеров PICmicro
   3.2. Инструментальные средства разработки программ
   3.3. Простые схемы
   3.4. Описание микроконтроллера PIC16F627
3.5. Программатор EI Cheapo
4. Подключение к микроконтроллеру периферийных устройств
   4.1. Аппаратные интерфейсы:
   4.2. Шаблон программы на языке C
   4. 3. Макетирование устройств на основе микроконтроллеров PICmicro
   4.4. Межпроцессорные коммуникации
   4.5. Реализация интерфейса RS-232
   4.6. Программа HyperTerminal
   4.7. Реализация интерфейса RS-232 для связи микроконтроллер с персональным компьютером
   4.8. Двунаправленный синхронный интерфейс
   4.9. Устройства индикации
   4.10. Светодиодные индикаторы
   4.11. Управление светодиодным индикатором
   4.12. Использование широтно-импульсной модуляции для управления аналоговыми устройствами
   4.13. Управление яркостью светодиодного индикатора
   4.14. Использование пьезоэлектрических излучателей и звуковых динамиков
   4.15. Устройство звуковой сигнализации
   4.16. Использование жидкокристаллического дисплея
   4.17. Вывод информации на жидкокристаллический дисплей
   4.18. Датчики
   4.19. Механические датчики
   4.20. Подавление дребезга контактов
   4.21. Инфракрасный детектор столкновений
   4. 22. Инфракрасный обнаружитель объектов
   4.23. Дистанционное управление роботом
   4.24. Приемник сигналов дистанционного управления
   4.25. Совмещение работы детектора объектов и приемника команд дистанционного управления
   4.26. Ультразвуковой дальномер
   4.27. Подключение ультразвукового дальномера к микроконтроллеру
   4.28. Световые датчики
   4.29. Подключение световых датчиков к микроконтроллеру
   4.30. Звуковые датчики
   4.31. Распознавание звуковых команд
   4.32. Управление двигателем
   4.33. Модели фирмы Tamiya в качестве прототипа радиолюбительских конструкций
   4.34. Одомегрня
   4.35. Радиоуправляемый сервопривод
   4.36. Простое радиоуправляемое устройство
5. Вдохните в робота жизнь
   5.1. Операционные системы реального времени
   5.2. Пример приложения, работающего под управлением ОСРВ
   5.3. Конечные автоматы
   5.4. Дистанционное управление роботом, совершающим случайные блуждания
   5. 5. Поведенческое программирование
   5.6. Нейронные сети и искусственный интеллект
6. Проектирование автоматических устройств
   6.1. Техническое задание
   6.2. Выбор периферийных устройств
   6.3. Выбор электронных компонентов и методов программирования
   6.4. Испытания робота
   6.5. Поиск ошибок
   6.6. Модернизация устройств
Приложение
Предметный указатель

Скачать Создайте робота своими руками на PIC-микроконтроллере
depositfiles.com
letitbit.net
turbobit.net
vip-file.com

Программатор для PIC или про то как мне захотелось самодельных электронных часов

Старым стал наверное, стал испытывать проблемы, при попытке разглядеть, сколько там времени на дисплее ресивера за тюлевой занавеской.
Хотелось что либо сколхозить.
А так как на столе, уже около года, валялись пара сегментных дисплейчика, была выбрана схема на PIC (простейшая, с возможностью регулировки хода)
А для программирования PIC требовался как раз программатор
Чтоб узнать что из этого получилось, добро пожаловать под кат

В выбранной мной схеме часы собирались на основе PIC16F628A
В списке поддерживаемых программатором микроконтроллеров — был указан и мой
Это и повлияло на выбор

Список поддерживаемых микроконтроллеров

10 Серия:
PIC10F200 * PIC10F202 * PIC10F204 * PIC10F206 *
PIC10F220 * PIC10F222 *
12C серии:
PIC12C508 PIC12C508A PIC12C509 PIC12C509A
PIC12C671 PIC12C672 PIC12CE518 PIC12CE519
PIC12CE673 PIC12CE674
12F серии:
PIC12F509 PIC12F629 PIC12F635
PIC12F675 PIC12F683
16C серии:
PIC16C505 PIC16C554 PIC16C558 PIC16C61
PIC16C62 PIC16C62A PIC16C62B PIC16C63
PIC16C63A PIC 16C64 PIC16C64A PIC16C65
PIC16C65A PIC16C65B PIC16C66 PIC16C66A
PIC16C67 PIC16C620 PIC16C620A PIC16C621
PIC16C621A PIC16C622 PIC16C622A PIC16C71
PIC16C71A PIC16C72 PIC16C72A PIC16C73
PIC16C73A PIC16C73B PIC16C74 PIC16C74A
PIC16C74B PIC16C76 PIC16C77 PIC16C710
PIC16C711 PIC16C712 PIC16C716 PIC16C745
PIC16C765 PIC16C773 PIC16C774 PIC16C83
PIC16C84
16F серии:
PIC16F505 PIC16F506 PIC16F54 PIC16F57 *
PIC16F59 * PIC16F627 PIC16LF627A PIC16F627A
PIC16F628 PIC16LF628A PIC16F628A PIC16F630
PIC16F631 PIC16F631-1 PIC16F636 PIC16F636-1
PIC16F639 * PIC16F639-1 * PIC16F648A PIC16F676
PIC16F677 PIC16F677-1 PIC16F684 PIC16F685 *
PIC16F685-1 * PIC16F687 * PIC16F687 *-1 PIC16F688
PIC16F689 * PIC16F689-1 * PIC16F690 * PIC16F690-1 *

PIC16F72 PIC16F73 PIC16F74
PIC16F76 PIC16F77 PIC16F737 PIC16F747
PIC16F767 PIC16F777 PIC16F83 PIC16F84
PIC16F84A PIC16F87 PIC16F88 PIC16F818
PIC16F819 PIC16F870 PIC16F871 PIC16F872
PIC16F873 PIC16F873A PIC16LF873A PIC16F874
PIC16F874A PIC16F876 PIC16F876A PIC16F877
PIC16F877A
18 Серия:
PIC18F242 PIC18F248 PIC18F252 PIC18F258 PIC18F442 PIC18F448
PIC18F452 PIC18F458 PIC18F1220 PIC18F1320 PIC18F2220 PIC18F2320
PIC18F2321 PIC18F4210 PIC18F2331 PIC18F2450 PIC18F2455 PIC18F2480
PIC18F2510 PIC18F2515 PIC18F2520 PIC18F2550 PIC18F2580
PIC18F2585 PIC18F2610 PIC18F2620 PIC18F2680 PIC18F4220 PIC18F4320
PIC18F6525 PIC18F6621 PIC18F8525 PIC18F8621 PIC18F2331 PIC18F2431
PIC18F4331 PIC18F4431 PIC18F2455 PIC18F2550 PIC18F4455 PIC18F4580 PIC18F2580 PIC18F2420 PIC18F2520 PIC18F2620 PIC18F6520 PIC18F6620 PIC18F6720 PIC18F6585 PIC18F6680 PIC18F8585 PIC18F8680


Заказ был сделан 19. 08.2016, а уже 15.09.2016 был у меня
Фотографии упаковки не сохранилось, но комплектация соответствовала фото продавца, всё упаковано в отдельные пакетики, пакетики в общем большем пакете, а тот в свою очередь в почтовый жёлтый пакет с пупыркой

Внешний вид платы программатора — спаяно аккуратно, но плата не отмыта от слова СОВСЕМ

Но, плата оказалась вполне рабочей
Для работы с ним потребуется программа и драйвера, скачать их можно например тут
Программа интуитивно понятная, выбираем микроконтроллер, указываем путь к файлу прошивки, прошиваем
Как установить микроконтроллер в разъёме программатора — программа подскажет
Мой необходимо было установить первой ногой во второй контакт
Обычно я жму считать чип, чтоб убедиться, что программа видит микроконтроллер, потом заливаю прошивку

В общем-то программатор вполне работоспособный и прошить мой PIC мне удалось
Фузы я не выставлял — заводские, по умолчанию, — вполне прокатили

Короче, плата программатора грязная, элементы впаяны нормально, комплектация точно как указана продавцом и представлена на его странице на картинках, упаковано нормально, доставлено относительно оперативно
Минус за грязь
Скорее всего рекомендую к покупке, чем нет

Теперь о том для чего я всё это затеял

Самодельные часы

Проект взят отсюда

Схема:

Там-же описание, прошивка, рисунок платы

Попытка найти подходящий корпус привела к товарищу, у которого завалялся корпус, в виде домика
Под него была нарисована односторонняя плата

И получились часики:




В качестве питания — зарядка от мобилки
Часы показывают попеременно время и температуру, уличный датчик — не задействовал
Так-же были изготовлены ещё одни маленькие под самодельный корпус:

плата

Конструкция — простейшая, минимум деталей, запускаются без каких либо танцев с бубном
Но, если честно, мне они не понравились, т. к. с этой прошивкой они работают только если не вносить коррекции времени
Как только вносишь коррекцию — часы виснут, и помогает только передёргивание питания
По этому захотелось чего ни будь большего
Так что ПРОДОЛЖЕНИЕ СЛЕДУЕТ…

Тестер с 11 функциями на микроконтроллере Atmega32 - Измерительные устройства - Микроконтроллеры - Каталог статей

.

Возможности тестера:

Постоянное напряжение 0.00 - 5.00 В
Постоянное напряжение 00.0 +/- 99.9 В
Прозвонка диодов 0 - 5000 мВ
Сопротивление 1 Oм - 50 MOм с точность два разряда, автомат диапазона
Емкость 1 пФ - 65000 мкФ с точностью три разряда, автомат диапазона
ESR конденсаторов 0 - 200 Oм с шагом 0. 25 Ом
Индуктивность 1мГ - 65000 мГ с точностью 1мГ, в одном диапазоне
Счетчик импульсов 0 - FFFFFFFF
Частотомер 0 - 10 МГц с точностью 1Гц, в одном диапазоне
Генератор импульсов 0 - 10 МГц
Логический анализатор: асинхронный, длинна записи 2048 бит, чтение автономное на индикатор, дискретизация до 2МГц, выбор условия старта

Все режимы на один вход, переключение режимов кнопками, подтверждение звуком
Питание от внутреннего аккумулятора

Схема прибора:

схему в большем разрешении.

Управление прибора програмное, поэтому особо описывать нечего. Процессор опрашивает клавиатуру, получает управляющие сигналы и выставляет регистры своих внутренних таймеров, ацп, портов и т.д. в соответствии с выбранным режимом. Для пользователя это выглядит так: - подача питания - звуковой сигнал - режим напряжгние (можно мерять) - нажатие кнопки - звуковой сиенал - режим частотомер (можно мерять) - нажатие кнопки - и т.д. Режимы подтверждаются соответствующей индикацией. Режимы переключаются по кольцу. Кнопка-2 гонит кольцо вперед, кнопка-1 назад, кнопка-0 служебная используерся для обнуления счетчика импульсов, переключения ситем счисления индикации и т. п.

Режимы работы тестера:

Печатная плата:




Программа написана на MikroBasic for AVR от фирмы Microelektronica. Критичные участки кода на встроенном в Basic Assembler.

Фьюзы нужно выставлять следующие:
SUT0=0, CKOPT=0

Переключение режимов осуществляется через опрос трех кнопок и переключателя делителя напряжения для диапазона 100В. Опрос общий для всех режимов и ведется постоянно.

Напряжение в диапазоне до 5.00V измеряется непосредственно входом ADC0.  Напряжение в диапазоне до +/- 100.0V измеряется через делитель двумя входами ADC5 и ADC7 поочереди, для определеня полярности. Делитель подключается механически переключателем см. схему.

Прозвонка - на вход подается 5V через резистор 560 Ом. ADC0 измеряет падение напряжения на p-n переходе диода.

Сопротивление
- измеряется в семи поддиапазонах пересчитывается по формуле см. исходник.

Емкость
- заряжается через резистор соответствующего диапазона до момента срабатывания компаратора. Порог компаратора установлен на одну десятую от величины заряжающего напряжения, для обеспечения выхода на линейный участок кривой заряда . После срабатывания компаратора конденсатор разряжается через открытый порт и процесс повторяется. Время от момента начала заряда емкости до момента срабатывания компаратора регистрируется таймером счетчиком. Показания таймера счетчика пересчитываются через соответствующий корректирующий коэффициэнт и выводятся на индикатор.

ESR - измеряется просто, как активное сопротивление разряженнго конденсатора.

Индуктивность
- измеряется также как и емкость только все наоборот.

Счетчик импульсов - в качестве счетчика импульсов используется аппаратный таймер-счетчик плюс расширение до 32 разрядов за счет двух регистров, логические уровни выводятся символьном виде H L U, соответственно высокий низкий неопределенный.

Частотомер - измеряются показания счетчика импульсов в течении интервала времени в одну секунду и выводятся на индикатор, затем счетчик обнуляется и т.д.

Генератор импульсов
- аппаратный таймер-счетчик в режиме генератора, либо програмный генератор.
Логический анализатор - программа с определенной частотой опрашивает входной пин контроллера, данные о состоянии пина сдвигаются в аккумулятор, содержимое аккумулятора перезаписывается в память (RAM контроллера), адрес памяти инкрементируется и так далее пока весь блок памяти не закончится. Чтение происходит в обратном порядке по нажатию соответствующей кнопки. За одно нажатие кнопки на индикатор выводится содержимое четырех байт памяти.

файлы проекта (прошивку, исходник, проект proteus).
печатную плату.


статьи.

DIY пульт на основе PIC

DIY пульт на основе PIC

v4.2 разработан Peter JAKAB в 2004-2005 гг.
старая версия в декабре 1999 г.

ПРИМЕЧАНИЕ для новичков: картинки общие целевые микроконтроллеры, которые нужно программировать перед вами можно использовать их в реальной схеме! Проверять, выписываться этот ссылка на обучение Больше. Контроль вверх до 8 устройств этим простым в сборке пультом дистанционного управления контроль. Он может работать как радио или инфракрасный пульт дистанционного управления, в зависимости от по компонентам.Каждый выход устройства можно настроить как мгновенный (включается при нажатии кнопки) или фиксируется. Выходы с фиксацией могут быть включены / выключены одной кнопкой для каждого канала или включается и выключается двумя кнопками на канал.

Попробуйте прямо сейчас, прежде чем строить! Нажмите на кнопки передатчика с зеленый этикетки слева и посмотрите, как меняются выходы приемника (K1-K8). + Изменить количество каналов передатчика или приемника. Переключить ресивер тип выхода между фиксированным и мгновенным.

Схема очень гибкая, содержащая микроконтроллер PIC.Вы можете решить, какие выходы приемника зафиксированы, а какие - мгновенны. В Выход передатчика с манчестерским кодом хорошо подходит для самого дешевого ASK радиомодули или для инфракрасного управления. Блоки можно настроить на уникальный адрес, который должен совпадать для управления устройствами.

Связанный проект: Обучение приемник дистанционного управления
Возьмите имеющийся пульт дистанционного управления и управляйте им всем. Этот приемник может узнать коды от ИК-пульт дистанционного управления формата RC-5 и назначьте кнопки разным каналы и действия.16 кодировщик дистанционного управления а также декодер
Если у вас есть сигналы TTL для управления удаленными линиями цифрового вывода, пожалуйста проверьте этот проект вместо.

Если у вас возникли проблемы с программированием микроконтроллеров PIC, вы можете рассмотреть возможность построения других схем на базе Holtek HT-12D, HT-12E, Принстон PT2262, PT2272 и кодеры / декодеры Motorola MC145026, MC145027, MC145028.

Галерея

4/8-канальный радиопередатчик V4.2

В разница между 4-канальной и 8-канальной версией только в программное обеспечение внутри.8-канальный передатчик имеет одну кнопку (S1-S8) на канал. 4-канальный передатчик использует кнопки S1-S4 для включения, кнопки S5-S8 к выключите каналы 1-4 (используйте с фиксированными выходами на приемнике). Диоды D1-D4 и перемычки J1-J4 не являются обязательными, и используются для установки адреса передатчика. Более высокое напряжение питания приводит к более высокой мощности передачи, но диапазон V + 2-5,5 В постоянного тока для PIC MCU. Когда V + выше 5 В постоянного тока, используйте отдельный сила для mcu.

Настройка и загрузка
Что делать, если вы не можете получить pic16f630?

список деталей
часть описание
C1
Керамический конденсатор 100 нФ
R1
Резистор 10 кОм (1/8 Вт)
D1-D4 1N4148 диод (опция)
S1-S8
тактовый переключатель, DTSM 61N или аналогичный
IC1 Микроконтроллер PIC16F630 или PIC16F676, предварительно запрограммированный
TXMOD
радио модуль передатчика, см. текст (оборудование)
B1
батарея между 2-5.5 В постоянного тока (допустимый диапазон напряжения см. В технических характеристиках TXMOD)

4/8-канальный инфракрасный передатчик V4.2

В разница между 4-канальной и 8-канальной версией только в программное обеспечение внутри. 8-канальный передатчик имеет одну кнопку (S1-S8) на канал. 4-канальный передатчик использует кнопки S1-S4 для включения, кнопки S5-S8 к выключите каналы 1-4 (используйте с фиксированными выходами на приемнике). Диоды D1-D4 и перемычки J1-J4 не являются обязательными, и используются для установки адреса передатчика.Напряжение питания V + должно быть в пределах 2,5-5,5 В постоянного тока. Практично использовать две-три батарейки ААА.

Настроить и загрузить

список деталей
часть описание
C1
Керамический конденсатор 100 нФ
C2
470 мкФ 6,3 В, электролитический конденсатор
R1
Резистор 10 кОм (1/8 Вт)
R2
Резистор 10 Ом (1/4 Вт)
D1-D4 1N4148 диод (опция)
D5
ИК-передатчик LED
1 квартал
BSS138 или аналогичный N-MOSFET
S1-S8
тактовый переключатель, DTSM 61N или аналогичный
IC1 Микроконтроллер PIC16F684, предварительно запрограммированный
B1
батарея между 2-5. 5 В постоянного тока (CR2032, литий-ионный аккумулятор 3,6 В или 3xAA батареи)

4/8-канальный радиоприемник V4.2

В разница между 4-канальной и 8-канальной версией только в программное обеспечение внутри. Выходы 8-канального ресивера индивидуальны. конфигурируемый для фиксации или мгновенного выхода. 4-х канальный ресивер имеет два выхода на канал: K1-K4 - фиксированные выходы, K5-K8 - мгновенные выходы для четырех каналов. «Действительный» светодиод показывает активность передатчика.Не забудьте включить все переключатели адреса, когда то диоды передатчика отсутствуют или перемычки J1-J4 срезаны. Выберите V + напряжение питания от +6 до 15 В постоянного тока в зависимости от номинального напряжения реле. Для реле на 6 В используйте + 6 В постоянного тока, для реле на 12 В используйте +12 В постоянного тока.
пожалуйста соблюдайте соответствующую конфигурацию адреса!

передатчик:
диоды не подключены

приемник:
переключает все ВКЛ

передатчик:
все диоды подключены

приемник:
выключает все

Настроить и загрузить

Распиновка компонентов

список деталей

часть описание
C1, C2 Керамический конденсатор 22 пФ
C3, C5 Керамический конденсатор 100 нФ
C6 10 мкФ 6. Конденсатор электролитический 3В
CN1-CN8 Клеммная колодка для печатной платы, 3-контактная (DG301)
D1-D8 1N4004 диод
IC1 PIC16F627 или PIC16F628 или
PIC16F627A или PIC16F628A микроконтроллер, предварительно запрограммированный
IC2 LP2950CZ5.0 регулятор напряжения
Светодиод 3мм светодиод (зеленый)
LED1-LED8 светодиод 3мм (красный)
Q1-Q8 BS170 N-канальный MOSFET-транзистор
R1-R9 Резистор 220R (1/8 Вт)
RL1-RL8 Реле G5LE, см. Текст для выбора напряжения катушки
S1 DIP-переключатель фортепиано, 4-позиционный
X1 4 МГц HC49 кристалл
RXMOD 3-контактный радиоприемник модуль приемника, см. текст (оборудование)

4/8-канальный V4.2 инфракрасных приемника

В разница между 4-канальной и 8-канальной версией только в программное обеспечение внутри. Выходы 8-канального ресивера индивидуальны. конфигурируемый для фиксации или мгновенного выхода. 4-х канальный ресивер имеет два выхода на канал: K1-K4 - фиксированные выходы, K5-K8 - мгновенные выходы для четырех каналов. «Действительный» светодиод показывает активность передатчика. Не забудьте включить все перемычки адреса, когда диоды передатчика отсутствуют или перемычки J1-J4 срезаны.Выберите V + напряжение питания между + 6-15 В постоянного тока, в зависимости от напряжения реле рейтинги. Для реле на 6 В используйте + 6 В постоянного тока, для реле на 12 В используйте +12 В постоянного тока.
пожалуйста соблюдайте соответствующую конфигурацию адреса!

передатчик:
диоды не подключены

приемник:
переключает все ВКЛ

передатчик:
все диоды подключены

приемник:
выключает все

Настроить и загрузить

Распиновка компонентов

список деталей

часть описание
C1, C2 Керамический конденсатор 22 пФ
C3, C5 Керамический конденсатор 100 нФ
C4 4. Электролитический конденсатор 7uF 6.3V
C6 10uF 6.3V электролитический конденсатор
CN1-CN8 Клеммная колодка для печатной платы, 3-контактная (DG301)
D1-D8 1N4004 диод
IC1 PIC16F627 или PIC16F628 или
PIC16F627A или PIC16F628A микроконтроллер, предварительно запрограммированный
IC2 LP2950CZ5.0 регулятор напряжения
IC3 TSOP1738 ИК-приемник, см. Текст (оборудование)
Светодиод 3мм светодиод (зеленый)
LED1-LED8 светодиод 3мм (красный)
Q1-Q8 BS170 N-канальный MOSFET-транзистор
R1-R9 Резистор 220R (1/8 Вт)
R10 Резистор 10 кОм (1/8 Вт)
R11 Резистор 100R (1/8 Вт)
RL1-RL8 Реле G5LE, напряжение катушки см. В тексте
S1 DIP-переключатель фортепиано, 4-позиционный
X1 4 МГц HC49 кристалл

программное обеспечение

Все устройства используют новые микроконтроллеры на базе FLASH, это означает что их можно перепрограммировать много раз.Вы можете поэкспериментировать с настройки исходного кода в соответствии с вашими потребностями. Код должен быть скомпилирован как связанный проект под MPLAB. Пожалуйста, проверьте FAQ на страницу PIC.

Известные и исправленные ошибки:

2010. 07. 02. Обратите внимание, что пакет декодера содержал нефункциональный HEX-файл, который был исправлен 2 июля 2010 г. Если вы столкнулись с этой проблемой, приемник можно было бы заставить работать компиляция исходного кода. Извините за неприятности.

2012. 03. 16. Исправлена ​​ошибка в пакете 8-канального декодера.При использовании канала 5 действующий светодиодный индикатор обрабатывался неправильно.

2014. 12. 17. Инфракрасный передатчик отправил непрерывный код. из-за чего новые приемники TSOP теряли синхронизацию через 2 секунды.


источник файл
строка означает
enc-042.asm 25 #define MODE_Ch5 г. устройство 4-х канальное, отправляет коды каналов ВКЛ / ВЫКЛ
прил-042.asm
28 #define MODE_CH8 устройство 8-канальный, отправка простых кодов для каналов
irmtxv4.asm 44 pwm_freq EQU d'38000 ' ИК частота передатчика установлен на 38000 Гц. Это должно соответствовать частоте модуля приемника
dec-043.asm 36 LATCH_MASK EQU 0xff
выбрать фиксируемые выходы. Это двоичная маска, один бит на канал.Остальные каналы будут мгновенными
Пример: LATCH_MASK EQU B'00001111 '# каналы 1-4 - фиксированные, каналы 5-8 - без фиксации
dec-044.asm 38 LATCH_MASK EQU 0xff
mrxv4.asm 56 #define SKL btfsc
57 #define SKH btfss
нормальный логический вход декодера используется для радиоприемников (чаще всего)
mrxv4.asm 60 #define SKL btfss
61 # define SKH btfsc
обратный логический вход декодера используется для ИК-приемников (чаще всего)

оборудование

Радио версия На принципиальных схемах показаны стандартные RF-модули ISM, которые подключаются к схемы, использующие два вывода питания и один вывод модуляции.Модуль передатчика (TX) подключен к цепи передатчика. Модуль приемника (RX) подключен к цепи приемника. Выберите модули ISM RF из список модулей. Пульт работает с самыми дешевыми модулями OOK / ASK и с FSK модули тоже. Используйте одинаковую частоту и тип модуляции для всех модули. Выберите модуль, который не требует настройки - это только подключаемые используя 3 контакта (земля (GND), источник питания (VCC), модуляция / демодуляция (MOD)) и обычно имеют подключение внешней антенны (ANT).

Если вы создаете инфракрасную версию, выберите ИК-светодиод, соответствующий длина волны приемного модуля. Получатель центральная частота должна соответствовать модуляции передатчика частота, которую можно установить источником передатчика (pwm_freq). Если в сомневаюсь, просто выбираю ЦОП1738. Список используемых модулей: Sharp GP1U52X, IS1U60L, Vishay TSOP17XX, TSOP18XX.

FAQ

Q: Обязательно ли использовать в приемнике транзистор BS170?
A: Вы можете использовать другие логические N-канальные МОП-транзисторы или биполярный npn транзисторы (с добавлен базовый резистор) для управления реле вместо Q1-Q8 из то приемник дистанционного управления. Примеры: bss138, bc182 + 2.2kohm

Q: Как мне установить тумблерный или мгновенный режим для реле?
A: Внесите изменения в исходный код приемника. Измените LATCH_MASK define - содержит по одному биту для каждого канала. Нулевой бит устанавливает соответствующий выход на мгновенный, a старший бит устанавливает соответствующий выход в режим фиксации. Например, линия LATCH_MASK EQU B'00001111 ' устанавливает каналы 8-5 как мгновенные а также каналы 4-1 в режим фиксации (переключения). Затем используйте компилятор (MPLAB или gputils) в собрать код.16 кодировщик дистанционного управления и декодер вместо этого.

Q: Что делать, если я не могу получить pic16f630?
A1: Попробуйте pic16f676 и верните эту строку в код: clrf 0x91; ANSEL
A2: Попробуйте pic16f628, вот модифицированный передатчик

Q: С какими радиомодулями может работать этот пульт?
A: Вы можете выбрать из этого списка. В дистанционное управление работает с самыми дешевыми модулями OOK / ASK и с FSK модули тоже.Используйте одинаковую частоту и тип модуляции для всех модули. Выберите модуль, который не требует настройки - это только подключаемые используя 3 контакта (земля (GND), источник питания (VCC), модуляция / демодуляция) (MOD)) и обычно имеют подключение к внешней антенне (ANT).

обратная связь

Пожалуйста, свяжитесь с автором, если вы обнаружили ошибку, неполную или отсутствующую документации, или у вас проблемы с тем, чтобы эта схема работала.

Введение в архитектуру PIC и MPLABX

В 1980 году Intel разработала первый микроконтроллер (8051) с гарвардской архитектурой 8051, и с тех пор микроконтроллеры совершили революцию в индустрии электроники и встраиваемых систем.А с развитием технологий со временем у нас появилось гораздо больше эффективных микроконтроллеров с низким энергопотреблением, таких как AVR, PIC , ARM. Эти микроконтроллеры более функциональны и просты в использовании, они имеют новейшие протоколы связи, такие как USB, I2C, SPI, CAN и т. д. компьютер внутри.

Это будет первая часть серии руководств, которые еще не вышли, которые помогут вам в изучении микроконтроллеров PIC .Если вы из электроники и всегда хотели начать с изучения некоторых микроконтроллеров и окунуться в мир кодирования и создания вещей, то эта серия руководств станет вашим первым шагом.

Микроконтроллер

PIC - очень удобный выбор для начала работы с проектами микроконтроллеров, потому что у него есть отличные форумы поддержки и он будет служить прочной основой для построения всех ваших продвинутых микроконтроллеров, которые вам еще предстоит изучить.

Эти учебные пособия предназначены для учащихся с абсолютным или средним уровнем знаний ; мы планировали начать с самых простых проектов до самых продвинутых.Мы ожидаем, что нет предварительных требований от учащихся, поскольку мы здесь, чтобы помочь вам на любом уровне. В каждом учебнике будет теоретическое объяснение и моделирование, за которым следует практическое руководство. В этих руководствах не будут использоваться какие-либо платы для разработки, мы создадим собственные схемы с использованием перфорированной платы. Так что готовьтесь и каждую неделю уделяйте время совершенствованию себя с помощью микроконтроллеров.

Теперь давайте начнем с простого введения в микроконтроллеры PIC и некоторых настроек программного обеспечения, которые помогут нам приступить к следующему руководству. Проверьте видео в конце для установки и настройки MPLABX, XC8, Proteus и быстрой распаковки программатора PICkit 3.

Архитектура микроконтроллера PIC и приложения:

Микроконтроллер PIC был представлен компанией Microchip Technologies в 1993 году. Первоначально эти PIC были разработаны как часть компьютеров PDP (Программируемый процессор данных) , и каждое периферийное устройство компьютера было подключено с помощью этого микроконтроллера PIC.Следовательно, PIC получил свое название как контроллер периферийного интерфейса . Позже Microchip разработала множество микросхем серии PIC, которые можно использовать для любого небольшого приложения, например, для освещения, до более сложного.

Каждый микроконтроллер должен быть построен на основе некоторой архитектуры, наиболее известным типом архитектуры является архитектура Гарварда, наша PIC основана на этой архитектуре, поскольку она принадлежит к классическому семейству 8051. Давайте перейдем к небольшому вступлению о гарвардской архитектуре PIC .

Микроконтроллер PIC16F877A состоит из встроенного ЦП, портов ввода / вывода, организации памяти, аналого-цифрового преобразователя, таймеров / счетчиков, прерываний, последовательной связи, генератора и модуля CCP, который в совокупности делает IC мощным микроконтроллером для начинающих. начнем с. Общая блок-схема архитектуры PIC показана ниже

.

ЦП (центральный процессор):

Микроконтроллер имеет центральный процессор для выполнения арифметических операций, логических решений и операций, связанных с памятью. ЦП должен координировать работу ОЗУ и других периферийных устройств микроконтроллера.

Он состоит из ALU (Арифметический логический блок), с помощью которого он выполняет арифметические операции и логические решения. MU (блок памяти) также присутствует для хранения инструкций после их выполнения. Этот MU определяет размер программы нашего MC. Он также состоит из CU (блок управления), который действует как коммуникационная шина между ЦП и другими периферийными устройствами микроконтроллера.Это помогает получить данные после их обработки в указанных регистрах.

Оперативная память (RAM):

Оперативная память - это та память, которая определяет скорость нашего микроконтроллера. ОЗУ состоит из банков регистров, каждый из которых выполняет определенную задачу. В целом их можно разделить на два типа:

  • Регистр общего назначения (GPR)
  • Регистр специальных функций (SFR)

Как следует из названия, GPR используется для общих функций регистра , таких как сложение, вычитание и т. Д.Эти операции ограничены 8 битами. Все регистры GPR доступны для записи и чтения пользователем. У них нет никаких функций, если это не указано в программном обеспечении.

В то время как SFR используется для выполнения сложных специальных функций , которые также включают некоторую 16-битную обработку, их регистры могут быть только прочитаны (R), и мы не можем ничего записать (W) в них. Таким образом, у этих регистров есть предопределенные функции для выполнения, которые устанавливаются во время производства, и они просто отображают нам результат, с помощью которого мы можем выполнять некоторые связанные операции.

Постоянная память (ПЗУ):

Постоянная память для чтения - это место, где хранится наша программа. Это определяет максимальный размер нашей программы; следовательно, она также называется программной памятью . Когда MCU находится в работе, программа, хранящаяся в ПЗУ, выполняется в соответствии с каждым командным циклом. Этот блок памяти можно использовать только при программировании PIC, во время выполнения он становится постоянным запоминающим устройством.

электрически стираемая программируемая постоянная память (EEPROM):

EEPROM - это еще один тип модуля памяти.В этом блоке памяти могут храниться значения во время выполнения программы. Здесь хранятся только значения , электрически стираемые, , то есть эти значения будут сохраняться в PIC даже при выключении IC. Их можно использовать как небольшой объем памяти для хранения выполненных значений; однако объем памяти будет меньше, чем килобайт.

Флэш-память :

Флэш-память

- это также Программируемая постоянная память для чтения (PROM), в которой мы можем читать, писать и стирать программу тысячи раз.Обычно микроконтроллер PIC использует этот тип ПЗУ.

Порты ввода / вывода

  • Наш PIC16F877A состоит из пяти портов, а именно порта A, порта B, порта C, порта D и порта E.
  • Из всех пяти ПОРТОВ только порт A 16-битный, а ПОРТ E 3-битный. Остальные ПОРТЫ 8-битные.
  • Контакты этих ПОРТОВ могут использоваться как вход или выход, в зависимости от конфигурации регистра TRIS.
  • Помимо выполнения операций ввода-вывода, выводы также могут использоваться для специальных функций, таких как SPI, прерывание, ШИМ и т. Д.

Автобус:

Термин «шина» - это просто набор проводов, соединяющих устройство ввода или вывода с ЦП и ОЗУ.

Шина данных используется для передачи или приема данных.

Адресная шина используется для передачи адреса памяти от периферийных устройств к ЦП. Контакты ввода / вывода используются для подключения внешних периферийных устройств; UART и USART оба протокола последовательной связи используются для взаимодействия последовательных устройств, таких как GSM, GPS, Bluetooth, IR и т. Д.

Выбор микроконтроллера PIC для наших руководств:

Микроконтроллеры

PIC компании Microchip делятся на 4 больших семейства. В каждом семействе есть множество компонентов, обеспечивающих встроенные специальные функции:

  1. Первое семейство PIC10 (10FXXX) называется Low End.
  2. Второе семейство, PIC12 (PIC12FXXX) - называется Mid-Range.
  3. Третье семейство - PIC16 (16FXXX).
  4. Четвертое семейство - PIC 17/18 (18FXXX)

Поскольку мы начинаем изучать PIC, давайте выберем IC, которая используется и доступна повсеместно.Эта микросхема относится к семейству 16F, номер детали - PIC16F877A. От первого урока до конца мы будем использовать ту же микросхему, что и , эта микросхема оснащена всеми расширенными функциями, такими как SPI, I2C и UART и т. Д. Но если вы не получите ничего из этого сейчас, все в порядке. , мы будем продвигаться по каждому руководству и, наконец, будем использовать все вышеупомянутые функции.

После того, как ИС выбрана, очень важно прочитать техническое описание ИС.Это должно быть первым шагом в любой концепции, которую мы собираемся опробовать. Теперь, когда мы выбрали PIC16F877A, давайте прочитаем спецификацию этой IC в таблице данных.

Peripheral Feature, упоминает, что он имеет 3 таймера , два из которых 8-битные, а один - 16-битный предварительный делитель. Эти таймеры используются для создания временных функций в нашей программе. Их также можно использовать как счетчики. Он также показывает, что у него есть опции CCP (сравнение захвата и ШИМ) , которые помогают нам генерировать сигналы ШИМ и считывать входящие частотные сигналы.Для связи с внешним устройством он имеет SPI, I2C, PSP и USART . В целях безопасности он оборудован с функцией сброса неисправности (BOR), , которая помогает в сбросе программы while.

Аналоговые функции, Указывает, что ИС имеет 10-битный 8-канальный АЦП . Это означает, что наша ИС может преобразовывать аналоговые значения в цифровые с разрешением 10 бит и имеет 8 аналоговых контактов для их чтения. У нас также есть два внутренних компаратора, которые можно использовать для сравнения входящего напряжения напрямую, без фактического считывания их через программное обеспечение.

Специальные возможности микроконтроллера, означает, что он имеет 100 000 циклов стирания / записи, означает, что вы можете запрограммировать его примерно 100 000 раз. In-Circuit Serial Programming ™ (ICSP ™), помогает нам программировать IC напрямую, используя PICKIT3. Отладка может быть выполнена с помощью внутрисхемной отладки (ICD ). Еще одна функция безопасности - сторожевой таймер (WDT), - самонадежный таймер, который при необходимости сбрасывает всю программу.

На изображении ниже представлены распиновки нашей микросхемы PIC16F877A. Это изображение представляет каждую булавку на фоне ее имени и других характеристик. Это также можно найти в таблице данных. Держите это изображение под рукой, потому что оно поможет нам при работе с оборудованием.

Выбор программного обеспечения для наших руководств:

Микроконтроллер

PIC может быть запрограммирован с помощью различного программного обеспечения, доступного на рынке. Есть люди, которые до сих пор используют язык ассемблера для программирования микроконтроллеров PIC.Для наших руководств мы выбрали самое современное программное обеспечение и компилятор, которые были разработаны самой Microchip.

Для программирования микроконтроллера PIC нам понадобится IDE (интегрированная среда разработки) , в которой происходит программирование. Компилятор , , в котором наша программа преобразуется в читаемую MCU форму, называемую HEX-файлами. IPE (интегрированная среда программирования) , которая используется для сброса нашего шестнадцатеричного файла в наши микроконтроллеры PIC.

IDE: MPLABX v3.35

IPE: MPLAB IPE v3.35

Компилятор: XC8

Компания

Microchip предоставила все эти три программы бесплатно. Их можно скачать прямо с их официальной страницы. Я также предоставил ссылку для вашего удобства. После загрузки установите их на свой компьютер. Если у вас возникли проблемы с этим, вы можете просмотреть Видео , приведенное в конце.

Для моделирования мы использовали программное обеспечение под названием PROTEUS 8 , предоставленное Labcenter.Это программное обеспечение можно использовать для моделирования нашего кода, созданного с помощью MPLABX. Существует бесплатное демонстрационное программное обеспечение, которое можно скачать с их официальной страницы по ссылке.

Подготовка оборудования:

Все наши обучающие программы заканчиваются оборудованием. Чтобы изучить PIC наилучшим образом, всегда рекомендуется тестировать наши коды и схемы на оборудовании, потому что надежность моделирования очень низкая. Коды, которые работают в программном обеспечении для моделирования, могут работать не так, как вы ожидали, на вашем оборудовании.Следовательно, мы будем создавать наши собственные схемы на платах Perf, чтобы сбрасывать наши коды.

Для создания дампа или загрузки нашего кода в PIC нам понадобится PICkit 3. Программатор / отладчик PICkit 3 - это простой и недорогой внутрисхемный отладчик, управляемый ПК, на котором запущена MPLAB IDE (v8.20). или выше) на платформе Windows. Программатор / отладчик PICkit 3 является неотъемлемой частью набора инструментов разработчика. В дополнение к этому нам также понадобится другое оборудование, такое как плата Perf, паяльная станция, микросхемы PIC, кварцевые генераторы, конденсаторы и т. Д.Но мы будем добавлять их в наш список по мере прохождения наших руководств.

Я принес свой PICkit 3 из Amazon, видео распаковки можно найти в видео ниже. Также предоставляется ссылка на PICKIT3; цена может быть немного высока, но поверьте мне, это стоит того.

СЕЙЧАС, ГОТОВО, МЫ НАЧНЕМ РАБОТУ С НАШЕГО СЛЕДУЮЩЕГО Учебника

Взаимодействие микроконтроллера PIC с датчиком LM35

Сопряжение аналогового датчика температуры LM35 с микроконтроллером PIC очень просто, все, что нам нужно, это модуль аналого-цифрового преобразователя (АЦП), связанный с микроконтроллером PIC.На этой странице показано, как легко подключить датчик LM35 к микроконтроллеру PIC16F887 и построить простой термометр своими руками. В этом проекте используется компилятор mikroC PRO для PIC.

Датчик температуры LM35 представляет собой трехконтактное устройство (VCC, OUT и GND) с выходным напряжением, линейно связанным с температурой по Цельсию (аналоговое устройство). Поскольку выходной сигнал LM35 изменяется в зависимости от температуры, нам нужен модуль АЦП (аналого-цифровой преобразователь) для измерения этого напряжения. Модуль АЦП преобразует аналоговые данные в цифровые.Микроконтроллер PIC16F887 имеет 1 модуль АЦП с разрешением 10 бит и 14 каналов.

Выход LM35 имеет линейный коэффициент масштабирования + 10 мВ / ° C, означает следующее:
Если выходное напряжение = 10 мВ -> температура = 1 ° C
Если выходное напряжение = 100 мВ -> температура = 10 ° C
Если выходное напряжение = 200 мВ -> температура = 20 ° C
Если выходное напряжение = 370 мВ -> температура = 37 ° C
и так далее.

Требуемое оборудование:

  • Микроконтроллер PIC16F887
  • Датчик температуры LM35 - техническое описание
  • 1602 ЖК-экран
  • Переменный резистор 10 кОм (или потенциометр)
  • Макет
  • Источник напряжения 5 В
  • Перемычки

Связанные проекты:
Интерфейс PIC16F887 с датчиком температуры LM35 - CCS C
Интерфейс датчика LM335 с микроконтроллером PIC16F887 - mikroC Projects

Взаимодействие микроконтроллера PIC со схемой датчика LM35:
Пример принципиальной схемы показан ниже.

(Все заземленные клеммы соединены вместе)

LM35 имеет 3 контакта (слева направо):
Контакт 1: VCC, подключен к + 5В
Контакт 2: аналоговый выход, подключен к RA0 / AN0
Контакт 3: GND (земля), подключен к заземлению цепь (0В)

Выходной контакт датчика LM335 подключен к контакту RA0 / AN0 (аналоговый контакт 0) PIC16F887.

ЖК-модуль подключается к выводам PORTD с помощью:
RS -> RD0
E -> RD1
D4 -> RD2
D5 -> RD3
D6 -> RD4
D7 -> RD5

В этом примере микроконтроллер PIC16F887 работает со своим внутренним генератором (@ 8 МГц), а вывод MCLR настроен как вывод цифрового входа (настраивается в программном обеспечении).

Взаимодействие микроконтроллера PIC с датчиком LM35 Код mikroC:
Считывание величины напряжения с помощью АЦП дает нам число от 0 до 1023 (разрешение 10 бит), 0 В представлено 0, а 5 В представлено 1023. Обратное преобразование цифрового значения АЦП это просто, и мы можем использовать следующее уравнение для этого преобразования:
Напряжение (в вольтах) = показание АЦП * 5/1023
Умножение предыдущего результата на 100 (масштабный коэффициент LM35 составляет 10 мВ / ° C = 0,01 В / ° C) дает фактическую температуру:
Температура (° C) = показание АЦП * 0.489
, где 0,489 = 500/1023

конфигурационных слов mikroC:
CONFIG1: 0x2CD4
CONFIG2: 0x0700

Слова конфигурации можно изменить: Project -> Edit Project… и изменить параметры.

Полный код mikroC:

1

2

3

4

5

6

7

8

9

10

11

12

13

140002

13

14

18

19

20

21

22

23

24

25

26

27

28

29

30

000

000

000

000 34

35

36

37

38

39

40

41

42

43

44

45

46

47

00050005 47

000

51

52

// Сопряжение датчика LM35 с PIC16F887, код mikroC

// Используемый внутренний генератор при 8 МГц

// Слова конфигурации: CONFIG1 = 0x2CD4

// CONFIG2 = 0x0700

// Подключения модуля ЖК-дисплея сбит LCD_RS на RD0_bit;

сбит LCD_EN при RD1_bit;

сбит LCD_D4 при RD2_bit;

сбит LCD_D5 при RD3_bit;

сбит LCD_D6 при RD4_bit;

сбит LCD_D7 при RD5_bit;

сбит LCD_RS_Direction на TRISD0_bit;

sbit LCD_EN_Direction на TRISD1_bit;

сбит LCD_D4_Direction на TRISD2_bit;

сбит LCD_D5_Direction на TRISD3_bit;

сбит LCD_D6_Direction на TRISD4_bit;

сбит LCD_D7_Direction на TRISD5_bit;

// Конечные соединения модуля ЖК-дисплея

char Temperature [] = "00.0 C ";

unsigned int Temp;

void main () {

OSCCON = 0X70; // Установить внутренний генератор на 8 МГц

ANSEL = 1; // Настроить вывод RA0 как аналоговый (AN0)

Lcd_Init (); // Инициализировать ЖК-модуль

Lcd_Cmd (_LCD_CURSOR_OFF); // выключить курсор

Lcd_Cmd (_LCD_CLEAR); // очистить ЖК-дисплей

lcd_out (1, 3, "Температура:");

;

(1) {

Temp = ADC_Read (0) * 0.489; // Считываем аналоговое напряжение и преобразуем его в градусы Цельсия (0,489 = 500/1023)

if (temp> 99)

Temperature [0] = 1 + 48; // Ставим 1 (из сотен)

else

Temperature [0] = ''; // Поместите пробел

Temperature [1] = (temp / 10)% 10 + 48;

Температура [2] = temp% 10 + 48;

Температура [5] = 223; // Поместите символ градуса (°)

lcd_out (2, 5, Temperature); // Отображение результата температуры LM35

delay_ms (1000); // Подождите 1 секунду

}

}

// Конец кода

Моделирование проекта Proteus должно дать такой же результат, как показано на видео ниже, где компилятор CCS C используется вместо mikroC PRO для PIC:

Рекомендации по проектированию 8-битного микроконтроллера PIC®

Переключить навигацию

  • Инструменты разработки
    • Какие инструменты мне нужны?
    • Программные инструменты
      • Начните здесь
      • MPLAB® X IDE
        • Начните здесь
        • Установка
        • Введение в среду разработки MPLAB X
        • Переход на MPLAB X IDE
          • Переход с MPLAB IDE v8
          • Переход с Atmel Studio
        • Конфигурация
        • Плагины
        • Пользовательский интерфейс
        • Проектов
        • Файлы
        • Редактор
          • Редактор
          • Интерфейс и ярлыки
          • Основные задачи
          • Внешний вид
          • Динамическая обратная связь
          • Навигация
          • Поиск, замена и рефакторинг
          • Инструменты повышения производительности
            • Инструменты повышения производительности
            • Автоматическое форматирование кода
            • Список задач
            • Сравнение файлов (разница)
            • Создать документацию
        • Управление окнами
        • Сочетания клавиш
        • Отладка
        • Контроль версий
        • Автоматика
          • Язык управления стимулами (SCL)
          • Отладчик командной строки (MDB)
          • Создание сценариев IDE с помощью Groovy
        • Устранение неполадок
        • Работа вне MPLAB X IDE
        • Другие ресурсы
      • Улучшенная версия MPLAB Xpress
      • MPLAB Xpress
      • MPLAB IPE
      • Программирование на C
      • Компиляторы MPLAB® XC
        • Начните здесь
        • Компилятор MPLAB® XC8
        • Компилятор MPLAB XC16
        • Компилятор MPLAB XC32
        • Компилятор MPLAB XC32 ++
        • Кодовое покрытие MPLAB
      • Сборщики
      • Компилятор IAR C / C ++
      • Конфигуратор кода MPLAB (MCC)
      • MPLAB Harmony версии 2
      • MPLAB Harmony v3
      • Среда разработки Atmel® Studio
      • Atmel START (ASF4)
      • Advanced Software Framework v3 (ASF3)
        • Начните здесь
        • ASF3 Учебники
          • ASF Audio Sine Tone Учебное пособие
          • Интерфейс ЖК-дисплея с SAM L22 MCU Учебное пособие
      • Блоки устройств MPLAB® для Simulink®
      • Утилиты
      • Инструменты проектирования FPGA
      • Аналоговый симулятор MPLAB® Mindi ™
    • Аппаратные средства
      • Начните здесь
      • Сравнение аппаратных средств
      • Инструменты отладки и память устройства
      • Debug Executive
      • Демо-платы и стартовые наборы
      • Внутрисхемный эмулятор MPLAB® REAL ICE ™
      • Эмулятор SAM-ICE JTAG
      • Внутрисхемный эмулятор
      • Atmel® ICE
      • Power Debugger
      • Внутрисхемный отладчик MPLAB® ICD 3
      • Внутрисхемный отладчик MPLAB® ICD 4
      • Встроенный отладчик PICkit ™ 3
      • Внутрисхемный отладчик MPLAB® PICkit ™ 4
      • MPLAB® Snap
      • Универсальный программатор MPLAB PM3
      • Принадлежности
        • Заголовки эмуляции и пакеты расширения эмуляции
        • Пакеты расширения процессора и отладочные заголовки
          • Начните здесь
          • Обзор
          • PEP и отладочных заголовков
          • Требуемый список заголовков отладки
            • Таблица требуемых отладочных заголовков
            • AC162050, AC162058
            • AC162052, AC162055, AC162056, AC162057
            • AC162053, AC162054
            • AC162059, AC162070, AC162096
            • AC162060
            • AC162061
            • AC162066
            • AC162083
            • AC244023, AC244024
            • AC244028
            • AC244045
            • AC244051, AC244052, AC244061
            • AC244062
          • Дополнительный список заголовков отладки
            • Дополнительный список заголовков отладки - устройства PIC12 / 16
            • Дополнительный список заголовков отладки - устройства PIC18
            • Дополнительный список заголовков отладки - устройства PIC24
          • Целевые следы заголовка отладки
          • Отладочные подключения заголовков
      • SEGGER J-Link
      • Сетевые инструменты K2L
      • Рекомендации по проектированию средств разработки
      • Ограничения отладки - микроконтроллеры PIC
      • Инженерно-технические примечания (ETN) [[li]] Встроенные платформы chipKIT ™
  • Функции
    • Интеграция встроенного программного обеспечения
      • Начните здесь
      • Программирование на C
      • Программирование на языке ассемблера MPASM ™
      • MPLAB® Harmony v3
        • Начните здесь
        • Библиотеки гармонии MPLAB®
        • Конфигуратор MPLAB® Harmony (MHC)
        • Проекты и учебные пособия MPLAB Harmony
          • Периферийные библиотеки в SAM L10
            • Начало работы с Периферийными библиотеками Harmony v3
            • Периферийные библиотеки с низким энергопотреблением на SAM L10
          • Периферийные библиотеки на SAM C2x
            • Начало работы с периферийными библиотеками Harmony v3
            • Приложение с низким энергопотреблением с периферийными библиотеками Harmony v3
          • Периферийные библиотеки на SAM D21
          • Периферийные библиотеки на SAM D5x / E5x
            • Начало работы с периферийными библиотеками Harmony v3
            • Приложение с низким энергопотреблением с периферийными библиотеками Harmony v3
          • Периферийные библиотеки на SAM E70
          • Периферийные библиотеки на SAM L2x
            • Приложение с низким энергопотреблением с Harmony v3 с использованием периферийных библиотек

Микроконтроллер PIC: архитектура и его приложения

Микроконтроллер PIC

Микроконтроллер PIC был разработан в 1993 году с помощью микрочиповой технологии.Термин PIC означает контроллер периферийного интерфейса. Первоначально он был разработан для поддержки компьютеров PDP для управления его периферийными устройствами и поэтому назван периферийным устройством интерфейса. Эти микроконтроллеры очень быстро и легко выполняют программу по сравнению с другими микроконтроллерами. Архитектура микроконтроллера PIC основана на архитектуре Гарварда. Микроконтроллеры PIC очень популярны благодаря простоте программирования, широкой доступности, простоте взаимодействия с другими периферийными устройствами, низкой стоимости, большой пользовательской базе и возможности последовательного программирования (перепрограммирование с флэш-памятью) и т. Д.

Мы знаем, что микроконтроллер - это интегрированная микросхема, которая состоит из ЦП, ОЗУ, ПЗУ, таймеров и счетчиков и т. Д. Таким же образом архитектура микроконтроллера PIC состоит из ОЗУ, ПЗУ, ЦП, таймеров, счетчиков и поддерживает протоколы. такие как SPI, CAN и UART для взаимодействия с другими периферийными устройствами. В настоящее время микроконтроллеры PIC широко используются в промышленных целях из-за низкого энергопотребления, высокой производительности и доступности поддерживающих аппаратных и программных средств, таких как компиляторы, отладчики и симуляторы.

Что такое микроконтроллер PIC?

PIC (Программируемые контроллеры интерфейса) микроконтроллеры - это самые маленькие микроконтроллеры в мире, которые можно запрограммировать для выполнения огромного количества задач. Эти микроконтроллеры используются во многих электронных устройствах, таких как телефоны, компьютерные системы управления, системы сигнализации, встроенные системы и т. Д. Существуют различные типы микроконтроллеров, хотя лучшие из них можно найти в линейке программируемых микроконтроллеров GENIE. Эти микроконтроллеры программируются и моделируются программным мастером схем.

Архитектура каждого микроконтроллера PIC состоит из нескольких регистров и стека, где регистры функционируют как оперативное запоминающее устройство (ОЗУ), а стек сохраняет адреса возврата. Основными характеристиками микроконтроллеров PIC являются RAM, флэш-память, таймеры / счетчики, EEPROM, порты ввода-вывода, USART, CCP (модуль захвата / сравнения / PWM), SSP, компаратор, ADC (аналого-цифровой преобразователь), PSP (параллельный ведомый порт), ЖК-дисплей и ICSP (в последовательном программировании схемы) 8-битный микроконтроллер PIC классифицируется на четыре типа на основе внутренней архитектуры, таких как базовая линия PIC, PIC среднего уровня, расширенная PIC среднего диапазона и PIC18

Архитектура Микроконтроллер PIC

Архитектура микроконтроллера PIC включает ЦП, порты ввода / вывода, организацию памяти, аналого-цифровой преобразователь, таймеры / счетчики, прерывания, последовательную связь, генератор и модуль CCP, которые подробно обсуждаются ниже.

Архитектура микроконтроллера PIC

CPU (Центральный процессор)

Он не отличается от ЦП других микроконтроллеров и ЦП микроконтроллера PIC состоит из ALU, CU, MU и аккумулятора и т. Д. Арифметико-логический блок в основном используется для арифметики операций и принимать логичные решения. Память используется для хранения инструкций после обработки. Для управления внутренними и внешними периферийными устройствами используется блок управления, подключенный к процессору, а аккумулятор используется для хранения результатов и дальнейшего процесса.

Организация памяти

Модуль памяти в архитектуре микроконтроллера PIC состоит из RAM (оперативное запоминающее устройство), ROM (постоянное запоминающее устройство) и СТЕК.

Оперативная память (RAM)

RAM - нестабильная память, которая используется для временного хранения данных в своих регистрах. Память RAM подразделяется на два банка, каждый из которых состоит из множества регистров. Регистры RAM подразделяются на два типа: регистры специального назначения (SFR) и регистры общего назначения (GPR).

  • Регистры общего назначения (GPR)

Эти регистры используются только для общего назначения, как следует из названия. Например, если мы хотим умножить два числа с помощью микроконтроллера PIC. Обычно мы используем регистры для умножения и хранения чисел в других регистрах. Таким образом, эти регистры не имеют какой-либо специальной функции - процессор может легко получить доступ к данным в регистрах.

  • Регистры специальных функций

Эти регистры используются только для специальных целей, как следует из названия SFR.Эти регистры будут работать в соответствии с назначенными им функциями, и их нельзя использовать в качестве обычных регистров. Например, если вы не можете использовать регистр STATUS для хранения данных, эти регистры используются для отображения работы или состояния программы. Таким образом, пользователь не может изменить функцию SFR; функция предоставляется продавцом во время производства.

Организация памяти

Постоянная память (ПЗУ)

Постоянная память - это стабильная память, которая используется для постоянного хранения данных.В архитектуре микроконтроллера PIC, ПЗУ архитектуры хранит инструкции или программу в соответствии с программой, которую выполняет микроконтроллер. ПЗУ также называется программной памятью, в которой пользователь пишет программу для микроконтроллера и сохраняет ее постоянно, и, наконец, программа выполняется ЦП. Производительность микроконтроллеров зависит от инструкции, которую выполняет ЦП.

электрически стираемое программируемое постоянное запоминающее устройство (EEPROM)

В обычном ПЗУ мы можем написать программу только один раз, мы не сможем снова использовать микроконтроллер несколько раз.Но в EEPROM мы можем программировать ROM несколько раз.

Флэш-память

Флэш-память также является программируемым постоянным запоминающим устройством (ППЗУ), в котором мы можем читать, записывать и стирать программу тысячи раз. Обычно микроконтроллер PIC использует этот тип ПЗУ.

Стек

Когда происходит прерывание, сначала микроконтроллер PIC должен выполнить прерывание и существующий адрес процесса. Затем то, что выполняется, сохраняется в стеке. После завершения выполнения прерывания микроконтроллер вызывает процесс с помощью адреса, который хранится в стеке, и get выполняет процесс.

Порты ввода / вывода
  • Серия PIC16 состоит из пяти портов, таких как порт A, порт B, порт C, порт D и порт E.
  • Порт A - это 16-битный порт, который может использоваться как вход или выходной порт в зависимости от состояния регистра TRISA (Tradoc Intelligence Support Activity).
  • Порт B - это 8-битный порт, который можно использовать как порт ввода и вывода.
  • Порт C является 8-битным, и ввод операции вывода определяется состоянием регистра TRISC.
  • Порт D - это 8-битный порт, который действует как подчиненный порт для подключения к шине микропроцессора.
  • Порт E - это 3-битный порт, который выполняет дополнительную функцию сигналов управления для аналого-цифрового преобразователя.
ШИНА

ШИНА используется для передачи и приема данных от одного периферийного устройства к другому. Он подразделяется на два типа, такие как шина данных и адрес.

Шина данных: Используется только для передачи или приема данных.

Адресная шина: Адресная шина используется для передачи адреса памяти от периферийных устройств к ЦП.Контакты ввода / вывода используются для подключения внешних периферийных устройств; UART и USART оба являются протоколами последовательной связи, которые используются для взаимодействия последовательных устройств, таких как GSM, GPS, Bluetooth, IR и т. Д.

BUS

A / D преобразователи

Основное назначение этого аналого-цифрового преобразователя - преобразование аналогового сигнала. значения напряжения до цифровых значений напряжения. A / D модуль микроконтроллера PIC состоит из 5 входов для 28-контактных устройств и 8 входов для 40-контактных устройств. Работа аналого-цифрового преобразователя контролируется специальными регистрами ADCON0 и ADCON1.Старшие биты преобразователя хранятся в регистре ADRESH, а младшие биты преобразователя хранятся в регистре ADRESL. Для этой операции, он требует 5V аналогового опорного напряжения.

АЦП

Таймеры / счетчики

Микроконтроллер PIC имеет четыре таймера / счетчика, из которых один 8-битный таймер и остальные таймеры могут выбрать 8-битный или 16-битный режим. Таймеры используются для создания действий по обеспечению точности, например, для создания определенных временных задержек между двумя операциями.

Прерывания

PIC-микроконтроллер состоит из 20 внутренних прерываний и трех внешних источников прерываний, которые связаны с различными периферийными устройствами, такими как ADC, USART, таймеры и т. Д.

Последовательная связь

Последовательная связь - это метод передачи данных по одному биту за раз последовательно по каналу связи.

  • USART: Название USART означает универсальный синхронный и асинхронный приемник и передатчик, который представляет собой последовательную связь для двух протоколов.Он используется для передачи и приема данных побитно по одному проводу относительно тактовых импульсов. Микроконтроллер PIC имеет два контакта TXD и RXD. Эти контакты используются для последовательной передачи и приема данных.
  • Протокол SPI: Термин SPI означает последовательный периферийный интерфейс. Этот протокол используется для передачи данных между микроконтроллером PIC и другими периферийными устройствами, такими как SD-карты, датчики и регистры сдвига. Микроконтроллер PIC поддерживает трехпроводную связь SPI между двумя устройствами на общем источнике синхронизации.Скорость передачи данных протокола SPI больше, чем у USART.
  • Протокол I2C: Термин I2C означает Inter Integrated Circuit, и это последовательный протокол, который используется для подключения низкоскоростных устройств, таких как EEPROMS, микроконтроллеры, аналого-цифровые преобразователи и т. Д. Микроконтроллер PIC поддерживает двухпроводную связь. Интерфейс или связь I2C между двумя устройствами, которые могут работать как ведущее, так и ведомое устройство.

Последовательная связь

Генераторы

Генераторы используются для генерации синхронизации.Микроконтроллер Pic состоит из внешних генераторов, таких как RC-генераторы или кварцевые генераторы. Где кварцевый генератор подключен между двумя выводами генератора. Значение конденсатора подключено к каждому выводу, который определяет режим работы генератора. Режимы: кварцевый, высокоскоростной и маломощный. В случае RC-генераторов, значение резистора и конденсатора определяет тактовую частоту, а диапазон тактовой частоты составляет от 30 кГц до 4 МГц.

Модуль CCP

Название «Модуль CCP» означает «захват / сравнение / ШИМ», где он работает в трех режимах, таких как режим захвата, режим сравнения и режим ШИМ.

  • Режим захвата: Режим захвата фиксирует время прихода сигнала или, другими словами, когда на выводе КПК устанавливается высокий уровень, он фиксирует значение таймера 1.
  • Режим сравнения: Режим сравнения действует как аналоговый компаратор. Когда значение timer1 достигает определенное опорное значение, то он генерирует выходной сигнал.
  • Режим ШИМ: Режим ШИМ обеспечивает выход с широтно-импульсной модуляцией с разрешением 10 бит и программируемым рабочим циклом.
Приложения микроконтроллера PIC

Проекты микроконтроллера PIC могут использоваться в различных приложениях, таких как периферийные устройства, аудио аксессуары, видеоигры и т. Д. Для лучшего понимания этого микроконтроллера PIC, следующий проект демонстрирует работу микроконтроллера PIC.

Уличный свет, который загорается при обнаружении движения транспортных средств:

Основная цель этого проекта - обнаруживать движение транспортных средств по шоссе, чтобы включить блок уличных фонарей впереди него, а также выключить задние фонари, чтобы экономить энергию.В этом проекте микроконтроллер PIC выполняется с использованием языка ассемблера или встроенного C.

Уличный свет, который светится при обнаружении движения транспортного средства от Edgefxkits.com

Источник питания обеспечивает питание всей цепи путем снижения, исправления, фильтрации и регулирование сети переменного тока. Когда на шоссе нет транспортных средств, все огни выключатся, чтобы можно было сэкономить электроэнергию. Инфракрасные датчики размещаются на дороге, чтобы определять движение автомобиля. Когда на шоссе едут транспортные средства, ИК-датчик немедленно определяет движение транспортного средства, он отправляет команды микроконтроллеру PIC для включения / выключения светодиодов.Группа светодиодов загорится, когда транспортное средство приблизится к датчику, и после того, как транспортное средство уйдет от датчика, интенсивность станет ниже, чем светодиоды выключатся

Преимущества микроконтроллера PIC:
  • Микроконтроллеры PIC согласованы а процент неисправных ПОС очень меньше. Производительность микроконтроллера PIC очень высокая из-за использования архитектуры RISC.
  • По сравнению с другими микроконтроллерами, потребление энергии намного меньше, и программирование также очень простое.
  • Интерфейс аналогового устройства легко без дополнительных схем
Недостатки микроконтроллера PIC:
  • Длина программы велика из-за использования архитектуры RISC (35 инструкций)
  • Имеется один аккумулятор и память программ не доступен

Таким образом, это все о руководстве по микроконтроллеру PIC, которое включает архитектуру микроконтроллера PIC, преимущества, недостатки и приложения. Кроме того, для получения любой помощи по любым электронным и электрическим проектам вы можете связаться с нами, оставив комментарий в разделе комментариев ниже.

Введение в микроконтроллеры, типы микроконтроллеров и их применение

Что такое микроконтроллер?

Микроконтроллер - это небольшой, недорогой и автономный компьютер на кристалле, который можно использовать в качестве встроенной системы. Некоторые микроконтроллеры могут использовать четырехбитные выражения и работать с тактовой частотой, которые обычно включают:

  • 8- или 16-разрядный микропроцессор.
  • Немного ОЗУ.
  • Программируемое ПЗУ и флэш-память.
  • Параллельный и последовательный ввод-вывод.
  • Таймеры и генераторы сигналов.
  • Аналого-цифровое и цифро-аналоговое преобразование

Микроконтроллеры обычно должны иметь низкое энергопотребление, поскольку многие устройства, которыми они управляют, работают от батарей. Микроконтроллеры используются во многих устройствах бытовой электроники, автомобильных двигателях, компьютерной периферии, а также в испытательном или измерительном оборудовании. И они хорошо подходят для длительного использования батарей. Преобладающая часть микроконтроллеров, используемых в настоящее время, имплантируется в другие устройства.


Как классифицируются микроконтроллеры?

Микроконтроллеры характеризуются шириной шины, набором команд и структурой памяти. Для одной и той же семьи могут быть разные формы с разными источниками. В этой статье будут описаны некоторые из основных типов микроконтроллеров, о которых новые пользователи могут не знать.

Типы микроконтроллеров показаны на рисунке, они характеризуются битами, архитектурой памяти, памятью / устройствами и набором команд.Давайте кратко обсудим это.

Типы микроконтроллеров

Классификация по количеству битов

Биты в микроконтроллере бывают 8-битными, 16-битными и 32-битными микроконтроллерами.

В 8-битном микроконтроллере точка, когда внутренняя шина является 8-битной, тогда ALU выполняет арифметические и логические операции. Примерами 8-битных микроконтроллеров являются семейства Intel 8031/8051, PIC1x и Motorola MC68HC11.

16-разрядный микроконтроллер обеспечивает большую точность и производительность по сравнению с 8-разрядным.Например, 8-битные микроконтроллеры могут использовать только 8 бит, что дает конечный диапазон 0 × 00 - 0xFF (0–255) для каждого цикла. Напротив, 16-битные микроконтроллеры с 16-битной шириной данных имеют диапазон 0 × 0000 - 0xFFFF (0-65535) для каждого цикла. Чрезвычайно полезный более длинный таймер, вероятно, может оказаться полезным в определенных приложениях и схемах. Он может автоматически работать с двумя 16-битными числами. Некоторыми примерами 16-битных микроконтроллеров являются 16-битные микроконтроллеры расширенных семейств 8051XA, PIC2x, Intel 8096 и Motorola MC68HC12.

32-разрядный микроконтроллер использует 32-разрядные инструкции для выполнения арифметических и логических операций. Они используются в устройствах с автоматическим управлением, включая имплантируемые медицинские устройства, системы управления двигателями, офисную технику, бытовую технику и другие типы встроенных систем. Некоторые примеры: семейство Intel / Atmel 251, PIC3x.

Классификация в соответствии с устройствами памяти

Устройства памяти делятся на два типа:

  • Микроконтроллер встроенной памяти
  • Микроконтроллер внешней памяти

Микроконтроллер встроенной памяти : Когда встроенная система имеет микроконтроллер, который имеет Все функциональные блоки, имеющиеся на микросхеме, называются встроенным микроконтроллером.Например, 8051, имеющий память программ и данных, порты ввода-вывода, последовательную связь, счетчики, таймеры и прерывания на кристалле, является встроенным микроконтроллером.

Микроконтроллер с внешней памятью : Когда встроенная система имеет микроконтроллер, который не имеет всех функциональных блоков, доступных на микросхеме, называется микроконтроллером внешней памяти. Например, 8031 ​​не имеет программной памяти на микросхеме - это внешняя память микроконтроллера.

Классификация в соответствии с набором инструкций

CISC : CISC - это компьютер со сложным набором инструкций.Это позволяет программисту использовать одну инструкцию вместо множества более простых инструкций.

RISC : RISC означает компьютер с сокращенным набором инструкций, этот тип наборов инструкций сокращает дизайн микропроцессора для промышленных стандартов. Это позволяет каждой инструкции работать с любым регистром или использовать любой режим адресации и одновременный доступ к программе и данным.

Пример для CISC и RISC:

Начать
CISC : Mov AX, 4 RISC : Mov AX, 0
Mov BX, 2 Mov BX, 4
ADD BX, AX Mov CX, 2
Начать ADD AX, BX
Цикл

Из приведенного выше примера системы RISC сокращают время выполнения за счет сокращения тактовых циклов на инструкцию, а системы CISC сокращают время выполнения за счет уменьшения количества инструкций на программу.RISC дает лучшее исполнение, чем CISC.

Классификация в соответствии с архитектурой памяти

Архитектура памяти микроконтроллера бывает двух типов, а именно:

  • Микроконтроллер архитектуры памяти Гарварда
  • Микроконтроллер архитектуры памяти Принстона

Микроконтроллер архитектуры памяти Гарварда : Точка, когда блок микроконтроллера имеет разное адресное пространство памяти для программ и памяти данных, микроконтроллер имеет архитектуру памяти в процессоре Гарварда.

Принстонская архитектура памяти Микроконтроллер : момент, когда микроконтроллер имеет общий адрес памяти для программной памяти и памяти данных, микроконтроллер имеет архитектуру памяти Princeton в процессоре.

5 Применение микроконтроллеров

Микроконтроллер имеет множество применений Электронное оборудование

  • Мобильные телефоны
  • Мобильные автомобили
  • Стиральные машины
  • Камеры
  • Сигнализация безопасности

4 типа микроконтроллеров 2

0 представляет собой 40-контактный микроконтроллер с Vcc 5 В, подключенным к контакту 40, и Vss на контакте 20, который поддерживается 0 В.И есть порты ввода и вывода от P1.0 - P1.7, которые имеют функцию открытого стока. Port3 имеет дополнительные функции. Контакт 36 имеет состояние открытого стока, а контакт 17 имеет внутренний транзистор внутри микроконтроллера. Когда мы применяем логику 1 к порту 1, мы получаем логику 1 на порту 21 и наоборот. Программирование микроконтроллера чрезвычайно сложно. Обычно мы пишем программу на языке C, которая затем преобразуется в машинный язык, понятный микроконтроллеру. Вывод RESET подключен к выводу 9, соединенному с конденсатором.Когда переключатель находится в положении ON, конденсатор начинает заряжаться и RST высокий. Применение высокого уровня к контакту сброса сбрасывает микроконтроллер. Если мы применим логический ноль к этому выводу, программа начнет выполнение с начала.

Архитектура памяти 8051

Память 8051 разделена на две части: память программ и память данных. Память программ хранит выполняемую программу, тогда как память данных временно хранит данные и результаты. 8051 использовался в большом количестве устройств, главным образом потому, что его легко интегрировать в устройство.Микроконтроллеры в основном используются в управлении энергопотреблением, сенсорных экранах, автомобилях и медицинских устройствах.

Программная память 8051AndData Память 8051

Описание контактов микроконтроллера 8051

Контакт 40: Vcc является основным источником питания + 5V DC.
Контакт 20: Vss - обозначает заземление (0 В).
Контакты 32–39: Известный как порт 0 (от P0.0 до P0.7) для работы в качестве портов ввода / вывода.
Контакт-31: Разрешение фиксации адреса (ALE) используется для демультиплексирования сигнала адрес-данные порта 0.
Контакт-30: (EA) Вход внешнего доступа используется для включения или отключения взаимодействия с внешней памятью. Если нет требований к внешней памяти, этот вывод всегда находится в высоком состоянии.
Контакт 29: Разрешение сохранения программ (PSEN) используется для чтения сигнала из внешней памяти программ.
Контакты - 21-28: Известный как порт 2 (от P 2.0 до P 2.7) - помимо использования в качестве порта ввода-вывода, сигналы шины адреса более высокого порядка мультиплексируются с этим квазидвунаправленным портом.
Контакты 18 и 19: Используются для подключения внешнего кристалла для обеспечения системных часов.
Контакты 10-17: Этот порт также выполняет некоторые другие функции, такие как прерывания, ввод таймера, управляющие сигналы для внешней памяти, взаимодействующие с чтением и записью. Это квазидвунаправленный порт с внутренним подтягиванием.
Вывод 9: Это вывод сброса, используемый для установки микроконтроллера 8051 на его начальные значения, когда микроконтроллер работает или при начальном запуске приложения. Штифт RESET должен быть установлен в высокий уровень на 2 машинных цикла.
Контакты 1–8: Этот порт не выполняет никаких других функций.Порт 1 - это квазидвунаправленный порт ввода-вывода.

Renesas Микроконтроллер

Renesas - это новейшее семейство автомобильных микроконтроллеров, обеспечивающее высокую производительность при исключительно низком энергопотреблении в широком и универсальном диапазоне устройств. Этот микроконтроллер предлагает богатую функциональную безопасность и встроенные характеристики безопасности, необходимые для новых и передовых автомобильных приложений. Основная структура процессора микроконтроллера поддерживает высокие требования к надежности и производительности.

Микроконтроллер Renesas с низким энергопотреблением, высокой производительностью, скромными корпусами и самым большим диапазоном размеров памяти в сочетании с периферийными устройствами с богатыми характеристиками.

Renesas

Renesas предлагает самые универсальные семейства микроконтроллеров в мире, например, наше семейство RX предлагает множество типов устройств с вариантами памяти от 32K flash / 4K RAM до невероятных 8M flash / 512K RAM.

Семейство 32-разрядных микроконтроллеров RX - это многофункциональные микроконтроллеры общего назначения, охватывающие широкий спектр встроенных приложений управления с высокоскоростным подключением, цифровой обработкой сигналов и управлением инвертором.

В семействе микроконтроллеров RX используется 32-битная усовершенствованная архитектура Harvard CISC для достижения очень высокой производительности.

Описание контактов:

Расположение контактов микроконтроллера Renesas показано на рисунке:

Это 20-контактный микроконтроллер. Контакт 9 - это Vss, контакт заземления, и Vdd, контакт источника питания. Он имеет три различных типа прерывания: обычное прерывание, быстрое прерывание и высокоскоростное прерывание.

Обычные прерывания сохраняют значимые регистры в стеке с использованием инструкций push и pop.Быстрые прерывания автоматически сохраняют программный счетчик и слово состояния процессора в специальных резервных регистрах, поэтому время отклика сокращается. А высокоскоростные прерывания выделяют до четырех регистров общего назначения для специального использования прерыванием, чтобы еще больше увеличить скорость. Структура внутренней шины дает 5 внутренних шин, чтобы гарантировать, что обработка данных не замедляется. Выборка инструкций происходит через широкую 64-битную шину, что связано с инструкциями переменной длины, используемыми в архитектурах CISC.

Характеристики и преимущества микроконтроллеров RX

  • Низкое энергопотребление достигается за счет использования многоядерной технологии
  • Поддержка работы 5 В для промышленных и бытовых конструкций
  • Масштабируемость от 48 до 145 контактов и от 32 КБ до 1 МБ флэш-памяти, с Включено 8 КБ флэш-памяти данных
  • Встроенная функция безопасности
  • Встроенный богатый набор функций из 7 UART, I2C, 8 SPI, компараторов, 12-битного АЦП, 10-битного ЦАП и 24-битного АЦП (RX21A), что позволит сократить стоимость системы за счет интеграции большинства функций

Применение микроконтроллера Renesas:

  • Промышленная автоматизация
  • Коммуникационные приложения
  • Приложения для управления двигателем
  • Испытания и измерения
  • Медицинские приложения

Микроконтроллеры AVR

Микроконтроллер AVR разработан Al -Эгил Боген и Вегард Воллан из Atmel Corporation.Микроконтроллеры AVR представляют собой модифицированную архитектуру Harvard RISC с отдельной памятью для данных и программ, а скорость AVR высока по сравнению с 8051 и PIC. AVR расшифровывается как A lf-Egil Bogen и V egard Wollan's R ISC.

Разница между контроллерами 8051 и AVR:

  • 8051 - это 8-битные контроллеры на основе архитектуры CISC, AVR - это 8-битные контроллеры на основе архитектуры RISC
  • 8051 потребляет больше энергии, чем микроконтроллер AVR
  • В 8051 мы можем программировать легко, чем микроконтроллер AVR
  • Скорость AVR больше, чем микроконтроллер 8051

Классификация контроллеров AVR:

микроконтроллеры AVR делятся на три типа:

  • TinyAVR - меньше памяти, небольшой размер, подходит только для более простых приложения
  • MegaAVR - это самые популярные из них с большим объемом памяти (до 256 КБ), большим количеством встроенных периферийных устройств и подходящие для средних и сложных приложений
  • XmegaAVR - коммерчески используются для сложных приложений, требующих большой программной памяти и высокая скорость

Характеристики микроконтроллера AVR:

  • 16 КБ In-Sys Программируемая флэш-память
  • 512Б внутрисистемной программируемой EEPROM
  • 16-битный таймер с дополнительными функциями
  • Несколько внутренних генераторов
  • Внутренняя самопрограммируемая флэш-память инструкций до 256 КБ
  • Программируемая внутри системы с помощью ISP, JTAG или методы высокого напряжения
  • Дополнительная секция загрузочного кода с независимыми битами блокировки для защиты
  • Синхронные / асинхронные последовательные периферийные устройства (UART / USART)
  • Шина последовательного периферийного интерфейса (SPI)
  • Универсальный последовательный интерфейс (USI) для двух / трехпроводного подключения синхронная передача данных
  • Сторожевой таймер (WDT)
  • Несколько энергосберегающих спящих режимов
  • 10-разрядные аналого-цифровые преобразователи, с мультиплексированием до 16 каналов
  • Поддержка контроллеров CAN и USB
  • Низковольтные устройства не работают к 1.8v

Существует множество микроконтроллеров семейства AVR, таких как ATmega8, ATmega16 и так далее. В этой статье мы поговорим о микроконтроллере ATmega328. Микросхемы ATmega328 и ATmega8 совместимы по выводам, но функционально они различны. ATmega328 имеет флэш-память объемом 32 КБ, а ATmega8 - 8 КБ. Другими отличиями являются дополнительная SRAM и EEPROM, добавление прерываний смены контактов и таймеров. Некоторые из функций ATmega328:

Характеристики ATmega328:

  • 28-контактный микроконтроллер AVR
  • Флэш-память программ объемом 32 Кбайт
  • Память данных EEPROM объемом 1 Кбайт
  • Память данных SRAM объемом 2 Кбайт
  • контактов 23
  • Два 8-битных таймера
  • АЦП
  • Шестиканальный ШИМ
  • Встроенный USART
  • Внешний осциллятор: до 20 МГц

Контакт Описание ATmega328 :

Поставляется в 28-контактном DIP , показанное на рисунке ниже:

AVR

Vcc: Цифровое напряжение питания.

GND: Земля.

Порт B: Порт B - это 8-битный двунаправленный порт ввода-вывода. Выводы порта B имеют тройное обозначение, когда становится активным условие сброса или один, даже если часы не работают.

Порт C: Порт C - это 7-битный двунаправленный порт ввода-вывода с внутренними подтягивающими резисторами.

PC6 / RESET

Порт D: Это 8-битный двунаправленный порт ввода-вывода с внутренними подтягивающими резисторами. Выходные буферы порта D имеют симметричные характеристики привода.

AVcc: AVcc - вывод напряжения питания для АЦП.

AREF: AREF - аналоговый опорный вывод для АЦП.

Типовая схема микроконтроллера AVR:

Применение микроконтроллера AVR:

Существует множество применений микроконтроллера AVR; они используются в домашней автоматизации, сенсорных экранах, автомобилях, медицинских устройствах и обороне.

PIC Микроконтроллер

PIC - контроллер периферийного интерфейса, разработанный General Instruments Microelectronics в 1993 году.Он контролируется программным обеспечением. Их можно было запрограммировать на выполнение многих задач, управление линией генерации и многое другое. Микроконтроллеры PIC находят свое применение в новых приложениях, таких как смартфоны, аудио аксессуары, периферийные устройства для видеоигр и современные медицинские устройства.

Есть много PIC, начинающихся с PIC16F84 и PIC16C84. Но это были единственные доступные флеш-карты. Microchip недавно представила флеш-чипы гораздо более привлекательных типов, например 16F628, 16F877 и 18F452.16F877 примерно в два раза дороже старого 16F84, но имеет в восемь раз больше кода, гораздо больше оперативной памяти, гораздо больше контактов ввода-вывода, UART, аналого-цифрового преобразователя и многое другое.

Особенности PIC16F877

Основные характеристики:

  • Высокопроизводительный RISC-процессор
  • До 8K x 14 слов во флэш-памяти программ
  • 35 инструкций (кодирование фиксированной длины - 14 бит)
  • 368 × 8 Память данных на основе статической RAM
  • Память данных EEPROM до 256 x 8 байтов
  • Возможность прерывания (до 14 источников)
  • Три режима адресации (прямая, косвенная, относительная)
  • Сброс при включении питания (POR)
  • Память архитектуры Harvard
  • Энергосберегающий режим сна
  • Широкий диапазон рабочего напряжения: 2.От 0 В до 5,5 В
  • Высокий ток потребления / источника: 25 мА
  • Машина на базе аккумулятора

Периферийные функции:

  • 3 Таймера / счетчика (программируемые предварительные скаляры)

- Таймер 0, Таймер 2 - это 8-битные таймеры / счетчик с 8-битным прескаляром

- Таймер 1 - 16 бит, может увеличиваться во время сна через внешний кристалл / часы

  • Два модуля захвата, сравнения, ШИМ

- Функция захвата входа записывает счет таймера 1 контактный переход

- Выходной сигнал функции ШИМ представляет собой прямоугольный сигнал с программируемым периодом и рабочим циклом.

  • 10-битный 8-канальный аналого-цифровой преобразователь
  • USART с обнаружением 9-битного адреса
  • Синхронный последовательный порт с главным режимом и I2C Master / Slave
  • 8-битный параллельный подчиненный порт

Аналоговые характеристики:

  • 10-битный, до 8-канальный аналого-цифровой преобразователь (АЦП)
  • Сброс при пониженном напряжении (BOR)
  • Модуль аналогового компаратора (программируемое мультиплексирование входов со входов устройства и выходов компаратора доступно извне )

Описание выводов PIC16F877A:

Преимущества PIC:

  • Это RISC-дизайн
  • Его код чрезвычайно эффективен, что позволяет PIC работать с обычно меньшим объемом памяти для программ, чем его более крупные конкуренты
  • Он низкая стоимость, высокая тактовая частота

A Типичная прикладная схема PIC16F877A:

Схема ниже состоит из лампы, переключение которой контролируется микроконтроллером PIC ролик.

Author:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *