Основы микропроцессорной техники


Example..1


;******************************************************

;*листинг исходной программы

;******************************************************

LIST P=16C84, R=HEX ;директива, определяющая тип

;процессора и систему счисления

;по умолчанию

;******************************************************

;*описание используемых переменных и назначения адресов

;*ячеек для хранения переменных пользователя

;******************************************************

; INTCON EQU 0x0B

; OPTION EQU 0x81

; TMR0 EQU 0x01

; INTF EQU 1

; T0IF EQU 5

PCL EQU 0x02

STATUS EQU 0x03

RP0 EQU 5

PORTA EQU 0x05

PORTB EQU 0x06

TRISA EQU 0x05

TRISB EQU 0x06

W EQU 0

F EQU 1

TEMPA EQU 0x0C

TEMPB EQU 0x0D

COUNT1 EQU 0x0E

COUNT2 EQU 0x0F

COUNT3 EQU 0x10

;******************************************************

;*определение меток замены текста

;******************************************************

#DEFINE Z STATUS,2 ;бит нулевого результата

#DEFINE BA1 PORTA,0 ;динамик BA1

#DEFINE VD2 PORTA,1 ;светодиод VD2

#DEFINE SA1 PORTA,2 ;тумблер SA1

#DEFINE SA2 PORTA,3 ;тумблер SA2

#DEFINE SB1 PORTA,4 ;кнопка SB1

#DEFINE SB2 PORTB,0 ;кнопка SB2

#DEFINE HL1_A PORTB,1 ;индикатор-сегмент A

#DEFINE HL1_B PORTB,2 ;индикатор-сегмент B

#DEFINE HL1_C PORTB,3 ;индикатор-сегмент C

#DEFINE HL1_D PORTB,4 ;индикатор-сегмент D

#DEFINE HL1_E PORTB,5 ;индикатор-сегмент D

#DEFINE HL1_F PORTB,6 ;индикатор-сегмент E

#DEFINE HL1_G PORTB,7 ;индикатор-сегмент F

;******************************************************

;*исполняемая программа

;******************************************************

ORG 0x000 ;установка начального адреса по

;сбросу

GOTO BEGIN ;переход на начало программы

ORG 0x005 ;установка начального адреса

;размещения программы

BEGIN

CALL INIT_PORTS ;вызов подпрограммы

;инициализации портов МК

;*****************************************************

;*программа пользователя

;

;*****************************************************

;

INIT_PORTS ;подпрограмма инициализации

;портов

MOVLW 0xFF ;установка линий портов

MOVWF PORTA ;A и B в единичное

MOVWF PORTB ;состояние

BSF STATUS,RP0 ;переход на банк 1

MOVLW 0x1C ;настройка линий RA0 и

MOVWF TRISA ;RA1 порта A на вывод –

;остальных – на ввод

MOVLW 0x01 ;настройка линии RB0

MOVWF TRISB ;порта B на ввод -

;остальных – на вывод

BCF STATUS,RP0 ;возврат в банк 0

RETURN ;возврат из подпрограммы

;

END ;конец программы




Начало  Назад  Вперед



Книжный магазин