Читайте также: |
|
; Начало основной программы
ORG 00H; Следующая команда будет
; расположена по адресу 00H
GOTO BEGIN
INDIK; Вывод на индикатор (Процедура
; динамической индикации)
BSF STATUS, fRP0; Устанавливаем активной
; вторую страницу памяти
MOVLW B ’00000000’; Устанавливаем направления ра- MOVLW TRISA; боты всех выводов порта А
; на вывод информации
MOVLW B ’00000000’; Устанавливаем направление ра-
MOVLW TRISB; боты всех выводов порта В
; на вывод информации
BCF STATUS, RP0; Делаем активной снова первую; страницу памяти
NEXT CLRW; Очищаем регистр W
MOVLW PORTA; Записываем адрес сегмента В
; порт А
MOVF OUT0, 0; Записываем данные для сегмен- MOVWF PORTB; та в порт В
CALL DELAY; Вызываем процедуру
; задержки
INCF PORTA, 1; Остальная часть программы выпол
; няет аналогичные действия
SWAPF OUT0, 0
MOVWF PORTB
CALL DELAY
INCF PORTA, 1
MOVF OUT1, 0
MOVWF PORTB
CALL DELAY
INCF PORTA, 1
SWAPF OUT1, 0
MOVWF PORTB
CALL DELAY
INCF PORTA, 1
MOVF OUT2, 0
MOVWF PORTB
CALL DELAY
INCF PORTA, 1
SWAPF OUT2, 0
MOVWF PORTB
CALL DELAY
INCF PORTA, 1
MOVF OUT3, 0
MOVWF PORTB
CALL DELAY
INCF PORTA, 1
SWAPF OUT3, 0
MOVWF PORTB
CALL DELAY
GOTO NEXT
DELAY; Процедура задержки на 200000 тактов (DELAY-H)
MOVLW 0FFH
MOVWF DELAY0
DELAY_0
MOVLW 0FFH
MOVWF DELAY1
DELAY_1 DECFSZ DELAY1, 1
GOTO DELAY_1
DECFSZ DELAY0, 1
GOTO DELAY_0
RETURN
BEGIN
MOVF DAT0, 0; Запись, сформированного в
MOVWF INP1; регистрах DAT0, DAT1 и DAT2
MOVF DAT1, 0; двоичного кода числа в реги-
MOVWF INP2; стры хранения INP1,INP2,INP3
MOVF DAT2, 0
MOVWF INP3
CALL BIN-DEC; Данная процедура переводит
; двоичный код, хранимый в регистрах INP1,INP2,INP3 (причем старший
; байт в регистре INP1, а младший в регистре INP3), в двоично-десятичный
; код потетрадно в регистры OUT0, OUT1, OUT2, OUT3.
; При этом старшая тетрада регистра OUT0 содержит двоичный код
; старшего разряда десятичного числа, а младшая тетрада регистра OUT3
; содержит двоичный код младшего разряда десятичного числа.
GOTO INDIK; Процедура индикации
END; Конец программы
Этот фрагмент можно оформить как стандартную подпрограмму для динамической индикации INDIK-D1. Поэтому, а также с целью упрощения примера, подпрограмма преобразования двоичного кода индицируемого числа в двоично-десятичный код BIN-DEC не включена в текст приведенного фрагмента программы. Она аналогична подпрограмме BIN-DEC1, рассмотренной ранее в разд.5.1
Однокристальные МК PIC 16С84
Микроконтроллеры PIC 16С84 (16F84) также относятся к расширенному семейству, имеют целый ряд таких же существенных отличий от МК базового семейства PIC 16С5Х как и PIC 16С71, абсолютно не отличаются от последних системой команд и особенностями программирования (см. разд. 3.16 и разд..3.17), но обладают несколько другими функциональными возможностями. Поэтому, в данном разделе будут рассмотрены лишь отличия от PIC 16С84 (16F84) от PIC 16С71, так как в остальном они полностью совпадают.
Дата добавления: 2014-12-18; просмотров: 164 | Поможем написать вашу работу | Нарушение авторских прав |
|