Exemplo n.º 1
0
void hd44780fw_init(struct hd44780fw_conf* conf) {
	/* Structure initialization */
	conf->half_chars = conf->total_chars / 2;
	conf->blink_en = HD44780FW_DEF_BLINK_ST;
	conf->cur_en = HD44780FW_DEF_CUR_ST;
	conf->last_index = 0;
	conf->last_bc_index = 0;

	/* Device initialization: */
	hd44780_l_init(conf->low_conf, conf->lines, conf->font,
		HD44780_L_EMS_ID_INC, HD44780_L_EMS_S_OFF);

	/* Turn on display and set blink/cursor according to default values: */
	hd44780_l_disp(conf->low_conf, HD44780_L_DISP_D_ON,
		HD44780FW_DEF_CUR_ST, HD44780FW_DEF_BLINK_ST);
}
Exemplo n.º 2
0
void setupLCD(){
	// setting I/O configuration for pins
	DDRA = 0xFF; //data outputs to the LCD
	DDRB = (1 << DDB2)|(1 << DDB1)|(1 << DDB0); //rs, rw and en are outputs
	// setting pin numbers and which ports on the LCD the ports on the AVR are hooked up to
	low_conf.rs_i = 2;
	low_conf.rw_i = 1;
	low_conf.en_i = 0;
	
	low_conf.db7_i = 7;
	low_conf.db6_i = 6;
	low_conf.db5_i = 5;
	low_conf.db4_i = 4;
	low_conf.db3_i = 3;
	low_conf.db2_i = 2;
	low_conf.db1_i = 1;
	low_conf.db0_i = 0;
	low_conf.rs_port = &PORTB;
	low_conf.rw_port = &PORTB;
	low_conf.en_port = &PORTB;
	low_conf.db7_port = &PORTA;
	low_conf.db6_port = &PORTA;
	low_conf.db5_port = &PORTA;
	low_conf.db4_port = &PORTA;
	low_conf.db3_port = &PORTA;
	low_conf.db2_port = &PORTA;
	low_conf.db1_port = &PORTA;
	low_conf.db0_port = &PORTA;
	low_conf.line1_base_addr = 0x00;
	low_conf.line2_base_addr = 0x40;
	low_conf.dl = HD44780_L_FS_DL_8BIT;
	hd44780_l_init(&low_conf, HD44780_L_FS_N_DUAL, HD44780_L_FS_F_58, HD44780_L_EMS_ID_INC, HD44780_L_EMS_S_OFF);
	hd44780_l_disp(&low_conf, HD44780_L_DISP_D_ON, HD44780_L_DISP_C_OFF, HD44780_L_DISP_B_OFF);
	UCSR0B = (1<<RXEN0 | 1<<TXEN0); //Enable RX0 and TX0
	UCSR0C = (1 << UCSZ01 | 1 << UCSZ00); //set data length to 8-bit;
	UBRR0H = 0b00000000;
	UBRR0L = 0b00011001; //Sets baudvalue in AVR to 25(1mhz), which gives baude rate 2400. baudvalue = (Fcpu/baudrate*16)-1
	UCSR0B |= (1 << RXCIE0); //Enables the rc complete interrupt
	
}
Exemplo n.º 3
0
int main(void)
{
	
	DDRA = 0xFF;
	DDRD = (1 << DDD5)|(1 << DDD6)|(1 << DDD7);
	
	 struct hd44780_l_conf low_conf;

	 low_conf.rs_i = 5;
	 low_conf.rw_i = 6;
	 low_conf.en_i = 7;
	 low_conf.db7_i = 7;
	 low_conf.db6_i = 6;
	 low_conf.db5_i = 5;
	 low_conf.db4_i = 4;
	 low_conf.db3_i = 3;
	 low_conf.db2_i = 2;
	 low_conf.db1_i = 1;
	 low_conf.db0_i = 0;
	 low_conf.rs_port = &PORTD;
	 low_conf.rw_port = &PORTD;
	 low_conf.en_port = &PORTD;
	 low_conf.db7_port = &PORTA;
	 low_conf.db6_port = &PORTA;
	 low_conf.db5_port = &PORTA;
	 low_conf.db4_port = &PORTA;
	 low_conf.db3_port = &PORTA;
	 low_conf.db2_port = &PORTA;
	 low_conf.db1_port = &PORTA;
	 low_conf.db0_port = &PORTA;
	 low_conf.line1_base_addr = 0x00;
	 low_conf.line2_base_addr = 0x40;
	 low_conf.dl = HD44780_L_FS_DL_8BIT;
	 
	 hd44780_l_init(&low_conf, HD44780_L_FS_N_DUAL, HD44780_L_FS_F_58, HD44780_L_EMS_ID_INC, HD44780_L_EMS_S_OFF);
	 
	 hd44780_l_disp(&low_conf, HD44780_L_DISP_D_ON, HD44780_L_DISP_C_ON, HD44780_L_DISP_B_ON);
	 
	 //0x42 0x4f 0x4f 0x42 0x49 0x45 0x53
	 
	 hd44780_l_write(&low_conf, 0x42);
	 hd44780_l_write(&low_conf, 0x4f);
	 hd44780_l_write(&low_conf, 0x4f);
	 hd44780_l_write(&low_conf, 0x42);
	 hd44780_l_write(&low_conf, 0x49);
	 hd44780_l_write(&low_conf, 0x45);
	 hd44780_l_write(&low_conf, 0x53);
	 
	 hd44780_l_write(&low_conf, 0x42);
	 hd44780_l_write(&low_conf, 0x4f);
	 hd44780_l_write(&low_conf, 0x4f);
	 hd44780_l_write(&low_conf, 0x42);
	 hd44780_l_write(&low_conf, 0x49);
	 hd44780_l_write(&low_conf, 0x45);
	 hd44780_l_write(&low_conf, 0x53);
	 
	 
	 
	 
	
	
    while(1)
    {
        //TODO:: Please write your application code 
    }
}