📄 nt39102.c.txt
字号:
/***************************************************************
* Copyright (c) 2006,
* All rights reserved.
*
* 文件名称: test.c
* 文件标识:
* 摘要: nt39102,COG带控制器模块测试
*
* 当前版本: 1.0
* 完成日期: 2006年05月20日
*
* **************************************************************/
//====================================================
#include <reg52.h>
#include <intrins.h>
//====================================================
// 端口定义
//====================================================
#define D_PORT P0
sbit CS = P1^0;
sbit REST = P1^1;
sbit DC = P1^2;
sbit Wr = P1^3;
sbit Rd = P1^4;
//====================================================
//extern unsigned char code bmp1[];
//====================================================
// 功能函数
//====================================================
void delay(unsigned int ms)
{
unsigned int i,n;
for(i=0;i<ms;i++)
{
for(n=0;n<1;n++)
_nop_();
}
}
//====================================================
// 读写子程序
//====================================================
void wr_com_m(unsigned char com)
{
CS = 0;
DC = 0;
D_PORT = com;
Wr = 0;
delay(1);
Wr = 1;
CS = 1;
}
//-------------------------------------------------
void wr_dat_m(unsigned char dat)
{
CS = 0;
DC = 1;
D_PORT = dat;
Wr = 0;
delay(1);
Wr = 1;
CS = 1;
}
//********************************************************//
void inti_data(unsigned char cindex,unsigned char cdata)
{
wr_com_m(cindex);
wr_dat_m(cdata);
}
//********************************************************//
//===================================================================
void Switch() //atuo switch function programme
{
repeat:
if (!(P3&0x01)) goto repeat;
else delay(1);
if (!(P3&0x01)) goto repeat;
else ;
}
//====================================================
//====================================================
void dis_line(unsigned int dat1,dat2)
{
int i,j;
wr_com_m(0x2a);
wr_dat_m(0x00);
wr_dat_m(0x00);
wr_dat_m(0x00);
wr_dat_m(0x7f);
wr_dat_m(0x84);
wr_com_m(0x2b);
wr_dat_m(0x00);
wr_dat_m(0x00);
wr_dat_m(0x00);
wr_dat_m(0x9f);
wr_dat_m(0xa2);
wr_com_m(0x2c);
for(i=0;i<128;i++) //display line
{
for(j=0;j<160;j++)
{
wr_dat_m(dat1);
wr_dat_m(dat2);
}
}
}
//===========================================
void dis_bar()
{
int i,j,k;
wr_com_m(0x2a);
wr_dat_m(0x00);
wr_dat_m(0x00);
wr_dat_m(0x00);
wr_dat_m(0x7f);
wr_dat_m(0x84);
wr_com_m(0x2b);
wr_dat_m(0x00);
wr_dat_m(0x00);
wr_dat_m(0x00);
wr_dat_m(0x9f);
wr_dat_m(0xa2);
wr_com_m(0x2c);
for(k=0;i<8;i++)
{
for(i=0;i<16;i++) //display line
{
for(j=0;j<160;j++)
{
wr_dat_m(0xf8);
wr_dat_m(0x00);
}
}
for(i=0;i<16;i++) //display line
{
for(j=0;j<160;j++)
{
wr_dat_m(0x07);
wr_dat_m(0xe0);
}
}
for(i=0;i<16;i++) //display line
{
for(j=0;j<160;j++)
{
wr_dat_m(0x00);
wr_dat_m(0x1f);
}
}
for(i=0;i<16;i++) //display line
{
for(j=0;j<160;j++)
{
wr_dat_m(0xff);
wr_dat_m(0xe0);
}
}
for(i=0;i<16;i++) //display line
{
for(j=0;j<160;j++)
{
wr_dat_m(0xf8);
wr_dat_m(0x1f);
}
}
for(i=0;i<16;i++) //display line
{
for(j=0;j<160;j++)
{
wr_dat_m(0x07);
wr_dat_m(0xff);
}
}
for(i=0;i<16;i++) //display line
{
for(j=0;j<160;j++)
{
wr_dat_m(0xff);
wr_dat_m(0xff);
}
}
for(i=0;i<16;i++) //display line
{
for(j=0;j<160;j++)
{
wr_dat_m(0x00);
wr_dat_m(0x00);
}
}
}
}
//====================================================================
//====================================================
// 初始化
//====================================================
void lcd_ini_m(void)
{
//============set power=================//
wr_com_m(0x01);//normal display on
delay(5);
wr_com_m(0x11);//Display Inversion Off
delay(5);
wr_com_m(0x38);//Display Inversion on
delay(5);
wr_com_m(0x13);//Display off
delay(5);
//==============adjust vcom===================//
inti_data(0xc0,0x05);
inti_data(0xc0,0x05);
delay(5);
inti_data(0xc1,0x00);
inti_data(0xc2,0x04);
inti_data(0xc2,0x01);
//===============contrast control==================//
inti_data(0xc5,0x25);
inti_data(0xc5,0x2d);//
wr_com_m(0x20);//
inti_data(0x2a,0x00);//
inti_data(0x2a,0x00);//
inti_data(0x2a,0x00);//
inti_data(0x2a,0x7f);//
inti_data(0x2b,0x00);//
inti_data(0x2b,0x00);//
inti_data(0x2b,0x00);//
inti_data(0x2b,0x9f);//
inti_data(0x36,0x00);//
inti_data(0x3a,0x55);//
inti_data(0xb1,0x0e);//
inti_data(0xb1,0x14);//
inti_data(0xb4,0x00);//
inti_data(0xb7,0x00);//
inti_data(0xb8,0x00);//
wr_com_m(0x29);
//=================================================//
/*inti_data(0x26,0x01);//Gamma Set Gamma Curve 1(G2.2)
inti_data(0x26,0x02);//Gamma Set Gamma Curve 2(G1.8)
inti_data(0x26,0x04);//Gamma Set Gamma Curve 3(G2.5)
inti_data(0x26,0x08);//Gamma Set Gamma Curve 4(G1.0)
//==============gamma curve 1.0==============//
inti_data(0xe0,0x77);//
inti_data(0xe0,0x71);//
inti_data(0xe0,0x03);//
inti_data(0xe0,0x19);//
inti_data(0xe0,0x0f);//
inti_data(0xe0,0x0f);//
inti_data(0xe0,0x12);//
inti_data(0xe0,0xf0);//
inti_data(0xe1,0x30);//
inti_data(0xe1,0x51);//
inti_data(0xe1,0x20);//
inti_data(0xe1,0x1f);//
inti_data(0xe1,0x30);//
inti_data(0xe1,0x0f);//
inti_data(0xe1,0x1f);//
inti_data(0xe1,0xbc);//
//==============Gamma curve 1.8====================//
inti_data(0xe0,0x70);//
inti_data(0xe0,0x72);//
inti_data(0xe0,0x01);//
inti_data(0xe0,0x01);//
inti_data(0xe0,0x37);//
inti_data(0xe0,0x0a);//
inti_data(0xe0,0x0b);//
inti_data(0xe0,0xc0);//
inti_data(0xe1,0x77);//
inti_data(0xe1,0x62);//
inti_data(0xe1,0x72);//
inti_data(0xe1,0x0b);//
inti_data(0xe1,0x59);//
inti_data(0xe1,0x07);//
inti_data(0xe1,0x07);//
inti_data(0xe1,0x6a);//
//================ Gamma curve 2.2===============//
inti_data(0xe0,0x20);//
inti_data(0xe0,0x61);//
inti_data(0xe0,0x01);//
inti_data(0xe0,0x00);//
inti_data(0xe0,0x46);//
inti_data(0xe0,0x0b);//
inti_data(0xe0,0x0b);//
inti_data(0xe0,0xc0);//
inti_data(0xe1,0x77);//
inti_data(0xe1,0x03);//
inti_data(0xe1,0x72);//
inti_data(0xe1,0x0b);//
inti_data(0xe1,0xfe);//
inti_data(0xe1,0x01);//
inti_data(0xe1,0x07);//
inti_data(0xe1,0x5a);//
//================ Gamma curve 2.5===============//
inti_data(0xe0,0x00);//
inti_data(0xe0,0x66);//
inti_data(0xe0,0x55);//
inti_data(0xe0,0x00);//
inti_data(0xe0,0xd3);//
inti_data(0xe0,0x0b);//
inti_data(0xe0,0x12);//
inti_data(0xe0,0xf0);//
inti_data(0xe1,0x32);//
inti_data(0xe1,0x01);//
inti_data(0xe1,0x75);//
inti_data(0xe1,0x0f);//
inti_data(0xe1,0xfd);//
inti_data(0xe1,0x02);//
inti_data(0xe1,0x00);//
inti_data(0xe1,0x69);//*/
//------------------------------------------
}
//====================================================
// 主函数
//====================================================
void main(void)
{
REST = 0;
delay(5);
REST = 1;
delay(5);
lcd_ini_m();
while(1)
{
dis_bar();
delay(100);
Switch();
dis_line(0xff,0x00);
delay(100);
Switch();
dis_line(0x07,0xe0);
delay(100);
Switch();
dis_line(0x00,0x1f);
delay(100);
Switch();
dis_line(0xf8,0x00);
delay(100);
Switch();
dis_line(0x07,0xe0);
delay(100);
Switch();
dis_line(0x00,0x1f);
delay(100);
Switch();
dis_line(0xff,0xe0);
delay(100);
Switch();
dis_line(0xf8,0x1f);
delay(100);
Switch();
dis_line(0x07,0xff);
delay(100);
Switch();
dis_bar();
delay(100);
Switch();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -