Технология разработки и отладки программ для микроконтроллеров PIC16F84. Принципиальная схема микроконтроллерного устройства, страница 2

BCF PORTB,4

GOTO $

END

3. Для заданного МКУ напишите программу, которая производит вычитание константы 25h из содержимого регистра TEMP. Если в результате вычитания получится отрицательное число, то включается светодиод VD7.

Текст данной программы:

LIST P=16F84

INCLUDE <P16F84.INC>

INITA      EQU B'11111111'

INITB      EQU B'00000000'

TEMP       EQU 0x0C

ORG 0x000

GOTO BEGIN

ORG 0x050

BEGIN     

MOVLW 0xFF

MOVWF PORTA

MOVWF PORTB

BSF STATUS, RP0

MOVLW INITA

MOVWF TRISA

MOVLW INITB

MOVWF TRISB

BCF STATUS,RP0

MOVLW 0X08

MOVWF TEMP

MOVLW 0X25

SUBWF TEMP,W

LOOP      

BTFSC STATUS,C

GOTO LOOP

BCF PORTB,7

GOTO $

END

4. Для заданного МКУ напишите программу, которая проверяет равенство содержимого ячеек памяти данных с адресами 25h и 35h. В случае равенства загорается светодиод VD7. Напишите два варианта программы сравнения: с использованием логической команды и с помощью вычитания.

Текст данной программы:

а) с использованием логической команды

LIST P=16F84

INCLUDE <P16F84.INC>

INITA      EQU B'11111111'

INITB      EQU B'00000000'

TEMP       EQU 0x0C

ORG 0x000

GOTO BEGIN

ORG 0x050

BEGIN     

MOVLW 0xFF

MOVWF PORTA

MOVWF PORTB

BSF STATUS, RP0

MOVLW INITA

MOVWF TRISA

MOVLW INITB

MOVWF TRISB

BCF STATUS,RP0

MOVF 25H,W

MOVWF TEMP

MOVF 35H,W

XORWF TEMP,W

LOOP      

BTFSS STATUS,Z

GOTO LOOP

BCF PORTB,7

GOTO $

END

б) с помощью вычитания

LIST P=16F84

INCLUDE <P16F84.INC>

INITA      EQU B'11111111'

INITB      EQU B'00000000'

TEMP       EQU 0x0C

ORG 0x000

GOTO BEGIN

ORG 0x050

BEGIN     

MOVLW 0xFF

MOVWF PORTA

MOVWF PORTB

BSF STATUS, RP0

MOVLW INITA

MOVWF TRISA

MOVLW INITB

MOVWF TRISB

BCF STATUS,RP0

MOVF 25H,W

MOVWF TEMP

MOVF 35H,W

SUBWF TEMP,W

LOOP      

BTFSS STATUS,Z

GOTO LOOP

BCF PORTB,7

GOTO $

END

5. Для заданного МКУ напишите программу, которая преобразует содержимое ячейки памяти данных с адресом 40h (двоичное целое число без знака) в дополнительный код.

Текст данной программы:

LIST P=16F84

INCLUDE <P16F84.INC>

INITA      EQU B'11111111'

INITB      EQU B'00000000'

TEMP       EQU 0x0C

ORG 0x000

GOTO BEGIN

ORG 0x050

BEGIN      

MOVLW 0xFF

MOVWF PORTA

MOVWF PORTB

BSF STATUS, RP0

MOVLW INITA

MOVWF TRISA

MOVLW INITB

MOVWF TRISB

BCF STATUS,RP0

COMF 40H,W

MOVWF TEMP

INCF TEMP,W

MOVWF PORTB

GOTO $

END

6. Для заданного МКУ напишите программу, которая инвертирует биты 7, 6, 5 порта B.

Текст данной программы:

LIST P=16F84

INCLUDE <P16F84.INC>

INITA      EQU B'11111111'

INITB      EQU B'00000000'

TEMP       EQU 0x0C

ORG 0x000

GOTO BEGIN

ORG 0x050

BEGIN     

MOVLW 0xFF

MOVWF PORTA

MOVWF PORTB

BSF STATUS, RP0

MOVLW INITA

MOVWF TRISA

MOVLW INITB

MOVWF TRISB

BCF STATUS,RP0

MOVLW 0Xb8

MOVWF PORTB

MOVLW 0XE0

XORWF PORTB,W

MOVWF PORTB

GOTO $

END

7. Для заданного МКУ выдать на линию 0 порта B значение 4-го бита регистра TEMP.

Текст данной программы:

LIST P=16F84

INCLUDE <P16F84.INC>

INITA      EQU B'11111111'

INITB      EQU B'00000000'

TEMP       EQU 0x0C

ORG 0x000

GOTO BEGIN

ORG 0x050

BEGIN     

MOVLW 0xFF

MOVWF PORTA

MOVWF PORTB

BSF STATUS, RP0

MOVLW INITA

MOVWF TRISA

MOVLW INITB

MOVWF TRISB

BCF STATUS,RP0

MOVLW 0x92

MOVWF TEMP

MOVWF PORTB

MOVLW 0X04

MOVWF TEMP

START

RRF PORTB,F

DECFSZ TEMP,F

GOTO START

GOTO $

END 

8. Напишите программу настройки портов МК PIC16F84 на  следующую конфигурацию. Порт A : линии RA0 и RA1 на вывод, остальные – на ввод. Порт B: линия RB0 на ввод, остальные – на вывод.

Текст данной программы:

LIST P=16F84

INCLUDE <P16F84.INC>

INITA      EQU B'11111100'

INITB      EQU B'00000001'

TEMP       EQU 0x0C

ORG 0x000

GOTO BEGIN

ORG 0x050

BEGIN     

MOVLW 0xFF

MOVWF PORTA

MOVWF PORTB

BSF STATUS, RP0

MOVLW INITA

MOVWF TRISA

MOVLW INITB

MOVWF TRISB

BCF STATUS,RP0

GOTO $

END

Вывод: В ходе работы изучили методику разработки и отладки программ для микроконтроллера PIC16F84  с помощью интегрированной среды программирования MPLAB. Изучили и исследовали команды МК с помощью MPLAB.