123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199 |
- #include "Character_lcd.h"
- void LCD_16T202DA1EA_Init(void){
- HAL_GPIO_WritePin(GPIOD, GPIO_PIN_12, GPIO_PIN_RESET);
- HAL_Delay(1);
- HAL_GPIO_WritePin(GPIOD, GPIO_PIN_12, GPIO_PIN_SET);
- HAL_Delay(1);
- HAL_GPIO_WritePin(GPIOD, GPIO_PIN_10, GPIO_PIN_RESET);
- HAL_Delay(1);
- HAL_GPIO_WritePin(GPIOD, GPIO_PIN_10, GPIO_PIN_SET);
- }
- typedef struct{
- uint16_t RW_PIN;
- uint16_t RS;
- uint16_t E;
- uint16_t Reset;
- uint16_t DB0;
- uint16_t DB1;
- uint16_t DB2;
- uint16_t DB3;
- uint16_t DB4;
- uint16_t DB5;
- uint16_t DB6;
- uint16_t DB7;
- GPIO_TypeDef * RW_PIN_Port;
- GPIO_TypeDef * RS_Port;
- GPIO_TypeDef * E_Port;
- GPIO_TypeDef * DB0_Port;
- GPIO_TypeDef * DB1_Port;
- GPIO_TypeDef * DB2_Port;
- GPIO_TypeDef * DB3_Port;
- GPIO_TypeDef * DB4_Port;
- GPIO_TypeDef * DB5_Port;
- GPIO_TypeDef * DB6_Port;
- GPIO_TypeDef * DB7_Port;
- }lcd_Pin_st;
- void LCD_M68_DataWrite_COMMAND_Init(void){
- lcd_Pin_st lcdset;
- lcdset.RW_PIN = GPIO_PIN_12;//pd
- lcdset.RS = GPIO_PIN_11;//pd
- lcdset.E = GPIO_PIN_13;//pd
- lcdset.DB0 = GPIO_PIN_14; //pd
- lcdset.DB1 = GPIO_PIN_15;//pd
- lcdset.Reset = GPIO_PIN_10;
- lcdset.DB2 = GPIO_PIN_2;//pg
- lcdset.DB3 = GPIO_PIN_3;//pg
- lcdset.DB5 = GPIO_PIN_4;//pg
- lcdset.DB4 = GPIO_PIN_5;//pg
- lcdset.DB6 = GPIO_PIN_6;//pg
- lcdset.DB7 = GPIO_PIN_7;//pg
- HAL_GPIO_WritePin(GPIOD, lcdset.E|lcdset.RS|lcdset.RW_PIN|lcdset.DB0|lcdset.DB1 , GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GPIOG, lcdset.DB2|lcdset.DB3|lcdset.DB4|lcdset.DB5|lcdset.DB7, GPIO_PIN_SET);
- //PIN Init
- HAL_GPIO_WritePin(GPIOD, lcdset.E , GPIO_PIN_SET);
-
- HAL_GPIO_WritePin(GPIOD, lcdset.DB0, GPIO_PIN_SET);
- HAL_GPIO_WritePin(GPIOD, lcdset.DB1, GPIO_PIN_SET);
- HAL_GPIO_WritePin(GPIOG, lcdset.DB2, GPIO_PIN_SET);
- HAL_GPIO_WritePin(GPIOG, lcdset.DB3, GPIO_PIN_SET);
- HAL_GPIO_WritePin(GPIOG, lcdset.DB4, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GPIOG, lcdset.DB5, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GPIOG, lcdset.DB6, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GPIOG, lcdset.DB7, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GPIOD, lcdset.E , GPIO_PIN_RESET);
- HAL_Delay(1);
- }
- void LCD_M68_DataWrite_COMMAND_TEST(void){
- lcd_Pin_st lcdset;
- char aa = 'a';
- lcdset.RW_PIN = GPIO_PIN_12;//pd
- lcdset.RS = GPIO_PIN_11;//pd
- lcdset.E = GPIO_PIN_13;//pd
- lcdset.DB0= GPIO_PIN_14; //pd
- lcdset.DB1= GPIO_PIN_15;//pd
-
- lcdset.DB2= GPIO_PIN_2;//pg
- lcdset.DB3= GPIO_PIN_3;//pg
- lcdset.DB5= GPIO_PIN_4;//pg
- lcdset.DB4= GPIO_PIN_5;//pg
- lcdset.DB6= GPIO_PIN_6;//pg
- lcdset.DB7= GPIO_PIN_7;//pg
- HAL_GPIO_WritePin(GPIOG, lcdset.DB2|lcdset.DB3|lcdset.DB4|lcdset.DB5|lcdset.DB6|lcdset.DB7, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GPIOD, lcdset.DB0|lcdset.DB1 , GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GPIOD, lcdset.E , GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GPIOD, lcdset.RS , GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GPIOD, lcdset.RW_PIN, GPIO_PIN_RESET);
- HAL_Delay(1);
- HAL_GPIO_WritePin(GPIOD, lcdset.RS , GPIO_PIN_SET);
- HAL_GPIO_WritePin(GPIOD, lcdset.E , GPIO_PIN_SET);
- HAL_GPIO_WritePin(GPIOD, lcdset.DB0, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GPIOD, lcdset.DB1, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GPIOG, lcdset.DB2, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GPIOG, lcdset.DB3, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GPIOG, lcdset.DB4, GPIO_PIN_SET);
- HAL_GPIO_WritePin(GPIOG, lcdset.DB5, GPIO_PIN_SET);
- HAL_GPIO_WritePin(GPIOG, lcdset.DB6, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GPIOG, lcdset.DB7, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GPIOD, lcdset.E , GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GPIOD, lcdset.RS , GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GPIOG, lcdset.DB2|lcdset.DB3|lcdset.DB4|lcdset.DB5|lcdset.DB6|lcdset.DB7, GPIO_PIN_RESET);
- }
- void LCD_M68_DataWrite_COMMAND(uint8_t line,uint8_t cmd,uint8_t data){
- lcd_Pin_st lcdset;
- uint16_t temp_Pinbuf[8]={0,};
- GPIO_TypeDef* temp_Portbuf[8]={0,};
- lcdset.RW_PIN = GPIO_PIN_12;//pd
- lcdset.RS = GPIO_PIN_11;//pd
- lcdset.E = GPIO_PIN_13;//pd
- lcdset.DB0 = GPIO_PIN_14;//pd
- lcdset.DB1 = GPIO_PIN_15;//pd
- lcdset.DB2 = GPIO_PIN_2;//pg
- lcdset.DB3 = GPIO_PIN_3;//pg
- lcdset.DB5 = GPIO_PIN_4;//pg
- lcdset.DB4 = GPIO_PIN_5;//pg
- lcdset.DB6 = GPIO_PIN_6;//pg
- lcdset.DB7 = GPIO_PIN_7;//pg
- HAL_GPIO_WritePin(GPIOD, lcdset.E|lcdset.RS|lcdset.RW_PIN|lcdset.DB0|lcdset.DB1 , GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GPIOG, lcdset.DB2|lcdset.DB3|lcdset.DB4|lcdset.DB5|lcdset.DB6|lcdset.DB7, GPIO_PIN_RESET);
- //PIN Init
- if(cmd == Instruction_CMD){
- HAL_GPIO_WritePin(GPIOD, lcdset.RS , GPIO_PIN_RESET); // Init Instruction CMD
- }else{
- HAL_GPIO_WritePin(GPIOD, lcdset.RS , GPIO_PIN_SET); //Init Data CMD
- }
- HAL_Delay(1);
- memcpy(&temp_Pinbuf[0] ,&lcdset.DB0 ,8);
- memcpy(&temp_Portbuf[0],&lcdset.DB0_Port,8);
-
- HAL_GPIO_WritePin(GPIOD, lcdset.E , GPIO_PIN_SET);
- if(data & 0x01)
- HAL_GPIO_WritePin(GPIOD, lcdset.DB0, GPIO_PIN_SET);
- else
- HAL_GPIO_WritePin(GPIOD, lcdset.DB0, GPIO_PIN_RESET);
-
- if(data & 0x02)
- HAL_GPIO_WritePin(GPIOD, lcdset.DB1, GPIO_PIN_SET);
- else
- HAL_GPIO_WritePin(GPIOD, lcdset.DB1, GPIO_PIN_RESET);
-
- if(data & 0x04)
- HAL_GPIO_WritePin(GPIOG, lcdset.DB2, GPIO_PIN_SET);
- else
- HAL_GPIO_WritePin(GPIOG, lcdset.DB2, GPIO_PIN_RESET);
-
- if(data & 0x08)
- HAL_GPIO_WritePin(GPIOG, lcdset.DB3, GPIO_PIN_SET);
- else
- HAL_GPIO_WritePin(GPIOG, lcdset.DB3, GPIO_PIN_RESET);
-
- if(data & 0x10)
- HAL_GPIO_WritePin(GPIOG, lcdset.DB4, GPIO_PIN_SET);
- else
- HAL_GPIO_WritePin(GPIOG, lcdset.DB4, GPIO_PIN_RESET);
-
- if(data & 0x20)
- HAL_GPIO_WritePin(GPIOG, lcdset.DB5, GPIO_PIN_SET);
- else
- HAL_GPIO_WritePin(GPIOG, lcdset.DB5, GPIO_PIN_RESET);
-
- if(data & 0x40)
- HAL_GPIO_WritePin(GPIOG, lcdset.DB6, GPIO_PIN_SET);
- else
- HAL_GPIO_WritePin(GPIOG, lcdset.DB6, GPIO_PIN_RESET);
-
- if(data & 0x80)
- HAL_GPIO_WritePin(GPIOG, lcdset.DB7, GPIO_PIN_SET);
- else
- HAL_GPIO_WritePin(GPIOG, lcdset.DB7, GPIO_PIN_RESET);
-
-
- HAL_GPIO_WritePin(GPIOD, lcdset.E , GPIO_PIN_RESET); //Init E Line
- if(cmd == Instruction_CMD){
- HAL_GPIO_WritePin(GPIOD, lcdset.RS , GPIO_PIN_SET); //Init Data CMD
- }else{
- HAL_GPIO_WritePin(GPIOD, lcdset.RS , GPIO_PIN_RESET); // Init Instruction CMD
- }
- }
|