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.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.