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

📄 printertest.c.bak

📁 c编写的lpc2129驱动微打和lcd的底层代码
💻 BAK
📖 第 1 页 / 共 2 页
字号:
* 说    明:A0=1 发送数据
****************************************************************************/
void  GUI_SendDat( uint8 Dat )
{ 	
uint8 Data;
	
Data = ~Dat;
IO0DIR = LCDDB|LCDCS | LCDA0 | LCDWR | LCDRD;
	 
IO0SET = LCDA0;
IO0CLR = LCDCS;				//片选lcd,低电平有效
IO0CLR = LCDWR;				//控制lcd写数据		
IO0SET = LCDRD;
if(Dat==0x00)
     	{
      	IO0CLR=(0XFF<<LCDNUM);
     	}
else
     	{
      	IO0SET = Dat << LCDNUM;	 	// 从P0.10~P0.17输出      
      	IO0CLR = (Data << LCDNUM);
      	}
IO0SET = LCDCS;
IO0SET = LCDRD;		     
IO0SET = LCDWR;			 	// LCDWR = 1
IO0CLR = LCDDB;
}
  
 
/****************************************************************************
* 名    称:GUI_LcdInit()
* 功    能:初始化lcd
* 入口参数:无
* 出口参数:无
* 说    明:目标器件为:LMS0192B-1型液晶屏
****************************************************************************/
void  GUI_LcdInit(void)
{  
GUI_SendCom( 0xAB );
GUI_SendCom( 0xA2 );
GUI_SendCom( 0xA1 );
GUI_SendCom( 0xC8 );
GUI_SendCom( 0x40 );
GUI_SendCom( 0xa4 );
GUI_SendCom( 0xa6 );	
GUI_SendCom( 0x2F );
GUI_SendCom( 0x27 );
GUI_SendCom( 0x81 );
GUI_SendCom( 0x13 );
GUI_SendCom( 0xAF );
GUI_SendCom( 0xB0 );
GUI_SendCom( 0x12 );
GUI_SendCom( 0x04 );	
} 


/****************************************************************************
* 名    称:GUI_WriteWord_1616()
* 功    能: 在屏上指定页和指定列写一个16*16的字符
* 入口参数:Page	:起始页;
*           Col		:起始列;
*           Word	:字符的起始数据指针
*			Reverse	:反现标志,非零有效
* 出口参数:无
* 说    明:目标器件为:LMS0192B-1型液晶屏
****************************************************************************/
void GUI_WriteWord_1616(uint8 Page,uint8 Col,uint8 *Word,uint8 Reverse)
{
uint8 	ColData,PageData;
uint8	ColRam;
if((Col<159)&&(Page<7))
 	{
 	ColRam=Col+0x24;  
 	for(ColData=0;ColData<16;ColData++)          		//列循环。
    		{   
    		for(PageData=0;PageData<2;PageData++)    	//跳上下页。
        		{
        		GUI_SendCom(0xb0+Page+PageData);        
        		GUI_SendCom(0x00|((ColData+ColRam)&0x0f));
        		GUI_SendCom(0x10|((ColData+ColRam)>>4));
        		if(Reverse)           
        			GUI_SendDat(~Word[16*PageData+ColData]);
        		else
        			GUI_SendDat(Word[16*PageData+ColData]);       
        		}
    		}
 	}
} 

/****************************************************************************
* 名    称:GUI_WriteARowWord_1616()
* 功    能: 在屏上指定页和指定列写一行16*16的字符
* 入口参数:	Page	:起始页;
*           	Col	:起始列;
*           	Word	:字符的起始数据指针
*		Reverse	:反显标志,非零有效
*		Num	:字符个数
* 出口参数:无
* 说    明:
****************************************************************************/
void GUI_WriteARowWord_1616(uint8 Page,uint8 Col,uint8 *Word,uint8 Reverse,uint8 Num)
{
uint8 Temp;
for(Temp=0;Temp<Num;Temp++)
	{
	GUI_WriteWord_1616(Page,Col+Temp*16,Word+Temp*32,Reverse);
	}
}


/****************************************************************************
* 名    称:GUI_ClrScreen()
* 功    能: 整屏清除
* 入口参数:无
* 出口参数:无
* 说    明:目标器件为:LMS0192B-1型液晶屏
****************************************************************************/ 
void GUI_ClrScreen(void)
{
uint8	Page,Col;
for(Page=0;Page<=7;Page++)
	{
	GUI_SendCom(0xb0 + Page);
	GUI_SendCom(0x12);
	GUI_SendCom(0x04);
	for(Col=0;Col<=159;Col++)
		{
		GUI_SendDat(0x00);
		}
	}	
} 

