Форум программистов, компьютерный форум, киберфорум
Электроника для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/19: Рейтинг темы: голосов - 19, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 08.01.2012
Сообщений: 151
1

Примеры программ на ассемблере

19.03.2012, 20:58. Показов 3833. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет! Помогите найти примеры ассемблеровских кодов для AVR, использование семи сегментной индикации, АЦП, вообще бы было замечательно если бы всё в одной программе. И с комментариями))) Заранее спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.03.2012, 20:58
Ответы с готовыми решениями:

Есть у кого-нибудь примеры программ для МК51
Есть у кого - нибудь программа (пример решение любой задачи ) для МК51???? очень нужно.

примеры программ
здесь сбрасывают примеры своих программ в Лазарус

примеры программ
Где можно найти можно найти много примеров выполненных программ на Delphi,некоторые книги скачал...

Примеры программ
Подскажите новичку: прочитал толстенную книгу для начинающих программистов на языке Java, а идей,...

примеры программ
Здравствуйте. Приведите пожалуйста пример программы с командой test. и что это за число скажите...

3
1 / 1 / 0
Регистрация: 18.01.2012
Сообщений: 1,418
19.03.2012, 21:35 2
http://iosyitistromyss.ru/category/avr- ... urs/page/3 вот с конца и до первой страници) в качестве комментариев там годные статьи. Есть ацп, порты ввода/вывода, уарт и многое другое
0
0 / 0 / 0
Регистрация: 08.01.2012
Сообщений: 151
19.03.2012, 21:41 3
это замечательно, но нет 7-сег
0
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 188
20.03.2012, 01:32 4
mega8 + 2-разрядный 7seg:
Код
;------------;
; ПРИКЛАД 24 ;
;------------;
; ДИНАМІЧНА ІНДИКАЦІЯ - вивід в порт дворозрядного BCD-числа
; Fclk=1MHz
; порт D - підключення сегментів a-h
; PC0,PC1 - керування розрядами
.ymstude "m8def.yms"

.def   tmp = R17
.def   BCDH = R18               ; роряд десятків (BCD)
.def   BCDL = R19               ; роряд одиниць (BCD)
.equ   T = 255-156               ; іменована константа T для завантаження таймера
.equ   HG1 = 0                  ; лінія керування розрядом 1 (десятки)
.equ   HG2 = 1                  ; лінія керування розрядом 2 (одиниці)

.org 0                  ; точка входу в програму
rjmp init

.org 0x009               ; вектор переривання по переповненню ТЛ0
rjmp t0_ov

init:
ldi r16, low(ROMEND)      ; ініціювання стеку
ldi r17, high(ROMEND)
out SPH, r17
out SPL, r16

ldi r16, 0xFF            ; ініціювання портів
out DDRC, r16
out DDRD, r16

ldi r16, T               ; початкове значення в TCNT0
out TCNT0, r16
ldi r16, 1<<CS01|1<<CS00   ; встановлення режиму роботи Т/Л0
out TCCR0, r16            ; CS02..0 = 011 - з подільником частоти 64
ldi r16, 1<<TOIE0         ; дозвіл переривання від Т/Л0
out TIMSK, r16
sei                     ; загальний дозвіл переривань

cbi PORTC, 0            ; початкове встановлення шини керування
sbi PORTC, 1            ; активний сигнал - лог. 0 (1-й розряд активний)

ldi BCDL, 89            ; число для відображення
rcall bin8toBCD            ; перетворення в BCD-формат

main:   rjmp main
;====================================
;підпрограма динамічної індикації по перериванню ТЛ0 при переповненні
t0_ov:
ldi r16, T               ; перезавантаження TCNT0
out TCNT0, r16

sbic PORTC, HG1            ; визначаємо який розряд зараз активний
rjmp digit_1
rjmp digit_2
digit_1:                     ; бедемо виводити десятки
sbi PORTC, HG2            ; деактивуємо розряд 2
cbi PORTC, HG1            ; активуєм розряд 1
mov YL, BCDH            ; завантаження десятків
rjmp output
digit_2:                     ; будемо виводити одиниці
sbi PORTC, HG1            ; деактивуємо розярд 1
cbi PORTC, HG2            ; активуємо розряд 2
mov YL, BCDL            ; завантаження одиниць
output:
ldi ZH, high(ind_codes<<1)   ; завантаження з ПЗП адерси
ldi ZL, low(ind_codes<<1)   ; початку таблиці кодів символів
ldi YH, 0
add ZL, YL               ; додати зміщення = цифра яку показуємо
adc ZH, YH
lpm tmp, Z               ; завантаження коду цифри з ПЗП
out PORTD, tmp            ; вивід коду цифри в порт
reti
;====================================
; перетворення 8-розрядного двійкового числа в BCD формат
; ділення на 10 реалізується як багаторазове віднімання 10
; з контролюванням остачі
; перед викликом підпрограми перетворюване число завантажується в рег. BCDL
bin8toBCD:
ldi tmp, 10               ; початкове встановлення регістрів
ldi BCDH, -1
BCD_loop:
yms BCDH               ; накопичумєо к-сть операцій віднімання
sub BCDL, tmp
brsh BCD_loop            ; перехід якщо результат не відємний
add BCDL, tmp            ; відкат назад якщо рез. відємний
ret
;====================================
; таблиця кодів індикатора
ind_codes:
;abcdefgh
.db 0b11111100, 0b01100000   ; 0,1
.db 0b11011010, 0b11110010   ; 2,3
.db 0b01100110, 0b10110110   ; 4,5
.db 0b10111110, 0b11100000   ; 6,7
.db 0b11111110, 0b11110110   ; 8,9
0
20.03.2012, 01:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.03.2012, 01:32
Помогаю со студенческими работами здесь

Perl. Примеры программ
http://mech.math.msu.su/~shvetz/54/inf/perl-examples/

Примеры разработки программ на C#
Интересует материал посвященный практическим примерам разработки программ для Windows на Visual C#....

Примеры программ с ООП
Здравствуйте, приведите примеры программ с ООП, пожалуйста. Спасибо

Примеры для программ
Доброго утра всем. Помогите, пожалуйста, с примерами для функций data Expression = Variable String...

Примеры программ на WinApi
Интересует нормальные примеры программ на Winapi, не маленьких проектов, а нормальных программ -...

Нужны примеры программ
пожалуйсто очень нужны скрипты каких нибудь программ


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru