Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
-
Westbam
- Встал на лапы
- Сообщения: 82
- Зарегистрирован: Пт янв 02, 2009 19:28:44
- Откуда: Москва
- Контактная информация:
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
покуривал даташит, покуривал... по запарке забыл 
-
Westbam
- Встал на лапы
- Сообщения: 82
- Зарегистрирован: Пт янв 02, 2009 19:28:44
- Откуда: Москва
- Контактная информация:
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Спасибо
Приблудился у меня тут AT89C2051, нет ли схемки каких нить часекоф на нем?
Охота пристроить камень.
Приблудился у меня тут AT89C2051, нет ли схемки каких нить часекоф на нем?
Охота пристроить камень.
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
На таку мелкоту... вспоминать да по архивам лазить влом. Есть версия (правда не дочищенная) под AT89S52 ( viewtopic.php?f=62&t=94201 ) в принципе в 4051 можно втиснуть, или программку "вылизать", но пока отложено до завершения программы работ в той теме.


-
IIaDJIa2204
- Родился
- Сообщения: 1
- Зарегистрирован: Вт дек 24, 2013 19:37:45
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Привет всем кто может помочь подсказать как сделать =) есть программа
она вы водит числа Фибоначчи в память так вот вопрос в том что бы она так же показывала эти числа в секундах с которыми выводит эти числа
то есть 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 ну то есть каждому числу своя задержка 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89
Спойлер
Код: Выделить всё
org 0h
mov r0,#10h
mov r2,#9
mov r3,#1
mov r5,#235
mov 11h,#1
mov b,#1h
add a,b
;mov b,a
inc r0
mov @r0,a
;mov b,a
mov a,@r0
add a,b
mov b,a
inc r0
mov @r0,a
fib:
dec r0
mov a,@r0
add a,b
inc r0
inc r0
mov @r0,a
mov p1,a
acall ZAD
mov b,a
djnz r2,fib
ajmp vpn
ZAD:
DELAY: MOV R4,#7
DJNZ R4,$
DJNZ R3,DELAY
DJNZ R5,ZAD
RET
vpn:
endона вы водит числа Фибоначчи в память так вот вопрос в том что бы она так же показывала эти числа в секундах с которыми выводит эти числа
то есть 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 ну то есть каждому числу своя задержка 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Не совсем понятно, чего собственно надо...
Впрочеммм... Сделай на Т0 генератор секунды на внешнем входе Т1, а результат вычислений , после некоторой переработки, используй как задатчик интервала для Т1. Или понижающий предделитель на таймере, а остальное на программных счетчиках.
Впрочеммм... Сделай на Т0 генератор секунды на внешнем входе Т1, а результат вычислений , после некоторой переработки, используй как задатчик интервала для Т1. Или понижающий предделитель на таймере, а остальное на программных счетчиках.