/****************************************************************************
* 名    称:PrintFactoryInf()
* 功    能: 打印厂家信息
* 入口参数:无
* 出口参数:无
* 说    明:目标器件为:MP-T153-PC型微型打印机
****************************************************************************/ 
void PrintFactoryInf(void)
{
PrintWords(PrintArmy);		//"中国人民解放军"
PrintByte(0x0d);		//回车
PrintWords(PrintFactory);	//“第六九零四工厂”
PrintByte(0x0d);		//回车
PrintChars(PrintDeviceModel);	//“YWM-1“
PrintWords(PrintDeviceType);	//“型误码仪”					
PrintByte(0x0d);		//回车
PrintChars(PrintLineShort);	//“-------------”
PrintByte(0x0d);		//回车
} 
/****************************************************************************
* 名    称:PrintTableHead()
* 功    能: 打印表头
* 入口参数:无
* 出口参数:无
* 说    明:目标器件为:MP-T153-PC型微型打印机
****************************************************************************/                         
void PrintTableHead(void)
{
PrintByte(0x1b);
PrintByte(0x44);
DelayNS(2);
PrintByte(0x01);		//位置3
PrintByte(0x0a);		//位置15
//PrintByte(0x0d);		//位置26
//PrintByte(0x15);		//位置35
PrintByte(0x14);		//位置41
PrintByte(0x19);		//位置45
PrintByte(0x00);		//造表命令结束
PrintByte(0x09);		//执行水平造表
PrintChars(PrintBER);		//"BER"
PrintByte(0x09);		//执行水平造表
PrintChars(PrintBEN);		//"BEN"
PrintByte(0x09);		//执行水平造表
//PrintChars(PrintES);		//"ES"
//PrintByte(0x09);		//执行水平造表
//PrintChars(PrintSES);		//"SES"
//PrintByte(0x09);		//执行水平造表
PrintChars(PrintESR);		//"ES%"
PrintByte(0x09);		//执行水平造表
PrintChars(PrintSESR);		//"SES%"
PrintByte(0x0d);		//回车
PrintChars(PrintLineLong);	//“--------------------------”  
PrintByte(0x0d);		//回车
}

/****************************************************************************
* 名    称:PrintTestExample()
* 功    能: 打印测试用例,
* 入口参数:无
* 出口参数:无
* 说    明:目标器件为:MP-T153-PC型微型打印机
****************************************************************************/                         
void PrintTestExample(void)
{
PrintByte(0x09);		//执行水平造表
PrintChars(PrintTestBER);		//"BER"
PrintByte(0x09);		//执行水平造表
PrintChars(PrintTestBEN);		//"BEN"
PrintByte(0x09);		//执行水平造表
//PrintChars(PrintES);		//"ES"
//PrintByte(0x09);		//执行水平造表
//PrintChars(PrintSES);		//"SES"
//PrintByte(0x09);		//执行水平造表
PrintChars(PrintTestESR);		//"ES%"
PrintByte(0x09);		//执行水平造表
PrintChars(PrintTestSESR);		//"SES%"
PrintByte(0x0d);		//回车

}

/****************************************************************************
* 名称:main()
* 功能:
****************************************************************************/
int  main(void)
{   
PINSEL0 = 0x00000000;		// 设置所有管脚连接GPIO
PINSEL1 = 0x00000000;
PINSEL2 = 0x00000004; 
IO1DIR = FPGA_RESET|MPU_TEST|LCDBACKLIGHT;	// 设置FPGA_RESET和MPU_TEST控制口为输出   	  	
IO1SET = FPGA_RESET;
DelayNS(1000);
IO1CLR = FPGA_RESET;		// 复位FPGA   	
IO1SET=LCDBACKLIGHT;		// 点亮LCD背光	
GUI_LcdInit();
//IO1CLR=LCDBACKLIGHT;		// 关闭LCD背光
GUI_ClrScreen();
GUI_WriteARowWord_1616(1,46,test[0],0,3);
while(1)
	{								
	DelayNS(50000);
	//PrintFactoryInf();	//打印厂家信息
	PrintTableHead();	//打印表
	PrintTestExample();			
	}
}

⌨️ 快捷键说明

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