⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 s0029701(lm320240c_80mode_example).c

📁 TOPWAY LM320240CFW屏的详细资料有程序和怎、片子的资料
💻 C
📖 第 1 页 / 共 4 页
字号:
0x60,0x20,0x20,0x44,0x18,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x01,
0x85,0x22,0x8A,0x48,0x20,0x8A,0x22,0x04,0x92,0x0D,0xA2,0x8A,0x28,0xA2,0x88,0x88,
0xA2,0x8A,0x28,0x82,0x02,0x00,0x02,0x00,0x80,0x20,0x00,0x04,0x08,0x00,0x00,0x00,
0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x01,0x88,0xA2,0x82,0x28,0x20,0x82,0x22,0x04,
0xA2,0x0A,0xB2,0x8A,0x28,0xA2,0x80,0x88,0xA2,0x89,0x45,0x04,0x73,0xC7,0x9E,0x73,
0xE7,0xA0,0x60,0xC4,0x88,0xD2,0xC7,0x3C,0x79,0x67,0x3E,0x8A,0x28,0xA2,0x8B,0xC1,
0x8F,0xBC,0x82,0x2F,0x3C,0xBB,0xE2,0x04,0xC2,0x0A,0xAA,0x8B,0xC8,0xBC,0x70,0x88,
0xA2,0xA8,0x82,0x08,0x0A,0x28,0x22,0x88,0x88,0xAC,0x20,0x45,0x08,0xAB,0x28,0xA2,
0x89,0x88,0x08,0x8A,0x28,0x94,0x88,0x41,0x88,0xA2,0x82,0x28,0x20,0x8A,0x22,0x04,
0xA2,0x08,0xA6,0x8A,0x0A,0xA8,0x08,0x88,0xA2,0xA9,0x42,0x10,0x7A,0x28,0x22,0xF8,
0x87,0xB2,0x20,0x46,0x08,0xAA,0x28,0xBC,0x79,0x07,0x08,0x8A,0x2A,0x88,0x78,0x81,
0x88,0xA2,0x8A,0x48,0x20,0x8A,0x22,0x24,0x92,0x08,0xA2,0x8A,0x09,0x24,0x88,0x88,
0x94,0xAA,0x22,0x20,0x8A,0x28,0x22,0x80,0x80,0xA2,0x22,0x45,0x08,0xAA,0x28,0xA0,
0x09,0x00,0x88,0x99,0x4A,0x94,0x09,0x01,0x88,0xBC,0x73,0x8F,0xA0,0x72,0x27,0x18,
0x8B,0xE8,0xA2,0x72,0x06,0xA2,0x70,0x87,0x08,0x52,0x22,0x3E,0x7B,0xC7,0x9E,0x70,
0x87,0x22,0x71,0x84,0x9C,0xAA,0x27,0x20,0x09,0x0F,0x06,0x68,0x85,0x22,0x73,0xC1,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x82,0x1C,0x70,0x4F,0x9C,0xF9,0xC7,0x1C,
0x21,0xC7,0x04,0xF9,0xCF,0x9C,0x71,0xC2,0x1C,0x70,0x4F,0x9C,0xF9,0xC7,0x1C,0x21,
0xC7,0x04,0xF9,0xCF,0x9C,0x71,0xC2,0x1C,0x70,0x4F,0x9C,0xF9,0xC7,0x1C,0x21,0xC1,
0x86,0x22,0x88,0xC8,0x22,0x0A,0x28,0xA2,0x62,0x28,0x8C,0x82,0x20,0xA2,0x8A,0x26,
0x22,0x88,0xC8,0x22,0x0A,0x28,0xA2,0x62,0x28,0x8C,0x82,0x20,0xA2,0x8A,0x26,0x22,
0x88,0xC8,0x22,0x0A,0x28,0xA2,0x62,0x21,0x82,0x02,0x09,0x4F,0x20,0x12,0x28,0xA2,
0x20,0x20,0x94,0xF2,0x01,0x22,0x8A,0x22,0x02,0x09,0x4F,0x20,0x12,0x28,0xA2,0x20,
0x20,0x94,0xF2,0x01,0x22,0x8A,0x22,0x02,0x09,0x4F,0x20,0x12,0x28,0xA2,0x20,0x21,
0x82,0x04,0x12,0x40,0xBC,0x21,0xC7,0xA2,0x20,0x41,0x24,0x0B,0xC2,0x1C,0x7A,0x22,
0x04,0x12,0x40,0xBC,0x21,0xC7,0xA2,0x20,0x41,0x24,0x0B,0xC2,0x1C,0x7A,0x22,0x04,
0x12,0x40,0xBC,0x21,0xC7,0xA2,0x20,0x41,0x82,0x08,0x0B,0xE0,0xA2,0x22,0x20,0xA2,
0x20,0x80,0xBE,0x0A,0x22,0x22,0x0A,0x22,0x08,0x0B,0xE0,0xA2,0x22,0x20,0xA2,0x20,
0x80,0xBE,0x0A,0x22,0x22,0x0A,0x22,0x08,0x0B,0xE0,0xA2,0x22,0x20,0xA2,0x20,0x81,
0x82,0x10,0x88,0x48,0xA2,0x22,0x28,0xA2,0x21,0x08,0x84,0x8A,0x22,0x22,0x8A,0x22,
0x10,0x88,0x48,0xA2,0x22,0x28,0xA2,0x21,0x08,0x84,0x8A,0x22,0x22,0x8A,0x22,0x10,
0x88,0x48,0xA2,0x22,0x28,0xA2,0x21,0x01,0x87,0x3E,0x70,0x47,0x1C,0x21,0xC7,0x1C,
0x73,0xE7,0x04,0x71,0xC2,0x1C,0x71,0xC7,0x3E,0x70,0x47,0x1C,0x21,0xC7,0x1C,0x73,
0xE7,0x04,0x71,0xC2,0x1C,0x71,0xC7,0x3E,0x70,0x47,0x1C,0x21,0xC7,0x1C,0x73,0xE1,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};

