рефераты рефераты
Главная страница > Дипломная работа: Разработка PIC-контроллера устройства измерения временных величин сигналов  
Дипломная работа: Разработка PIC-контроллера устройства измерения временных величин сигналов
Главная страница
Банковское дело
Безопасность жизнедеятельности
Биология
Биржевое дело
Ботаника и сельское хоз-во
Бухгалтерский учет и аудит
География экономическая география
Геодезия
Геология
Госслужба
Гражданский процесс
Гражданское право
Иностранные языки лингвистика
Искусство
Историческая личность
История
История государства и права
История отечественного государства и права
История политичиских учений
История техники
История экономических учений
Биографии
Биология и химия
Издательское дело и полиграфия
Исторические личности
Краткое содержание произведений
Новейшая история политология
Остальные рефераты
Промышленность производство
психология педагогика
Коммуникации связь цифровые приборы и радиоэлектроника
Краеведение и этнография
Кулинария и продукты питания
Культура и искусство
Литература
Маркетинг реклама и торговля
Математика
Медицина
Реклама
Физика
Финансы
Химия
Экономическая теория
Юриспруденция
Юридическая наука
Компьютерные науки
Финансовые науки
Управленческие науки
Информатика программирование
Экономика
Архитектура
Банковское дело
Биржевое дело
Бухгалтерский учет и аудит
Валютные отношения
География
Кредитование
Инвестиции
Информатика
Кибернетика
Косметология
Наука и техника
Маркетинг
Культура и искусство
Менеджмент
Металлургия
Налогообложение
Предпринимательство
Радиоэлектроника
Страхование
Строительство
Схемотехника
Таможенная система
Сочинения по литературе и русскому языку
Теория организация
Теплотехника
Туризм
Управление
Форма поиска
Авторизация




 
Статистика
рефераты
Последние новости

Дипломная работа: Разработка PIC-контроллера устройства измерения временных величин сигналов

; Вычисление порядка значения индикации.

movlw 05                                         ; Установить счетчик разрядов после запятой.

movwf E movlw CM+1                   ; Загрузить адрес строки десятичных разрядов

для косвенной адресации.

movwf fsr

calc_ext                                            ; Поиск старшего значащего разряда.

decf fsr, f                                         ; Коррекция счетчика разрядов.

movf indf, W

btfss status,2                 ; Значение = О?

goto end_ext                 ; Нет, закончить поиск.

decfsz E, f            ; Все разряды проверены?

goto calc_ext                 ; Нет, продолжить поиск.

end_ext

movlw 2

subwf E,W

btfss status,0                 ; Значение порядка < 2? goto err                      ; Да, ошибка - обнулить значение индикации.

btfsc status,2                 ; Значение порядка = 2? goto no_app              ; Да, обход округления.

; Округление выходного значения.

addlw U                                           ; Получить адрес отбрасываемого разряда для косвенной адресации.

movwf fsr            ;

decf fsr, f movlw 05                                  ; Сравнить значение разряда с 5.

subwf indf, W

btfss status,0                 ; Значение > 5?

goto no_app                 ; Нет, обход округления.

incf fsr, f

incf indf, f            ; Да, инкремент следующего разряда.

no_app

call report                     ; Коррекция значений десятичных регистров после округления. movf E,W                             ; Формирование значения для индикации.

addwf Dig_exp, f          ; Сохранить значение Е.

addlw U                        ; Получить адрес строки десятичных разрядов

для косвенной адресации.

movwf fsr

movf indf, W

movwf Dig_x                                   ; Переслать значение X.

decf fsr, f

movf indf, W

movwf Dig_y                                   ; Переслать значение Y.

decf fsr, f

movf indf, W

movwf Dig_z                                   ; Переслать значение Z.

return

Ошибка - обнулить значение индикации.

err              movlw 0

movwf Dig_x

clrf N

call calc                                            ; Вычисление значения для индикации.

movlw 0A                                        ; Загрузить счетчик циклов индикации.

movwf cnt_r

goto loop1           ; Переход на начало основного цикла.

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

саl05          clrf U                   ; Очистка десятичных регистров.

clrf D clrf H

clrf M

clrf DM

clrf CM

movlw .17                                        ; Установить счетчик разрядов.

movwfN

btfsc H_byte,7              ; Старший разряд значения таймера =1?

call sessn                                          ; Да, загрузить в десятичные регистры

                                                        216=65536.

bcf status, 0

rlf L_byte, f                   ; Коррекция значения таймера до 1с.

rlf H_byte, f

clrf Dig_exp                  ; Коррекция порядка результата для

низкочастотных сигналов.

clrf N

call calc                         ; Вычисление значения для индикации.

goto loop5           ; Переход на начало основного цикла.

Delay                                               ; Подпрограмма задержки времени для

                                                        сканирования индикации.

movlw .10

movwf cnt 1

nор

beta            movlw .248

movwf cnt2

clrwdt                            ; Сброс сторожевого таймера.

Alfa            nор

nор

decfsz cnt2, f

goto alfa

nор

nор

decfsz cntl, f

goto beta

nор

return

refresh                                              ; Процедура сканирования индикации.

movf Dig_x, W             ; Значение единиц для индикации.

call segment                  ; Преобразование DEC в семисегментный код.

movwf portb                 ; Вывод цифры на индикатор.

bcf porta, 0          ; Активизировать индикатор.

call Delay                                         ; Задержка времени для сканирования.

bsf porta, 0          ; Отключить индикатор.

movf Dig_y, W             ; Значение десятых для индикации.

movwf Dig_y

movwf Dig_z

movwf Dig_exp

return

report                                     ; Коррекция значений десятичных регистров.

movlw 05                               ; Установить счетчик разрядов,

movwf cnt_r movlw U                     ; Загрузить адрес строки десятичных разрядов для косвенной адресации.

movwf fsr

loop_rep

clrf i                                        ; Очистить поправку следующего разряда.

movf indf, W

movwf N                                ; Загрузить значение во временный регистр.

calc_rep

movf N, W

movwf indf                             ; Сохранить значение.

incf i, f                                    ; Инкремент поправки следующего разряда.

movlw 0А

subwf N, f                              ; Вычесть 10.

btfsc status, 0                ; Результат отрицательный?

goto calc_rep                ; Нет, продолжить коррекцию.

decf i, f                                   ; Скорректировать поправку следующего разряда.

incf fsr, f

movf i, W

addwf indf, f                 ; Прибавить поправку к следующему

разряду.

decfsz cnt_r, f                ; Все разряды скорректированы?

goto loop_rep               ; Нет, продолжить коррекцию.

return

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

movf N, W                             ; Загрузить номер разряда.

call tab_dec                            ; Получить смещения в таблице для разряда.

movwf E

call tab_dec                            ; Получить значение десятков тысяч.

addwf DM, f

incf E, f

movf E, W

call tab_dec                            ; Получить значение единиц тысяч.

addwf M, f

incf E, f

movf E, W

call tab_dec                            ; Получить значение сотен.

addwf H, f

incf E,f

movf E, W

call tab_dec                            ; Получить значение десятков.

addwf D, f

incf E, f

movf E, W

call tab_dec                            ; Получить значение единиц.

addwf U, f

return

END


1.5 Выбор и обоснование элементов

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

1.5.1 Отличительные особенности микроконтроллера

PIC16F84 относится к семейству КМОП микроконтроллеров. Расположение выводов данного микроконтроллера представлено на рисунке 1.4 , а описание выводов — в таблице 1.6

Рисунок 1.4 — Расположение выводов PIC16F84

Таблица 1.6

Название вывода Номер вывода

Описание

RA0

RA1

RA2

RA3

RA4/RTCC

17

18

1

2

3

PORTA — двунаправленный порт ввода–вывода

Может быть использован как вход внешнего тактового сигнала

RB1

RB2

RB3

RB4

RB5

RB6

RB7

RB0/INT

7

8

9

10

11

12

13

6

PORTB — двунаправленный порт ввода–вывода

Может быть использован как вход внешнего прерывания

OSC1/CLKIN 16 Используется для подключения кварца, RC или вход внешней тактовой частоты
OSC2/CLKOUT 15 Генератор, выход тактовой частоты в режиме RC генератора, в остальных случаях используется для подключения кварца
MCLR 4 Вход сброса устройства с активным низким уровнем

Vdd

14 Положительный вывод питания

Vss

5 Общий провод (земля)

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18

рефераты
Новости