Програмеры


гильдия Столичные Шахтеры (Элита)[118282] гильдия Охотники Илдиора (Новичок)[0] гильдия Столичные Кузнецы (Грандмастер)[19859] Гундор Информация
Назад к темам раздела.
2011-06-30 12:49:28 гильдия Столичные Шахтеры (Элита)[118282] гильдия Охотники Илдиора (Новичок)[0] гильдия Столичные Кузнецы (Грандмастер)[19859] Гундор Информация
Может кто-нибудь,простенькую прогу написанную на ассемблере перевести на С ?(
 
2011-06-30 12:51:43 гильдия Столичные Шахтеры (Мастер)[2985] гильдия Мудрецы (Мастер)[5286] Темон Информация
Напиши сюда
 
2011-06-30 12:56:58 гильдия Столичные Шахтеры (Элита)[118282] гильдия Охотники Илдиора (Новичок)[0] гильдия Столичные Кузнецы (Грандмастер)[19859] Гундор Информация
;**************************************************
; ПРЕОБРАЗОВАТЕЛЬ КОДА
;**************************************************
;
;тактовая частота 1 МГц
;вход разрешения приема - РА0
;вход данных - РА1
;вход синхронизации - PА2
;выход данных- ПОРТ В
;выход синхронизации - РА3
;
.include "m103def.inc" ;присоединение файла описаний
.list ;включение листинга
;определение переменных
.def temp=r16
.def data=r17
.def count=r18
.def pausa=r19
;начало программного кода
.cseg ;выбираем сегмент программного кода
.org 0 ;установка текущего адреса на ноль
;определение векторов прерываний
jmp init ;переход к программе инициализации
reti ;прерывание по изменению на INT0
reti ;прерывание по изменению на INT1
reti ;прерывание по изменению на INT2
reti ;прерывание по изменению на INT3
reti ;прерывание по изменению на INT4
reti ;прерывание по изменению на INT5
reti ;прерывание по изменению на INT6
reti ;прерывание по изменению на INT7
reti ;таймер Т2, совпадение
reti ;таймер Т2, переполнение
reti ;таймер Т1, захват
reti ;таймер Т1, совпадение, канал А
reti ;таймер Т1, совпадение, канал В
reti ;таймер Т1, переполнение
reti ;таймер Т0, совпадение
reti ;таймер Т0, переполнение
reti ;SPI, передача завершена
reti ;UART, прием завершен
reti ;UART, буфер данных пуст
reti ;UART, передача завершена
reti ;АЦП, преобразование завершено
reti ;прерывание по готовности EEPROM
reti ;срабатывание аналогового компаратора
;программа начальной инициализации
init:
ldi temp,RAMEND
out SPH,temp
ldi temp,RAMEND
out SPL,temp ;указание вершины стека
ldi temp,0x10
out WDTCR,temp ;отключаем сторожевой таймер
ldi temp,0x08
out DDRA,temp ;все выводы порта А кроме РА3 - входы
ldi temp,0xFF
out DDRB,temp ;все выводы порта В - выходы
cli ;глобальный запрет всех прерываний
;
;**************************************************
; ГЛАВНЫЙ ЦИКЛ
;**************************************************
;
main_loop:
;прием байта данных
sbis PORTA,0 ;бит РA0 установлен?
jmp main_loop ;нет
;да
clr temp ;обнуляем счетчик бит
ldi count,0x09 ;загружаем число итераций - 9
main1:
inc temp ;инкрементируем счетчик бит
cpse temp,count ;temp=8?
jmp main2 ;нет
;да
;передача байта данных
out PORTB,data ;выводим байт данных в порт В
sbi PORTA,3 ;генерируем сигнал синхронизации
nop ;пауза
nop ;длительностью
nop ;4 мкс
nop
cbi PORTA,3 ;завершаем генерацию сигнала синхронизации
jmp main_loop ;переходим к приему нового байта
main2:
sbis PORTA,2 ;бит РA2 установлен?
jmp main2 ;нет
;да
sbis PORTA,1 ;бит РA1 установлен?
jmp main3 ;нет
;да
sec ;устанавливаем флаг переноса
jmp main4
main3:
clc ;сбрасываем флаг переноса
main4:
rol data ;сдвиг data влево через перенос
call pausa ;вызов подпрограммы задержки 1 мс
jmp main1 ;прием очередного байта
;
;
;**************************************************
; ПОДПРОГРАММА ВРЕМЕННОЙ ЗАДЕРЖКИ 1 мс
;**************************************************
;
pausa:
ldi pausa,0x01
out TIFR,pausa ;сбрасываем флаг переполнения Т0
ldi pausa,0x82
out TCNT0,pausa ;загружаем в таймер Т0 число 130
pausa1:
in pausa,TIFR
sbrs pausa,0 ;бит TOV0 установлен?
jmp pausa1 ;нет
;да
ret ;выход из подпрограммы
;
;**************************************************
 
2011-06-30 12:57:15 гильдия Столичные Шахтеры (Элита)[118282] гильдия Охотники Илдиора (Новичок)[0] гильдия Столичные Кузнецы (Грандмастер)[19859] Гундор Информация
пожалуйста:(((((
 
2011-06-30 13:04:23 гильдия Столичные Шахтеры (Мастер)[2985] гильдия Мудрецы (Мастер)[5286] Темон Информация
Крутяк...
 
2011-06-30 13:06:15 гильдия Столичные Шахтеры (Элита)[118282] гильдия Охотники Илдиора (Новичок)[0] гильдия Столичные Кузнецы (Грандмастер)[19859] Гундор Информация
Темон
Не сможешь?:(((