Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

K(готово) / 3

.2.doc
Скачиваний:
5
Добавлен:
22.03.2015
Размер:
154.62 Кб
Скачать

3.2 Робоча програма пристрою на Ассемблер чи мові високого рівня

list p = 16f628

# Include <p16f628.inc>

__CONFIG _CP_OFF ​​& _WDT_ON & _BODEN_OFF & _PWRTE_ON & _XT_OSC & _MCLRE_ON & _LVP_OFF

# Define IDAT PORTB, 0; керування сигналом DI

# Define ICLC PORTB, 1; керування сигналом SK

# DEFINE VHOD PORTB, 2; вхід від розподільника

# DEFINE BANK0 BCF STATUS, RP0; включення банку 0

# DEFINE BANK1 BSF STATUS, RP0; включення банку 1

CARRY equ 0X00

CBLOCK 0X20

CNT1; молодший осередок лічильника довжини імпульсу

CNT2; старший осередок лічильника довжини імпульсу

CNTZ1; молодших і старших лічильника довжини імпульсу

CNTZ2; затримки перед вимірами довжини імпульсу

ACCaHI

ACCaHH

ACCbLO

ACCbHI

ACCbHH

ACCcLO;

ACCcHI

ACCdLO

ACCdHI

ACCdHH

temp

РК КНЕУ. КП. 5.091504. 022. ПЗ

Аркуш

24

Змін

Аркуш

документа

Підпис

Дата

sign

count

H_byte

L_byte

R0; зміни використовуються підпрограми

R1; перетворення в двійково десятковий вид

R2

RBYTE

HSD; зміни виконуються підпрограмою затримки

SD

LSD

Flags

ENDC

ORG 0X00; вектор скидання

GOTO START

ORG 0X04; вектор переривання

GOTO INTER

INTER RETURN; программа обробки переривання

; (поривання виконується підпрограмою)

; Початкові налаштування

START CLRF PORTB; обнулення порів

BANK1

MOVLW B'00000100 '; RB2 - вхід, MOVWF TRISB

BANK0

CLRF TMR0очищення І TMR0

BANK1

CLRWDT; ОЧИЩЕННЯ визначення І WDT

MOVLW B'11111110 '; коефіцієнт 1:64

MOVWF OPTION_REG; визначення під’єднання до WDT

РК КНЕУ. КП. 5.091504. 022. ПЗ

Аркуш

25

Змін

Аркуш

документа

Підпис

Дата

BANK0

CALL OCHIST; звернення до підпрограми очищення дисплея

NACH CLRWDT; очищення І WDT

CALL FRSCR; виведення на дисплей

CALL CMETER; вимірювання періоду імпульсів

; тіло програми перетворення і виведення на індекатор

MOVF CNT2, W

movwf ACCaHI

MOVF CNT1, W; завантадження: ACCa = CNT

movwf ACCaLO

; DIV = 4476276/CNT

movlw 0X44

movwf ACCbHH

movlw 0X4D

movwf ACCbHI

movlw 0X74; завантадження: ACCb = 4476276

movwf ACCbLO

CALL DIVIS

; BCD

 MOVF ACCbHI, W

movwf H_byte

MOVF ACCbLO, W

movwf L_byte

call B2_BCD

MOVF CNTZ1, W; CNTZ ---> ACCa

MOVWF ACCaLO

MOVF CNTZ2, W

MOVWF ACCaHI

MOVF CNT1, W; CNT ---> ACCb

MOVWF ACCbLO

РК КНЕУ. КП. 5.091504. 022. ПЗ

Аркуш

26

Змін

Аркуш

документа

Підпис

Дата

MOVF CNT2, W

MOVWF ACCbHI

CALL ADDIT; додавання результату ACCa

CLRF ACCbHI; 0006H ---> ACCb

MOVLW 0X06

MOVWF ACCbLO

CALL DBL_MPYS; множення - результату ACCb, ACCc (32біт)

MOVF ACCcLO, W; Р результат множення ---> ACCa

MOVWF ACCaLO

MOVF ACCcHI, W

MOVWF ACCaHI

MOVF ACCbLO, W

MOVWF ACCaHH

