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

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

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

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

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

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

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

 
Опции темы
Непрочитано 06.11.2008, 08:53  
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию

[quote="ua_gruzin"]Кодим "на лету"
[quote="ua_gruzin"]

Это ж пипец.... ну хто ВАС так учил?...

на лету кодим так!!!!..
код за 11 команд + 2 перехода при вызове и возврате.

[code]
recoderus:
cpi temp,$A0
brcs endrecoderus
ldi zl,low(tabrecoderus*2)
ldi zh,high(tabrecoderus*2)
subi temp,$A0
add zl,temp
brcc pc+2
inc zh
lpm
mov temp,tem
endrecoderus: ret

tabrecoderus: .db $00,$00 ;A0h
.db $00,$00
.db $00,$00
.db $00,$00
.db $A3,$00 ;Ё
.db $00,$00
.db $00,$00
.db $00,$00
.db $00,$00
.db $00,$00
.db $00,$00
.db $00,$00
.db $B5,$00 ;ё
.db $00,$00
.db $00,$00
.db $00,$00
.DB "A",$A0 ;АБ
.DB "B",$A1 ;ВГ
.DB $E0,"E" ;ДЕ
.DB $A3,$A4 ;ЖЗ
.db $A5,$A6 ;ИЙ
.db "K",$A7 ;КЛ
.db "M","H" ;МН
.db "O",$A8 ;ОП
.db "P","C" ;РС
.db "T",$A9 ;ТУ
.db $AA,"X" ;ФХ
.db $E1,$AB ;ЦЧ
.db $AC,$E2 ;ШЩ
.db $AD,$AE ;ЪЫ
.db $AD,$AF ;ЬЭ
.db $B0,$B1 ;ЮЯ
.db "a",$B2 ;аб
.db $B3,$B4 ;вг
.db $E3,"e" ;де
.db $B6,$B7 ;жз
.db $B8,$B9 ;ий
.db $BA,$BB ;кл
.db $BC,$BD ;мн
.db "o",$BE ;оп
.db "p","c" ;рс
.db $BF,"y" ;ту
.db $E4,"x" ;фх
.db $E5,$C0 ;цч
.db $C1,$E6 ;шщ
.db $C2,$C3 ;ъы
.db $C4,$C5 ;ьэ
.db $C6,$C7 ;юя
[code]
Реклама:
picavr вне форума  
Непрочитано 09.11.2008, 11:18  
ua_gruzin
Вид на жительство
 
Регистрация: 11.12.2006
Сообщений: 317
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 11 сообщении(ях)
ua_gruzin на пути к лучшему
По умолчанию

Да ну...
У меня щас явно проще.


Код:
;*************************************************  ********************
;   перекодируем с WIN в кодировку индикатора
;*************************************************  ********************
convert_from_win_to_44780:
		push	ZL
		push	ZH
		;-----------------------------------
		cpi		TEMP_A, 192
		brlo	shift_from_win_to_44780_exit

			subi	TEMP_A, 192
			load_p Z,(2*LCD_Sybols)
			add_to_word Z, TEMP_A
			lpm		TEMP_A, Z
		;-----------------------------------
		shift_from_win_to_44780_exit:
		pop		ZH
		pop		ZL
		ret
и
Код:
LCD_Sybols:	   ;192
		.db		65,160,66,161,224,69,163,164,165,166,75,167,77,72,
79,168,80,67,84,169,228,88,225,171,172,226,173,174  ,
98,175,176,177,97,178,179,180,227,101,182,183,184,  185,
186,187,188,189,111,190,112,99,191,121,228,120,229  ,192,
193,230,194,195,196,197,198,199
Сколько тактов занимает... не щитал, но незаметно на 8Мгц вообще.

P.S. Код всегда можна написать лучше. Главное - идея
ua_gruzin вне форума  
Непрочитано 10.11.2008, 03:14  
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию

Сообщение от ua_gruzin
Да ну...
У меня щас явно проще.
практически одно и то же...
Отличия.
1) вместо brcc использовано brlo

2) команда грузит в Z регистр адрес таблицы (2 байта)
load_p Z,(2*LCD_Sybols)

такой асемблерной нет,и я так думаю, такая команда компилится в две асемблерных
ldi zl,low(2*LCD_Sybols)
ldi zh,high(2*LCD_Sybols)

3) команда добавляет содержимое регистра к паре регистров ZL,ZH.
add_to_word Z, TEMP_A

такой асемблерной нет. и я так думаю, такая команда компилится в три асемблерных
add zl,temp
brcc pc+2
inc zh

так что длина кода и работа идентичные. Только длина текста в програме меньше из за использования специфичных команд, которые компилируются в несколько кодовых.
picavr вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна сводная таблица PICов tim18 Микроконтроллеры, АЦП, память и т.д 4 25.03.2008 05:39
LCD на контроллере HD44780 yga Микроконтроллеры, АЦП, память и т.д 8 03.12.2007 16:50
PIC16F84A и LCD HD44780 I_0 Микроконтроллеры, АЦП, память и т.д 16 20.09.2006 12:06
вОПРРОС ПРО HD44780 sergunrussia Микроконтроллеры, АЦП, память и т.д 7 26.08.2006 00:25
инициализация KS0066U (или HD44780). xelos Микроконтроллеры, АЦП, память и т.д 9 21.11.2004 13:06


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


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