ВУЗ:
Составители:
57
ldi XH, 0
DEC_1000:
inc XH
subi PARAM, 10
brpl DEC_1000
dec XH
tst PARAM
brmi BIN_TO_TEXT_NOT_10
inc XH
ldi XL, 0
rjmp BIN_TO_TEXT_DONE
BIN_TO_TEXT_NOT_10:
ldi TEMP, 10
add PARAM, TEMP
mov XL, PARAM
BIN_TO_TEXT_DONE:
ldi TEMP, 0x30
mov PARAM, XH
add PARAM, TEMP
rcall LCD_DATA
mov PARAM, XL
add PARAM, TEMP
rcall LCD_DATA
pop PARAM
ret
; ********************************************
; LCD Driving Library example
; Display setup for 4 bits interface
;
LCD_SETUP:
ldi TEMP, 10 ; Wait about 20msec after powerup
SET1: ; LCD is a quite slow,
rcall WAIT_2M ; mind delays !
dec TEMP ;
brne SET1 ;
ldi TEMP, 0b00101000 ; Set 4 bit interface (but we are
out PORTA, TEMP ; still in 8 bits!)
nop
nop ; Data write cycle must be > 1 ms
cbi PORTA, 3 ; OE low to clock in data
rcall WAIT_2M ;
58
; ******* !! From now on, interface is 4 bits !! ***
ldi PARAM, 0b00101000 ; Send again to catch the bit N
rcall LCD_CMD ; Display is 2 lines, so N = 1
ldi PARAM, 0b00001000 ; Display off, cursor off, and blink off
rcall LCD_CMD
ldi PARAM, 0b00000001 ; Display clear
rcall LCD_CMD
rcall WAIT_2M ; Wait 2 sec after clear
ldi PARAM, 0b00000110 ; Increment RAM, dont shift display
rcall LCD_CMD
ldi PARAM, 0b00001100 ; Display on, cursor off / blink off
rcall LCD_CMD
ret
; **************************
;
; 2.3 ms delay with 1 MHz clock.
;
WAIT_1SEC:
clr DEL2
dec DEL2 ; Start at 0xFF
W1_2:
dec DELAY2
brne W1_2
pop TEMP
ret
WAIT_2M:
push TEMP
ldi TEMP, 3
mov DELAY1, TEMP
W2_1:
clr DELAY2
dec DELAY2 ; Start at 0xFF
W2_2:
dec DELAY2
brne W2_2
dec DELAY1
brne W2_1
Страницы
- « первая
- ‹ предыдущая
- …
- 27
- 28
- 29
- 30
- 31
- …
- следующая ›
- последняя »