示例#1
0
void CLCD_Handler(char rs, char data) {
  switch(rs) {
  case RS_HIGH: CLCD_RS_HIGH(); break;
  case RS_LOW: CLCD_RS_LOW(); break;
  }
  
  CLCD_RW_LOW();
  delay_us(1);
  
  CLCD_E_HIGH();
  delay_us(500);
  
  GPIO_WriteBit(GPIOE, GPIO_Pin_5, (data & 0x01) == Bit_SET ? Bit_SET : Bit_RESET);  // D0
  GPIO_WriteBit(GPIOE, GPIO_Pin_6, ((data & 0x02) >> 1) == Bit_SET ? Bit_SET : Bit_RESET);  // D1
  GPIO_WriteBit(GPIOC, GPIO_Pin_6, ((data & 0x04) >> 2) == Bit_SET ? Bit_SET : Bit_RESET);  // D2
  GPIO_WriteBit(GPIOC, GPIO_Pin_7, ((data & 0x08) >> 3) == Bit_SET ? Bit_SET : Bit_RESET);  // D3
  GPIO_WriteBit(GPIOE, GPIO_Pin_11, ((data & 0x10) >> 4) == Bit_SET ? Bit_SET : Bit_RESET);  // D4
  GPIO_WriteBit(GPIOE, GPIO_Pin_12, ((data & 0x20) >> 5) == Bit_SET ? Bit_SET : Bit_RESET);  // D5
  GPIO_WriteBit(GPIOE, GPIO_Pin_13, ((data & 0x40) >> 6) == Bit_SET ? Bit_SET : Bit_RESET);  // D6
  GPIO_WriteBit(GPIOE, GPIO_Pin_14, ((data & 0x80) >> 7) == Bit_SET ? Bit_SET : Bit_RESET);  // D7
  delay_us(1);
  
  CLCD_E_LOW();
  delay_us(500);
  
  CLCD_E_HIGH();
  delay_us(1);
}
示例#2
0
void CLCD_Handler(char rs, char data) {
  switch(rs) {
  case RS_HIGH: CLCD_RS_HIGH(); break;
  case RS_LOW: CLCD_RS_LOW(); break;
  }
  
  CLCD_RW_LOW();
  delay_us(1);
  
  CLCD_E_HIGH();
  delay_us(500);
  
  GPIO_Write(GPIOE, data << 7); // DB0 at PE7
  delay_us(1);
  
  CLCD_E_LOW();
  delay_us(500);
  
  CLCD_E_HIGH();
  delay_us(1);
}