Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 27.02.2009, 20:58  
Saadov
Почётный гражданин KAZUS.RU
 
Аватар для Saadov
 
Регистрация: 13.11.2008
Адрес: г.Смоленск
Сообщений: 2,018
Сказал спасибо: 348
Сказали Спасибо 1,024 раз(а) в 552 сообщении(ях)
Saadov на пути к лучшему
По умолчанию Нужна помощь попеределке asm в Си для AVR

Есть asm код, помогите переделать под Си, в асме ни бум бум.
Код:
ORG 0000H
KEY EQU P1.1 ; KEY PIN
KEY2 EQU P1.2 ;VOLUME
KEY3 EQU P1.3 ; CLK+
KEY4 EQU P1.6 ;CLKKEY5
EQU P1.7 ;TRANSMIT VOLUME,THEN ADDRESS
LED EQU P3.0 ;SHOW KEY PRESSED
SCL EQU P3.2 ;CLK PIN
SDA EQU P3.3 ;DATA PIN
RST EQU P3.4 ;RESET PIN
DAIFAZHI EQU 50H ;SEND CODE VALUE TEMP
VOICENUM EQU 51H ;VOLUME
CLKNUM EQU 52H ;CLK
MOV DAIFAZHI,#0H ;INITIAL SEND VALUE 0
MOV VOICENUM,#0F0H ; VOLUME INITIAL VALUE F0H
MOV CLKNUM,#2 ; DEFAULT SEND CODE 1MS
MOV R5,#8 ; LOOP EIGHT TIMES
SETB SCL
SETB SDA
SETB RST
MAIN:
JB KEY,KEY22
CLR LED
MOV R6,#5 ; DELAY 10MS
LCALL DELAY2MS
JB KEY,KEY22 ; KEY PRESS DEBOUNCE
JNB KEY,$ ;WAIT KEY PRESSED RELEASE
SETB LED
LCALL RESET
LCALL TWO_LINE ;TWO LINE SEND CODE SUBPROGRAM
INC DAIFAZHI ;CODE VALUE ADD 1
MOV A,DAIFAZHI
CJNE A,#37,XX2 ;WHETHER VOLUME REACH MAX. VALUE 128
XX2: JC KEY22
MOV DAIFAZHI,#0H
KEY22:
JB KEY2,KEY33
CLR LED
MOV R6,#5 ;DELAY 10MS
LCALL DELAY2MS
JB KEY2,KEY33 ;KEY PRESS DEBOUNCE
JNB KEY2,$ ;WAIT KEY PRESSED RELEASE
SETB LED
LCALL RESET
LCALL VOICE ;TWO LINE SEND CODE SUBPROGRAM
INC VOICENUM ;CODE VALUE ADD 1
MOV A,VOICENUM
CJNE A,#0F8H,XX4 ;WHETHER VOLUME REACH MAX. VALUE
XX4: JC KEY33
MOV VOICENUM,#0F0H
KEY33:
JB KEY3,KEY44
CLR LED
MOV R6,#5 ;DELAY 10MS
LCALL DELAY2MS
JB KEY3,KEY44 ; KEY PRESS DEBOUNCE
JNB KEY3,$ ;WAIT KEY PRESSED RELEASE
NOP
INC CLKNUM
SETB LED
KEY44:
JB KEY4,KEY55
CLR LED
MOV R6,#5 ; DELAY 10MS
LCALL DELAY2MS
JB KEY4,KEY55 ; KEY PRESS DEBOUNCE
JNB KEY4,$ ;WAIT KEY PRESSED RELEASE
XX5:
NOP
DEC CLKNUM
MOV A,CLKNUM
CJNE A,#0H,XX5 ; SEND CODE KEEP 100US AT LEAST
MOV CLKNUM,#1
SETB LED
KEY55:
JB KEY5,MAIN
CLR LED
MOV R6,#5 ; DELAY 10MS
LCALL DELAY2MS
JB KEY5,XX6 ;WAIT KEY PRESSED RELEASE
JNB KEY5,$ ;WAIT KEY PRESSED RELEASE
LCALL RESET
MOV VOICENUM,#0F6H
LCALL VOICE
LCALL TWO_LINE
LJMP MAIN
TWO_LINE: ;///VOICE ADDRESS SEND CODE SUBPROGRAM
CLR SCL
MOV R6,#2
LCALL DELAY1MS
MOV A,#0
LOOP1:
CLR SCL
RLC A
MOV SDA,C
MOV R6,CLKNUM
LCALL DELAY50US
SETB SCL
MOV R6,CLKNUM
LCALL DELAY50US
DJNZ R5,LOOP1
MOV R5,#08H
MOV A,DAIFAZHI
LOOP2:
CLR SCL
RLC A
MOV SDA,C
MOV R6,CLKNUM
LCALL DELAY50US
SETB SCL
MOV R6,CLKNUM
LCALL DELAY50US
DJNZ R5,LOOP2
MOV R5,#08H
RET
VOICE: ;////VOLUME VALUE SEND CODE SUBPROGRAM
CLR SCL
MOV R6,#2
LCALL DELAY1MS
MOV A,#0FFH
LOOP3:
CLR SCL
RLC A
MOV SDA,C
MOV R6,CLKNUM
LCALL DELAY50US
SETB SCL
MOV R6,CLKNUM
LCALL DELAY50US
DJNZ R5,LOOP3
MOV R5,#08H
MOV A,VOICENUM
LOOP4:
CLR SCL
RLC A
MOV SDA,C
MOV R6,CLKNUM
LCALL DELAY50US
SETB SCL
MOV R6,CLKNUM
LCALL DELAY50US
DJNZ R5,LOOP4
MOV R5,#08H
RET
RESET:
CLR RST
MOV R6,#3
LCALL DELAY1MS
SETB RST
MOV R6,#130
LCALL DELAY2MS
RET
DELAY2MS: ;DELAY 2MS SUBPROGRAM, CHANGE R6 VALUE CAN CHANGE DELAY TIME
L1: MOV R7,#248
L2: NOP
NOP
NOP
NOP
NOP
NOP
DJNZ R7,L2
DJNZ R6,L1
RET
DELAY50US: ; DELAY 25UM SUBPROGRAM, CHANGE R4 VALUE CAN CHANGE DELAY TIME
L11: MOV R7,#6
L22:
NOP
NOP
DJNZ R7,L22
DJNZ R6,L11
RET
DELAY1MS: ; DELAY 1MS SUBPROGRAM, CHANGE R6 VALUE CAN CHANGE DELAY TIME
L31: MOV R7,#240
L32: NOP
NOP
DJNZ R7,L32
DJNZ R6,L31
RET
END
Реклама:
Saadov вне форума  
Непрочитано 27.02.2009, 21:39  
sanitar249
Почётный гражданин KAZUS.RU
 
