?? pt6524.c
字號:
#define LCD_ADDR 0x41 //LCD驅動芯片SPI地址
#define DISP_BUFF_SIZE 26 //顯示緩沖區大小
void spiSendBit(unsigned char bitData)
{
if (bitData) {
Set_DO();
}else{
Clr_DO();
}
DATA_DELAY();
Set_SCK(); // 2----時鐘置高,此時數據發送
//此時讀取數據輸入總線的狀態
SCK_DELAY();
Clr_SCK(); //4-----下降沿讀取數據
SCK_DELAY();
}
void sendBlockData(unsigned int blockData)
{
unsigned char i;
for (i=0;i<12;i++) {
spiSendBit(blockData & (0x0800>>i));
}
}
void display_buff(BYTE *thisBuff)
{
BYTE addr=LCD_ADDR;
unsigned char bitSum=0;
unsigned char byteNumber,bitNumber;
Clr_SS();//cbi(SPI_PORT,SPI_CS);//先發地址,拉低SS
spi_send_buff(&addr,1);//發送一個字節到總線
Set_SS();
for (byteNumber=0;byteNumber<DISP_BUFF_SIZE;byteNumber++) {
for (bitNumber=0;bitNumber<8;bitNumber++) {
if (*(thisBuff+byteNumber) & (1<<bitNumber)) {
spiSendBit(1); //send '1'
}else{
spiSendBit(0); //send '0'
}
bitSum++; //總計發送的bit數加一
if(((bitSum%52)==0) && (bitSum<200))
{
sendBlockData(bitSum/52-1);
Clr_SS();//cbi(SPI_PORT,SPI_CS);//先發地址,拉低SS
spi_send_buff(&addr,1);//發送一個字節到總線
Set_SS();
}
}
}
sendBlockData(0x0003);//第四個com的塊標志
Clr_SS();//cbi(SPI_PORT,SPI_CS); //發送完畢
}
void disp_set_bit(BYTE *thisBuff,BYTE bitIndex,BYTE value)
{
if(value)
thisBuff[bitIndex/8] |= (1<<(bitIndex%8));
else
thisBuff[bitIndex/8] &= ~(1<<(bitIndex%8));
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -