реклама на сайте
подробности

 
 
> AT89S8253, не работает Timer1 в качестве baud rate
Artog
сообщение Aug 18 2005, 13:57
Сообщение #1





Группа: Новичок
Сообщений: 5
Регистрация: 8-08-05
Пользователь №: 7 448



Ниже приведен код, который работает на AT89S8252, но не работает на AT89S8253. Выдержка из даташита:
One can achieve very low baud rates with Timer 1 by leaving the Timer 1 interrupt enabled, and configuring the Timer to run as a 16-bit timer (high nibble of TMOD = 0001B), and using the Timer 1 interrupt to do a 16-bit software reload.

Код:
ORG 0000H
JMP BEGIN
ORG 001BH
JMP TM1INT
ORG 0023H
JMP SRLINT

ORG 0100H

BEGIN:
MOV SCON,#50H
MOV TMOD,#10H
MOV TH1,#0CFH ;baud rate is equal to 5 baud
MOV TL1,#2CH
ORL PCON,#10000000B ;SMOD1=1

SETB ES ;Enable serial interrupt
SETB ET1
SETB EA ;Enable global interrupt
SETB TR1 ;Timer 1 run

MOV SBUF,#55H

JMP $

TM1INT:
CLR TR1
MOV TH1,#0CFH
MOV TL1,#2CH
SETB TR1
RETI

SRLINT:
;JNB TI,TI_NINT
CLR TI
MOV SBUF,#55H
TI_NINT:
RETI

end

Может кто чего подскажет?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th June 2025 - 02:27
Рейтинг@Mail.ru


Страница сгенерированна за 0.01347 секунд с 7
ELECTRONIX ©2004-2016