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

 
 
> 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
 
Start new topic
Ответов
sergeyip
сообщение Oct 26 2010, 08:16
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 251
Регистрация: 15-12-05
Из: Москва
Пользователь №: 12 247



По моему в вышенаписанной программе нет установки стека, поэтому она и не работает. biggrin.gif
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd August 2025 - 14:53
Рейтинг@Mail.ru


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