Курсовой проект

1.Обзор источников литературы.

В Интернете существует ряд постоянно обновляемых сайтов с технической информацией и документацией на русском языке по микроконтроллерам PIC. Одни из наиболее информативных и популярных www.gamma.spb.ru, www.microchip.com, www.microchip.ru . Кроме переведенных на русский язык английских описаний постоянно публикуются обзоры новинок, сравнительные тесты, примеры использования. Здесь же можно задать свой вопрос и получить квалифицированный ответ.

Часть этой информации (на русском языке) находится на выпущенных в 2002 и 2003 годах фирмой “Гамма-Санкт-Петербург” компакт-дисках. Попасть в русскоязычный раздел этих дисков можно с главной страницы.

Всю информацию на английском языке по PIC-контроллерам можно найти на сайте  www.microchip.com, или компакт-диске, там же есть:

–    Описание системы команд и примеры программирования PIC16XX;

  • Описание их внутренней структуры;
  • Номенклатура и назначение разных типов PIC-контроллеров;
  • Примеры устройств и простых программ для них.

В книжных магазинах можно преобрести книгу Ульриха В.А. “Микроконтроллеры PIC16C7X” (устройство, работа, программирование, система команд, использование) на русском языке. Также несколько книг выпустило издательство “Додека”, спрашивайте в магазинах.

 

 2. Элементная база.

2.1 Микроконтроллер семейства PIC16.

Опишем микpосхемы семейства PIC с тех особенностей и пpеимуществ, котоpые выделяют  эти  микpоконтpоллеpы  сpеди  дpугих.

  Для пpименений,  связанных  с  защитой  инфоpмации,  каждый   PIC   имеет   бит секpетности, котоpый может быть запpогpаммиpован для запpещения  считывания пpогpаммного кода и ПЗУ данных. Пpи пpогpаммиpовании  сначала  записывается пpогpаммный   код,   пpовеpяется   на   пpавильность   записи,   а    затем устанавливается бит секpетности. Если  попытаться  пpочитать  микpосхему  с установленным битом секpетности, то для PIC16CXX стаpшие  8  pазpядов  кода будут считываться как 0, а  младшие  4  pазpяда  будут  пpедставлять  собой скpемблиpованные 12 pазpядов команды.

Микpоконтpоллеpы семейства PIC имеют очень эффективную систему  команд, состоящую всего из 35 инстpукций. Все инстpукции выполняются за один  цикл, за исключением условных пеpеходов и команд, изменяющих пpогpаммный счетчик, котоpые выполняются за 2 цикла. Один цикл выполнения инстpукции состоит  из 4 пеpиодов тактовой частоты.  Таким  обpазом,  пpи  частоте  4  МГц,  вpемя выполнения инстpукции составляет 1 мксек. Каждая инстpукция состоит  из  14 бит,  делящихся  на  код  опеpации  и  опеpанд  (возможна   манипуляция   с pегистpами, ячейками памяти и непосpедственными  данными). 

    Высокая  скоpость  выполнения  команд  в  PIC   достигается   за   счет использования  двухшинной  Гаpваpдской  аpхитектуpы   вместо   тpадиционной одношинной Фон-Hеймановской. Гаpваpдская аpхитектуpа основывается на набоpе pегистpов с pазделенными шинами и адpесным пpостpанством для команд  и  для данных. Hабоp pегистpов означает, что все пpогpаммные  объекты,  такие  как поpты ввода/вывода, ячейки памяти и таймеp,  пpедставляют  собой  физически pеализоваенные аппаpатные pегистpы.

    Память данных (ОЗУ)  для  PIC16CXX  имеет  pазpядность  8  бит,  память пpогpамм (ППЗУ) имеет  pазpядность 14  бит  для PIC16CXX.

Использование Гаpваpдской аpхитектуpы позволяет  достичь  высокой скоpости выполнения битовых, байтовых и pегистpовых опеpаций.  Кpоме  того, Гаpвадская аpхитектуpа допускает конвейеpное выполнение  инстpукций,  когда одновpеменно выполняется текущая  инстpукция  и  считывается  следующая.  В тpадиционной же Фон-Hеймановской аpхитектуpе команды  и  данные  пеpедаются чеpез одну pазделяемую или мультиплексиpуемую шину, тем  самым  огpаничивая возможности конвейеpизации.

Внутpенние физические и логические компоненты, из котоpых состоит PIC16CXX  аналогичны  любому  дpугому  микpоконтpоллеpу, поэтому писать пpогpаммы для  PIC  не сложнее, чем для любого дpугого  пpоцессоpа.  Логика,  и  только  логика… Конечно, Гаpваpдская аpхитектуpа и большая  pазpядность  команды  позволяют сделать  код  для  PIC  значительно  более  компактным,  чем   для   дpугих микpоконтpоллеpов и существенно повысить скоpость выполнения пpогpамм.

Для данного курсового проекта был выбран микроконтроллер PIC16C773. Он имеет встроенный десяти битный АЦП и достаточное количество выводов для подключения внешних устройств и организации индикации. Так же у него сравнительно мощные выходы, что позволяет подключать к ним элементы схемы и индикации без дополнительного согласования или усиления.  Все основные параметры аналогичны параметрам  микрокрнтроллеров семейства PIC16C7XX.

Внешний вид и назначение выводов микроконтроллера показаны на рис.1.

2.2 Термодатчик LM35DZ.

 LM35-прецизионный полупроводниковый температурный датчик, дающий на выходе напряжение 10мВ на градус.

Основные характеристики (максимальные):

  • Напряжение питания +35 – -0.2В
  • Выходное напряжение +6 – -1В
  • Выходной ток 10мА
  • Диапазон рабочих температур 0-100 м/span>С
  • Выходной импеданс 0.1Ом на 1мА

Внешний вид и цокалевка термодатчика показана на рисунке 2.

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

2.3 ЦАП TLV5616

TLV5616 – 12 битный цифроаналоговый преобразователь с четырехпроводным последовательным интерфейсом. TLV5616 управляется последовательностью из 16 бит. Четыре бита являются контрольными а остальные 12-биты данных.

Основные параметры (максимальные):

  • напряжение питания: 4.5 – 5.5В
  • напряжение квантования Vref: -0.3 – 5.8 В
  • напряжение цифрового входа: : -0.3 – 5.8 В
  • Диапазон рабочих температур 0-70 м/span>С

Цокалевка и внешний вид микросхеммы показан ра рисунке 3.

 

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

AGND- аналоговая земля

CS – выборка крислалла. Цифровой вход, используемый для включения         или выключения всех входов. Активный низкий.

DIN – последовательный цифровой вход данных.

FS – вход синхронизации фреймов. Цифровой вход, используемый в четырехпроводных последовательных интерфейсах TMS320 и аналогичных.

OUT – аналоговый выход.

REFIN – аналоговый вход для напряжения квантования.

SCLK – цифровой вход для тактовых импульсов.

Vdd – вход для напряжения питания.

Функциональная схема TLV5616 представлена на рисунка 4.

Временная диаграмма работы представлена на рисунке 5.

Формат данных для TLV5616 показан на рисунке 6.

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

 2.4 Другие элементы схеммы.

 G5LE-114P 10A – твердотельное реле. Управляется логическим высоким/низким уровнем и способно коммутировать токи до 10А  при напряжении 220В .  Согласования с PICом  не требует.

ALC 324A – Семисегментный (LED) индикатор.

Семисегментные индикаторы (ССИ)  широко используются для отображения  цифровой и буквенной информации. Семь отображающих элементов позволяют высвечивать десятичные и шестнадцатиричные цифры, некоторые буквы русского и латинского алфавитов, а также некоторые специальные знаки. Структура ССИ показана на рис.7. Для засветки одного сегмента большинства типов ССИ необходимо обеспечить протекание через сегмент тока 10-15 мА при напряжении 2,0-2,5 В. Высокая нагрузочная способность МК семейства PIC16  допускает прямое соединения с ССИ ALC 324A .

3. Описание работы схемы и ее функционирования.

Термочувствительные части схемы составляют термодатчики ВК1 и ВК2. Это прецизионные полупроводниковые температурные датчики LM35DZ , дающие на выходе напряжение 10мВ на градус. Термодатчики помещаются в среду, в которой должна контролироваться температура, и с их выходов снимается напряжение, величина которого является информативным параметром о контролируемой величине. Сигналы  с термодатчиков усиливаются операционными усилителями DA1 и  DA2 для согласования диапазона выходных напряжений с термодатчиков с диапазоном входного напряжения встроенного в микрокрнтроллер DD2 АЦП. Операционные усилители DA1,DA2 (AD832) имеют нелинейность порядка 0,1% и существенно не искажают сигнал во всем  усиливаемом диапазоне. Коэффициенты усиления усилителей задаются резисторами R5-R10. Сигналы с выходов усилителей подаются на аналоговые входы AN0 и AN1 микроконтроллера, который их оцифровывает и сохраняет как данные о температуре  по каналам.

Величины температур в средах задаются с помощью потенциометров R2 и  R4, выходы которых соединены со входами AN2 и AN8 микроконтроллера. Напряжения с потенциометров так же оцифровывается и сохраняется как данные об выставленной величине температур. Резисторы R1 и R3 служат для подстройки необходимой величины падения напряжения на (1/100)R потенциометров.

Стабилитроны VD1-VD2  задают ступени квантования встроенного в микроконтроллер АЦП и ЦАПа DD1 (TLV5616). Резисторы R11-R12 обеспечивают необходимый ток на стабилитронах.

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

Цифровой сиглал любого из каналов устройства (канал устанавливается программой микроконтроллера) подается с выводов микроконтроллера  на ЦАП DD1 (TLV5616), который преобразует его в аналоговую форму и отправляет на эмиттерный повторитель , образованный  VT1 и R13, с которого он может сниматься для контроля исправности схемы и калибровки.

Индикация построена на элементах HL3-HL5 и VT2-VT4 и работает по динамической схеме (т.е. разряды числа высвечиваются разделенно по времени).

 4. Описание разработанных алгоритмов и программ микроконтроллера.

4.1 Алгоритм функционирования системы

4.2 Алгоритм организации интерфейса предачи данных от микроконтроллера к ЦАП.

4.3 Программный код приведенного алгоритма организации интерфейса.

;Организация интерфейса

bsf        Portа,4             ; установить RA4 в 1(fs)

bcf        portc,0            ; установить RC0 в 0(cs)

bcf        porta,4             ; установить RA4 в 0(fs)

movlw        4           ; в w загрузить 4        

movwf cnt                   ; w загрузить в cnt

modrb1

bcf        portс,2           ; установить RC2 в 0(din)

bsf        portс,1           ; установить RC1 в 1(sclk)

bcf        portс,1           ; установить RC1 в 0(sclk)

decfsz            cnt,f           ; cnt-1,пропуск следующей инструкции если 0

goto        modrb1

movlw        12          ; в w загрузить 12        

movwf        cnt         ; w загрузить в cnt

modrb2

bcf        status,c            ; очистка бита С в регистре status

rrf        dan,f                    ; циклический сдвиг вправо через флаг С

bcf        portс,2             ; установить RC2 в 0(din)

btfsс        status,c            ; пропускаем следующую команду, если бит С=0

bsf        portс,2             ; установить RC2 в 1(din)

bsf        portс,1             ; установить RC1 в 1(sclk)

bcf        portс,1             ; установить RC1 в 0(sclk)

decfcz cnt,f                ; cnt-1, пропуск следующей инструкции, если cnt=0

goto        modrb1

bsf        porta,4            ; установить RA4 в 1(FS)

bsf        portc,0             ; установить RC0 в 1(CS)

4.4 Программный код организации динамической индекации.

;Преобразование двоичного числа в десятичное

;Перед вызовом в var содержится исходное число

;Результат в sotni,desiat,edin

;———————–преобразование числа в разряды——-

preob   clrf    sotni

pr0     incf    sotni,f              ;разряд  сотен

        movlw   .100

        subwf   var,f

        btfsc   status,C

        goto    pr0

        decf    sotni,f

        movlw   .100

        addwf   var,f

        clrf    desiat

pr1     incf    desiat,f             ;разряд десятков

        movlw   .10

        subwf   var,f

        btfsc   status,C

        goto    pr1

        decf    desiat,f

        movlw   .10

        addwf   var,f

        clrf    edin

pr2     incf    edin,f               ;разряд единиц

        movlw   .1

        subwf   var,f

        btfsc   status,C

        goto    pr2

        decf    edin,f

        return

;Организация динамической индикации

MOVLW                SOTNI            ;В W Загружаем сотни

CALL                SHOWSYM            ;Определяем семисегментный код

MOVWF                PORTB            ;Поместить результат на выходах

BSF                        PORTC,3

MOVLW                DESIAT            ;В W Загружаем десятки

CALL                SHOWSYM        

BCF                        PORTC,3

MOVWF                PORTB                

BSF                           PORTС,4

MOVLW                EDIN                      ;В W Загружаем единицы

CALL                SHOWSYM        

BCF                          PORTС,4

MOVWF                PORTB        

BSF                          PORTС,5        

 

;Таблица семисегментного кода

SHOWSYM

   addwf      PC                 ;Вычислить смещение в таблице

   retlw      b’01111110′        ; .FEDCBA.  = ‘0’

   retlw      b’00001100′        ; ….CB..         = ‘1’

   retlw      b’10110110′        ; G.ED.BA.    = ‘2’

   retlw      b’10011110′        ; G..DCBA.    = ‘3’

   retlw      b’11001100′        ; GF..CB..       = ‘4’

   retlw      b’11011010′        ; GF.DC.A.     = ‘5’

   retlw      b’11111010′        ; GFEDC.A.    = ‘6’

   retlw      b’00001110′        ; ….CBA.         = ‘7’

   retlw      b’11111110′        ; GFEDCBA.   = ‘8’

   retlw      b’11011110′        ; GF.DCBA.    = ‘9’

           

Заключение.

В результате выполнения курсового проекта были изучены основные принцыпы построения микроконтроллерных устройств, было детально рассмотрено семейство микроконтроллеров PIC16 от Micrichip, их архитектура, преимущества и недостатки, основные параметры и характеристики, возможности, система команд, способы сопряжения с внешними устройствами и примеры применения. При написании программы для микроконтроллера были освоены основны программирования микроконтроллеров PIC (инициализация регистров, обработка внешних сигналов, работа со встроенным АЦП, обработка и преобразование данных, программирование интерфейса и динамической индикации…).

Так же были получены комплексные знания о  ЦАП, термодатчикам,  реле и индикаторам.

Как  вывод можно сказать, что микроконтроллеры семейства PIC16XX являются одними из наиболее привлекательных для создания микроконтроллерных устройств. Привлекает внимание их простота и эффективность, система простых однословных команд, а так же применение встроенной памяти программ данных и малое энергопотребление. Эти особенности, а так же наличие в большенстве моделях встроенного АЦП, широкий разброс допустимых напряжений питания, возможность защиты данных после программирования, приемлемая цена – обеспечили этим микроконтроллерам популярность среди разработчиков электронной аппаратуры.