00002 ; P16F84.INC Standard Header File, Version 2.00 Microchip Technology, Inc.
00136 LIST
00003
0000000C 00004 COUNT equ 0Ch ;
00005
0000 00006 org 00h ; адрес программы в памяти программ
0000 1683 00007 bsf STATUS, RP0 ; выбор банка 1
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
0001 0186 00008 clrf TRISB ; настройка порта В на вывод
0002 3006 00009 movlw b'00000110' ; настройка предделителя
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
0003 0081 00010 movwf OPTION_REG ; на работу с таймером 1:128
0004 1283 00011 bcf STATUS, RP0 ; выбор банка 0
0005 30FF 00012 movlw 0FFh ; формирование '1'
0006 0086 00013 movwf PORTB ; на выводах порта В
00014
0007 00015 d_1 ; начало рабочей части программы
0007 1086 00016 bcf PORTB, 1 ; формирование '0' на первом разряде порта В
0008 0000 00017 nop ; формирование задержки в 1 цикл
0009 1486 00018 bsf PORTB, 1 ; формирование '1' на первом разряде порта В
000A 2123 00019 call d_2 ; вызов подпрограммы d_2
000B 212A 00020 call d_3 ; вызов подпрограммы d_3
00021
00022
0123 00023 org 123h ; подпрограмма реализации
0123 00024 d_2 ; задержки в 35 цикла
0123 1106 00025 bcf PORTB, 2 ; формирование '0' на втором разряде порта В
0124 3011 00026 movlw 11h ; инициализация
0125 008C 00027 movwf COUNT ; счетчика
0126 00028 repeat ; цикл до
0126 0B8C 00029 decfsz COUNT, 1 ; обнуления
0127 2926 00030 goto repeat ; счетчика
0128 1506 00031 bsf PORTB, 2 ; формирование '1' на втором разряде порта В
0129 0008 00032 return ; возврат из подпрограммы
00033
012A 00034 d_3 ; неявный вызов подпрограммы
012A 3002 00035 movlw 02h ; формирование старших
012B 008A 00036 movwf PCLATH ; разрядов программного счетчика
012C 3034 00037 movlw 34h ; формирование младших
012D 0082 00038 movwf PCL ; разрядов программного счетчика
00039
0234 00040 org 234h ; подпрограмма реализации задержки в 3000 циклов
0234 1186 00041 bcf PORTB, 3 ; формирование '0' на третьем разряде порта В
0235 110B 00042 bcf INTCON, T0IF ; сброс флага переполнения от таймера
0236 30E9 00043 movlw 0E9h ; формирование
0237 0081 00044 movwf TMR0 ; константы для таймера
0238 00045 wait ; анализ
0238 1D0B 00046 btfss INTCON, T0IF ; флага
0239 2A38 00047 goto wait ; переполнения от таймера
023A 1586 00048 bsf PORTB, 3 ; формирование '1' на третьем разряде порта В
MPASM 02.20 Released Vika3.ASM 4-1-2004 20:30:46 PAGE 2
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
023B 0008 00049 return ; возврат из подпрограммы
00050 end ; конец программы
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.