📄 display.cpp
字号:
#include "Display.h"
#include "44b.h"
#include "ucos_ii.h"
CDisplay::CDisplay()
{
pDispBuf = NULL;
}
CDisplay::~CDisplay()
{
}
//写显示
void CDisplay::WriteDisp()
{
U32 x;
U32 y;
U8* p;
p = pDispBuf;
iYSize = 8;
for( y=0; y<iYSize; y++ )
{
rPDATC &= ~(DISP_CS2);
rPDATC |= DISP_CS1;
Delay( 100 );
WriteCmd( 0xb8+y );
WriteCmd( 0x40 );
iXSize = 64;
for( x=0; x<iXSize; x++ )
{
WriteDat( *p++ );
}
rPDATC &= ~(DISP_CS1);
rPDATC |= DISP_CS2;
Delay( 10 );
WriteCmd( 0xb8+y );
WriteCmd( 0x40 );
for( x=0; x<iXSize; x++ )
{
WriteDat( *p++ );
}
rPDATC &= ~(DISP_CS2);
Delay( 100 );
}
}
//硬件复位显示器
void CDisplay::HardResetDisp()
{
#if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */
OS_CPU_SR cpu_sr;
#endif
rPDATC |= DISP_DIR;
rPDATC &= ~(DISP_RW);
OS_ENTER_CRITICAL();
rPDATE &= ~(DISP_RST);
OS_EXIT_CRITICAL();
OSTimeDly( 5 );
OS_ENTER_CRITICAL();
rPDATE |= DISP_RST;
OS_EXIT_CRITICAL();
OSTimeDly( 1 );
SoftResetDisp();
}
void CDisplay::SoftResetDisp()
{
rPDATC &= ~(DISP_CS2);
rPDATC |= DISP_CS1;
WriteCmd( 0x3f );
rPDATC &= ~(DISP_CS1);
rPDATC |= DISP_CS2;
WriteCmd( 0x3f );
}
void CDisplay::WriteCmd( U8 cmd )
{
U32 temp;
rPDATC &= ~(DISP_RS);
rPDATC |= DISP_E;
Delay( 10 );
temp = rPDATC;
temp &= ~(0xff);
temp |= cmd;
rPDATC = temp;
Delay( 10 );
rPDATC &= ~(DISP_E);
Delay( 10 );
rPDATC |= DISP_RS;
Delay( 10 );
}
void CDisplay::WriteDat( U8 dat )
{
U32 temp;
rPDATC |= DISP_E;
Delay( 6 );
temp = rPDATC;
temp &= ~(0xff);
temp |= dat;
Delay( 6 );
rPDATC = temp;
rPDATC &= ~(DISP_E);
Delay( 5 );
}
void CDisplay::SetDispBuf( U8* p )
{
pDispBuf = p;
}
void CDisplay::Delay( U32 count )
{
U32 i;
for( i=0; i<count; i++ )
{
;
}
}
void CDisplay::SetXSize( U32 size )
{
iXSize = size;
}
void CDisplay::SetYSize( U32 size )
{
iYSize = size;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -