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