MOVLW 0X0C; ПРИ 0C4B03 У ACCB - оновлення індикатором кожні0,9 сек

MOVWF ACCbHH

MOVLW 0X4B

MOVWF ACCbHI

MOVLW 0X03

MOVWF ACCbLO

CALL D_SUB; РЕЗУЛЬТАТ У ACCb

MOVLW D'016 '

MOVWF ACCaLO

CLRF ACCaHI; попередній результат

CALL DIVIS; на 16, результату ACCb

MOVF ACCbLO, W; попередній результат ---> HSD, LSD

MOVWF LSD

MOVF ACCbHI, W

MOVWF HSD

РК КНЕУ. КП. 5.091504. 022. ПЗ

Аркуш

27

Змін

Аркуш

документа

Підпис

Дата

CALL DELAY

GOTO NACH

CMETER CLRF CNT1; обнулення лічильника

CLRF CNT2

CLRF CNTZ1

CLRF CNTZ2

BTFSS VHOD

GOTO SIG0; ВХ = 0

NOP

SIG1 INCFSZ CNTZ1, F; збільшення молодшого розряду лічильника на 1

GOTO LOOP7; перевірка занятості

INCF CNTZ2, F; збільшення старшого розряду

LOOP7 BTFSC VHOD; пошук фронту

GOTO SIG1; НІ

NOP

LOOP3 INCFSZ CNT1, F; збільшення молодшого розряду лічильника на 1

GOTO LOOP8; перевірка на здатність роботи

INCF CNT2, F; збільшення старшого розряду

LOOP8 BTFSS VHOD;

GOTO LOOP3

NOP

LOOP4 INCFSZ CNT1, F; збільшення молодшого розряду лічильника на 1

GOTO LOOP9; перевірка

INCF CNT2, F; збільшення молодшого розряду

LOOP9 BTFSC VHOD;

GOTO LOOP4

RETURN

РК КНЕУ. КП. 5.091504. 022. ПЗ

Аркуш

29

Змін

Аркуш

документа

Підпис

Дата

SIG0 INCFSZ CNTZ1, F; збільшення молодшого розряду лічильника на 1

GOTO LOOP1; перевірка на зайнятість

INCF CNTZ2, F; збільшення старшого розряду

LOOP1 BTFSS VHOD; пошук збільшення фронту

GOTO SIG0; НІ

NOP

LOOP2 INCFSZ CNT1, F; збільшення молодшого розряду лічильника на 1

GOTO LOOP5; перевірка на зайнятість

INCF CNT2, F; збільшення старшого розрялу

LOOP5 BTFSC VHOD; отримання сигналу

GOTO LOOP2

NOP

LOOP6 INCFSZ CNT1, F; збільшення молодшого розряду лічильника на 1

GOTO LOOP10; перевірка на зайнятість

INCF CNT2, F; збільшення старшого розрялу

LOOP10 BTFSS VHOD; отримання сигналу

GOTO LOOP6

RETURN

FRSCR MOVLW 0XAA

CALL INDC

MOVLW 0XAA

CALL INDC

MOVLW 0XAA

CALL INDC

MOVF R1, W

CALL INDC

SWAPF R1, W

РК КНЕУ. КП. 5.091504. 022. ПЗ

Аркуш

30

Змін

Аркуш

документа

Підпис

Дата

CALL INDC

MOVF R2, W

CALL INDC

SWAPF R2, W

CALL INDC

MOVLW 0XAA

CALL INDC

MOVLW 0XAA

CALL INDC

MOVLW 0XAA

CALL INDC

RETURN

INDC bsf ICLC; CLKв неактивний стан

andlw 0xF0

movwf temp; збереження

SWAPF temp, F

movlw 0Ah

xorwf temp, w; temp = 10 (тобто "ПУСТО")

btfsc STATUS, Z; W не дорівнює 10

goto mwyw; в W тепер 0, тобто BLANK (порожньо)

movf temp, w; відновили W

andlw 0fh; define Z (= 0?)

btfsc STATUS, Z

movlw .10; (1010) - це відображається як 0

mwyw movwf temp; якщо замінили 0 на 10 то змінимо і temp

