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

 
 
> Начинающий Stage-1.01, ASM и разные Вопросы :)
Skovorodka[TEFAL...
сообщение Jul 30 2005, 08:07
Сообщение #1





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



Здесь я НЕ буду задавать вопросы типа AVR или PIC а может MCS-51 «С чего начать? Где скачать? Какие сайты для начинающих?» «ASM VS C++» «Где купить?» и тд.

Изучаю работу Микроконтроллеров чисто для себя, так сказать для души. Хочу писать на Assembler.
Так значит, что я имею:
INFO:
Книга: Evstifeev.Atmel.AVR.Tiny_Mega.Family
DataSheet’s: AT90S8535.Full, ATmega8535.Full, Replacing AT90S8535 by ATmega8535
+ разные мелкие доки.
Сразу скажу с английским я так сказать не очень: В школе и в универе было «Отлично», при прочтении DataSheet’ов понимается процентов так 15-20%, в основном по картинкам и по смыслу догоняетя что к чему, (надобны как-нибудь электронный словарь достать lingvo например wink.gif)
Softaware:
AVR Studio 4.11 SP3
Vmlab 3.11 free
AvrReal
PonyProg
Hardware:
ATmega8525, Кр1533ап5, АЛС318, 4MHz & 8MHz кварцы.

Я думаю, что этого достаточно для начала.

Сразу же первый вопрос: так как сначала я думал учиться на примере AT90S8535, заказал я его в магазине, пока ждал когда привезут (обещали 3 недели) узнал что этот МК сняли с производства теперь вместо него ATmega8535, через 2 месяца!!! привезли Atmegu За 185 р. Пришлось брать.
Вопрос: можно ли прошивать (проги сложности типа: сложить два числа и выдать на Семисегментный индикатор результат) написаны для AT90 на Megu ? я так понял изменения коснулись управлением ADC, timer, USART, и чего там еще. Если непокатит то что нужно изменить?


--------------------
Данная эксклюзия является подмножеством астрациональных супремативных
монотенных федоний кадонарного экстрафазория
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Skovorodka[TEFAL...
сообщение Jul 30 2005, 08:09
Сообщение #2





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



Значит стоит такая задача.
1. Организовать сложение двух чисел и индикацию младшей тетрады результата на семисегментном индикаторе HG2. На блоке управления располагаются кнопки и тумблеры. Кнопки SB2 и SB4 представляют собой младшие разряды первого слагаемого, т.е. возможен набор чисел от 0 до 3. Тумблеры SA4, SA5 представляют собой соответственно 3-й и 4-й разряды 2-го слагаемого, т.е. возможен набор десятичных чисел 0,4,8,12. На индикаторе высвечивать результат в шестнадцатеричном формате, т.е. 0...F.

SB2: PINA,1 PORTC-на индикатор.
SB4: PINA,3 PORTb,3 – транзюк на индикатор

SA4:PIND,2
SA5:PIND,3

Вот Source: Скелет программы скопирован с примера, всю математику и вывод на индикатор я понял (сидел в тетрадке изображал из себя МК wink.gif не понял некоторые куски кода только
.include "8535def.inc"
;---------------
.dseg
.equ cod0=$64 ; Выделяю ячейки под коды семисегментов,
.equ cod1=$65 ; а почему именно с этого адреса? И до какого
.equ cod2=$66 ; можно?
………………
.equ codE=$72
.equ codF=$73 :
;---------------
.cseg ; А вот это я не понял в упор как оно работает
.org 0 ; Думаю что-то связанно с сбросом мк
rjmp reset ;?
.org $30 ;?
;---------------
reset:
ldi r16,$00 ;?
out sph,r16 ;?
ldi r16,$ff ;?
out spl,r16 ;?
;---------------
ldi zl,$64 ;?
ldi zh,$00 ;?

;Nastroika portov!
ldi r16,$00 ; А вот интересно неиспользуемые выводы индикатора как лучше определить как входы или выходы что то все по разному говорят?
out ddra,r16

ldi r16,$c
out ddrb,r16

ldi r16,$ff
out ddrc,r16

ldi r16,$00
out ddrd,r16
;-----------------]
Sbi portb,3 ;napruga na anod
;-----------------]

;Seven segmet Code
ldi r16,$3f ; Загоняю коды в память
sts cod0,r16

ldi r16,$06
sts cod1,r16

………………
ldi r16,$71
sts codF,r16
;---------------

m1: Организую вечный цикл
in r17,pina ;считываю состояние кнопок
in r18,pind ;считываю состояние тумблеров


add r20,r17 ; Собсно складываю эти два числа
add r20,r18
;------------------
push zl ; Во а это крутая крутотень, когда я понял
add zl,r20 ;как оно работает чуть со стула не упал
ld r20,z ; блин круто получилось
pop zl
out portc,r20 ;Выводим результат на индикатор
ldi r20,$00 ;Очищаем регистр где был результат
Rjmp m1 ;Вечный цикл


Прога работает, тока считает неправильно.
«Кнопки SB2 и SB4 представляют собой младшие разряды первого слагаемого» А у меня по схеме они управляют Первым и Третьим битом то есть получаются цифры 0,2,8,10 Блин часа 2 не мог понять в чем фишка
Есть 0000Х0Х0 =>
Надо 000000XX
Как биты сдвинуть? я что то ваще не понял

Приму любую помощь Заранее благодарен всем кто откликнется

PS У мня еще много вопросов smile.gif по мере изучения буду спрашивать здесь надеюсь есть добрые люди помогут !


--------------------
Данная эксклюзия является подмножеством астрациональных супремативных
монотенных федоний кадонарного экстрафазория
Go to the top of the page
 
+Quote Post



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

 


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


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