/******************************************************************************************************** 函数名称: DispWriteCmd(uint8 cmd ) 输入参数: cmd --- 命令参数,A0 = 0 时为写命令 函数功能: 写命令给LCD 输出参数: 无 ********************************************************************************************************/ void DispWriteCmd(uint8 cmd ) { GPIOPinWrite(GPIO_PORTA_BASE, CS, (uint8)(~CS)); // 置低 CS GPIOPinWrite(GPIO_PORTA_BASE, A0, (uint8)~A0); // 置低 A0, A0 = 0 时为写命令 GPIOPinWrite(GPIO_PORTA_BASE, RW, (uint8)(~RW)); // 置低 RW GPIOPinWrite(GPIO_PORTA_BASE, RD, RD); // 置高 RD GPIOPinWrite(GPIO_PORTD_BASE, 0xff, cmd); // 写入数据 //delay(1); // 等待数据稳定 GPIOPinWrite(GPIO_PORTA_BASE, RW, RW); // 置高 RW GPIOPinWrite(GPIO_PORTA_BASE, CS, CS); // 置高 CS }
/******************************************************************************************************** 函数名称: DispWriteData(uint8 _data ) 输入参数: _data --- 数据内容,A0 = 1 时为写数据 函数功能: 写数据进入LCD 输出参数: 无 ********************************************************************************************************/ void DispWriteData(uint8 _data ) { GPIOPinWrite(GPIO_PORTA_BASE, CS, (uint8)(~CS)); // 置低 CS GPIOPinWrite(GPIO_PORTA_BASE, A0, A0); // 置高 A0, A0 = 0 时为数据 GPIOPinWrite(GPIO_PORTA_BASE, RW, (uint8)(~RW)); // 置低 RW GPIOPinWrite(GPIO_PORTA_BASE, RD, RD); // 置高 RD GPIOPinWrite(GPIO_PORTD_BASE, 0xff, _data); // 写入数据 //delay(1); // 等待数据稳定 GPIOPinWrite(GPIO_PORTA_BASE, RW, RW); // 置高 RW GPIOPinWrite(GPIO_PORTA_BASE, CS, CS); // 置高 CS }
/******************************************************************************************************** 函数名称: unsigned char DispReadData( ) 输入参数: 无 函数功能: 从LCD读数据 输出参数: 读出的数据 ********************************************************************************************************/ uint8 DispReadData( ) { uint8 ReData; SetDataPortIn(); // 数据口设置为输入 GPIOPinWrite(GPIO_PORTA_BASE, CS, (uint8)(~CS)); // 置低 CS GPIOPinWrite(GPIO_PORTA_BASE, A0, A0); // 置高 A0, A0 = 0 时为数据 GPIOPinWrite(GPIO_PORTA_BASE, RW, RW); // 置高 RW GPIOPinWrite(GPIO_PORTA_BASE, RD, (uint8)(~RD)); // 置低 RD ReData = GPIOPinRead(GPIO_PORTD_BASE,0xff); // 读数据 //delay(1); // 等待数据稳定 GPIOPinWrite(GPIO_PORTA_BASE, RD, RD); // 置高 RD GPIOPinWrite(GPIO_PORTA_BASE, CS, CS); // 置高 CS SetDataPortOut(); // 数据口设置为输出 return ReData; }
uint8 DispReadCmd( ) { uint8 ReData; SetDataPortIn(); // 数据口设置为输入 GPIOPinWrite(GPIO_PORTA_BASE, CS, (uint8)(~CS)); // 置低 CS GPIOPinWrite(GPIO_PORTA_BASE, A0, (uint8)~A0); // 置高 A0, A0 = 0 时为数据 GPIOPinWrite(GPIO_PORTA_BASE, RW, RW); // 置高 RW GPIOPinWrite(GPIO_PORTA_BASE, RD, (uint8)(~RD)); // 置低 RD ReData = GPIOPinRead(GPIO_PORTD_BASE,0xff); // 读数据 delay(1); // 等待数据稳定 GPIOPinWrite(GPIO_PORTA_BASE, RD, RD); // 置高 RD GPIOPinWrite(GPIO_PORTA_BASE, CS, CS); // 置高 CS SetDataPortOut(); // 数据口设置为输出 return ReData; }
|