示例#1
0
void hd44780_wr_hi_nibble(uint8_t data) {
	if (data & 0x10) {
		GPIO_SetBits(HD44780_DATAPORT, HD44780_DATABIT4);
	} else {
		GPIO_ResetBits(HD44780_DATAPORT, HD44780_DATABIT4);
	}
	if (data & 0x20) {
		GPIO_SetBits(HD44780_DATAPORT, HD44780_DATABIT5);
	} else {
		GPIO_ResetBits(HD44780_DATAPORT, HD44780_DATABIT5);
	}
	if (data & 0x40) {
		GPIO_SetBits(HD44780_DATAPORT, HD44780_DATABIT6);
	} else {
		GPIO_ResetBits(HD44780_DATAPORT, HD44780_DATABIT6);
	}
	if (data & 0x80) {
		GPIO_SetBits(HD44780_DATAPORT, HD44780_DATABIT7);
	} else {
		GPIO_ResetBits(HD44780_DATAPORT, HD44780_DATABIT7);
	}

	/* set the EN signal */hd44780_EN_On();

	/* wait */hd44780_EN_high_delay();

	/* reset the EN signal */
	hd44780_EN_Off();
}
示例#2
0
void hd44780_wr_lo_nibble( unsigned char data )
{
	if ( data & 0x01 ) {
		GPIO_SetBits( HD44780_DATAPORT, HD44780_DATABIT4 );
	} else {
		GPIO_ResetBits( HD44780_DATAPORT, HD44780_DATABIT4 );
	}
	if ( data & 0x02 ) {
		GPIO_SetBits( HD44780_DATAPORT, HD44780_DATABIT5 );
	} else {
		GPIO_ResetBits( HD44780_DATAPORT, HD44780_DATABIT5 );
	}
	if ( data & 0x04 ) {
		GPIO_SetBits( HD44780_DATAPORT, HD44780_DATABIT6 );
	} else {
		GPIO_ResetBits( HD44780_DATAPORT, HD44780_DATABIT6 );
	}
	if ( data & 0x08 ) {
		GPIO_SetBits( HD44780_DATAPORT, HD44780_DATABIT7 );
	} else {
		GPIO_ResetBits( HD44780_DATAPORT, HD44780_DATABIT7 );
	}

    /* set the EN signal */
    hd44780_EN_On();

    /* wait */
    hd44780_EN_high_delay();

    /* reset the EN signal */
    hd44780_EN_Off();
}
示例#3
0
void hd44780_wr_lo_nibble( unsigned char data )
{
    if ( data & 0x01 ) {
        HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT4,GPIO_PIN_SET);
    } else {
        HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT4,GPIO_PIN_RESET);
    }
    if ( data & 0x02 ) {
        HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT5,GPIO_PIN_SET);
    } else {
        HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT5,GPIO_PIN_RESET);
    }
    if ( data & 0x04 ) {
        HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT6,GPIO_PIN_SET);
    } else {
        HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT6,GPIO_PIN_RESET);
    }
    if ( data & 0x08 ) {
        HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT7,GPIO_PIN_SET);
    } else {
        HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT7,GPIO_PIN_RESET);
    }

    /* set the EN signal */
    hd44780_EN_On();

    /* wait */
    hd44780_EN_high_delay();

    /* reset the EN signal */
    hd44780_EN_Off();
}
示例#4
0
void hd44780_wr_hi_nibble( unsigned char data )
{
    if ( data & 0x10 ) {
        HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT4,GPIO_PIN_SET);
        //GPIO_SetBits( HD44780_DATAPORT, HD44780_DATABIT4 );
    } else {
        HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT4,GPIO_PIN_RESET);
    }
    if ( data & 0x20 ) {
        HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT5,GPIO_PIN_SET);
    } else {
        HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT5,GPIO_PIN_RESET);
    }
    if ( data & 0x40 ) {
        HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT6,GPIO_PIN_SET);
    } else {
        HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT6,GPIO_PIN_RESET);
    }
    if ( data & 0x80 ) {
        HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT7,GPIO_PIN_SET);
    } else {
        HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT7,GPIO_PIN_RESET);
    }

    /* set the EN signal */
    hd44780_EN_On();

    /* wait */
    hd44780_EN_high_delay();

    /* reset the EN signal */
    hd44780_EN_Off();
}
示例#5
0
/* 8bit bus version */
void hd44780_write( unsigned char data )
{
	/* set the data bits */
	if ( data & 0x01 ) {
		GPIO_SetBits( HD44780_DATAPORT, HD44780_DATABIT0 );
	} else {
		GPIO_ResetBits( HD44780_DATAPORT, HD44780_DATABIT0 );
	}
	if ( data & 0x02 ) {
		GPIO_SetBits( HD44780_DATAPORT, HD44780_DATABIT1 );
	} else {
		GPIO_ResetBits( HD44780_DATAPORT, HD44780_DATABIT1 );
	}
	if ( data & 0x04 ) {
		GPIO_SetBits( HD44780_DATAPORT, HD44780_DATABIT2 );
	} else {
		GPIO_ResetBits( HD44780_DATAPORT, HD44780_DATABIT2 );
	}
	if ( data & 0x08 ) {
		GPIO_SetBits( HD44780_DATAPORT, HD44780_DATABIT3 );
	} else {
		GPIO_ResetBits( HD44780_DATAPORT, HD44780_DATABIT3 );
	}
	if ( data & 0x10 ) {
		GPIO_SetBits( HD44780_DATAPORT, HD44780_DATABIT4 );
	} else {
		GPIO_ResetBits( HD44780_DATAPORT, HD44780_DATABIT4 );
	}
	if ( data & 0x20 ) {
		GPIO_SetBits( HD44780_DATAPORT, HD44780_DATABIT5 );
	} else {
		GPIO_ResetBits( HD44780_DATAPORT, HD44780_DATABIT5 );
	}
	if ( data & 0x40 ) {
		GPIO_SetBits( HD44780_DATAPORT, HD44780_DATABIT6 );
	} else {
		GPIO_ResetBits( HD44780_DATAPORT, HD44780_DATABIT6 );
	}
	if ( data & 0x80 ) {
		GPIO_SetBits( HD44780_DATAPORT, HD44780_DATABIT7 );
	} else {
		GPIO_ResetBits( HD44780_DATAPORT, HD44780_DATABIT7 );
	}

    /* tell the lcd that we have a command to read in */
    hd44780_EN_On();

    /* wait long enough so that the lcd can see the command */
    hd44780_EN_high_delay();

    /* reset the ce line */
    hd44780_EN_Off();
    hd44780_init_end_delay();

}
示例#6
0
/* 8bit bus version */
void hd44780_write( unsigned char data )
{
    /* set the data bits */
    if ( data & 0x01 ) {
        HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT0,GPIO_PIN_SET);
    } else {
        HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT0,GPIO_PIN_RESET);
    }
    if ( data & 0x02 ) {
        HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT1,GPIO_PIN_SET);
    } else {
        HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT1,GPIO_PIN_RESET);
    }
    if ( data & 0x04 ) {
        HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT2,GPIO_PIN_SET);
    } else {
        HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT2,GPIO_PIN_RESET);
    }
    if ( data & 0x08 ) {
        HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT3,GPIO_PIN_SET);
    } else {
        HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT3,GPIO_PIN_RESET);
    }
    if ( data & 0x10 ) {
        HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT4,GPIO_PIN_SET);
    } else {
        HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT4,GPIO_PIN_RESET);
    }
    if ( data & 0x20 ) {
        HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT5,GPIO_PIN_SET);
    } else {
        HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT5,GPIO_PIN_RESET);
    }
    if ( data & 0x40 ) {
        HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT6,GPIO_PIN_SET);
    } else {
        HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT6,GPIO_PIN_RESET);
    }
    if ( data & 0x80 ) {
        HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT7,GPIO_PIN_SET);
    } else {
        HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT7,GPIO_PIN_RESET);
    }

    /* tell the lcd that we have a command to read in */
    hd44780_EN_On();

    /* wait long enough so that the lcd can see the command */
    hd44780_EN_high_delay();

    /* reset the ce line */
    hd44780_EN_Off();
    hd44780_init_end_delay();

}
示例#7
0
void hd44780_write(uint8_t data) {
	while (buttons_active){
	}
	hd44780_active=1;
	controlLEDs_enable(0);

	/* set the data bits */
	uint16_t dataportValue = HD44780_DATAPORT->IDR;
	HD44780_DATAPORT->ODR = (dataportValue & 0xFF00) + data; //In the current project the display uses PE0-PE7 GPIO, so it is possible to switch them by one command

/*
	if (data & 0x01) {
		GPIO_SetBits(HD44780_DATAPORT, HD44780_DATABIT0);
	} else {
		GPIO_ResetBits(HD44780_DATAPORT, HD44780_DATABIT0);
	}
	if (data & 0x02) {
		GPIO_SetBits(HD44780_DATAPORT, HD44780_DATABIT1);
	} else {
		GPIO_ResetBits(HD44780_DATAPORT, HD44780_DATABIT1);
	}
	if (data & 0x04) {
		GPIO_SetBits(HD44780_DATAPORT, HD44780_DATABIT2);
	} else {
		GPIO_ResetBits(HD44780_DATAPORT, HD44780_DATABIT2);
	}
	if (data & 0x08) {
		GPIO_SetBits(HD44780_DATAPORT, HD44780_DATABIT3);
	} else {
		GPIO_ResetBits(HD44780_DATAPORT, HD44780_DATABIT3);
	}
	if (data & 0x10) {
		GPIO_SetBits(HD44780_DATAPORT, HD44780_DATABIT4);
	} else {
		GPIO_ResetBits(HD44780_DATAPORT, HD44780_DATABIT4);
	}
	if (data & 0x20) {
		GPIO_SetBits(HD44780_DATAPORT, HD44780_DATABIT5);
	} else {
		GPIO_ResetBits(HD44780_DATAPORT, HD44780_DATABIT5);
	}
	if (data & 0x40) {
		GPIO_SetBits(HD44780_DATAPORT, HD44780_DATABIT6);
	} else {
		GPIO_ResetBits(HD44780_DATAPORT, HD44780_DATABIT6);
	}
	if (data & 0x80) {
		GPIO_SetBits(HD44780_DATAPORT, HD44780_DATABIT7);
	} else {
		GPIO_ResetBits(HD44780_DATAPORT, HD44780_DATABIT7);
	}
*/
	/* tell the lcd that we have a command to read in */hd44780_EN_On();

	/* wait long enough so that the lcd can see the command */hd44780_EN_high_delay();

	/* reset the ce line */hd44780_EN_Off();
	hd44780_init_end_delay();
	hd44780_active=0;
	controlLEDs_enable(1);
}