Розробка програмного забезпечення

Автор работы: Пользователь скрыл имя, 06 Ноября 2013 в 09:48, курсовая работа

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

Мікропроцесор – це напівпровідниковий прилад, який складається з однієї або кількох програмно-керуючих великих інтегральних схем і виконує функції автоматичної обробки інформації. Сучасні мікропроцесорні вимірювальні прилади можуть бути подані як засоби вимірювання, що здійснюють двосторонню взаємодію: з оператором і системою збирання інформації, і односторонньою: з об’єктом вимірювання і навколишнім середовищем. Застосування у вимірювальних приладах мікропроцесорів, що мають можливість програмної обробки інформації, вводить у прилад деякий „інтелект” і дозволяє не тільки поліпшити параметри приладу, але й надати йому абсолютно нових якостей.

Содержание

Вступ
Аналіз теми та інженерна інтерпретація…………………………………………….

2. Розробка апаратних засобів:
2.1. Розробка структурної схеми пристрою............................................……………….
2.2. Вибір елементної бази........…………………………………………………………
2.3. Розробка принципової схеми пристрою.............................................……………..

3. Розробка програмного забезпечення:
3.1. Алгоритм роботи пристрою................................................................................……
3.2. Програма..........................................................................……………………………

Висновки.................................................................................................................................

Література...............................................................................................................................

Додатки

Вложенные файлы: 1 файл

Цифровий_термометр_курсовий_проект[1].doc

— 335.50 Кб (Скачать файл)

   При прийомі  даних від підлеглого пристрою  тимчасові інтервали для прийнятих  бітів формує майстер. Інтервал починається імпульсом низького рівня тривалістю 1 - 15 мкс. Потім майстер повинний звільнити шину, щоб дати можливість термометрові вивести біт даних. По переходу з одиниці в нуль датчик виводить на шину біт даних і запускає схему тимчасової затримки, що визначає, як довго біт даних буде присутній на шині. Цей час лежить у межах 15 - 60 мкс. Для того щоб дані на шині, що завжди має деяку ємність, гарантовано установилися, потрібен певний час (не більше ніж на 15 мкс від початку тимчасового інтервалу)

  Перевірка результату прийому даних на помилки Прийом байта починається з молодшого біта. Спочатку йде байт коду сімейства. За кодом сімейства йде 6 байт серійного номера, починаючи з молодшого. Потім йде байт контрольної суми (CRC). В обчисленні байта контрольної суми беруть участь перші 7 байт, або 56 переданих біт. Для обчислення використовується наступний поліном: CRC = X8+X5+X4+1   Після прийому даних майстер повинний обчислити контрольну суму і порівняти значення, що вийшло, з переданою CRC. Якщо ці значення збігаються, то прийом даних пройшов без помилок.

  • 3.2. Програма
  • Процес створення програми підрозділяється на наступні етапи:

    1. Власне написання програми  мовою Асемблера або на будь-якій іншій мові, для якого є програма – транслятор, що працює з даним процесором.

    2.  Трансляція програми в об’єктний код, - тобто  в ті коди, що будуть потім „зашиті” у пам’ять програм мікропроцесора і по яких він і буде працювати.

    3. Виправлення помилок, виявлених транслятором у процесі трансляції і повторна трансляція.

    4. Налагодження програми в налагоджувальній програмі, що відтворює роботу шуканого процесора. Знаходження помилок алгоритму. Виправлення помилок у тексті програми. Ретрансляція програми.

    5. У випадку, якщо транслятор створює файл об’єктного коду в HEX форматі, перетворення в BІN формат, необхідний для роботи програматора.

    6.  Прошивання коду в пам’ять програм за допомогою програматора.

    7. Пробний запуск програми. Виявлення й аналіз помилок. Повторення всього циклу розробки, починаючи з пункту 1 (якщо це необхідно).

         Отже, розглянемо детально порядок створення програми для мікроконтролера AT89C2051.

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

         Наступний етап – написання тексту програми. Перед тим як писати текст програми, потрібно вивчити архітектуру і систему команд мікропроцесора.

      Під архітектурою розуміють те, які внутрішні регістри має процесор. Оскільки мікроконтролер AT89C2051 має внутрішній ОЗП, сполучений з регістрами загального призначення, потрібно добре орієнтуватися в структурі цього ОЗП. Крім того, в поняття архітектури входить наявність портів введення/виведення.

         Система команд – це сукупність усіх команд мікропроцесора. Потрібно розуміти, що виконує і на що впливає кожна команда.

       Наступне, що потрібно знати перш, ніж починати написання програми – це те, яка програма-транслятор буде використовуватись. Від цього буде залежати текст майбутньої програми. Для кожного процесора існує звичайно безліч модифікацій програм трансляторів. Вони відрізняються не по набору команд (набір команд визначається процесором), а за формою написання програми. Програми для контролера AT89C2051 пишуться звичайно  мовою Асемблера. За допомогою цього транслятора і була написана програма, текст якої поданий в додатку 2.

         Після написання тексту програми і запису його на диск у виді файлу з розширенням asm (наприклад, myprog.asm), необхідно виконати трансляцію програми. Для цього необхідно помістити файл із текстом програми і файл програми транслятора (Asm51.exe) в одну директорію. Ця директорія повинна з’явитися в активній панелі навігатора (командера). Після цього у командному рядку набираємо наступну команду:    asm51 myprog.asm

    і натискаємо клавішу Enter. По закінченні роботи програми, вона повинна видати повідомлення про кількість знайдених помилок при трансляції. Крім того, у тій же директорії з’явиться кілька нових файлів. Файл myprog.lst – це лістинг трансляції. Він містить той же текст програми, але праворуч доданий стовпець, де показані результати трансляції. Це коди, якими програма замінили команди, написані  мовою Асемблер й адреси комірок пам’яті програм, куди необхідно ці коди помістити. Там же утримується опис усіх знайдених помилок. Позначки робляться прямо в тексті програм, і стрілкою відзначається місце, де знайдене помилка. Ще один файл, що з’явиться в результаті трансляції – це myprog.hex. Це і є вихідний код програми, призначений для прошивання в пам’ять програм. Однак перш ніж прошивати програму в процесор, потрібно випробувати її роботу в налагоджувальній програмі. Ця програма імітує роботу мікроконтролера і при цьому показує на екрані вміст усіх регістрів і комірок пам’яті процесора. Програму можна виконувати, як покроково, так і в режимі автоматичного виконання з постановкою крапок перехоплення.

         Після цього можна приступати до прошивання програми в пам’ять програм мікроконтролера. Але перед цим потрібно перевести об’єктний код з формату HEX у формат BІN. HEX формат – це спеціальний текстовий формат, у якому всі байти коду програми, а також адреси їх розміщення записуються у виді шестнадцятирічного коду. BІN формат – це просто набір кодів, що складають програму. Для перекладу з одного формату в іншій і назад служить пара програм: hex2bіn.exe і bіn2hex.exe. У результаті роботи програми з’явиться файл myprog.bіn.

         Слід відзначити, що в додатку 2 подано лише  основні аспекти програми, а саме: введення/виведення та розміщення  інформації в пам’яті, а також основна програма обробки інформації згідно алгоритмом функціонування пристрою.

         Поряд з  цим повна програма повинна  висвітлювати і такі аспекти  як:

    • робота бітової пам’яті адресації, внутрішньої пам’яті даних із усіма її особливостями;

     

    • додаткові підпрограми: робота кнопок UP, DOWN, UP+DOWN;

                                                                             SELECT, EXT/INT;

    • програмування термостата.

     

     

     

     

     

     

     

    ВИСНОВКИ

     

         В даному  курсовому проекті було розроблено  цифровий термометр. Було докладно розглянута сучасна елементна база, проаналізоване технічне завдання та побудовано структурну схему пристрою. У роботі було розглянуто принцип дії як всього пристрою, так і його окремих структурних блоків. Результатом розробки цифрового пристрою стала електрична принципова схема, яка була подана у додатках.

         Особливу  увагу було звернуто на розробку  програмного забезпечення. Було  подано докладний алгоритм роботи  пристрою не з точки зору  користувача чи розробника, а із врахуванням особливостей взаємодії виконавчих  блоків  із мікропроцесором, його архітектури та структури команд. Текст програми, виконаний на мові Асемблер, було також подано в додатках до проекту.

          В результаті  роботи було спроектовано простий  у виконанні, однофункціональний цифровий термометр. Було дотримано точності вимірювань, заданої технічним завданням, (0,5°С). При цьому діапазон вимірюваних температур  завдяки вдалому вибору  елементної  бази  було  розширено (до -55°C...+125°C).

     

     

     

     

     

    СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ

    1.«Мікропроцесори  та мікропроцесорні комплекти інтегральних мікросхем», довідник, під ред. В.А. Шахнова, том 2, М., «Радио и связь», 1988.

     

         2.   А.С. Басманов «МП и ОЭВМ», Москва, «Мир», 1988.

     

     

         3. В.О. Поджаренко, В.В. Кухарчук „Вимірювання і комп’ютерно- вимірювальна техніка”-К., 1991

     

    1. В.О. Поджаренко, В.В. Кухарчук „Метрологія та вимірювальна техніка. Для самостійної роботи студентів та виконання курсових робіт”-В., ВДТУ, 2000

     

     

    1. www.dalsemi.com

     

    1. www.chipnews.com.ua №6, 2000

     

    1. В.В. Сташин, А.В. Урусов «Программирование цифровых устройств на однокристальных микроконтроллерах», Москва, «Энергоатомиздат», 1990.

     

    1. «Микропроцессоры», Учебное пособие в 5-ти книгах, под редакцией В.А. Шахнова, Москва «Высшая школа»,  1988.

     

    1. www.microprocessor.by.ru  „Програмування мікроконтроллера”

     

    1. www.atmel.ru

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    ДОДАТКИ

     

     

     

     

     

     

     

     

    Додаток 2

    #DEFINE Z_SUP  

    #DEFINE LO(XXX) XXX & 0FFH

    #DEFINE HI(XXX) (XXX >> 8) & 0FFH

     

    CLK_KHZ = 10000  ;OSC частота, KГц

    RTC_MS = 20             ;системний годинник, мс

    RTCV = CLK_KHZ*RTC_MS

    RTCV = RTCV/12

    RTCV = - RTCV

    RTCV = RTCV & 0FFFFH

     

    ;  ------ Константи ------

     

    STACK .EQU 056H  ;розміщення стеку

    V100MS .EQU 5  ;значення програмного таймера RTPCS 100mS/20mS=5

    I2C_ADDR .EQU 0A0H  ;I2C адреси для PCF8582 (A0,A1,A2=0)

    SMPTMV .EQU 5  ;x20mS значення таймера термометрів

    INKTMV .EQU 35  ;x20mS початкове ключове значення таймера повторення

    KEYTMV .EQU 5  ;x20mS ключове значення таймера повторення

    BRKTMV .EQU 2  ;x20mS ключове значення яскравості таймера повторення

    TMOV20 .EQU 25  ;x20mS вихідне часове значення для DS1820

    TMOV21 .EQU 100  ;x20mS вихідне часове значення для DS1821

    INDTMV .EQU 50  ;x20mS значення затримки індикації

    OFFTMV .EQU 50  ;x100mS вихідне значення затримки

    PWM_MAX .EQU 230  ;MAX PWM значення

    L_MAX .EQU 09AH  ;MAX вхідна та вихідна межа

    L_MIN .EQU 001H            ;MIN вхідна та вихідна межа

     

    ;  ------ Порти ------

     

    SCAN0 .EQU P3.0             ;лінія сканування дисплею 0

    SCAN1 .EQU P3.1  ;лінія сканування дисплею 1

    SCAN2 .EQU P3.5  ;лінія сканування дисплею 2

    SDA .EQU SCAN0                        ;I2C SDA лінія

    SCL .EQU SCAN1                 ;I2C SCL лінія

    OWP1 .EQU P3.2             ;1-порт 1 (зовнішній термометр)

    OWP2 .EQU P3.7             ;1-порт 2 (внутрішній термометр)

    RETL .EQU P3.4            ;лінія повернення клавіатури

    CNTRL .EQU P3.3           ;лінія керування термостатом

     

    ;--------Змінні, бітова адресація,  зовнішні дані---------------

    PWVH .EQU R20             ;значення таймера PWM (в виключеному стані) high

    PWVL .EQU R21             ;значення таймера PWM (в виключеному стані) low

    PHVH .EQU R22             ;значення таймера PWM (у включеному стані) high

    PHVL .EQU R23             ;значення таймера PWM (у включеному стані) low

     

    RTPCS .EQU 021H  ;програмний лічильник реального часу (100мс)

     

    EXT_TH EQU 03CH           ;дані від зовнішнього термометра (00H-відсутній, 20H-DS1820, 21H-DS1821)

    INT_TH EQU 03DH         ;дані від внутрішнього термометра (00H-відсутній, 20H-DS1820, 21H-DS1821)

    SAVTM .EQU 046H  ;збереження таймера затримки NVM

    NOTSV .EQU 023H  ;незбереження в NVM

    OFFTM .EQU 049H  ;відключення таймера

    ACHTM .EQU 048H  ;автозмінювання таймера

    ACHR             .EQU 028H  ;автозмінювання EXT/INT

     

     

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

     

    INIT: MOV SP,#STACK              ;ініціалізація стеку

    CLR A

    MOV KEYTM,A              ;обнулення ключового таймера повторення

    MOV EXT_TH,A              ;обнулення зовнішнього термометра

    MOV INT_TH,A              ; обнулення внутрішнього термометра

    MOV OFFTM,#OFFTMV  ;завершення завантаження таймера

    ACALL GETPWM              ;одержання значень PWM таймера

    MOV ACHTM,ACHR

    MOV TMOD,#11H     ;ініціалізація таймера 0 та таймера 1

    MOV TL0,#LO(RTCV)   ;завантаження таймера 0

    MOV TH0,#HI(RTCV)

    MOV TL1,PHVL                ;завантаження таймера 1

    MOV TH1,PHVH

    MOV RTPCS,#V100MS   ;завантаження значення 100мс

     

    SETB PT1                       ;ініціалізація пріоритетів таймерів (0–low, 1 - high)

    MOV IE,#8AH             ;ініціалізація дозволу таймерів (ET0,ET1,EA=1)

     

    ACALL AD_EXT              ;автовизначення та запуск зовнішнього термометра

    ACALL AD_INT              ;автовизначення та запуск внутрішнього термометра

     

    MOV SMPTM,#SMPTMV   ;завантаження таймера зразка термометрів

     

    MAIN: MOV A,INCODE             ;місцева перевірка клавіатури

    CPL A

    JNZ MA10              ;стрибок, якщо є натискання

    CLR FEN

    CLR PRESS

    SJMP MA20              ;стрибок, якщо немає натискання

     

    MA10: MOV B,A               ;зберігання коду клавіатури

    ACALL DEL10              ;затримка доносу

    MOV A,INCODE              ;зчитування коду клавіатури

    CPL A

    CJNE A,B,MA20             ;відсутність натискання при відмінності кодів

    MOV R7,A

    MOV OFFTM,#OFFTMV  ;завершення завантаження таймера

     

    JB PRESS,SAME

     

     

     

    ;Аналіз контрольних функцій

     

    DIF: CJNE R7,#KEY_SL,$+5H ;KEY SELECT

    ACALL SEL

    CJNE R7,#KEY_EX,$+5H ;KEY EXT/INT

    ACALL EXT

     

    SAME:CJNE R7,#KEY_UP,$+5H ;KEY UP

    ACALL UP

    CJNE R7,#KEY_DN,$+5H ;KEY DOWN

    ACALL DN

    CJNE R7,#KEY_UD,$+5H ;KEY UP+DOWN

    ACALL UPDN

     

    SETB PRESS             ;встановлення натискання

     

    ;Завершення аналізу контрольних функцій

     

    MA20: MOV A,SMPTM              ;перевірка зразкового таймеру

    JNZ MA24               ;стрибок, якщо немає таймерного переповнення

    Информация о работе Розробка програмного забезпечення