-
petrenko
- Друг Кота
- Сообщения: 5321
- Зарегистрирован: Вт фев 21, 2012 13:51:55
- Откуда: Начинающий
- Контактная информация:
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Коллеги , кто лучше информирован, подскажите, у каких модификаций семейства MCS-51/31/52/151/251 побольше внутренней памяти (, доступной по MOV а не по MOVX то есть ) ?
И какие из них более доступны ( - в смысле проще и дешевле купить ) ?
( в поисковых системах по сути вопроса, увы, не вылавливаются крупицы радия среди тонн всякой ерунды.. )
И какие из них более доступны ( - в смысле проще и дешевле купить ) ?
( в поисковых системах по сути вопроса, увы, не вылавливаются крупицы радия среди тонн всякой ерунды.. )
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Насколько мне помниться (151/251 не изучались) в стандартном варианте предусматривется только 128 регистров СОЗУ общего доступа всеми командами и 128 регистров СОЗУ для доступа под косвенную адресацию первое для 51х, второе для 52й и старше. Даже интегрированное ОЗУ (AT89S8253) проецируется как модифицированное внешнее ОЗУ (т.е. movx). Система команд по-другому не позволит работать. Структура доступа к внутреннему СОЗУ как к файлу регистров всеми командами - это прерогатива ПИКов. Однако в случае наибольшего подобия к 51м лучше подойдет семейство PIC24Fxxxx или MAXQ2000. Только вот по доступности похоже ближе всеж ПИКи.
-
petrenko
- Друг Кота
- Сообщения: 5321
- Зарегистрирован: Вт фев 21, 2012 13:51:55
- Откуда: Начинающий
- Контактная информация:
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Жаль, что "151/251 не изучались"..
Я как раз надеялся, что ( а у 251/252 ведь переключаемые две системы команд - 8-ми-битная 51/52 и 16-и-битная своя ) в 251/252 вариациях будет выход MOV за предел 256 байт и мне посоветует кто-нибудь доступный кристалл этого типа (- ведь не просто так я упомянул 251/252 ) ...
( Или вдруг у кого из производителей окажется модифицированый 51 или 151 с каким-нибудь DPTR_2 для адресации не MOVX ,а MOV ... Хотя непонятно, как это можно туда впихнуть ... Чую, надо усиленно "копать", изучать информацию, дабы впустую не фантазировать ... MOVC я уже попробовал - не особо удобно, честно говоря. )
Я как раз надеялся, что ( а у 251/252 ведь переключаемые две системы команд - 8-ми-битная 51/52 и 16-и-битная своя ) в 251/252 вариациях будет выход MOV за предел 256 байт и мне посоветует кто-нибудь доступный кристалл этого типа (- ведь не просто так я упомянул 251/252 ) ...
( Или вдруг у кого из производителей окажется модифицированый 51 или 151 с каким-нибудь DPTR_2 для адресации не MOVX ,а MOV ... Хотя непонятно, как это можно туда впихнуть ... Чую, надо усиленно "копать", изучать информацию, дабы впустую не фантазировать ... MOVC я уже попробовал - не особо удобно, честно говоря. )
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Там вопрос несколько в другом - не в разрядности, а в области адресов РПД/РСФ - чего было изначально заложено то и есть стандарт. Т.е. 128 байт на РСФ ( или ввод "подмножества" через дополнительные указатели/ размножения системы команд через "суббланки" доступные после префикса 0xA5 ). А для того, чтоб "расширенная" область СОЗУ не пересекалась с РСФ то доступ туда ограничили командами, основаными на косвенной адресации (@Rn,push/pop).
Кроме того имеется movx a,@dptr/movx @dptr,a - косвенная для внешнего/внутреннего расширенного ОЗУ.
DPTR2 существует во всех 52-х и выше.
А чего собственно говоря сооружаемс, ежли не секрет?
Для нормального применения имеющихся ресурсов AT89S52 "за глаза" хватит, надо только повнимательней присмотреться.
Ежли чего поглядеть нужно - скинь на e-mail cv2004a@bigmir.net
я после тренировки с 16-й пикой несколько пересмотрел подход к использованию имеющихся в наличии РОН - весьма интересно получилось.

Кроме того имеется movx a,@dptr/movx @dptr,a - косвенная для внешнего/внутреннего расширенного ОЗУ.
DPTR2 существует во всех 52-х и выше.
А чего собственно говоря сооружаемс, ежли не секрет?
Для нормального применения имеющихся ресурсов AT89S52 "за глаза" хватит, надо только повнимательней присмотреться.
Ежли чего поглядеть нужно - скинь на e-mail cv2004a@bigmir.net
я после тренировки с 16-й пикой несколько пересмотрел подход к использованию имеющихся в наличии РОН - весьма интересно получилось.

-
petrenko
- Друг Кота
- Сообщения: 5321
- Зарегистрирован: Вт фев 21, 2012 13:51:55
- Откуда: Начинающий
- Контактная информация:
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Так вот, памятуя, что Вы, коллега, как то раз обмолвились о разброде и разных вариантах "сленговых~жаргонных" команд в вариациях 151-ых и 251-ых разных производителей, я и хотел уточнить - вдруг где DPTR_2 в *51-ых как-нибудь особенным образом может изпользоваться - и выйдет аж три адресных пространства ( MOVC , MOV и MOVX )BOB51 писал(а):.. DPTR2 существует во всех 52-х и выше.
А чего собственно говоря сооружаемс, ежли не секрет?![]()
Впрочем для 251 не актуально, пожалуй..
А в 151-ых DPTR_2 как задействован ?
А "сооружаем-с" очередное нечто, похожее на пульт, с хитрыми возможностями..
Развлекуха в общем такая..

< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
MOV - внутреннее пространство РПД/РСФ начиная с регистр-акумулятор и заканчивая регистр-регистр. одновременно коротким MOVX a,@Rn/@Rn,a (n=0,1) может обрабатываться пространство ввода/вывода УВВ размером 256 байт в сопровождении строба /WR и /RD с выдачей мультиплексированного адреса на Р0 (сопровождение /ALE).
Для работы с внешней памятью данных есть MOVX A,@DPTR/MOVX @DPTR,A и его вариация для работы с памятью программ MOVC a,@dptr относительно DPTR и MOVC a,@a+PC относительно счетчика команд (табичные читатели памяти программ).
Отличие MOVX и MOVC только в выдаваемом стробе - у MOVC сопровождение /PSEN, у MOVX сопровождение стробами /WR и /RD.
В случае применения схемотехнического решения "объединенная ВПП/ВПД" эти команды будут равноценны.
Да и искать 152/252 как-то затруднительно - максимум Силабсячьи МК найти можно, даже версии атмелевских LP взять негде...
Насчет пульта с "хитрой клавиатурой" - посмотри приемы с обработчиком в viewtopic.php?f=62&t=94201 там векторный модуль с возможностью работы как с кнопами так и с "другими устройствами" - бредятинка с претензией на расширенные возможности для самододумывающих.
Да вот древнючий рисуночек с конспекту...
можно и юзерс гвидки от интела послать- да только на почтовик - великовато для сайта, а ссылку положить - так оно где-то в дремучих архивах INTELa лет с десяток назад качалось... забыл уж откуда...
Для работы с внешней памятью данных есть MOVX A,@DPTR/MOVX @DPTR,A и его вариация для работы с памятью программ MOVC a,@dptr относительно DPTR и MOVC a,@a+PC относительно счетчика команд (табичные читатели памяти программ).
Отличие MOVX и MOVC только в выдаваемом стробе - у MOVC сопровождение /PSEN, у MOVX сопровождение стробами /WR и /RD.
В случае применения схемотехнического решения "объединенная ВПП/ВПД" эти команды будут равноценны.
Да и искать 152/252 как-то затруднительно - максимум Силабсячьи МК найти можно, даже версии атмелевских LP взять негде...
Насчет пульта с "хитрой клавиатурой" - посмотри приемы с обработчиком в viewtopic.php?f=62&t=94201 там векторный модуль с возможностью работы как с кнопами так и с "другими устройствами" - бредятинка с претензией на расширенные возможности для самододумывающих.
Да вот древнючий рисуночек с конспекту...
можно и юзерс гвидки от интела послать- да только на почтовик - великовато для сайта, а ссылку положить - так оно где-то в дремучих архивах INTELa лет с десяток назад качалось... забыл уж откуда...
-
Westbam
- Встал на лапы
- Сообщения: 82
- Зарегистрирован: Пт янв 02, 2009 19:28:44
- Откуда: Москва
- Контактная информация:
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Удалось завести плату, по каким то причинам с родной флэшкой (29EE512) проц
упорно не хотел работать. Вытащил из старой пкашной мамки флэшку at49f001n, прошил,
воткнул в плату, завелся. Что мешало ему работать с 29EE512, мне до сих пор не понятно.
упорно не хотел работать. Вытащил из старой пкашной мамки флэшку at49f001n, прошил,
воткнул в плату, завелся. Что мешало ему работать с 29EE512, мне до сих пор не понятно.
-
petrenko
- Друг Кота
- Сообщения: 5321
- Зарегистрирован: Вт фев 21, 2012 13:51:55
- Откуда: Начинающий
- Контактная информация:
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Вообще то все сие мне ведомо.. Но сообщение нужное, годное - вдруг кому ещё из начинающих пригодится.BOB51 писал(а):MOV - внутреннее пространство РПД/РСФ начиная с регистр-акумулятор и заканчивая регистр-регистр. одновременно коротким MOVX a,@Rn/@Rn,a (n=0,1) может обрабатываться пространство ввода/вывода УВВ размером 256 байт в сопровождении строба /WR и /RD с выдачей мультиплексированного адреса на Р0 (сопровождение /ALE).
Для работы с внешней памятью данных есть MOVX A,@DPTR/MOVX @DPTR,A и его вариация для работы с памятью программ MOVC a,@dptr относительно DPTR и MOVC a,@a+PC относительно счетчика команд (табичные читатели памяти программ).
Отличие MOVX и MOVC только в выдаваемом стробе - у MOVC сопровождение /PSEN, у MOVX сопровождение стробами /WR и /RD.
В случае применения схемотехнического решения "объединенная ВПП/ВПД" эти команды будут равноценны.
Да и искать 152/252 как-то затруднительно - максимум Силабсячьи МК найти можно, даже версии атмелевских LP взять негде...
Насчет пульта с "хитрой клавиатурой" - посмотри приемы с обработчиком в viewtopic.php?f=62&t=94201 там векторный модуль с возможностью работы как с кнопами так и с "другими устройствами" - бредятинка с претензией на расширенные возможности для самододумывающих.![]()
....
А я как раз хотел узнать поболее за DPTR2 - разные вариации применения.
И, так получается, что в "нативном" 51 , 52 и др. - не доходя до 251/252 - MOV внутренний не более 256 байт адресует. А в вариациях ? А в вариациях 151/152 ? Любопытствую - хочу разширить кругозор.
В случае 251/252 ,понятное дело, после переключения командой с кодом 0A5h - там совсем другая картина уже..
И ещё немного неправильно меня поняли - не "пульт с хитрой клавиатурой", а "пульт, с хитрыми возможностями" .. впрочем это всё равно для внутреннего употребления, так что другим тем более не интересно и не важно.
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
DPTR1 аналогично DPTR0 или возможно еще несколько вариантов названий.
У Атмела не все 52-е его имеют - надобно конкретный даташит смотреть (У AT89C52-нету, а у AT89S51 и AT89S52 есть). Да вобщем аналогично и для других производителей - всегда есть юзерс гвиде/хардваре мануал на семейство а в даташите на конкретную ИС указываются только отличия/дополнения по данному МК. (Вобщем по каждому конкретному МК вчитываться в даташит - увы... дань прохрессу...
)
Типовое применение:
команды movx a,@dptr movx @dptr,a jmp @a+dptr movc a,@a+dptr (о "расширенных" через префикс разговор особый) и особнячком mov dptr,#d16 (опять же из-за флажка-селектора надо заранее знать какой из дптров в РСФ будет загружаться в отличии от прямой загрузки в соответствующий байт РСФ)
а вот какой из имеющихся DPTR будет в команде использован обычно отвечает "запрятанный" среди РСФ флажок-переключатель - его надобно предварительно выставить в соответствующее применяемому в команде указателю состояние
ну и естественно в области РСФ находятся два (может и более) блока регистров с соответствующими названиями и их также надобно предварительно соответственно приготовить к использованию.
Т.е. сначала загружаем собственно регистры соответствующих указателей в РСФ, а затем при помощи флажочка указываем к какому дптру будет относиться текущая команда. И наконец пускаем собственно команду. БЫРР... намутил.... проще было бы примерчик нацарапать...
За 151-251... чей-то лежало на запыленной полочке в бумажном виде... мож на выходных покопаюсь...
ага, вроде нашел:
Бородин В.Б., Шагурин И.И.
Микроконтроллеры. Архитектура, программирование, интерфейс.
-М.: Издательство ЭЛКОМ. 1999г.
Бегло глянувши там действительно возможна прямая адресация в диапазоне 00х0000-00хFFFF но токмо нюансов тоже хватит - вчитываться надобно. И это исключительно для "чистокровной" 252й.

Насчет внутреннего mov (касательно классической MCS51) - не 256, а только 128 байт (0x00-0x7F) ОЗУ во всех вариациях и
только mov a,@rn /mov @rn,a(n=0,1) для "верхней" области ОЗУ (0x80-0xFF)! В этом случае косвенное обращение (через @Rn) к адресам РСФ в области 0x80-0xFF невозможно.

У Атмела не все 52-е его имеют - надобно конкретный даташит смотреть (У AT89C52-нету, а у AT89S51 и AT89S52 есть). Да вобщем аналогично и для других производителей - всегда есть юзерс гвиде/хардваре мануал на семейство а в даташите на конкретную ИС указываются только отличия/дополнения по данному МК. (Вобщем по каждому конкретному МК вчитываться в даташит - увы... дань прохрессу...
Типовое применение:
команды movx a,@dptr movx @dptr,a jmp @a+dptr movc a,@a+dptr (о "расширенных" через префикс разговор особый) и особнячком mov dptr,#d16 (опять же из-за флажка-селектора надо заранее знать какой из дптров в РСФ будет загружаться в отличии от прямой загрузки в соответствующий байт РСФ)
а вот какой из имеющихся DPTR будет в команде использован обычно отвечает "запрятанный" среди РСФ флажок-переключатель - его надобно предварительно выставить в соответствующее применяемому в команде указателю состояние
ну и естественно в области РСФ находятся два (может и более) блока регистров с соответствующими названиями и их также надобно предварительно соответственно приготовить к использованию.
Т.е. сначала загружаем собственно регистры соответствующих указателей в РСФ, а затем при помощи флажочка указываем к какому дптру будет относиться текущая команда. И наконец пускаем собственно команду. БЫРР... намутил.... проще было бы примерчик нацарапать...
За 151-251... чей-то лежало на запыленной полочке в бумажном виде... мож на выходных покопаюсь...
ага, вроде нашел:
Бородин В.Б., Шагурин И.И.
Микроконтроллеры. Архитектура, программирование, интерфейс.
-М.: Издательство ЭЛКОМ. 1999г.
Бегло глянувши там действительно возможна прямая адресация в диапазоне 00х0000-00хFFFF но токмо нюансов тоже хватит - вчитываться надобно. И это исключительно для "чистокровной" 252й.

Насчет внутреннего mov (касательно классической MCS51) - не 256, а только 128 байт (0x00-0x7F) ОЗУ во всех вариациях и
только mov a,@rn /mov @rn,a(n=0,1) для "верхней" области ОЗУ (0x80-0xFF)! В этом случае косвенное обращение (через @Rn) к адресам РСФ в области 0x80-0xFF невозможно.
-
petrenko
- Друг Кота
- Сообщения: 5321
- Зарегистрирован: Вт фев 21, 2012 13:51:55
- Откуда: Начинающий
- Контактная информация:
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Покамест попробуем на 151-ом, тем паче, что есть в наличии.
Оптимальным кажется вариант с изпользованием MOVC
Оптимальным кажется вариант с изпользованием MOVC
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
MOVC - чтение таблицы данных согласно содержимого аккумулятора относительно текущего состояния счетчика программы или DPTR.
работает только в пределах 256 байт и относительно ПЗУ (аппаратно выдается /PSEN).
Чтобы работать с ПЗУ/ОЗУ как с памятью программ/данных (внешней только
) необходима стандартная махонькая схемотехническая добавка (объединение сигналов /PSEN и /RD) - тогда к внешней памяти открыт доступ и на запись и на чтение,
т.е. можно будет работать и MOVX и MOVC (микропроцессорный режим).

работает только в пределах 256 байт и относительно ПЗУ (аппаратно выдается /PSEN).
Чтобы работать с ПЗУ/ОЗУ как с памятью программ/данных (внешней только
т.е. можно будет работать и MOVX и MOVC (микропроцессорный режим).

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Ребят, помогите плиз.
Программа формирования синуса (5 и 1000гц) на два 12ти разрядных ЦАП - подключены параллельно. Реализовать с помощью прерываний по таймерам. Написал прогу, не работает. Жду вашей помощи.
Tic EQU -4 ; 4 мкс
Tic1 EQU -255 ; 255 мкс
ORG 000BH ; адрес TF0
JMP INT_T0
ORG 001BH ;адрес TF1
JMP INT_T1
INT_T0:
mov TMOD,#00000001b
mov TH0,#high(Tic) ; Загрузка таймера0
mov TL0,#low(Tic)
setb TR0 ; Запуск таймера0
jnb TF0,$ ; Ожидание переполнения
clr TF0 ; Сброс флага переполнения
clr TR0 ; Останов таймера0
RETI ; Выход из прерывания
INT_T1:
mov TMOD,#00000001b
mov TH1,#high(Tic1) ; Загрузка таймера1
mov TL1,#low(Tic1)
setb TR1 ; Запуск таймера1
jnb TF1,$ ; Ожидание переполнения
clr TF1 ; Сброс флага переполнения
clr TR1 ; Останов таймера1
RETI ; Выход из прерывания
SIN:
MOV DPTR,#TABSIN ;Загружаем в dptr таблицу синуса
MOV R7,#1
MOV R6,#255 ;Таблица из 256 значений
K:
CLR A
MOVC A,@A+DPTR
MOV P0,A ; Вывод в порт P0 4 старших
CLR A
INC DPTR
MOVC A,@A+DPTR
MOV P2,A ; Вывод в порт P2 8 младших
INC DPTR
DJNZ R6,K
JMP SIN
RET
TABSIN:
dw 2047,2097,2147,2198,2248,2297,2347,2397,2446,2495,2544,2593
dw 2641,2689,2736,2783,2830,2876,2922,2967,3011,3055,3099,3142
dw 3184,3225,3266,3306,3345,3383,3421,3458,3494,3529,3563,3596
dw 3629,3660,3691,3720,3748,3776,3802,3828,3852,3875,3897,3918
dw 3938,3956,3974,3990,4005,4019,4032,4044,4054,4064,4072,4078
dw 4084,4088,4091,4093,4094,4093,4092,4089,4084,4079,4072,4064
dw 4055,4045,4033,4020,4006,3991,3975,3958,3939,3919,3898,3876
dw 3853,3829,3804,3778,3750,3722,3693,3662,3631,3599,3565,3531
dw 3496,3460,3424,3386,3348,3308,3268,3228,3186,3144,3102,3058
dw 3014,2970,2925,2879,2833,2786,2739,2692,2644,2596,2547,2498
dw 2449,2400,2350,2301,2251,2201,2151,2100,2050,2000,1950,1900
dw 1850,1800,1750,1700,1651,1602,1553,1504,1456,1408,1361,1314
dw 1267,1221,1175,1130,1085,1041,998,955,913,872,831,791
dw 751,713,675,638,602,567,533,500,467,436,405,376
dw 347,320,293,268,244,221,198,177,158,139,121,105
dw 89,75,62,51,40,31,23,16,10,6,3,1
dw 0,1,2,5,9,15,21,29,38,49,60,73
dw 87,102,118,135,154,173,194,216,239,263,288,315
dw 342,370,400,430,461,493,526,561,596,631,668,706
dw 744,783,823,864,905,947,990,1033,1077,1121,1166,1212
dw 1258,1305,1352,1399,1447,1495,1544,1592,1641,1691,1740,1790
dw 1840,1890,1940,1990
END
Программа формирования синуса (5 и 1000гц) на два 12ти разрядных ЦАП - подключены параллельно. Реализовать с помощью прерываний по таймерам. Написал прогу, не работает. Жду вашей помощи.
Tic EQU -4 ; 4 мкс
Tic1 EQU -255 ; 255 мкс
ORG 000BH ; адрес TF0
JMP INT_T0
ORG 001BH ;адрес TF1
JMP INT_T1
INT_T0:
mov TMOD,#00000001b
mov TH0,#high(Tic) ; Загрузка таймера0
mov TL0,#low(Tic)
setb TR0 ; Запуск таймера0
jnb TF0,$ ; Ожидание переполнения
clr TF0 ; Сброс флага переполнения
clr TR0 ; Останов таймера0
RETI ; Выход из прерывания
INT_T1:
mov TMOD,#00000001b
mov TH1,#high(Tic1) ; Загрузка таймера1
mov TL1,#low(Tic1)
setb TR1 ; Запуск таймера1
jnb TF1,$ ; Ожидание переполнения
clr TF1 ; Сброс флага переполнения
clr TR1 ; Останов таймера1
RETI ; Выход из прерывания
SIN:
MOV DPTR,#TABSIN ;Загружаем в dptr таблицу синуса
MOV R7,#1
MOV R6,#255 ;Таблица из 256 значений
K:
CLR A
MOVC A,@A+DPTR
MOV P0,A ; Вывод в порт P0 4 старших
CLR A
INC DPTR
MOVC A,@A+DPTR
MOV P2,A ; Вывод в порт P2 8 младших
INC DPTR
DJNZ R6,K
JMP SIN
RET
TABSIN:
dw 2047,2097,2147,2198,2248,2297,2347,2397,2446,2495,2544,2593
dw 2641,2689,2736,2783,2830,2876,2922,2967,3011,3055,3099,3142
dw 3184,3225,3266,3306,3345,3383,3421,3458,3494,3529,3563,3596
dw 3629,3660,3691,3720,3748,3776,3802,3828,3852,3875,3897,3918
dw 3938,3956,3974,3990,4005,4019,4032,4044,4054,4064,4072,4078
dw 4084,4088,4091,4093,4094,4093,4092,4089,4084,4079,4072,4064
dw 4055,4045,4033,4020,4006,3991,3975,3958,3939,3919,3898,3876
dw 3853,3829,3804,3778,3750,3722,3693,3662,3631,3599,3565,3531
dw 3496,3460,3424,3386,3348,3308,3268,3228,3186,3144,3102,3058
dw 3014,2970,2925,2879,2833,2786,2739,2692,2644,2596,2547,2498
dw 2449,2400,2350,2301,2251,2201,2151,2100,2050,2000,1950,1900
dw 1850,1800,1750,1700,1651,1602,1553,1504,1456,1408,1361,1314
dw 1267,1221,1175,1130,1085,1041,998,955,913,872,831,791
dw 751,713,675,638,602,567,533,500,467,436,405,376
dw 347,320,293,268,244,221,198,177,158,139,121,105
dw 89,75,62,51,40,31,23,16,10,6,3,1
dw 0,1,2,5,9,15,21,29,38,49,60,73
dw 87,102,118,135,154,173,194,216,239,263,288,315
dw 342,370,400,430,461,493,526,561,596,631,668,706
dw 744,783,823,864,905,947,990,1033,1077,1121,1166,1212
dw 1258,1305,1352,1399,1447,1495,1544,1592,1641,1691,1740,1790
dw 1840,1890,1940,1990
END
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
я думаю, скоро последует "помощь" от модераторов: запрещено создавать дублирующие сообщения в разных темах. ваша настойчивость вас погубит.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
ARV писал(а):я думаю, скоро последует "помощь" от модераторов: запрещено создавать дублирующие сообщения в разных темах. ваша настойчивость вас погубит.
ARV, проходим лесом, спасибо.