ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
22 ноября
416284 Топик полностью
_basile (08.06.2013 22:32, просмотров: 198) ответил mazur на Как мне правильно сделать? Выдает ошибку при компилировании. Ругается на LCD_DATA.
Вы бы хоть книжку для начала какую - нибудь почитали. Впрочем, Вы что, на асме никогда функциями не пользовались ? void lcd_send_byte (u08 LCD_DATA);// для начала объявляем функцию //впрочем, если она описана ранее, чем вызывается, можно этого не делать void lcd_send_byte (u08 LCD_DATA) { DATA_DDR = (DATA_DDR | 0xF0); setb(CMD_PORT, EN); DATA_PORT = (DATA_PORT & 0x0F) | (LCD_DATA & 0xF0); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); clrb(CMD_PORT, EN); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); setb(CMD_PORT, EN); DATA_PORT = (DATA_PORT & 0x0F) | (LCD_DATA << 4); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); clrb(CMD_PORT, EN); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); } //======================================================================= void lcd_send_com (u08 LCD_DATA) { clrb(CMD_PORT, RS); lcd_send_byte (LCD_DATA); // Это то, чего Вам не хватало для полного //счастья lcd_io_in(); } //======================================================================== //======================================================================== void Init_LCD (void) { _delay_ms(20); lcd_send_com_nibble(0x30); _delay_ms(5); lcd_send_com_nibble(0x30); _delay_ms(5); lcd_send_com_nibble(0x30); _delay_ms(5); lcd_send_com_nibble(0x20); _delay_us(50); lcd_send_com_nibble(0x28); _delay_us(50); lcd_send_com(0x01); _delay_ms(5); lcd_send_com(0x06); _delay_us(50); lcd_send_com(0x0C); _delay_us(50); }