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

 
 
 
Reply to this topicStart new topic
> Прога на асс для меги128, Прога на асс для меги128
bigen
сообщение Jul 8 2004, 06:57
Сообщение #1





Группа: Свой
Сообщений: 12
Регистрация: 21-06-04
Пользователь №: 72



Кто поможет разобраться с куском проги на асс для меги128? Нужен Ваш адрес - пришлю.(10К)
Go to the top of the page
 
+Quote Post
nml
сообщение Jul 8 2004, 09:08
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 86
Регистрация: 13-06-04
Из: Minsk
Пользователь №: 29



Цитата(bigen @ Jul 8 2004, 09:57 AM)
Кто поможет разобраться с куском проги на асс для меги128? Нужен Ваш адрес - пришлю.(10К)

nml@tut.by
а пиво как слать будешь?
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jul 8 2004, 13:23
Сообщение #3


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Засылайте. Разберёмся.
Go to the top of the page
 
+Quote Post
bigen
сообщение Jul 8 2004, 15:12
Сообщение #4





Группа: Свой
Сообщений: 12
Регистрация: 21-06-04
Пользователь №: 72



Цитата(IgorKossak @ Jul 8 2004, 04:23 PM)
Засылайте. Разберёмся.

Ситуация такая: на порт А подключены дисплей лсд и мл. разряды устройства IDE, пытаюсь прочитать регистр STATUS из IDE и отбразить "его"(я просто к ниблам данных прибавляю 0Х30) на дисплее. Вместо 00(IDE не подключен) получаю на экране 0х35 - это остаток от цифры 55, которую отображаю в начале.
Создается такое впечатление, что я неправильно настраиваю направление передачи и читаю защелку.
Где-то есть ошибки.
С AVRами работаю впервые.

Вставлять файл не знаю как, так что прога прямо здесь.

Заранее благодарен, Игорь

.INCLUDE "m128def.inc"

.CSEG

.ORG 000
BEGIN: JMP START

.ORG 0x100

;############## НАСТРОЙКА ATMEGA

START: LDI YL,0xFF ;СТЕК - 0FFF
LDI YH,0x0F
OUT SPL,YL
OUT SPH,YH

; НАСТРОЙКА ПОРТОВ F,G НА ВЫВОД
LDI R18,0xFF
NOP
STS DDRF,R18
LDI R18,0x1F
NOP
STS DDRG,R18
LDI R16,0x20
STS PORTF,R16
LDI R16,0xF
STS PORTG,R16
;############# НАСТРОЙКА ДИСПЛЕЯ

LDI R18,0xFF
NOP
OUT DDRA,R18 ;порт А на вывод
OUT DDRD,R18 ;ПРОРТ D НА ВЫВОД
CBI PORTD,PIND5 ;RS=0
CBI PORTD,PIND6 ;RW=0
SBI PORTD,PIND7 ;E=1
CALL DEL41
CALL DEL41
CALL DEL41

LDI R18,0x38
OUT PORTA,R18
CALL COMMB
CALL DEL41

LDI R18,0x38
OUT PORTA,R18 ;2 СТРОКИ, МАТРИЦА 5Х7 ТОЧЕК
CALL COMMB
CALL DEL100
LDI R18,0x0C
OUT PORTA,R18 ;ВКЛЮЧЕНИЕ ДИСПЛЕЯ
CALL COMMB
LDI R18,0x01
OUT PORTA,R18 ;ОЧИСТКА ДИСПЛЕЯ
CALL COMMB

LDI R18,0x80 ;ЗАПИСЬ В ПЕРВУЮ СТРОКУ
OUT PORTA,R18
CALL COMMB
; JMP T1

LDI R16,0x55

BB:
MOV R15,R16
ANDI R16,0xF0
SWAP R16
LDI R17,0x30
ADD R16,R17
MOV R10,R16
MOV R16,R15
ANDI R16,0x0F
LDI R17,0x30
ADD R16,R17
MOV R12,R16
MOV R16,R10
CALL M
MOV R16,R12
CALL M
JMP T1
M: OUT PORTA,R16
CALL DATB
CALL DEL41
RET

T1:
LDI R16,0x37
CALL RUTR
;BB:
JMP BB
;
RUTR:
STS PORTF,R16
LDI R18,0
NOP
OUT DDRC,R18
LDI R16,0x0B
STS PORTG,R16; ИМПУЛЬC RD
NOP
NOP
LDI R18,0
NOP
OUT DDRA,R18
IN R16,PINA
LDI R17,0xF
STS PORTG,R17
LDI R17,0xFF
STS PORTF,R17
NOP
OUT DDRA,R17
OUT DDRC,R17
RET

;JMP T1

COMMB: CBI PORTD,PIND5 ;RS
JMP BDEL
DATB: SBI PORTD,PIND5 ;RS
NOP
NOP
NOP
NOP
BDEL: CBI PORTD,PIND6 ;RW
CBI PORTD,PIND7 ;E
NOP
NOP
NOP
NOP
SBI PORTD,PIND7 ;E
NOP

;ПРОВЕРКА НА ЗАНЯТОСТЬ ДИСПЛЕЯ
; RET ;#########
LDI R18,0x00
NOP
OUT DDRA,R18 ;PORTA НА ВВОД
SBI PORTD,PIND6 ;RW=1
CBI PORTD,PIND5 ;RS=0
CBI PORTD,PIND7 ;E=0
NOP
NOP
NOP
SBI PORTD,PIND7 ;E=1
BLOOP: NOP
IN R17,PINA
ANDI R17,0x80
CPI R17,0x80
BREQ BLOOP
;ДВОЙНАЯ ПРОВЕРКА
TWICE: IN R17,PINA
ANDI R17,0x80
CPI R17,0x80
BREQ TWICE
CBI PORTD,PIND6 ;RW=0
LDI R18,0xFF
NOP
OUT DDRA,R18

RET

DEL41: ; ПП ЗАДЕРЖКИ 4,1mS
LDI R22,0x28
LDI R23,0xFF
M1: DEC R23
CPI R23,00
BRNE M1
DEC R22
CPI R22,0
BRNE M1
RET

DEL100: ;ПП ЗАДЕРЖКИ 100uS
LDI R22,0xF8
M2: DEC R22
CPI R22,0
BRNE M2
RET
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 09:39
Рейтинг@Mail.ru


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