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

📄 sed1330.txt

📁 常用的PCB库文件
💻 TXT
📖 第 1 页 / 共 3 页
字号:
 修改时间:无 
 修改原因:无 
******************************************************************************/ 
void WriteCmd(Uchar cmd)	 
{ 
	RD=1; 
	A0=1; 
	P6=cmd; 
	CS=0; 
	WR=0; 
	WR=1; 
	CS=1; 
} 
 
 
//----------------------------------------------------------------------------- 
// 函数:void WriteData(unsigned char datalcd) (私有函数,其他模块不能调用) 
//----------------------------------------------------------------------------- 
/****************************************************************************** 
 调用方式(Function):WriteData(datalcd)  
 函数描述(Description):数据和指令的附属参数写入函数 
 入口参数(Parameters): 
 					  datalcd--待写入的显示数据或指令的附属参数 
 返回值(Returns):无 
 创建时间:16:07,PM,2004.4.19 
 修改时间:无 
 修改原因:无 
******************************************************************************/ 
void WriteData(Uchar datalcd){ 
	 
	RD=1; 
	A0=0; 
	P6=datalcd; 
	CS=0; 
	WR=0; 
	WR=1; 
	CS=1; 
 
} 
 
//----------------------------------------------------------------------------- 
// 函数:unsigned char ReadfromLcd(void) (私有函数,其他模块不能调用) 
//----------------------------------------------------------------------------- 
/****************************************************************************** 
 调用方式(Function):ReadfromLcd()  
 函数描述(Description):数据和光标地址读出函数 
 入口参数(Parameters):无 
 返回值(Returns):数据或光标地址 
 创建时间:16:07,PM,2004.4.19 
 修改时间:无 
 修改原因:无 
******************************************************************************/ 
Uchar ReadfromLcd(void){ 
 
	Uchar rdata; 
 
	P6=0xff; 
	A0=1; 
	RD=0; 
	rdata=P6; 
	CS=0; 
	RD=1; 
	CS=1; 
	return(rdata); 
} 
 
//----------------------------------------------------------------------------- 
// 函数:void LcdInit(void) 
//----------------------------------------------------------------------------- 
/****************************************************************************** 
 调用方式(Function):LcdInit()  
 函数描述(Description):液晶初始化函数 
 入口参数(Parameters):无 
 返回值(Returns):无 
 创建时间:16:07,PM,2004.4.19 
 修改时间:无 
 修改原因:无 
******************************************************************************/ 
 
void LcdInit(void){ 
 
	WriteCmd(0x40);		//进行system set,要写入8个参数      
	WriteData(0x30);	//单屏结构,8×8点阵 
	WriteData(0x87);	//字符宽度位7 
	WriteData(0x07);	//字符高度为7 
	WriteData(0x1d);	//一行显示30个字符	(C/R) 
	WriteData(0x42);	//频率转化 
	WriteData(0x9f);	//每帧扫描160行 	(L/F) 
	WriteData(0x1e);	//一行共有30个字符   
	WriteData(0);    
 
	WriteCmd(0x44);		//进行Scroll,要写入10个参数    
	WriteData(0x00); 
	WriteData(0x00); 
	WriteData(0xa0);	//第一显示区地址和所占的行数160行 
	WriteData(0xc0); 
	WriteData(0x12); 
	WriteData(0xa0); 	//第二显示区地址和所占的行数160行 
	WriteData(0x80);   
	WriteData(0x25); 	//第三显示区地址高8位、低8位和所占的行数160行 
//	WriteData(0x00);   
//	WriteData(0x00);	//第四显示区地址高8位、低8位和所占的行数160行 
 
	WriteCmd(0x5a);					//以点为单位的水平移动量 
	WriteData(0x00);				//水平卷动,初始化时必须清零 
 
	WriteCmd(0x5b);					//显示合成方式设置 
	WriteData(0x0c);				//三屏图形方式相加,或逻辑 
 
	WriteCmd(0x59);					// 写入指令代码0x59 
	WriteData(0x04);				// 显示1区开显示,2、3、4区关显示;光标关显示 
} 
 
