МИКРОКОНТРОЛЛЕРЫ
Main
goto
Main
; Проверка готовности ЖКИ к вводу данных
LcdBusy
.★ ★ H r**************************************************************
b s f
PORTA, 1; Test
LED 1 on
b s f
STATUS, RP0
; make P o rt
В4.
.7 in p u t
WAIT
movlw
B' 11110000*
top
movlw
.110
; таймер (1ms)
io rw f
TRISB, f
movwf
loops2
b c f
STATUS, RP0
tcp2
nop
; Задержка
BusyLoop
nop
b c f
PORTC, LcdRs
nop
b s f
PORTC, LcdRw
; Чтение
nop
b s f
PORTC, LcdE
nop
nop
nop
movf
PORTD, w
decfsz
loops2, F
; Внутренние циклы
movwf
LcdStatus
goto
top2
; Если нет, то
b c f
PORTC, LcdE
; переход на top2
nop
!
b s f
PORTC, LcdE
; Enable
decfsz
loops, F
;
Внешние циклы
nop
goto
top
; Если нет, то
b c f
PORTC, LcdE
; переход на top
b tfs c
LcdStatus, 7
; Тест b i t 7
re tlw
0
; Да, возврат из
goto
BusyLoop
; подпрограммы задержки
b c f
PORTC, LcdRw
b s f
STATUS, RP0
; Установка P o rt B4.
.★ ******
f
***************************************************
; выход
movlw
B* 00001111'
і
Инициализация
3KKH
andwf
TRISB, f
b c f
STATUS, RP0
In itLC D
b c f
PORTA, 1; Тест
LED 1 o f f
movlw
D
255'
; 250 ms Задержка
re tu rn
movwf
loops
c a ll
WAIT
; Ввод в ЖКИ 1- го байта управляющих данных
O utLcdControl
movlw
B* 00110000'
; 1
movwf
LcdDaten
movwf
PORTB
c a ll
LcdBusy
b s f
PORTB, LcdE
movf
LcdDaten, w
nop
andlw
H' F 0 ’
b c f
PORTB, LcdE
movwf
PORTD
; H i- Запись старшей
; части
movlw
B
50'
; 50 ms Задержка
b s f
PORTC, LcdE
movwf
loops
nop
c a ll
WAIT
b c f
PORTC, LcdE
; D isa b le LcdBus
swapf
LcdDaten, w
movlw
B' 00110000’
; 2
andlw
H' F0'
c a ll
C o n tro l8 B it
movwf
PORTD
; Lo- Запись младшей
movlw
B* 00110000'
; 3
; части
c a ll
C o n tro l8 B it
b s f
PORTC, LcdE
movlw
B' 00100000'
; 4
nop
c a ll
C o n tro l8 B it
b c f
PORTC, LcdE
; D isab le LcdBus
re tu rn
movlw
B' 00000001*
; Очистка содержимого
; дисплея, сдвиг в состояние 0
; Ввод в ЖКИ 1- го байта данных
c a ll
O utLcdControl
OutLcdDaten
movlw
В' 00101000'
;
4 - b it
2-строки 5x8
b s f
PORTA, 2 ; Test
LED 2 on
c a ll
OutLcdControl
movwf
LcdDaten
movlw
В' 00001000'
; Выключение ЖКИ
c a ll
LcdBusy
c a ll
OutLcdControl
movf
LcdDaten, w
movlw
В' 00000110'
; Инкрементирование,
andlw
H' F0'
; запрещение сдвига дисплея
movwf
PORTD
; H i- Запись старшей
c a ll
O utLcdControl
; части
movlw
В' 00000011 ■
; Установка счетчиков
b s f
PORTC, LcdRs
; Данные
; адреса и свига дисплея в состояние 0
b s f
PORTC, LcdE
; Enable LcdBus
c a ll
O utLcdControl
nop
movlw
В
00001111'
; Включение ЖКИ
b c f
PORTC, LcdE
; D isa b le LcdBus
c a ll
O utLcdControl
swapf
LcdDaten, w
re tu rn
andlw
H' F0'
movwf
PORTD
; Lo - Запись младшей
; 8-битовый управляющий байт переноса
; части
C o n tro l8 B it
b s f
PORTC, LcdRs
; Данные
movwf
PORTB
b s f
PORTC, LcdE
b sf
PORTB, LcdE
nop
nop
b c f
PORTC, LcdE
; D isab le LcdBus
b cf
PORTB, LcdE
b c f
PORTC, LcdRs
;
movlw
ІУ 10'
b c f
PORTA, 2 ; Test
LED 2 on
movwf
loops
re tu rn
c a ll
WAIT
re tu rn
end.
1/2003
предыдущая страница 19 Радиолюбитель 2003-01 читать онлайн следующая страница 21 Радиолюбитель 2003-01 читать онлайн Домой Выключить/включить текст