rlf temp, f; необхідний біт (старший першим) в розряд 4 (--- В: ----)

call bitlcd; висновок біта з розряду 4 temp на DI (bit3)

rlf temp, f; зсув для наступного біта (2)

call bitlcd

rlf temp, f; next - bit1

РК КНЕУ. КП. 5.091504. 022. ПЗ

Аркуш

31

Змін

Аркуш

документа

Підпис

Дата

call bitlcd

rlf temp, f; last - bit0

call bitlcd

call mks4; пауза між символами не менше 5 мкс

goto mks4; ... і вихід

bitlcd bsf ICLC; неактивний стан ICLC

btfss temp, 4; вихід ІЗ 4 БІТА TEMP

goto lowbit

bsf IDAT

goto outclk

lowbit bcf IDAT

outclk call mks4; пауза не менше 2 мкс для встановлення даних

bcf ICLC;

call mks4; довжина стробу не менше 2 мкс (Кварц = 4MHz)

; Clk хоч в 0 хоч в 1 залишай, але без повторюваного

; Виведення на дисплей - він, через кілька секунд переходить в режим

; Внутрішнього таймера

goto mks4

; CLK (вбудований в LCD таймер як би не включено)

;

; Затримка трохи більше норми

; Виявилося важливо!

; При 1 "nop" - були збої індикатора

mks4 nop

nop

return

OCHIST MOVLW 0X00; підпрограма очищення дисплею

MOVWF R1; виводить:

MOVWF R2; ___ 0 0 0 0 ___

RETURN

РК КНЕУ. КП. 5.091504. 022. ПЗ

Аркуш

32

Змін

Аркуш

документа

Підпис

Дата

; підпрограма складання двох байтових чисел:

; додавання: ACCb (16 bits) + ACCa (16 bits) -> ACCa (16 bits)

; виконання:

; Program Memory: 07

; Clock Cycles: 08

ADDIT movf ACCbLO, w

addwf ACCaLO, F; add lsb

btfsc STATUS, CARRY; add in carry

incf ACCaHI, F

movf ACCbHI, w

addwf ACCaHI, F; add msb

retlw 0

РК КНЕУ. КП. 5.091504. 022. ПЗ

Аркуш

33

Змін

Аркуш

документа

Підпис

Дата

Анотація

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

Виконання даної курсової роботи змусило повторити та закріпити вивчений протягом навчального року матеріал з предмету «Мікропроцесорні системи», а також звернутися до додаткової літератури та дізнатися багато іншої інформації.

РК КНЕУ. КП. 5.091504. 022. ПЗ

Аркуш

35

Змін

Аркуш

документа

Підпис

Дата

Література

  1. Бороволоков Э. П. Фролов В. В. «Радиолюбительские схемы» // К.: Кондор – 1995 – 6 с.

  2. Якименко Ю.І. Терещенко Т.О. Сокол Є.І. «Мікропроцесорна техніка» // К.: Кондор – 2004 – 24 с.

  3. Методичні вказівки щодо виконання курсової роботи.

  4. Вершинин О.Е. «Применение микропроцессоров для автоматизации технологических процессов» // Л.: Энергоатомиздат, 1986.

Самофалов К.Г., Викторов О.В., Кузняк А.К. «Микропроцессоры» // К.: Техника, 1986.

РК КНЕУ. КП. 5.091504. 022. ПЗ

Аркуш

36

Змін

Аркуш

документа

Підпис

Дата

РК КНЕУ. КП. 5.091504. 010. ПЗ

Аркуш

4

Змін

Аркуш

документа

Підпис

Дата

РК КНЕУ. КП. 5.091504. 010. ПЗ

Аркуш

4

Змін

Аркуш

документа

Підпис

Дата

РК КНЕУ. КП. 5.091504. 010. ПЗ

Аркуш

4

Змін

Аркуш

документа

Підпис

Дата

РК КНЕУ. КП. 5.091504. 010. ПЗ

Аркуш

4

Змін

Аркуш

документа

Підпис

Дата

РК КНЕУ. КП. 5.091504. 010. ПЗ

Аркуш

4

Змін

Аркуш

документа

Підпис

Дата

Соседние файлы в папке K(готово)