
5. Содержание отчета
Задание по лабораторной работе;
Текст программы с комментариями;
Пример выполнения задания.
Пример 1.
Пусть источником событий является внешний вход INT0, число событий N=6. Параметры импульса: t=500; T=1500. Текст программы с необходимыми комментариями приведен ниже.
org 0
jmp start; переход на начало программы
org 3h; вектор прерывания по входу INT0
inc r1; еще одно внешнее событие
cjne r1,#6,out; если не все события то выйти из прерывания
clr ea; все события, запрет прерываний по событию
out:
reti; выход из прерывания
org 40h
; начало программы
start:
mov r1,#0; начальное значение событий
mov tcon,#00000001b; прернывание INT0 по срезу
mov ie,#10000001b; разрешить прерывание INT0
; формирование импульса
cycle:
setb p1.0
mov r2,#250; t=2*r2
djnz r2,$
clr p1.0
mov r3,#5
m1: mov r4,#100; T-t=2*r3*r4
djnz r4,$
djnz r3,m1
jmp cycle; следующий импульс
end
Пример 2.
Пусть источником событий является внешний вход ТС0, число событий N=9. Параметры импульса: t=800; T=1000. Текст программы с необходимыми комментариями приведен ниже.
org 0
jmp start; переход на начало программы
org 0Bh; вектор прерывания от ТС0
clr tr0; остановить таймер/счетчик ТС0
clr eа; все события , запретить прерывания
out: reti; возврат из прерывания
; начало программы
org 40h
start:
mov tmod,#00000110b; ТС0 как счетчик событий в режиме 2
mov tl0,#247; начальное значение (256-9)
mov ie,#10000010b; разрешить прерывания ТС0
setb tr0; разрешить работу ТС0
; формирование импульсов
cycle:
setb p1.0
mov r2,#4
m: mov r3,#100; t=2*r2*r3
djnz r3,$
djnz r2,m
clr p1.0
mov r4,#100; T-t=2*r4
djnz r4,$
jmp cycle
end