//----------------------------------------------------------------------------- 
// 函数:void LcdClr(void) 
//----------------------------------------------------------------------------- 
/****************************************************************************** 
 调用方式(Function):LcdClr()  
 函数描述(Description):清显示 32K RAM区(清屏)子程序 
 入口参数(Parameters):无 
 返回值(Returns):无 
 创建时间:16:07,PM,2004.4.19 
 修改时间:无 
 修改原因:无 
******************************************************************************/ 
void LcdClr(void){ 
 
	Uint i1=32768; 
	 
	WriteCmd( 0x4c ); 				// 光标移动方向定义:自动右移0x4c 
	WriteCmd( 0x46 );				// 光标Locate,定位0x46 
	WriteData( 0 );					// 写入参数CSRL设置参数光标指针低8位 
	WriteData( 0 );					// 写入参数CSRH设置参数光标指针高8位 
	WriteCmd( 0x42 );				// 数据写入指令,代码0x42 
 
	while(i1--)	WriteData( 0x00);	// 写入数据0 
} 
 
 
//----------------------------------------------------------------------------- 
// 函数:void Locatexy(Uchar x,Uchar y) 
//----------------------------------------------------------------------------- 
/****************************************************************************** 
 调用方式(Function):Locatexy(x,y) 
 函数描述(Description):光标位定位,用于在1区图形方式下 
 入口参数(Parameters): 
 					  x...水平方向字节单位坐标,即可以以半个汉字宽度设定水平坐标 
					  	  取值范围:0...39 
					  y...垂直方向以行线定位的坐标,可以定位到点单位 
					      取值范围:0...239 
					  左上角约定坐标为(0,0) 
 返回值(Returns):无 
 创建时间:16:07,PM,2004.4.20 
 修改时间:无 
 修改原因:无 
******************************************************************************/ 
void Locatexy(Uchar x,Uchar y) { 
	 
	Uint temp; 
     
	temp = (Uint)y*paraP9+x; 
    WriteCmd( CsrW );               // 光标Locate,定位 
    WriteData( (Uchar)(temp & 0xff) );  // 写入参数CSRL设置参数光标指针低8位 
    WriteData( (Uchar)(temp /256 ) );   // 写入参数CSRH设置参数光标指针高8位 
} 
 
 
//----------------------------------------------------------------------------- 
// 函数:Uchar dprintf(Uchar x,Uchar y,char code *ptr,bit attrib) 
//----------------------------------------------------------------------------- 
/****************************************************************************** 
 调用方式(Function):dprintf(x,y,*ptr,attrib) 
 函数描述(Description):ASCII(8*16) 及 汉字(16*16) 混合字符串显示函数 
 入口参数(Parameters): 
 					  x,y显示字符串的左上角xy坐标 
					  x...8点一字节位置,取值范围:0...29 
					  y...一条扫描线定位,取值范围:0...159 
					  *ptr...字符串指针,本函数所指的是flash字串 
					  attrib:属性参数,为0:反显;为:1正常显示 
 返回值(Returns):输出字串长度,留意汉字一个算两个 
 其它假定:调用时汉字必须在字库数组中已经存在,否则将输出不正确的结果 
 创建时间:16:07,PM,2004.4.20 
 修改时间:无 
 修改原因:无 
******************************************************************************/ 
/********************************************************/ 
/* ASCII(8*16) 及 汉字(16*16) 显示函数          		*/ 
/********************************************************/ 
Uchar dprintf(Uchar x,Uchar y,char code *ptr,bit attrib) 
{ 
 
    Uchar  c1,c2; 
    Uchar i,j,uLen,uRow,uCol,temp; 
    Uint  k; 
 
    uRow = x; 
    uCol = y; 
    uLen=0; 
    WriteCmd( CsrDirD );            		// 光标移动方向定义:自动下移 
    Locatexy(uRow,uCol);                    //起点定位 
    while ( (Uchar)ptr[uLen] >= 0x10 ){uLen++;};            //探测字串长度 
    i=0; 
    while(i= 0x10) { 
                WriteCmd( mWrite );         // 写数据(命令) 
                for(j=0;j<16;j++)  
					if(attrib)WriteData( ASC_MSK[(c1-0x20)*16 +j ]); 
					else WriteData(~(ASC_MSK[(c1-0x20)*16 +j ])); 
            } 
            uRow++;		                     // 列数加1 
        } 
        else                                // 中文 
        { 
            for(j=0;j= 30)          // 光标后移,原来为40 
        { 
            uCol += 16; 
            uRow = 0; 
            if( uCol >= 160 ) uCol = 0;	//共有160点行 
        } 
 
        Locatexy(uRow,uCol); 
        i++; 
    } 
    return uLen;                //返回字串长度,汉字按2字节计算 
} 
 
//x...8点一字节位置,取值范围:0...29 
//y...一条扫描线定位,取值范围:0...159 
void MyGraph(Uchar x,Uchar y,Uchar Weight,Uchar Height,Uchar code *ptr,bit attrib){ 
	 
	Uchar uRow,uCol,temp,nbyte; 
    Uint  k; 
 
    uRow = x; 
    uCol = y; 
    WriteCmd( CsrDirD );            		// 光标移动方向定义:自动下移 
    Locatexy(uRow,uCol);                    //起点定位 
	nbyte=(Uchar)(Weight/8); 
	for(k=0;k






⌨️ 快捷键说明

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