Организация ЭВМ. Довгий П.С - 31 стр.

UptoLike

31
main()
{ EX0=1; //маска внешнего прерывания INT0
IT0=1; //тип прерывания H/L фронт на входе P3.2=INT0
EA=1; //разрешение прерываний
while(1); //ожидание прерываний в динамическом останове
}
Ассемблер.
iseg at 30h ;сегмент памяти для стека
Stack ds 4 ; 4 байта для стека
cseg at 0 ;стартовый адрес
jmp start
cseg at 3h ; вектор внешних прерываний INT0
jmp ex00
cseg at 40h
start: mov SP,#Stack-1 ;начало программы
setb EX0 ;маска
setb IT0 ; тип прерывания
setb EA ; разрешение
прерывания
Cikl: add a,#0x100
Jmp cikl
ex00: push ACC ;сохранить АСС
push PSW ;сохранение состояния
mov a,P2 ; подпрограмма принятия решения по прерыванию
Add a,P1
Mov P0,a
Pop PSW
Pop ACC
Reti
end
2.6.2.Внутренние прерывания при переполнении таймеров.
Внутренние прерывания могут быть сформированы последовательным
каналом ввода-вывода USART и двумя таймерами.
Таймеры cчетчики реального времени, задаваемого стабильным
кварцевым генератором частоты. В MCS51 принят основной цикл выполнения
команды 12
тактов генератора частоты. Команды выполняются за 1-2 цикла.