Работа с прерываниями в AT89C51
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Радик 04 июля 2003 г. 16:03

Помогите чайнику !
Осваиваю работу с прерываниями для AT89C51.
Налабал прогу, но что-то не фурычит.
Посмотирте кому не в лом. Где грабли.
Или киньте какой-нибудь рабочий примерчик пжлст !
Компилятор Franklin.
Заранее спасибо.
$INCLUDE (REG51.INC)
CSEG
ORG 0000h
AJMP MAIN
ORG 000BH
reti;AJMP INDY
ORG 0023H
AJMP SERIAL

WREN EQU P1.7 ;выход управления напрвлением передачи для MAX485
svdiod EQU P1.6 ;Управление светодиодом

MAIN:
clr ea
MOV SP,#078H ; установка вершины стека 78Н-7FH

CLR TR1 ;остановка таймера 1
mov PCON,#80H ;удвоение частоты =on
MOV SCON,#07Ch ;
MOV TMOD,#021H ;установка режима работы таймеров

MOV TH0,#0FCH ;период 10 мс
MOV TL0,#06CH ;младший байт

MOV TH1,#0FDh ;константа для скорости 9600

SETB ES ;ВКЛЮЧЕНИЕ ПРЕРЫВАНИЯ от СОМ порта
SETB PS ;Установка приоритета на СОМ
CLR PT0
SETB ET0 ;прерывание по таймеру вкл

SETB TR0 ;Запуск таймера
SETB TR1 ;запуск таймера СОМ порта

SETB EA ;Разрешение прерываний

clr wren
lop:
nop
ajmp lop

SERIAL:
jnb ri,nori
clr svdiod
CLR EA
PUSH PSW
SETB PSW.4 ;
CLR PSW.3 ;Банк регистров 2 , для ПОРТА
PUSH ACC
CLR RI
MOV A,SBUF

setb wren
MOV SBUF,A ;TRANSMIT SYMBOL
L1: JNB TI,L1 ;WAIT FOR END OF TRANS. SYMBOL
CLR TI
MOV R0,#255
MOV R1,#255
MAIN1:
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
DJNZ R0,MAIN1
DJNZ R1,MAIN1
clr wren
setb svdiod
SER1: POP ACC
POP PSW
SETB EA
nori:
RETI
END

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru