out_nibble() { asm { movwf _lcd_data ; байт данных должен быть в W bcf PORTB, 4 btfsc _lcd_data, 4 bsf PORTB, 4 bcf PORTB, 5 btfsc _lcd_data, 5 bsf PORTB, 5 bcf PORTB, 6 btfsc _lcd_data, 6 bsf PORTB, 6 bcf PORTB, 7 btfsc _lcd_data, 7 bsf PORTB, 7 } } /* вывод байта в 8-ми битном режиме (требуется только для инициализации ЖКИ) */ void wr_cmd(char cmd) { asm { bcf PORTB, 2 ; RS - down, пишем в IR movfw param00_wr_cmd call _out_nibble bsf PORTB, 3 ; E - up bcf PORTB, 3 ; E - down call _delay } } /* вывод байта команды на ЖКИ */ void wr_cmd4(char cmd) { asm { bcf PORTB, 2 ; RS - down, пишем в IR movfw param00_wr_cmd4 call _out_nibble bsf PORTB, 3 ; E - up bcf PORTB, 3 ; E - down call _delay swapf param00_wr_cmd4, W ; меняем тетрады байта call _out_nibble bsf PORTB, 3 ; E - up bcf PORTB, 3 ; E - down call _delay } } /* вывод байта данных на ЖКИ */ void wr_data4(char data) { asm { bsf PORTB, 2 ; RS
Используются технологии uCoz