Pic16F628A datasheet на русском. Программирование микроконтроллеров PIC16/PIC18 на языке C: базовые сведения и первая программа

Как начать программировать микроконтроллеры PIC16/PIC18 на языке C. Какие базовые сведения нужно знать о платформе. Как написать первую программу для PIC-микроконтроллера на C. Какие инструменты потребуются для разработки.

Основные сведения о микроконтроллерах PIC16 и PIC18

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

Ключевые особенности микроконтроллеров PIC16/PIC18:

  • 8-битное RISC-ядро
  • Флэш-память программ объемом до 128 КБ
  • ОЗУ объемом до 4096 байт
  • EEPROM для хранения данных
  • Широкий выбор периферийных модулей (таймеры, АЦП, ШИМ, UART, SPI, I2C и др.)
  • Низкое энергопотребление и режимы сна
  • Напряжение питания 2.0-5.5В

Инструменты для разработки программ на C

Для программирования микроконтроллеров PIC на языке C потребуются следующие инструменты:


  1. Интегрированная среда разработки (IDE) — MPLAB X IDE от Microchip
  2. Компилятор C — XC8 от Microchip
  3. Программатор/отладчик — PICkit 3 или ICD 3
  4. Оценочная плата с целевым микроконтроллером

MPLAB X IDE и компилятор XC8 можно бесплатно скачать с сайта Microchip. Они предоставляют все необходимые инструменты для написания, компиляции и отладки программ на C.

Структура программы на C для PIC

Типичная структура программы на C для микроконтроллеров PIC выглядит следующим образом:


#include <xc.h>

// Конфигурационные биты  
#pragma config FOSC = HS   // Внешний кварцевый резонатор
#pragma config WDTE = OFF  // Сторожевой таймер выключен
#pragma config PWRTE = ON  // Таймер включения питания включен
#pragma config BOREN = ON  // Детектор пониженного напряжения включен
#pragma config LVP = OFF   // Низковольтное программирование выключено

// Основная программа
void main(void) {
    
    // Инициализация
    TRISB = 0x00;  // Настройка PORTB на выход
    
    while(1) {
        // Бесконечный цикл
        PORTB = 0x55;  // Вывод значения на PORTB
    }
    
    return;
}

Программа начинается с подключения заголовочного файла xc.h, который содержит объявления регистров и битов для целевого микроконтроллера. Затем идет настройка конфигурационных битов с помощью директив #pragma config. В функции main() выполняется инициализация и основной цикл программы.


Настройка конфигурационных битов

Конфигурационные биты определяют базовые настройки микроконтроллера, такие как:

  • Тип тактового генератора
  • Включение сторожевого таймера
  • Защита кода от чтения
  • Режим программирования

Настройка конфигурационных битов выполняется с помощью директив #pragma config. Например:


#pragma config FOSC = HS    // Внешний кварцевый резонатор
#pragma config WDTE = OFF   // Сторожевой таймер выключен
#pragma config PWRTE = ON   // Таймер включения питания включен
#pragma config BOREN = ON   // Детектор пониженного напряжения включен
#pragma config LVP = OFF    // Низковольтное программирование выключено

Правильная настройка конфигурационных битов очень важна для корректной работы микроконтроллера.

Управление портами ввода-вывода

Порты ввода-вывода являются основным интерфейсом для взаимодействия микроконтроллера с внешними устройствами. Управление портами осуществляется через специальные регистры:

  • TRISx — регистр направления данных (1 — вход, 0 — выход)
  • PORTx — регистр выходных данных
  • LATx — защелка выходных данных

Пример настройки PORTB как выход и вывода значения:



TRISB = 0x00;  // Настройка всех выводов PORTB на выход
PORTB = 0x55;  // Вывод значения 0x55 на PORTB

Прерывания в микроконтроллерах PIC

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

  1. Настроить источник прерывания
  2. Разрешить прерывание в соответствующем регистре PIEx
  3. Установить флаг глобального разрешения прерываний GIE
  4. Написать обработчик прерывания

Пример обработчика прерывания по переполнению Timer0:


void __interrupt() ISR(void)
{
    if(INTCONbits.TMR0IF) {
        // Обработка прерывания Timer0
        INTCONbits.TMR0IF = 0; // Сброс флага прерывания
    }
}

Первая программа: мигание светодиодом

Рассмотрим простую программу для мигания светодиодом, подключенным к выводу RB0:


#include <xc.h>

// Конфигурационные биты
#pragma config FOSC = HS    // Внешний кварцевый резонатор
#pragma config WDTE = OFF   // Сторожевой таймер выключен
#pragma config PWRTE = ON   // Таймер включения питания включен
#pragma config BOREN = ON   // Детектор пониженного напряжения включен
#pragma config LVP = OFF    // Низковольтное программирование выключено

#define _XTAL_FREQ 20000000 // Частота кварцевого резонатора 20 МГц

void main(void) {
    
    TRISB = 0x00;  // Настройка PORTB на выход
    
    while(1) {
        PORTBbits.RB0 = 1;  // Включение светодиода
        __delay_ms(500);    // Задержка 500 мс
        PORTBbits.RB0 = 0;  // Выключение светодиода
        __delay_ms(500);    // Задержка 500 мс
    }
    
    return;
}

Эта программа настраивает PORTB на выход и циклически включает и выключает светодиод, подключенный к выводу RB0, с интервалом 500 мс.


Отладка программы в MPLAB X IDE

MPLAB X IDE предоставляет мощные инструменты для отладки программ:

  • Пошаговое выполнение кода
  • Установка точек останова
  • Просмотр значений переменных и регистров
  • Симуляция работы периферийных модулей

Для отладки программы необходимо:

  1. Подключить программатор/отладчик к компьютеру и целевой плате
  2. Выбрать инструмент отладки в настройках проекта
  3. Запустить отладку нажатием кнопки Debug Project

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

Заключение

Программирование микроконтроллеров PIC16/PIC18 на языке C открывает широкие возможности для создания сложных встраиваемых систем. Освоив базовые принципы работы с портами, прерываниями и периферийными модулями, вы сможете реализовывать разнообразные проекты на основе этих микроконтроллеров.


Использование модулей АЦП и ШИМ в микроконтроллерах 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

Часы — будильник — термометр на PIC16F73. Схема и описание

Эта схема часов с функцией термометра построена на микроконтроллере PIC16F73. Время и температура выводятся на 4-х разрядный семисигментный индикатор с общим анодом. Устройство постоянно показывает время, а каждую минуту дисплей переключается на пять секунд для отображения температуры в °С.

Так же в часах предусмотрен будильник. Точность часов высокая из-за применения кварцевого резонатора на 20 Mгц. Десятичная точка второго разряда мигает каждую секунду.

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

Ниже представлена принципиальная схема часов.

Выбор пал на микроконтроллер PIC16F73, поскольку он не дорогой и достаточно функциональный. Это 28-контактный чип с портами A, B и C, а также рядом периферийных устройств, таких как Таймер, АЦП и UART. Самое главное преимущество «PIC» является простота программирования.

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

Так же есть несколько каналов АЦП. Скорость преобразования очень быстрая, порядка 20 микросекунд. Поэтому к нему легко подключить любой аналоговый сигнал и оцифровав его вывести на тот же самый светодиодный индикатор.

В нашей схеме таким сигналом является аналоговый сигнал температуры с датчика LM35. Микросхема LM35 — это недорогой датчик температуры может измерять температуру в диапазоне от -50 ОС до 100 ОС. В нашей конструкции данный датчик установлен непосредственно на печатную плату, поскольку нам необходимо измерять комнатную температуру.

Сброса микроконтроллера PIC16F73 осуществляется по выводу 1. К этому выводу подключен резистор и конденсатор для того, чтобы выполнить сброс при подачи питания.

Схема запитана от 5В, полученное от понижающего трансформатора (Х1), выпрямителя (BR1) и регулятора напряжения IC 7805 (ІС1).

Вывод 20 подключен к плюсу питания, а выводы 19 и 8 к минусу. Выводы 9 и 10 предназначены для подключения кварцевого резонатора. Два конденсатора, каждый из 15пф, подключены к концу кристалла на землю. Эта высокоскоростная частота или HS. Существует регистр конфигурации внутри чипа, который должен быть запрограммирован для HS. В нашем случае мы используем байт конфигурации 52 HEX.

Порт B запрограммирован как выход. Порт А запрограммирован на вход и вывод 2 (AN0) используется как АЦП для обработки сигнала от датчика температуры LM35.

Выводы порта С (с4 по 7) используются для управления анодами индикаторов. Вывод 11 — кнопка S1 (установка времени). Путем постоянного нажатия на нее происходит изменение времени. Вывод 14 – кнопка S2 (установка будильника).

Источник: 2016/04 | ELECTRONICS FOR YOU

Скачать прошивку (6,2 KiB, скачано: 715)

Инкубатор своими руками, на PIC16F628A

Управление и настройка инкубатора

При первом нажатии кнопки меню регулятор переходит в режим установки температуры, о чём свидетельствует МИГАНИЕ ТОЧКИ кнопками плюс или минус устанавливаем температуру, которую нужно поддерживать в инкубаторе по умолчанию стоит 37,4 градуса.

При втором нажатии кнопки меню устанавливаем гистерезис разницу между включением и отключением. Можно установить в приделах от 0 до 0,9 градуса. По умолчанию стоит 0,1 (нагреватель отключается например при достижении температуры 37,4 включается при температуре 37,3) режим отличается буквой «Г» в четвёртом разряде.

Следующее нажатие кнопки меню переходим в режим установки коррекции показания датчика температуры DS18B20, пределы установки от -0,9 до 0,9 соответственно, если -0,1 вычитаем 0,1 градуса от считываемого с датчика значения. По умолчанию это значение 0,0.режим отличается маленькой буквой «с» в четвёртом разряде.

Четвёртое нажатие кнопки меню переходим в режим установки паузы между включения двигателя поворота лотков. Время устанавливается в минутах, максимальное значение 999 минут. Режим отличается буквой «Н» в четвёртом разряде.

Пятое нажатие кнопки меню переводит регулятор в режим установки времени работы двигателя, задается в секундах. Максимальное значение 999 секунд. Режим отображается большой буквой «С» в четвёртом разряде.

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

  Особо тут рассказывать нечего.

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

Из минусов. При обрыве либо любой другой неисправности датчика инкубатора нагреватель не отключится! Неудобное меню настройки параметров работы инкубатора.

Рисунок печатной платы. Индикатор ставится со стороны печатных проводников (индикатор управления инкубатором) Тут же на рисунке изображена и плата для измерителя влажности. (индикатор измерителя влажности ставится с лицевой стороны платы ) Схема инкубатора и схема измерителя влажности, были взяты из разных источников, поэтому это две разные независимые схемы, которые объединены в одну, только на печатной плате.

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

Настройка температуры, точность датчика температуры, и управление двигателем лотка переворота яиц. Всё это настраивается в соответствующем меню с помощью кнопок + —

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

P.S. Если в рисунке схемы найдёте ошибки, ориентируйтесь по печатной плате, они 100% рабочие печатки (проверено неоднократным повторением схемы).

Автором схемы инкубатора и прошивки для него является: Оспанов Е.М.

Автором схемы измерителя влажности и прошивки для него является: Колтуник Ю.Ю.

Ссылка на страничку сайта автора измерителя влажности. http://www.kondratev-v.ru/izmereniya/elektronnyj-gigrometr-dlya-inkubatora.html#comment-2343

Что ещё сказать. По поводу целесообразности самостоятельной сборки, подобного инкубатора с нуля. Это спорный вопрос. Так как на том же Али экспресс , готовый терморегулятор W1209 , стоит как, одна МК PIC16F628A.

 

Видео о постройке инкубатора.

 

Простейший термометр на PIC 16F628A

Доброго времени суток уважаемые читатели. Как видно из названия статьи , речь в ней пойдет о термометре собранном на PIC. Итак. Почему и как всё начиналось?!
Понадобилась мне схема простейшего термометра для подвала гаража. Начал искать подходящую схему в Интернете. Важным критерием было применение минимального количества элементов в схеме. Сразу скажу, что таких схем термометров в сети навалом. Но! Чаще всего они выполнены на AVR с которыми я к глубокому своему сожалению не дружу. Поэтому стал искать схему на PIC. Но и тут меня ожидало разочарование. Схемы термометров на PIC есть. Но там применяют, то транзисторы для индикаторов, то внешний кварц, либо еще что то, что усложняло схему и было неприемлемо в моем случае. Наконец, после долгих поисков, подходящая мне схема была найдена тут:

http://www.labkit.ru/html/show_meter?id=38
И была успешно повторена неоднократно. Всё прекрасно работает. (на сайте автора этой схемы есть и прошивка и печатная плата для повторения данного термометра). Время шло. И в одно прекрасное время во первых выяснились недочеты данной схемы и еще мне понадобилось применить индикатор с Общим Катодом (на сайте автора прошивка была только под Общий Анод). Теперь о недочете схемы в первоисточнике. Изначально в схеме автора нет резистора подтяжки у датчика температуры. Тоесть резистор на 4,7К в схеме отсутствует. Да действительно при таком исполнении схемы термометр может работать, но только при условии, если датчик температуры впаян сразу в плату, либо длина провода на котором находится датчик не должен превышать длины провода метр, полтора метра. Не более. В противном случае индикатор начинает показывать какую- то ерунду, а не температуру.
Такой поворот событий меня совсем не обрадовал. Потому как длинна провода с датчиком мне была нудна не менее 10 метров.
Эта проблема решилась очень просто и быстро, именно установкой подтягивающего резистора 4,7К на датчике. После чего датчик стал работать стабильно при любой длине провода. Но как быть, если у меня есть индикаторы только с общим катодом! А прошивка сделана под анод… Вот тут мне и помог Станислав Дмитриев. За что ему огромнейшее спасибо. Он не только написал прошивку под общий анод. Но так же и под общий катод и под разные типы датчиков температуры (DS18S20 или DS18B20). Что позволило еще более унифицировать данную схему. И рекомендовать её к повторению. Также можно применить в схеме как четырех разрядные семисегментники так и трех разрядные семисегментники. Что является не большим, но все, же плюсом.
Теперь сама схема

