Полный абзац! Что делать?
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено Alexander V. Stolyarov 04 декабря 2003 г. 10:08

Люди! Выручайте!

Есть контроллер 80с52 и компьютер, которые соединены м/д собой по RS-232. Оператор ЭВМ, в терминале вводит пятизначное десятичное число, которое передается через SBUF в контроллер. Примерно вот так:

cin:
clr A
jnb RI, cin
clr RI
mov A, SBUF
ret
cout:
mov SBUF,A
jnb TI,$
clr TI
ret

acall cin
mov r1,a
acall cin
mov r2,a
…………..
…………..
mov r5,a


Т.е., например, число 45678d в памяти будет раскидано по регистрам в таком порядке:

r1=4d; r2=5d; r3=6d; r4=7d; r5=8d.

Как собрать воедино это число??????? Может можно записать в память, предварительно отведя место. Пробую записать вот так (здесь работа с hex числами. Перевод из одной системы исчисления в другую – отдельный вопрос):

mov dptr,#DBTest
movc A,@A+DPTR

mov @DPTR,#4321h

DBTest: dw 1234h

Но, к сожалению не получается…. В 8086 все ясно… А тут я в замешательстве. Я не могу записать в DBTest. Как это сделать? Т.е. я хочу, число вводимое из терминала, записывать сразу в DBTest.

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

Ответы



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

E-mail: info@telesys.ru