Для IP 3.90.207.89 доступно:
Главная страница

Новости сайта

Об авторе

Схемы

Статьи

Микроэлектроника

Микросхемы

Linux

Гостевая книга

Письмо админу

Реклама


Полезные процедуры на ASM-51.

Здесь я выкладываю разные мелкие процедуры для микроконтроллера 8051 и его аналогов. Если у вас есть свои процедуры, которые можно использовать в различных программах, присылайте, и я выложу их со ссылкой на автора, конечно на условиях свободного распостранения.

1. Вывод шеснадцатиричных чисел на LCD:

;--------------HEX to Display-----
hex:	mov	A,R4		; В R4 выводимые данные
	swap	A		; Сначала обрабатываем
	anl	A,#0Fh		;       старшие 4 бита
	cjne	A,#0Ah,h1	; Определяем, как пишется
h1:	jc	h2		;     число (буквой или
   	add	A,#07h		;         цифрой)
h2:	add	A,#30h		;
   	mov	DPTR,#2001h	; DPTR указывает регистр
    				; данных LCD
   	movx	@DPTR,A		; Вывод символа
	mov	A,R4		; Теперь обрабатываем
   	anl	A,#0Fh      	; Младшие 4 бита
   	cjne	A,#0Ah,h3	;  Так же проверяем
h3:	jc	h4		;   цифру или букву
   	add	A,#07h      	; и задаём нужное
h4:	add	A,#30h      	;  значение A
   	mov	DPTR,#2001h	; DPTR указывает регистр
    				; данных LCD
   	movx	@DPTR,A		; Вывод символа
   	ret			; Возврат к программе

Эта процедура выводит на экран значение байта в виде шестнадцатиричных чисел. Сначала берём из регистра предварительно записанное число до вызова процедуры и обрабатываем так, чтобы остались только десятки. Далее проверяем, выражается число цифрой (от 0 до 9) или буквой (от A до F). Если выражается цифрой, то происходит переход на строку h2, и к числу добавляется 30h (для того, чтобы таким образом сгенерировать код ASCII символа одной из цифер). Если же число выражается буквой, то сначала добавляем числу 07h, так как в таблице ASCII буквы следуют не сразу за цифрами, а через 7 символов. Затем мы пишем готовый код ASCII из регистра А в регистр данных LCD-модуля. (кто не знаком с такими, прочитайте эти статьи).
После этого нужно заново считать из регистра R4 исходное число (так как мы его малость изменили) в регистр A и проделать с ним те же действия, за исключением смены мест младших и старших 4 бит (командой SWAP A), и так же вывести на LCD-модуль.

Продолжение следует...

К списку статей

ilus

Copyright. 2002-2019 Автор - Deryabin Ilya