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

Автор работы: Пользователь скрыл имя, 16 Ноября 2011 в 16:49, курсовая работа

Краткое описание

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

Содержание работы

Введение…………………………………………………………………….1
Глава 1. Микроконтроллеры……………………………………………….6
1.1 Микроконтроллеры………………..…………………………………...6
1.2 Описание микроконтроллера PIC18FXX2………..…………………..9
Глава 2. Программирование микроконтроллеров………………….........17
2.1. Программирование микроконтроллеров PIC16/PIC18 на языке C...17
Глава 3. Сборка устройства……………………………………………….21
3.1 Система виртуального моделирования PROTEUS VSM………….21
3.2 Сборка схемы………………………………………………………….24
3.3 Программирование и настройка контроллера………………………26
Заключение……………………………………………………………….42
Список литературы……………………………………………………...43

Содержимое работы - 1 файл

Курсовая.docx

— 1.32 Мб (Скачать файл)

2. Старшие биты  адреса регистра ОЗУ берутся  из регистра BSR (кроме команды  MOVFF).

3. Большинство  каналов ввода/вывода мультиплицируются  с выводами периферийных модулей.

 

 

Примечания:

1. Подключение  вывода CCP2 к каналу порта ввода/вывода RB3 определяется битом конфигурации

микроконтроллера.

2. Старшие биты  адреса регистра ОЗУ берутся  из регистра BSR (кроме команды  MOVFF).

3. Большинство  каналов ввода/вывода мультиплицируются  с выводами периферийных модулей

 

 

Обозначения:

TTL = ТТЛ совместимый  вход 

CMOS = КМОП совместимый  вход/выход

ST = вход с  триггером Шмитта и КМОП уровнями

I = вход

O = выход

P = питание

OD = выход с  открытым коллектором (нет диода,  подключенного к VDD)

AN = аналоговый  вход

 

 

Обзор характеристик

Высокоскоростной  RISC процессор

• Быстродействие до 10MIPS:

- Тактовая частота  от DC до 4МГц

- Тактовая частота  в режиме PLL от 4МГц до 10МГц

• 16-разрядные  команды, 8-разрядные данные

• Система приоритетов  прерываний

• Аппаратное умножение 8х8 за один машинный

  • Разводка ножек

 

Глава 2.  Программирование микроконтроллеров PIC16/PIC18 на языке C.

Необходимый минимум: 
ПО: 
— MPLAB; 
— собственно компилятор C; 
— Proteus ISIS; 
Железо: 
— отладочная плата; 
— программатор. 
 
              MPLAB — среда разработки от Microchip. Скачать можно на официальном сайте.             Полностью бесплатна.  
Содержит компилятор с языка ассемблера, позволяет провести полный цикл разработки в том числе и прошивку(при наличии соответствующего программатора). 
Большинство компиляторов языка C имеют механизмы встраивания в эту среду. 
Качаем обязательно
 
Компилятор C
Здесь уже немного сложнее с выбором. 
Список того, на что я советую обратить внимание: 
— CCS PICC; 
— Micro-C; 
— IAR C; 
— HT-PICC; 
— Microchip C18; 
 
 
 
CCS PICC. Платный. В своем составе содержит неплохую IDE. Возможна интеграция с MPLAB с помощью плагина.  
Существует демо-версия с ограниченичем по размеру кода и отключеннными некоторыми функциями. 
Узнать о нем можно в очень хорошей книге товарища Шпака «Программирование на языке C для AVR и PIC микроконтроллеров».  
Весьма неплох. Используется многими. Информации в сети достаточно. Вакцина существует. 
 
Micro-C. Платный. От копании mikroElektronika. В своем составе содержит весьма удобную IDE, симулятор и небольшой набор полезных инструментов. 
Широкий ассортимент поддерживаемых устройств.  
Главный плюс для начинающего — огромная библиотека модулей и примеров к ним. По этому параметру аналогов нет. 
Есть документация на русском. Вакцина существует. 
Лучший выбор для начинающего, но не более. 
 
IAR C. Платный. Очень объемный проект. Поддержка огромного количества устройств и PIC18 в том числе. 
Аналогов по функционалу и возможностям наверное нет. 
Демо-версия существует, с ограничениями естественно.  
Не лучший выбор для новичка. Хорошо подойдет в будущем, если желание работать с МК не пропадет:-) 
 
HT-PICC. Платный. Поддержка многих устройств. Существуют верссии для Linux и Mac. 
Будет использоваться мною в статьях для программирования PIC16
У меня версия — 8.05PL1
 
Microchip C18. Платный. Существует студенческая версия с полным функционалом на 2 месяца. 
Будет использоваться мною в статьях о программировании PIC18
У меня версия — 3.33
 
едем дальше. 
 
Proteus ISIS. одна из составляющих проекта Proteus от Labcent Electronics.  
Симулятор-отладчик. Лучший вариант когда под рукой нет необходимого железа. 
Информации о нем в сети предостаточно. 
Качаем обязательно
У меня версия — 7.5_SP3
 
Железо
Не буду советовать конкретной отладочной платы или схемы для нее из-за трудностей вопросов купить/спаять/достать для каждого индивидуально. 
Скажу лишь что буду давать примеры для PIC16F628A и PIC18F4550. 
С программатором в принципе тоже самое. Но советую PICkit2
 
Теперь практика. 
Сперва речь буду вести о PIC16
Ну и для вводной статьи напишем и запустим простейшую программу 
 
Скачали MPLAB. У меня версия 8.36.  
Скачали HT-PICC. У меня версия — 8.05PL1
Скачали Proteus. У меня версия — 7.5_SP3
Все установили — все работает.  
Выполняем все рекомендации по установке. 
Если не работает — решаем проблемы. 
 
Запускаем MPLAB
Идем Project -> Set Language Tool Locations. Ищем в списке HI-TECH PICC Toolsuite
Открываем Executables. И указываем для компиляторов и линковщика соответствующий установке путь. Жмем ОК.(Рис.1) 
 
 
 
Жмем Project -> Project Wizard. Выбираем PIC16F628A. Выбираем HI-TECH PICC Toolsuite. Выбираем имя нового проекта. 
Получаем пустой проект. 
Жмем File -> New. Сохраняем файл в папке проекта под именем main.c
Жмем в менеджере проекта на Source Files -> Add files и добавляем наш main.c 
 
Пишем код: 
 
void main(void) 

while(1);  

 
Жмем F10. 
Должны увидеть сообщение об удачном завершении.(Рис.2) 
 
 
 
В корне проекта появится файл с расширением .hex.  
Этим файлом можно прошить МК и посмотреть как он ничего не делает:-) 
В этой я лишь хотел помочь сделать выбор, и настроить ПО для дальнейшей работы.
 
 
 
 
 
 
 
 
 

Глава 3. Сборка устройства

3.1 Система виртуального моделирования PROTEUS   VSM.

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

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

     Одна  из таких программ PROTEUS VSM.  Но симуляция  радиоэлементов это не единственная способность программы. Proteus VSM , зозданная  фирмой LabcenterElectronics на основе ядра SPICE3F5 университета Berkeley, является так называемой средой сквозного проектирования. Это  означает создание устройства, начиная  с его графического изображения (принципиальной схемы) и заканчивая изготовления печатной платы устройства, с возможностью контроля на каждом этапе производства.

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

     В «сферу-влияний» PROTEUS VSM входят как простейшие аналоговые устройства так и сложные  системы созданные на популярных ныне микроконтроллерах. Доступна огромная библиотека моделей элементов, пополнять  которую может сам пользователь, естественно для этого нужно  досконально знать работу элемента и уметь программировать. Возможность  анимации схем позволяет программе  стать прекрасным учебным пособием на уроках в школе и ВУЗ. Достаточный  набор инструментов и функций, среди  которых вольтметр, амперметр, осциллограф, всевозможные генераторы, способность  отлаживать программное обеспечение  микроконтроллеров, делают PROTEUS VSM хорошим  помощником разработчику электронных  устройств.

Программа не прихотлива к системным требованиям. Как заявлено создателями работает в Windows 98/Me/2k/XP и выше. Запускается  даже на Pentium I 150 МГц. Но все-таки для  комфортной работы и более полного  использования возможностей программ рекомендуется процессор не ниже 500 МГц, объем оперативной памяти 64 МБ, звуковая карта совместимая с DirectX и разрешение монитора не ниже 1024 х 768 точек.

     Proteus VSM поумолчаниюустанавливаетсявпапку C:\Program Files\Labcenter Electronics\.Другие пути установки и варианты с системой стоящей на другом диске, например XP на диске D, мной не проверялись.

     Proteus VSM состоит из двух самостоятельных  программ ISIS и ARES. ARES это трассировщик  печатных плат с возможностью  создания своих библиотек корпусов  и здесь ее не будем.

     Основной  программой является ISIS, в ней предусмотрена  горячая связь с ARES для передачи проекта для разводки платы.

Окно  запуска программы (рис. 3) 

     Самое большое пространство отведено под  окно редактирования EDIT WINDOW . Именно в  нем происходят все основные процессы создания, редактирования и отладки схемы устройства.

     Слева вверху маленькое окно предварительного просмотра OverviewWindowс его помощью можно перемещаться по окну редактирования (щелкая левой кнопкой мыши по окну предварительного просмотра, мы перемещаем окно редактирования по схеме, если конечно схема не вмещается в окно).

OverviewWindow (рис. 4)

     Перемещать  окно редактирования по схеме можно  еще так - удерживая нажатой кнопку SHIFT двигать курсор мыши, не нажимая  ее кнопок, по окну редактирования.

     Приближать  и отдалять схему в окне можно  соответственно кнопками F6 и F7 или же колесом мыши, F5 центрирует схему  в окне а нажатие F8 подгоняет размер схемы под окно редактирование.

     Под окном предварительного просмотра  находится ObjectSelector список выбранных  в данный момент компонентов, символов и других элементов. В деленный в  списке объект отображается в окне предварительного просмотра.

     Все возможные функции и инструменты Proteus VSM доступны через меню расположенное  в самом верху основного окна программы, через пиктограммы находящиеся под меню и в левом углу основного окна и через горячие клавиши, которые могут переназначаться пользователем.

Нижняя  часть окна  Proteus VSM (рис. 5)

     В самом низу основного окна расположены: слева направо кнопки вращения и разворота объекта вокруг своей оси, панель управления интерактивной симуляцией (выглядит как магнитофонная и функции такие же:ПУСК-ПОШАГОВЫЙ РЕЖИМ-ПАУЗА-СТОП).

Панель  управления интерактивной  симуляцией (рис. 6)

 

 

3.2 Сборка схемы

За основу проекта  была взята схема термометра MAX6675.

Для сборки схемы в PROTEUS VSM нам понадобятся  следующие компоненты из библиотеки компонентов:

  • Компоненты дисплея: 7SEGSMB, CLINDSMB, CLKCOLSMB
  • Шестнадцатеричный инвертер: 74LS04
  • Октальный буфер: 74LS244
  • Микроконтролер PIC18F452
  • Кнопка: BUTTON
  • Компонент «ИЛИНЕ»: NOR_4
  • TC4468-драйвер логического ввода CMOS (кол-во 4)
  • С5-конденсатор
  • R-сопротивление
  • D-диод
  • С1-С4-ёмкосные конденсаторы
  • V1- источник постоянного тока

Соберем следующую схему

Схема устройства (рис. 7) 

Свойства микроконтролера

Свойства  компонентов PULLUP (рис. 8)

Свойства компонента TC4468:

Свойства  компонента D1 (рис. 9) 

Свойства компонентов  D1-D4, будут отличаться только обозначениями. 

Свойства  компонентов D4 (рис. 10)

Cвойство компонентов С4(Рис.11)

 

3.3 Программирование и настройка контроллера

Для программирования микроконтроллера PIC18F452 необходимо создать ASM файл со следующим кодом:

      include "P18F452.inc"

__HEAPSTART                      EQU 0x00000034 ; Start address of heap

__HEAPEND                        EQU 0x000005FF ; End address of heap

gbl_porta                        EQU 0x00000F80 ; bytes:1

gbl_portb                        EQU 0x00000F81 ; bytes:1

gbl_portc                        EQU 0x00000F82 ; bytes:1

gbl_portd                        EQU 0x00000F83 ; bytes:1

gbl_porte                        EQU 0x00000F84 ; bytes:1

gbl_lata                         EQU 0x00000F89 ; bytes:1

gbl_latb                         EQU 0x00000F8A ; bytes:1

gbl_latc                         EQU 0x00000F8B ; bytes:1

gbl_latd                         EQU 0x00000F8C ; bytes:1

gbl_late                         EQU 0x00000F8D ; bytes:1

gbl_trisa                        EQU 0x00000F92 ; bytes:1

gbl_trisb                        EQU 0x00000F93 ; bytes:1

gbl_trisc                        EQU 0x00000F94 ; bytes:1

gbl_trisd                        EQU 0x00000F95 ; bytes:1

gbl_trise                        EQU 0x00000F96 ; bytes:1

gbl_pie1                         EQU 0x00000F9D ; bytes:1

gbl_pir1                         EQU 0x00000F9E ; bytes:1

gbl_ipr1                         EQU 0x00000F9F ; bytes:1

gbl_pie2                         EQU 0x00000FA0 ; bytes:1

gbl_pir2                         EQU 0x00000FA1 ; bytes:1

gbl_ipr2                         EQU 0x00000FA2 ; bytes:1

gbl_eecon1                       EQU 0x00000FA6 ; bytes:1

gbl_eecon2                       EQU 0x00000FA7 ; bytes:1

gbl_eedata                       EQU 0x00000FA8 ; bytes:1

gbl_eeadr                        EQU 0x00000FA9 ; bytes:1

gbl_rcsta                        EQU 0x00000FAB ; bytes:1

gbl_txsta                        EQU 0x00000FAC ; bytes:1

gbl_txreg                        EQU 0x00000FAD ; bytes:1

gbl_rcreg                        EQU 0x00000FAE ; bytes:1

gbl_spbrg                        EQU 0x00000FAF ; bytes:1

gbl_t3con                        EQU 0x00000FB1 ; bytes:1

gbl_tmr3l                        EQU 0x00000FB2 ; bytes:1

gbl_tmr3h                        EQU 0x00000FB3 ; bytes:1

gbl_ccp2con                      EQU 0x00000FBA ; bytes:1

gbl_ccpr2l                       EQU 0x00000FBB ; bytes:1

gbl_ccpr2h                       EQU 0x00000FBC ; bytes:1

gbl_ccp1con                      EQU 0x00000FBD ; bytes:1

gbl_ccpr1l                       EQU 0x00000FBE ; bytes:1

Информация о работе Микроконтролер PIC18FXX2