Ћекции.ќрг


ѕоиск:




 атегории:

јстрономи€
Ѕиологи€
√еографи€
ƒругие €зыки
»нтернет
»нформатика
»стори€
 ультура
Ћитература
Ћогика
ћатематика
ћедицина
ћеханика
ќхрана труда
ѕедагогика
ѕолитика
ѕраво
ѕсихологи€
–елиги€
–иторика
—оциологи€
—порт
—троительство
“ехнологи€
“ранспорт
‘изика
‘илософи€
‘инансы
’ими€
Ёкологи€
Ёкономика
Ёлектроника

 

 

 

 


ѕор€док виконанн€ роботи. 1. ќзнайомитис€ з ≥нтерфейсом ≥ особливост€ми орган≥зац≥њ ≥нтегрованого середовища розробленн€ MPLAB IDE




1. ќзнайомитис€ з ≥нтерфейсом ≥ особливост€ми орган≥зац≥њ ≥нтегрованого середовища розробленн€ MPLAB IDE.

2. ќзнайомитис€ з принциповою схемою системи керуванн€ ≈ѕ лабораторноњ установки дл€ досл≥дженн€ кранового електропривода пост≥йного струму.

3. ¬икористовуючи персональну ≈ќћ з програмним пакетом MPLAB IDE, скласти програму дл€ м≥кроконтролера системи керуванн€ крановим електроприводом ≥ виконати симул€ц≥ю та комп≥л€ц≥ю.

4. ќформити зв≥т.

“екст програми дл€ роботи системи керуванн€, побудованоњ на баз≥ м≥кроконтролера P≤—16F877:

#include <P16F877.inc>

;опис констант ≥ зм≥нних користувача

MAX_COUNT_STEP equ D'14';максимальне значенн€ л≥чильника

MIN_COUNT_STEP equ D'6';м≥н≥мальне значенн€ л≥чильника

DREB equ D'10';пауза дл€ усуненн€

;Ђбр€зкотуї контакт≥в кнопок

PAUSE equ D'150';пауза

COUNT_STEP_UP_KEY equ D'20';л≥чильник натискань кнопки

;Ђ”передї

COUNT_STEP_DOWN_KEY equ H'21';л≥чильник натискань кнопки

;ЂЌазадї

COUNT_STEP equ H'22';опис зм≥нних

BIT_NER equ H'23';опис зм≥нних

JZ macro LBL;завданн€ макрокоманди дл€

;переходу за м≥ткою LBL у раз≥

;отриманн€ нульового результату

;операц≥њ

btfsc STATUS,Z;перев≥рка прапорц€ нульового

;результату

goto LBL;

endm;директива завершенн€ макросу

ORG 0;основна точка входу в програму

goto START;перех≥д до п≥дпрограми START

 

OUTPUT addwf PCL,F;п≥дпрограма формуванн€ адреси

;елемента таблиц≥ сл≥в керуванн€

retlw B'00000000';елементи таблиц≥

retlw B'00000000';сл≥в керуванн€

retlw B'00000000'

retlw B'00000000'

retlw B'00000000'

retlw B'00000000'

retlw B'00011111'

retlw B'00001111'

retlw B'00000111'

retlw B'00000011'

retlw B'00000000'

retlw B'00100001'

retlw B'00100101'

retlw B'00101101'

retlw B'00111101'

retlw B'00000000'

retlw B'00000000'

retlw B'00000000'

 

START bsf STATUS,RP0;виб≥р банку 1

clrf TRISB;очищенн€ рег≥стра TRISB

bsf OPTION_REG,NOT_RBPU; в≥дключенн€ п≥дт€гувальних резистор≥в

;на л≥н≥€х порту PORTB

clrf PORTB;очищенн€ вм≥сту вх≥дноњ засувки PORTB

bcf STATUS,RP0;поверненн€ до банку 0

clrf PORTA;запис очищенн€ порту ј

movlw D'10';запис через акумул€тор к≥лькост≥

movwf COUNT_STEP;значень дл€ л≥чильника натискань кнопки

START0 btfsc PORTA,1;перев≥рка стану л≥н≥њ 1 PORTј (кнопка

; Ђ”передї)

goto ASDF;перех≥д за м≥ткою ASDF

call STEP_UP_KEY;виклик п≥дпрограми обробленн€ натисканн€

;кнопки Ђ”передї

goto NEXT;перех≥д за м≥ткою NEXT

ASDF btfsc PORTA,2;перев≥рка л≥н≥њ 2 PORTј (кнопка

;ЂЌазадї)

goto IN_ZERO_COUNT;перех≥д за м≥ткою IN_ZERO_COUNT

call STEP_DOWN_KEY;виклик п≥дпрограми обробленн€ натисканн€

;кнопки ЂЌазадї

goto NEXT

IN_ZERO_COUNT clrf COUNT_STEP_UP_KEY

clrf COUNT_STEP_DOWN_KEY

NEXT call SET_STEP

nop;порожн€ операц≥€

nop

nop

nop

nop

goto START0;перех≥д за м≥ткою START0 (початкова

;≥н≥ц≥ал≥зац≥€ порт≥в)

STEP_UP_KEY incf COUNT_STEP_UP_KEY,f;зб≥льшенн€ значенн€

;л≥чильника в рег≥стр≥ COUNT_STEP_UP_KEY на одиницю (кнопка

;Ђ”передї натиснута один раз)

movfw COUNT_STEP_UP_KEY;читанн€ значенн€ л≥чильника в акумул€тор

sublw DREB,0;захист в≥д Ђбр€зкотуї контакт≥в кнопки

JZ INC_STEP;€кщо результат нульовий, перех≥д за м≥ткою

;INC_STEP дл€ переходу на пусковий ступ≥нь

movfw COUNT_STEP_UP_KEY;≥накше Ц записати до

sublw PAUSE;

JZ IN_ZERO_STUPKEY

goto END_STU

IN_ZERO_STUPKEY clrf COUNT_STEP_UP_KEY

goto END_STU

INC_STEP movfw COUNT_STEP

sublw MAX_COUNT_STEP

JZ END_STU

incf COUNT_STEP,f

END_STU return

 

STEP_DOWN_KEY incf COUNT_STEP_DOWN_KEY,f;обробленн€

;натисненн€ кнопки ЂЌазадї

movfw COUNT_STEP_DOWN_KEY;зчитати значенн€ л≥чильника в W

sublw DREB;захист в≥д Ђбр€зкотуї контакт≥в кнопки

JZ DEC_STEP;

movfw COUNT_STEP_DOWN_KEY

sublw PAUSE

JZ IN_ZERO_STDOKEY

goto END_STD

IN_ZERO_STDOKEY clrf COUNT_STEP_DOWN_KEY

goto END_STD

DEC_STEP movfw COUNT_STEP

sublw MIN_COUNT_STEP

JZ END_STD

decf COUNT_STEP,f

END_STD return

 

SET_STEP movfw COUNT_STEP

sublw D'8'

JZ BIT_STOP

мovfw COUNT_STEP

sublw D'12'

JZ BIT_STOP

movfw COUNT_STEP

sublw D'7'

JZ BIT_STOP_NO

movfw COUNT_STEP

sublw D'13'

JZ BIT_STOP_NO

sublw D'10'

JZ BIT_STOP_NO

 

BIT_STOP_NO bcf BIT_NER,0

goto END_STEP

 

BIT_STOP bsf BIT_NER,0

 

END_STEP movfw COUNT_STEP

call OUTPUT;виклик п≥дпрограми OUTPUT

;(пересиланн€ слова керуванн€ до порту

movwf PORTB;PORTB

btfsc BIT_NER,0;перев≥рка б≥та 0 порту PORTB, €кщо не

bsf PORTB,7;нуль, то встановленн€ л≥н≥њ 7 в Ђ1ї

return;поверненн€ з п≥дпрограми

END;к≥нець програми





ѕоделитьс€ с друзь€ми:


ƒата добавлени€: 2015-05-06; ћы поможем в написании ваших работ!; просмотров: 357 | Ќарушение авторских прав


ѕоиск на сайте:

Ћучшие изречени€:

Ќачинайте делать все, что вы можете сделать Ц и даже то, о чем можете хот€ бы мечтать. ¬ смелости гений, сила и маги€. © »оганн ¬ольфганг √ете
==> читать все изречени€...

444 - | 428 -


© 2015-2023 lektsii.org -  онтакты - ѕоследнее добавление

√ен: 0.015 с.