Аватар для sanitar249
 
Регистрация: 19.01.2007
Сообщений: 1,747
Сказал спасибо: 2
Сказали Спасибо 46 раз(а) в 35 сообщении(ях)
sanitar249 на пути к лучшему
По умолчанию

Saadov, процессор какой?
Удачи!
__________________
Я, думаю, нужно подумать...
sanitar249 вне форума  
Непрочитано 27.02.2009, 21:40  
Saadov
Почётный гражданин KAZUS.RU
 
Аватар для Saadov
 
Регистрация: 13.11.2008
Адрес: г.Смоленск
Сообщений: 2,018
Сказал спасибо: 348
Сказали Спасибо 1,024 раз(а) в 552 сообщении(ях)
Saadov на пути к лучшему
По умолчанию

ATmega162, впринципе как я понял код особо к контроллеру не привязан
Saadov вне форума  
Непрочитано 27.02.2009, 21:48  
sanitar249
Почётный гражданин KAZUS.RU
 
Аватар для sanitar249
 
Регистрация: 19.01.2007
Сообщений: 1,747
Сказал спасибо: 2
Сказали Спасибо 46 раз(а) в 35 сообщении(ях)
sanitar249 на пути к лучшему
По умолчанию

Смысл переводить? Посмотрел, управление аудиопроцессором по квадратной шине, в принципе алгоритм понятен, могу подсказать по асму, если чего изменить нужно.
Удачи!
__________________
Я, думаю, нужно подумать...
sanitar249 вне форума  
Непрочитано 27.02.2009, 21:52  
Saadov
Почётный гражданин KAZUS.RU
 
Аватар для Saadov
 
Регистрация: 13.11.2008
Адрес: г.Смоленск
Сообщений: 2,018
Сказал спасибо: 348
Сказали Спасибо 1,024 раз(а) в 552 сообщении(ях)
Saadov на пути к лучшему
По умолчанию

Вывод индикации светодиодом можно выкинуть, функции задержки можно использовать библиотечные(пишу в CVavr).Хочется всетаки перевести его в С, чтоб удобнее было, наверно придется залезть в справочник, почитать про asm, что да какие слова обозначают...
Saadov вне форума  
Непрочитано 27.02.2009, 22:38  
sanitar249
Почётный гражданин KAZUS.RU
 
Аватар для sanitar249
 
Регистрация: 19.01.2007
Сообщений: 1,747
Сказал спасибо: 2
Сказали Спасибо 46 раз(а) в 35 сообщении(ях)
sanitar249 на пути к лучшему
По умолчанию

Сообщение от Saadov
Вывод индикации светодиодом можно выкинуть, функции задержки можно использовать библиотечные(пишу в CVavr).Хочется всетаки перевести его в С, чтоб удобнее было, наверно придется залезть в справочник, почитать про asm, что да какие слова обозначают...
Проще загнать в симулятор и посмотреть, какие подпрограммы за что отвечают и ненужные(вместе с вызовами) выкинуть. Прерывания здесь не используються-это упрощает задачу. А знание асма, очень полезительно!
ЗЫ LED, например это битовая переменная, обслуживающая бит порта(I/O) описанный с помощью EQU
Удачи!
__________________
Я, думаю, нужно подумать...
sanitar249 вне форума  
Непрочитано 28.02.2009, 03:30  
Saadov
Почётный гражданин KAZUS.RU
 
Аватар для Saadov
 
Регистрация: 13.11.2008
Адрес: г.Смоленск
Сообщений: 2,018
Сказал спасибо: 348
Сказали Спасибо 1,024 раз(а) в 552 сообщении(ях)
Saadov на пути к лучшему
По умолчанию

Прилагаю рисунок.Кто силен в asm посмотрите на код и подскажите, какая задержка реализована между сигналом сброса и началом передачи.По диаграмме эта задержка стоит в 300 мс, что крайне меня не устраивает.В тех информации не сказано какая, т.е ›300мс или ‹300мс должна быть.
Вот хотелось бы в приведенном куске кода найти истину.
Заранее спасибо.

-- Прилагается рисунок: --

Saadov вне форума  
Непрочитано 28.02.2009, 20:03  
Vov123
Вид на жительство
 
Регистрация: 03.06.2007
Сообщений: 368
Сказал спасибо: 3
Сказали Спасибо 59 раз(а) в 52 сообщении(ях)
Vov123 на пути к лучшему
По умолчанию

Я немного устарел наверно,асм 8051стал подходить на megaAVR?
Vov123 вне форума  
Непрочитано 28.02.2009, 20:29  
domowoj
Почётный гражданин KAZUS.RU
 
Аватар для domowoj
 
Регистрация: 09.12.2007
Адрес: Новосибирск
Сообщений: 1,021
Сказал спасибо: 10
Сказали Спасибо 70 раз(а) в 63 сообщении(ях)
domowoj на пути к лучшему
По умолчанию

В принципе, зная архитектуру и систему команд 51-ого,
(и имея схему устройства)
можно восстановить алгоритм работы программы.
А дальше по алгоритму написать для Меги хоть на СИ,
хоть на asm.
__________________
И на камнях растут деревья!
domowoj вне форума  
Непрочитано 28.02.2009, 21:05  
sanitar249
Почётный гражданин KAZUS.RU
 
Аватар для sanitar249
 
Регистрация: 19.01.2007
Сообщений: 1,747
Сказал спасибо: 2
Сказали Спасибо 46 раз(а) в 35 сообщении(ях)
sanitar249 на пути к лучшему
По умолчанию

Сообщение от Saadov
Прилагаю рисунок.Кто силен в asm посмотрите на код и подскажите, какая задержка реализована между сигналом сброса и началом передачи.По диаграмме эта задержка стоит в 300 мс, что крайне меня не устраивает.В тех информации не сказано какая, т.е ›300мс или ‹300мс должна быть.
Вот хотелось бы в приведенном куске кода найти истину.
Заранее спасибо.
Код:
RESET: 
CLR RST 
MOV R6,#3 
LCALL DELAY1MS 
SETB RST 
MOV R6,#130 
LCALL DELAY2MS 
RET
Подпрограмма resеt, работает так сброс RST, закидывает в R6 длит. задерхки(аргумент для DELAY1MS)
вызывает DELAY1MS( отрабат задержка), Установака шины, и вот это значение MOV R6,#130 перед
LCALL DELAY2MS будет определять паузу до вызова следующей процедуры( время цикла DELAY2MS)...
Удачи!

-- Прилагается рисунок: --

__________________
Я, думаю, нужно подумать...
sanitar249 вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по ASM для 16-битных PIC'ов realid Микроконтроллеры, АЦП, память и т.д 0 31.05.2008 15:21
ищу исходник asm для AVR - поиск устройств 1-wire chipman Микроконтроллеры, АЦП, память и т.д 3 12.11.2007 14:53
Знатоки AVR и I2C нужна помощь Vlad68 Микроконтроллеры, АЦП, память и т.д 0 23.05.2007 17:51
Help, нужно работать с 32 разр. числами в asm-е для AVR EugVor Микроконтроллеры, АЦП, память и т.д 6 16.12.2006 15:14
Для ознакомления с asm для 80с31.. киньте простые исходнички Mik Микроконтроллеры, АЦП, память и т.д 4 21.08.2003 09:20


Часовой пояс GMT +4, время: 19:59.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot