;…
org 0x234 ; розміщення підпрограми з адреси 0x234
movlw b'00000000' ;тактування від внутрішнього генератора
;з попереднім дільником при К = 2
bsf STATUS, RP0 ;вибір банку 1
movwf OPTION_REG ;запис у регістр OPTION
bcf STATUS, RP0 ;вибір банку 0
;…
movlw FDEL ;[1] запис константи
movwf EDEL ;[1] у лічильник
m2 decfsz FDEL, 1 ;[1] зменшення значення лічильника
;…
bcf INTCON, T0IF ;[1] скидання прапорця переповнення
; таймера
movlw 0x38 ;[1] запис константи для
movwf TMR0 ;[1] ініціалізації лічильника
m3
btfss INTCON, T0IF ;[1] перевірка біта T0IF у регістрі
; INTCON
;[2] якщо T0IF = 1 пропуск наступної
; команди
goto m3 ;[2] перехід, якщо T0IF = 0
;… ; продовження програми
goto m2
;…
return ; повернення з підпрограми в основну
; програму
end
В результаті трансляціі одержали такі файли Lab_3.lst, Lab_3.err, Lab_3.hex, які знаходяться на дискеті.
Тект файлу лістинга (Lab_3.lst) має наступний вигляд:
MPASM 02.20 Released LAB3.ASM 3-23-2004 13:34:47 PAGE 1
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00001 list p=16f84
00002 #include p16f84.inc ;подключение библиотеки
00001 LIST
00002 ; P16F84.INC Standard Header File, Version 2.00 Microchip
00136 LIST
00000020 00003 CDEL EQU 20 ;определение переменных
00000021 00004 VDEL EQU 21 ;для реализации задержки
0000 00005 org 0 ;адрес сегмента размещения начала программы
0000 00006 main
0000 2014 00007 call init ;вызов процедуры инициализации портов
0001 00008 loop
0001 1086 00009 bcf PORTB,1 ;установка в 1-цу 1-го разряда порта B
0002 1486 00010 bsf PORTB,1 ;сброс в 0 1-го разряда порта B
0003 0000 00011 nop ;задержка
00012
0004 300D 00013 movlw .13 ;13->W
0005 00A0 00014 movwf CDEL ;CDEL=W
0006 00A1 00015 movwf VDEL ;VDEL=W
0007 1106 00016 bcf PORTB,2 ;установка в 1-цу 2-го разряда порта B
0008 2123 00017 call 0x123 ;вызов подпрограммы по адресу 123
0009 1506 00018 bsf PORTB,2 ;сброс в 0 2-го разряда порта B
000A 0000 00019 nop ;задержка
00020
000B 3004 00021 movlw b'00000100' ;коефициент деления=1:32
000C 1683 00022 bsf STATUS,RP0 ;выбор банка 1
000D 0081 00023 movwf OPTION_REG ;установка коефициента деления
000E 1283 00024 bcf STATUS,RP0 ;выбор банка 0
000F 1186 00025 bcf PORTB,3 ;установка в 1-цу 3-го разряда порта B
0010 2127 00026 call proc1 ;вызов подпрограммы
0011 1586 00027 bsf PORTB,3 ;сброс в 0 3-го разряда порта B
0012 0000 00028 nop ;задержка
0013 2800 00029 goto main ;зацикливание основной программы
00030
00031
0014 1683 00032 init bsf STATUS,RP0 ;выбор банка 1
0015 3000 00033 movlw b'00000000' ;загрузка 0 в аккум.
0016 0085 00034 movwf 5 ;запись в регистр trisa значение аккум.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.