Как вы видите, схема не отличается от той, что представлена, была на сайте http://www.labkit.ru
Так и было задумано изначально. Единственное изменение в схеме это установка дополнительного резистора. Схему я не стал перерисовывать с нуля. Просто добавил недостающий элемент схемы. По сути если Вы хотите еще более упростить схему и у вас есть стабильный источник питания 5В, то Вы можете исключить из схемы и линейный стабилизатор. И запитать МК сразу от 5В.
Теперь поговорим немного о том, как самому настроить прошивку под нужный вам индикатор или датчик. Тут всё просто.

Загрузив файл прошивки в программатор, Вы сами: исходя из того, что вам нужно и смотря на данный скриншот, прописываете нужные вам параметры в файл прошивки в разделе EPROM. После чего можете прошивать контролер.

В моём варианте печатной платы в плате предусмотрено место не только для линейного стабилизатора, но и для диодного моста (что позволит запитывать схему напряжением от 7,5В до 12В. А так же на плате предусмотрено место для установки клемника, который позволяет не впаивать датчик температуры в плату, а зажать его зажимами. Это удобно при смене датчика, либо при установке датчика на длинный провод. Позволяет быстро сменить провод.

Рисунок платы

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

Подводя итог скажу.
Благодаря трудам, проделанным Станиславом Дмитриевым, в данной схеме стало возможным применять;
Датчики температуры DS18S20 или DS18B20
Семисигментные индикаторы, как с общим анодом, так и с общим катодом.

Бонусы:
Отображение на дисплее информации без десятых долей, либо с десятыми долями градуса.
Без знака градуса, либо со знаком градуса.

При неисправности датчика пишет «Err»
Обновление индикации 122 Гц
Опрос датчика 1,5 секунды
Диапазон измерения -40..+99оС
Сайт автора данной прошивки http://ucprog.ucoz.ru

Автор статьи Кулибин.

Архив с прошивкой и платой

Термометр с точностью измерения 0,1 градус на PIC16F628A и DS18B20 » RADIOSHEM.RU

Термометр с точностью измерения 0,1 градус на PIC16F628A и DS18B20

Девайс предназначен для измерения температуры во всем диапазоне датчика DS18B20 (от -55 до +125 градусов), с точностью до 0,1 градуса. Точность 0,1 является весьма условной, т.к. заявленная производителем точность самого датчика DS18B20 — 0,5 градуса. Тем не менее, ко мне очень часто обращались люди с предложением сделать термометр с индикацией до 0,1 градуса, что я и сделал.

Термометр измеряет температуру и индицирует ее на 4-х разрядном светодиодном индикаторе. Разные диапазоны температур индицируются по разному:
-55,0…-10,0 — в формате -ХХ.Х без символа градуса
-9,9…0,1 — в формате -Х.Х и символ градуса
0,0…9,9 — в формате Х.Х и символ градуса
10,0…99,9 — ХХ.Х и символ градуса
100,0…125,0 — ХХХ.Х без символа градуса


Кроме того в термометре реализована функции приглушения яркости индикаторов. Яркость выбирается кнопкой S. Пока кнопка нажата — яркость высокая, если не нажата — яркость низкая. Вместо кнопки можно подключить датчик освещенности, чтобы яркость менялась автоматически в зависимости от времени суток (точнее освещенности).

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

Термометр будет правильно работать только с датчиком DS18B20, датчики DS1820, DS18S20 и т.п. для данного термометра не пригодны! Для питания прибора подойдет любой стабилизированный или не стабилизированный блок питания выдающий постоянное напряжение 7…12 вольт. Например, можно использовать не нужное зарядное устройство для мобильника. Если выходное напряжение блока питания не превышает 8 вольт, то вместо стабилизатор 7805 можно применить и 78L05, но если будет сильный его нагрев, придеться увеличить сопротивления в катодах индикатора до 220 ом.

Скачать [27.7 КБ] — Рисунок печатной платы (LAY) и прошивку микроконтроллера (HEX)(QR)

Микроконтроллеры и Технологии — Частотомер на PIC16F73 и семисегментных индикаторах

Дата публикации: .

Предлагаемый частотомер собран на микроконтроллере и семисегментных светодиодных индикаторах с общим катодом. Его разрешающая способность составляет 0,1 Гц, что может быть полезным при проведении точных измерений.

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

Диапазон измеряемых частот, МГц …………….0.1 Гц…40
Время измерения частоты, с . .1 или 10
Чувствительность, В………….0,1
Напряжение питания, В   …….4,5. .5
Потребляемый ток, мА:
в режиме ожидания……….10
максимальный   ………..35

Схема частотомера показана на рис. 1 На входе устройства установлен компаратор DA1, который включен по типовой схеме с инвертирущим входом. Порог срабатывания компаратора можно изменять подборкой резистора R4 — чем больше его сопротивление, тем выше порог. Работа компаратора управляется сигналом на входе LATCH (вывод 5) DA1 который поступает с линии порта RA3 (вывод 5 DD1), и разрешена при низком логическом уровне на этом входе.

Рисунок 1

Порт В микроконтроллера DD1 задействован для подачи напряжения на элементы а—h индикаторов HG1. HG2, а порт С — для подключения катодов этих индикаторов к общему проводу. Резистор R7 является «подтягивающим» для линии порта RAO, a R6 уменьшает влияние на компаратор DA1 импульсов, поступающих на вход предделителя в режиме досчета. Резисторы R8—R15 токоограничивающие от их сопротивлений зависит яркость свечения индикаторов HG1, HG2.

Входной сигнал преобразуется компаратором DA1 в прямоугольные импульсы с уровнями ТТЛ, которые поступают на вход микроконтроллера для их дальнейшего счета Восьмиразрядные регистры предделителя, таймера TMR0 и двух счетчиков прерывания по переполнению TMR0 подсчитывают эти импульсы. Измерительный интервал задает таймер TMR1.

Информация в регистрах таймера TMR0 и счетчиков доступна для чтения, а вот содержимое высокочастотного (до 90 МГц) регистра предделителя недоступно. Поэтому для извлечения информации, хранящейся в нем, применен ставший уже классическим способ досчета импульсов до переполнения предделителя. После остановки счета значение TMR0 сохраняется в цифровом компараторе. Число поданных на вход предделителя импульсов подсчитывается, и после каждого импульса сравниваются текущее и сохраненное значения TMR0. При изменении текущего значения TMR0 подача импульсов на предделитель прекращается. Накопленное в младшем регистре число, преобразованное в дополнительный код, и будет тем числом, которое было в предделителе. Двоичный код на выходах четырех восьмиразрядных регистров преобразуется в двоично-десятичный, а затем в код для управления семиэлементными индикаторами.

После подачи питающего напряжения осуществляется инициализация регистров микроконтроллера. Частота переключения разрядов при динамической индикации должна быть такой, чтобы не было видно мерцания индикатора. Как известно, эта частота должна быть не ниже 25 Гц. Выбранная длительность индикации одного разряда на восьмиразрядном индикаторе составляет 3 мс, поэтому частота переключения F= 1/Т= 1/(0,003-8) = 41,7 Гц, где F — частота обновления индикатора; Т — период. При такой частоте мерцание индикатора не заметно.

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

В программе использованы два прерывания: одно — по результату сравнения значений шестнадцатеразрядных регистров специального события (CCPR1H и CCPR1L) и регистров таймера TMR1 (TMR1H и TMR1L). другое — по переполнению таймера TMR0. Регистры ССР1 и TMR1 используются для формирования временного интервала измерения частоты. Делитель на 10 для получения временного интервала 1 с и еще один делитель на 10 для получения интервала 10 с реализованы на отдельных регистрах, которые заполняются при прерывании

После сохранения значений контекстных регистров проверяются флаги прерывания. Если прерывание произошло по переполнению таймера TMR0. то инкрементируется счетчик и программа выходит из прерывания. При прерывании по результату сравнения модуля ССР1 заполняется регистр делителя на 10 и проверяется флаг времени измерения. Если установлено время измерения 10 с заполняется регистр делителя на 10. После окончания времени измерения выполняются досчет и определение содержимого предделителя. Полученные данные перекодируются в девять разрядов двоично-десятичного кода. Для экономии энергии батарей портативного прибора все незначащие нули гасятся. При выполнении операций во время прерываний работа таймеров TMR0 и TMR1 не останавливается, поэтому цикл измерения повторяется непрерывно

В устройстве применены резисторы С2-23, Р1-4, оксидный конденсатор — импортный, остальные керамические — К10-17. Компаратор AD8611 можно заменить на компаратор AD8561, кварцевый резонатор ZQ1 — HC-49U Кнопки SB1 и SB2 с самовозвратом — ПКн159. выключатель питания — кнопочный с возвратом в исходное положение повторным нажатием. Кнопка и выключатель должны иметь удлиненные (10 мм) толкатели

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

Налаживание сводится к установке частоты кварцевого генератора. Для этого на вход частотомера подают сигнал с известной частотой и подборкой конденсаторов С6 или установкой последовательно с резонатором конденсатора емкостью 10… 100 пф (на плате для него предусмотрено место, в которое предварительно монтируют проволочную перемычку) устанавливают это значение частоты на индикаторе Для облегчения процедуры можно установить подстроечные конденсаторы, например КТ4-25. Следует отметить, что для обеспечения точности измерения частоты в доли герц следует применить эти конденсаторы, а также кварцевый резонатор с повышенной термостабильностью.

Автор: Н. Заец


Архив для статьи «Частотометр на PIC16F73 и семисегментных индикаторах»
Описание: Исходный код программы(Ассемблер), файл прошивки микроконтроллера, макеты печатных плат под индикаторы MAN3604A
Размер файла: 13.74 KB Количество загрузок: 3 825 Скачать

% PDF-1.6 % 14765 0 объектов> endobj xref 14765 379 0000000016 00000 н. 0000010363 00000 п. 0000010500 00000 п. 0000010705 00000 п. 0000010745 00000 п. 0000010801 00000 п. 0000010847 00000 п. 0000010980 00000 п. 0000011042 00000 п. 0000011183 00000 п. 0000011315 00000 п. 0000011452 00000 п. 0000012206 00000 п. 0000012719 00000 п. 0000013347 00000 п. 0000013679 00000 п. 0000013861 00000 п. 0000014045 00000 п. 0000014149 00000 п. 0000014338 00000 п. 0000017060 00000 п. 0000021702 00000 п. 0000021935 00000 п. 0000022159 00000 п. 0000022222 00000 п. 0000022329 00000 п. 0000022419 00000 п. 0000022465 00000 п. 0000022590 00000 н. 0000022701 00000 п. 0000022813 00000 п. 0000022946 00000 п. 0000023065 00000 п. 0000023208 00000 п. 0000023335 00000 п. 0000023462 00000 п. 0000023638 00000 п. 0000023729 00000 п. 0000023830 00000 п. 0000023992 00000 п. 0000024090 00000 н. 0000024276 00000 п. 0000024416 00000 п. 0000024555 00000 п. 0000024722 00000 п. 0000024885 00000 п. 0000025046 00000 п. 0000025209 00000 п. 0000025344 00000 п. 0000025479 00000 п. 0000025643 00000 п. 0000025798 00000 п. 0000025908 00000 п. 0000026077 00000 п. 0000026223 00000 п. 0000026369 00000 п. 0000026529 00000 п. 0000026673 00000 п. 0000026841 00000 п. 0000027055 00000 п. 0000027210 00000 п. 0000027364 00000 н. 0000027529 00000 п. 0000027686 00000 п. 0000027837 00000 п. 0000027996 00000 н. 0000028149 00000 п. 0000028315 00000 п. 0000028486 00000 п. 0000028603 00000 п. 0000028735 00000 п. 0000028887 00000 п. 0000029004 00000 п. 0000029139 00000 п. 0000029291 00000 п. 0000029434 00000 п. 0000029574 00000 п. 0000029727 00000 н. 0000029828 00000 п. 0000029968 00000 н. 0000030116 00000 п. 0000030265 00000 п. 0000030420 00000 п. 0000030579 00000 п. 0000030731 00000 п. 0000030899 00000 п. 0000031060 00000 п. 0000031169 00000 п. 0000031320 00000 н. 0000031498 00000 п. 0000031596 00000 п. 0000031738 00000 п. 0000031897 00000 п. 0000032025 00000 п. 0000032148 00000 п. 0000032249 00000 н. 0000032367 00000 п. 0000032474 00000 п. 0000032590 00000 н. 0000032705 00000 п. 0000032834 00000 п. 0000032950 00000 п. 0000033091 00000 п. 0000033191 00000 п. 0000033325 00000 п. 0000033472 00000 п. 0000033592 00000 п. 0000033717 00000 п. 0000033871 00000 п. 0000034001 00000 п. 0000034092 00000 п. 0000034256 00000 п. 0000034384 00000 п. 0000034538 00000 п. 0000034660 00000 п. 0000034798 00000 п. 0000034968 00000 н. 0000035108 00000 п. 0000035235 00000 п. 0000035370 00000 п. 0000035533 00000 п. 0000035703 00000 п. 0000035880 00000 п. 0000036039 00000 п. 0000036206 00000 п. 0000036352 00000 п. 0000036499 00000 н. 0000036646 00000 п. 0000036760 00000 п. 0000036866 00000 п. 0000036977 00000 п. 0000037137 00000 п. 0000037302 00000 п. 0000037424 00000 п. 0000037558 00000 п. 0000037679 00000 п. 0000037825 00000 п. 0000037974 00000 п. 0000038106 00000 п. 0000038244 00000 п. 0000038383 00000 п. 0000038521 00000 п. 0000038659 00000 п. 0000038764 00000 п. 0000038895 00000 п. 0000039030 00000 н. 0000039152 00000 п. 0000039297 00000 п. 0000039440 00000 п. 0000039586 00000 п. 0000039729 00000 п. 0000039874 00000 п. 0000040016 00000 н. 0000040143 00000 п. 0000040299 00000 п. 0000040470 00000 п. 0000040573 00000 п. 0000040683 00000 п. 0000040810 00000 п. 0000040955 00000 п. 0000041097 00000 п. 0000041253 00000 п. 0000041374 00000 п. 0000041559 00000 п. 0000041701 00000 п. 0000041843 00000 п. 0000042027 00000 н. 0000042195 00000 п. 0000042325 00000 п. 0000042422 00000 п. 0000042536 00000 п. 0000042680 00000 п. 0000042835 00000 п. 0000042955 00000 п. 0000043105 00000 п. 0000043256 00000 п. 0000043385 00000 п. 0000043533 00000 п. 0000043684 00000 п. 0000043831 00000 п. 0000043931 00000 п. 0000044088 00000 п. 0000044208 00000 п. 0000044333 00000 п. 0000044447 00000 п. 0000044580 00000 п. 0000044705 00000 п. 0000044828 00000 п. 0000044950 00000 п. 0000045091 00000 п. 0000045225 00000 п. 0000045341 00000 п. 0000045453 00000 п. 0000045570 00000 п. 0000045681 00000 п. 0000045817 00000 п. 0000045937 00000 п. 0000046071 00000 п. 0000046194 00000 п. 0000046355 00000 п. 0000046476 00000 п. 0000046602 00000 п. 0000046763 00000 п. 0000046875 00000 п. 0000046990 00000 н. 0000047112 00000 п. 0000047278 00000 н. 0000047388 00000 п. 0000047516 00000 п. 0000047651 00000 п. 0000047788 00000 п. 0000047908 00000 н. 0000048032 00000 п. 0000048167 00000 п. 0000048320 00000 н. 0000048445 00000 п. 0000048565 00000 п. 0000048727 00000 н. 0000048897 00000 н. 0000049064 00000 н. 0000049226 00000 п. 0000049396 00000 п. 0000049550 00000 п. 0000049716 00000 п. 0000049874 00000 п. 0000050030 00000 п. 0000050202 00000 п. 0000050312 00000 п. 0000050448 00000 п. 0000050617 00000 п. 0000050768 00000 п. 0000050907 00000 п. 0000051061 00000 п. 0000051183 00000 п. 0000051326 00000 п. 0000051510 00000 п. 0000051666 00000 п. 0000051818 00000 п. 0000051940 00000 п. 0000052085 00000 п. 0000052234 00000 п. 0000052369 00000 п. 0000052496 00000 п. 0000052648 00000 п. 0000052786 00000 п. 0000052937 00000 п. 0000053070 00000 п. 0000053204 00000 п. 0000053357 00000 п. 0000053504 00000 п. 0000053624 00000 п. 0000053748 00000 п. 0000053883 00000 п. 0000053996 00000 п. 0000054130 00000 п. 0000054263 00000 п. 0000054432 00000 п. 0000054563 00000 п. 0000054670 00000 п. 0000054827 00000 н. 0000054925 00000 п. 0000055050 00000 п. 0000055230 00000 п. 0000055361 00000 п. 0000055481 00000 п. 0000055598 00000 п. 0000055762 00000 п. 0000055893 00000 п. 0000056055 00000 п. 0000056154 00000 п. 0000056312 00000 п. 0000056447 00000 п. 0000056599 00000 п. 0000056709 00000 п. 0000056858 00000 п. 0000057098 00000 п. 0000057207 00000 п. 0000057376 00000 п. 0000057522 00000 п. 0000057652 00000 п. 0000057818 00000 п. 0000057922 00000 п. 0000058056 00000 п. 0000058166 00000 п. 0000058323 00000 п. 0000058420 00000 н. 0000058580 00000 п. 0000058726 00000 п. 0000058865 00000 п. 0000059045 00000 п. 0000059193 00000 п. 0000059341 00000 п. 0000059523 00000 п. 0000059693 00000 п. 0000059828 00000 п. 0000059981 00000 п. 0000060105 00000 п. 0000060239 00000 п. 0000060360 00000 п. 0000060525 00000 п. 0000060643 00000 п. 0000060778 00000 п. 0000060903 00000 п. 0000061052 00000 п. 0000061219 00000 п. 0000061379 00000 п. 0000061548 00000 п. 0000061718 00000 п. 0000061864 00000 п. 0000062019 00000 п. 0000062181 00000 п. 0000062329 00000 п. 0000062449 00000 п. 0000062572 00000 п. 0000062690 00000 н. 0000062807 00000 п. 0000062927 00000 н. 0000063050 00000 п. 0000063179 00000 п. 0000063296 00000 п. 0000063414 00000 п. 0000063534 00000 п. 0000063664 00000 н. 0000063804 00000 п. 0000063938 00000 п. 0000064077 00000 п. 0000064207 00000 п. 0000064339 00000 н. 0000064481 00000 п. 0000064633 00000 п. 0000064762 00000 п. 0000064907 00000 н. 0000065054 00000 п. 0000065192 00000 п. 0000065310 00000 п. 0000065428 00000 п. 0000065553 00000 п. 0000065723 00000 п. 0000065817 00000 п. 0000066055 00000 п. 0000066237 00000 п. 0000066362 00000 п. 0000066514 00000 п. 0000066706 00000 п. 0000066907 00000 п. 0000067081 00000 п. 0000067215 00000 п. 0000067351 00000 п. 0000067505 00000 п. 0000067656 00000 п. 0000067844 00000 п. 0000067976 00000 п. 0000068160 00000 п. 0000068302 00000 п. 0000068435 00000 п. 0000068583 00000 п. 0000068726 00000 п. 0000068904 00000 п. 0000069076 00000 п. 0000069248 00000 п. 0000069403 00000 п. 0000069580 00000 п. 0000069734 00000 п. 0000069921 00000 н. 0000070098 00000 п. 0000070278 00000 п. 0000070456 00000 п. 0000070634 00000 п. 0000070763 00000 п. 0000070895 00000 п. 0000071029 00000 п. 0000071176 00000 п. 0000071310 00000 п. 0000071465 00000 п. 0000071610 00000 п. 0000071716 00000 п. 0000071822 00000 п. 0000071930 00000 п. 0000008050 00000 н. трейлер ] >> startxref 0 %% EOF 15143 0 obj> поток 1Ѐd [6 $ 4p = \ — Pd ^ \ ۣ̜2 K S $ &  _ơcȒ9d_r>: «! AN! ҡaj% n -8» 2Ϩ ^ 5Qf; oqXRks? S

pic16f628a техническое описание и примечания по применению

PIC16F628AT-I / SSC01 Microchip Technology Inc 8-БИТНЫЙ, ВСПЫШКА, 20 МГц, МИКРОКОНТРОЛЛЕР RISC, PDSO20, 5.ВЫСОТА 30 ММ, БЕЗ СВИНЦА, ПЛАСТИК, SSOP-20
PIC16F628A-E / SS Microchip Technology Inc 8-БИТНЫЙ, ВСПЫШКА, 20 МГц, МИКРОКОНТРОЛЛЕР RISC, PDSO20, ВЫСОТА 5,30 ММ, БЕЗ СВИНЦА, ПЛАСТИК, SSOP-20
PIC16F628AT-I / ML Microchip Technology Inc 8-БИТНЫЙ, ВСПЫШКА, 20 МГц, МИКРОКОНТРОЛЛЕР RISC, PQCC28, 6 X 6 MM, 0.ВЫСОТА 55 ММ, ПЛАСТИК, QFN-28
PIC16F628A-I / P Microchip Technology Inc 8-БИТ, ВСПЫШКА, 20 МГц, МИКРОКОНТРОЛЛЕР RISC, PDIP18, 0,300 ДЮЙМА, БЕЗ СВИНЦА, ПЛАСТИК, DIP-18
PIC16F628AT-I / SOG Microchip Technology Inc 8-БИТНЫЙ, ВСПЫШКА, 20 МГц, МИКРОКОНТРОЛЛЕР RISC, PDSO18, ВЫСОТА 7,50 ММ, БЕЗ СВИНЦА, ПЛАСТИК, SOIC-18
PIC16F628A-E / P Microchip Technology Inc 8-БИТНЫЙ, ВСПЫШКА, 20 МГц, МИКРОКОНТРОЛЛЕР RISC, PDIP18, 0.300 ДЮЙМОВ, БЕЗ СВИНЦА, ПЛАСТИК, DIP-18

pic16f628a — микросхема | Elnec

pic16f628a — микросхема | Elnec

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

Производитель: микрочип

Тип устройства: PIC16Fxxx

Описание номера детали:

ПОС XX Икс XXXX Икс — XX Икс / XX XXX
Наведите курсор на поле, чтобы выделить конкретный раздел

PIC Торговая марка Microchip
XX Подпись семьи 16 = семейство PIC16
Х Технологии F = 3.От 0 до 5,5 В CMOS FLASH LF = от 2,0 до 5,5 В CMOS FLASH с низким энергопотреблением HV = высокое напряжение
XXXX Номер устройства
Х Упаковка T = лента и катушка (только пакеты SOIC, PLCC, SSOP, TQFP)
XX Диапазон частот 04 = 200 кГц (LP osc.

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

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