//-----------------------------------
// Delay Routine
//-----------------------------------
void delayms(uint m)        // 12MHz Xtal, close to ms value
{
	uint j;
	uint i;
	
	for(i=0; i<m; i++)
	    for(j=0; j<109; j++)
	        _nop_();
}

//-----------------------------------
// IO Routine
//-----------------------------------
void SdCmd(uchar Command)   //send command
{
    _WR = 1;                // init all control signal
    _RD = 1;
    A0  = 1;                // for command
    LCDBUS = Command;
    _CS = 0;                // enable the access
    _nop_();
    _WR = 0;
    _nop_();
    _nop_();
    _WR = 1;
    _nop_();
    _CS = 1;                // disable the access
    delayms(1);
}

void SdData(uchar DData)    //send display data
{
    _WR = 1;                // init all control signal
    _RD = 1;
    A0  = 0;                // for diaplay data
    LCDBUS = DData;
    _CS = 0;                // enable the access
    _nop_();
    _WR = 0;
    _nop_();
    _nop_();
    _WR = 1;
    _nop_();
    _CS = 1;                // disable the access
    _nop_();
    _nop_();
}

//-----------------------------------
// Init LCD module
//-----------------------------------
void initLCDM(void)
{
	_RES    = 1;    // reset pin
	_RES    = 0;
	delayms(5);
	_RES    = 1;
	delayms(10);

	SdCmd(0x40);    //System set (8 byte parameter)
	SdData(0x30);   // IV=1(no line comp),ws=0(single drv),M2=0(8bit char height),M0=0(int CGROM), D4=1(by default)                    
	SdData(0x87);   // MOD=1 two frame AC drv, HorChar Size=8
	SdData(0x07);   // VerChar Size=8
	SdData(0x28);   // (320/8=40) char per line
	SdData(0x47);   // 23+blanking (frame freq = 66Hz (clk ratio=1/4  @ 10MHz)
	SdData(0xEF);   // (240-1=239) line per screen
	SdData(0x28);   // Virtual screen width LSB
	SdData(0x00);   // Virtual screen width MSB
	
	SdCmd(0x59);    // Display ON/OFF(1 byte parameter)
	SdData(0x04);   // SAD1=on, cursor=off
		
	SdCmd(0x44);    //Scroll (10 byte parmeter)
	SdData(0x00);   // SAD1 start ADD LSB
	SdData(0x00);   // SAD1 start ADD MSB
	SdData(0xEF);   // SAD1 block size(no.of line-1)
	SdData(0x00);   // SAD2 start ADD LSB 
	SdData(0x00);   // SAD2 start ADD MSB
	SdData(0xEF);   // SAD2 block size(no.of line-1)
	SdData(0x00);   // SAD3 start ADD LSB
	SdData(0x00);   // SAD3 start ADD MSB
	SdData(0x00);   // SAD4 start ADD LSB
	SdData(0x00);   // SAD4 start ADD MSB
	
	SdCmd(0x5D);    //CSRFORM (2 byte parmeter)
	SdData(0x07);   // cursor width = 8
	SdData(0x17);   // CM=1, for graphic mode, cursor height = 8        
	
	SdCmd(0x4C);    // CSRDIR (0 byte parmeter) to the right side

	SdCmd(0x5B);    // OVLAY (1 byte parmeter)
	SdData(0x05);   // 0v=0(2layer),DM1=0(blk3 for text),DM0=1(blk1 for graphic),layers combine=01(XOR) 

	SdCmd(0x5A);    // HDOT SCR (1 byte parmeter)
	SdData(0x00);   // no scroll

	SdCmd(0x60);    // GRAYSCALE (1 byte parmeter)
	SdData(0x00);   // 1bpp
}


//-----图画写入子程序-----------------------------------
void ShowBMP(uint x,y,width,high,uchar bmp[])
// 坐标(x,y),x为水平方向字节数;y为垂直方向像素行数
//width:图形水平字节数;high:图形垂直像素点数;bmp[]:图形数组名
{
 uchar i,j;
 uint addr,k=0;           // 第一显示区域为图形属性
 addr=y*0x28+x+0x0000;    // 计算显示RAM地址
 for(i=0;i<high;i++)      // 写入行循环量
    {
    SdCmd(0x46);          // 设置图形显示首地址
    SdData(addr);
    SdData(addr>>8);
    SdCmd(0x4c);          // 设置地址水平加1
    SdCmd(0x42);          // 写数据指令
    for(j=0;j<width;j++)  // 写入数据个数/行
        {
        SdData(bmp[k]);   // 写入图形数据
        k=k+1;

        }
     addr=addr+0x28;      // 地址修正
     }
}

//-----------------------------------
// Main Program
//-----------------------------------
void main()
{
	SP=0x60;
	EA = 0;                 // disable interrupts

    _RES	= 1;
    _CS     = 1;
    _RD     = 1;
    _WR     = 1;
    A0      = 1;

    LCDBUS  = 0xff;         // pull up data bus

   	initLCDM();
    ShowBMP(0,0,40,240,LCMLogo);
	while(1)
	{
 	}
}
//end of program

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -