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

📄 term.c

📁 LPC2132通协议源代码和液晶源代码 LPC2132通协议源代码和液晶源代码
💻 C
📖 第 1 页 / 共 3 页
字号:
        if((hz[0]>0xa0)&&(hz[1]>0xa0))
        	Write_HZ(x,y,hz[0],hz[1]);
        x+=2;	
        strhz++;	
	}
}

void Write_StringChar(unsigned int x,unsigned int y,char *str)
{
	while(1)
	{
	    if(*str=='\0')break;
		Write_Char(x++,y,*str++);
	}
}
void Write_BackG(void)
{

   draw_table();
}
void Write_Message(void)
{
   Write_StringHZ(10,200,"啊");
}


void clr_scr()
{
unsigned int i=0;


    en_lcd();

    sed1335_write(csrdir_right,null,1);
    sed1335_write(csrw,cur_set_ini1,2);

    IO1SET=A0;
    write_byte(mwrite);

	for(i=0;i<9600;i++)
	{
	 IO1CLR=A0;
	 write_byte(0x00);
	}
}

void second_scr()
{
uint16 i,j;

    en_lcd();

    sed1335_write(csrdir_right,null,1);
    sed1335_write(csrw,cur_set_ini2,2);

    IO1SET=A0;
    	write_byte(mwrite);
	 	IO1CLR=A0;

	for(i=0;i<240;i++)
	{
	while((IO0PIN&LP)==0);
	while((IO0PIN&LP)!=0);
		for(j=0;j<10;j++)
		 	write_byte(~Row[i].Xbyte[j]);
	while((IO0PIN&LP)==0);
	while((IO0PIN&LP)!=0);
		for(j=10;j<20;j++)
		 	write_byte(~Row[i].Xbyte[j]);
	while((IO0PIN&LP)==0);
	while((IO0PIN&LP)!=0);
		for(j=20;j<30;j++)
		 	write_byte(~Row[i].Xbyte[j]);

	while((IO0PIN&LP)==0);
	while((IO0PIN&LP)!=0);
		for(j=30;j<40;j++)
		 	write_byte(~Row[i].Xbyte[j]);

	}
}

void full_scr()
{
uint16 i,j;

    en_lcd();

    sed1335_write(csrdir_right,null,1);
    sed1335_write(csrw,cur_set_ini1,2);

    IO1SET=A0;
    	write_byte(mwrite);
	 	IO1CLR=A0;

	for(i=0;i<240;i++)
	{
	while((IO0PIN&LP)==0);
	while((IO0PIN&LP)!=0);
		for(j=0;j<8;j++)
		 	write_byte(~Row[i].Xbyte[j]);
	while((IO0PIN&LP)==0);
	while((IO0PIN&LP)!=0);
		for(j=8;j<16;j++)
		 	write_byte(~Row[i].Xbyte[j]);
	while((IO0PIN&LP)==0);
	while((IO0PIN&LP)!=0);
		for(j=16;j<24;j++)
		 	write_byte(~Row[i].Xbyte[j]);

	while((IO0PIN&LP)==0);
	while((IO0PIN&LP)!=0);
		for(j=24;j<32;j++)
		 	write_byte(~Row[i].Xbyte[j]);

	while((IO0PIN&LP)==0);
	while((IO0PIN&LP)!=0);
		for(j=32;j<40;j++)
		 	write_byte(~Row[i].Xbyte[j]);

	}
}
void fill_bg(unsigned char background)
{
uint16 i,j;

    en_lcd();

    sed1335_write(csrdir_right,null,1);
    sed1335_write(csrw,cur_set_ini2,2);

    IO1SET=A0;
    	write_byte(mwrite);
	 	IO1CLR=A0;

	for(i=0;i<240;i++)
	{
	while((IO0PIN&LP)==0);
	while((IO0PIN&LP)!=0);
		for(j=0;j<10;j++)
		 	write_byte(background);
	while((IO0PIN&LP)==0);
	while((IO0PIN&LP)!=0);
		for(j=10;j<20;j++)
		 	write_byte(background);
	while((IO0PIN&LP)==0);
	while((IO0PIN&LP)!=0);
		for(j=20;j<30;j++)
		 	write_byte(background);

	while((IO0PIN&LP)==0);
	while((IO0PIN&LP)!=0);
		for(j=30;j<40;j++)
		 	write_byte(background);

	}

}

void clear_buf()
{
uint16 i,j;
	for(i=0;i<240;i++)
	{
		for(j=0;j<40;j++)
		 	Row[i].Xbyte[j]=0;
	}
}

/*******************************************************************
*                       显示系统初始化                             *
********************************************************************/
void lcd_ini()
{

        IO0CLR=LCDRST;
        DelayNS(10);
        IO0SET=LCDRST;
        DelayNS(10);

	sed1335_write(system_set,system_set_ini,8);
	sed1335_write(scroll,scroll_ini,9);
	sed1335_write(scrform,scrform_ini,2);
 	sed1335_write(hdot_scr,hdot_scr_ini,2);
	sed1335_write(ovlay,ovlay_ini,1);
	sed1335_write(csrw,cur_set_ini1,2);
	sed1335_write(csrdir_right,null,1);
	clr_scr();
	sed1335_write(disp_on,disp_on_ini,1);
    sed1335_write(csrw,cur_set_ini1,2);
}

void reset()
{
buffadd=0;         //SRAM缓冲区指针

csradd[0]=0; csradd[1]=0;

disp_mode=0;

lcd_ini();

X=0; Y=0;

}
void UART0_SendByte(uint8 dat)
{
	U0THR=dat;
	while((U0LSR&0x20)==0);
}

void Uart0_SendString(char *str)
{
	while(1)
	{
	    if(*str=='\0')break;
		UART0_SendByte(*str++);
	}
}

void Uart0_Rx(void)
{
    Rx_Buff[Rx]=U0RBR;
    Rx++;
}
	
void __irq IRQ_UART0(void)
{
   if( 0x04==(U0IIR&0x0F) ) 
   {
      Uart0_Rx();
   }
    VICVectAddr=0x00;		

}	


void System_Ini(void)
{

UARTMODE  uart0_set;

	PINSEL0=0x00050005;   //使能UART0 和UART1 为零Modem
	PINSEL1=0x00400000;
	
	IO0DIR=WR|LCDCS|LCDRST|LED1CON|X9313INC|X9313UD;
	IO1DIR=P1PORT|A0|RD;

	uart0_set.datab=8;              
	uart0_set.stopb=1;              
	uart0_set.parity=0;             
	UART0_Ini(115200,uart0_set);    
	                                
	                                

	VICIntSelect=0x00000000;
	VICVectCntl0=0x26;
	VICVectAddr0=(int)IRQ_UART0;
	VICIntEnable=0x00000040;

	Rd=0; Rx=0;

}
uint8 Read_Rx()
{
uint8  tmp;

        if(Rx==Rd) {Rd=0; Rx=0;}
        while(Rx==0)Delay(10);
        tmp=Rx_Buff[Rd];		
        Rd++;
        return(tmp);
}

void ENABLE_UART()
{
//	VICIntEnable=0x000000c0; 
}

/***************************************************************
*                 main  program                                *
****************************************************************/
int main()
{
uint8 dat[3];
int xx[2],yy[2];    
uint8 i;
    System_Ini();

    lcd_ini();
   
		clear_buf();
        Write_BackG();
		second_scr();
		clear_buf();
	    Write_Message();
	    for(i=0;i<200;i++)
	       write_dot(i,i);
		full_scr();
    X=0;Y=0; 
    adj_gray(0);
    while(1){  
	         dat[0]=Read_Rx();
                    if(sleep) {
                              sleep=0;
                              sed1335_write(system_set,system_set_ini,1);
                              sed1335_write(disp_on,disp_on_ini,1);
                              }

                    if(dat[0]==0x1b){
                                 dat[0]=Read_Rx();
                                 switch(dat[0]){
                                            case 0x11://光标位置设定
                                                 dat[0]=Read_Rx();
                                                 dat[1]=Read_Rx();
                                                 disp_mode=1;
                                                 set_xy(dat[0],dat[1]);
                                                 break;
                                            case 0x12://图形光标位置设定
                                                 dat[0]=Read_Rx()<<8;
                                                 dat[0]|=Read_Rx();

                                                 dat[1]=Read_Rx()<<8;
                                                 dat[1]|=Read_Rx();

                                                 disp_mode=0;
                                                 set_xy(dat[0],dat[1]);
                                                 break;
                                            case 0x13: //
                                            	 disp_mode=0;
                                                 dat[0]=Read_Rx();
                                                 dat[1]=Read_Rx();
                                                 xx[0]=dat[0]*256+dat[1];
                                                 dat[0]=Read_Rx();
                                                 dat[1]=Read_Rx();
                                                 yy[0]=dat[0]*256+dat[1];
                                                 
                                                 dat[0]=Read_Rx();
                                                 dat[1]=Read_Rx();
                                                 xx[1]=dat[0]*256+dat[1];
                                                 dat[0]=Read_Rx();
                                                 dat[1]=Read_Rx();
                                                 yy[1]=dat[0]*256+dat[1];
                                                 draw_line(xx[0],yy[0],xx[1],yy[1]);

                                                 full_scr();
                                                 break;
                                                 
                                            case 0x14: //
                                                 disp_mode=0;
                                                 dat[0]=Read_Rx();
                                                 dat[1]=Read_Rx();
                                                 xx[0]=dat[0]*256+dat[1];
                                                 dat[0]=Read_Rx();
                                                 dat[1]=Read_Rx();
                                                 yy[0]=dat[0]*256+dat[1];
                                                 
                                                 dat[0]=Read_Rx();
                                                 dat[1]=Read_Rx();
                                                 xx[1]=dat[0]*256+dat[1];
                                                 
                                                 draw_circle(xx[0],yy[0],xx[1]);
                                                 
                                                 full_scr();
                                                 break;

                                            case 0x1a://光标右移 N格
                                                 dat[0]=Read_Rx();
//                                                 cursor_move(dat[0]);
                                                 break;
                                            case 0x25://字体设置
                                                 dat[0]=Read_Rx();
                                                 if(dat[0]==0x51) {W_font=0; H_font=0;}
                                                 else if(dat[0]==0x52) {W_font=1; H_font=0;}
                                                 else if(dat[0]==0x53) {W_font=0; H_font=1;}
                                                 else if(dat[0]==0x54) {W_font=1; H_font=1;}
                                                 break;
		                        case 0x20://清屏
//									UART0_SendByte(0xff);
//                                                 clr_scr();
												 clear_buf();
												 full_scr();
												 disp_mode=1;
                                                 set_xy(0,0);
                                                 break;
		                        case 0x09://复位
                                                 reset();
                                                 break;
		                        case 0x16://背景清除并关闭
								                 clear_buf();
                                                 fill_bg(0x00);
                                                 break;
		                        case 0x17://背景填充
												 clear_buf();
                                                 fill_bg(0xff);
                                                 break;
		                        case 0x18://对比度减
                                                     adj_gray(1);
                                                 break;
		                        case 0x19://对比度加
                                                     adj_gray(0);
                                                 break;
		                        case 0x21://睡眠状态
                                                 sed1335_write(sleep_in,null,1);
                                                 sleep=1;
                                                 break;
		                        case 0x22://屏保状态
                                                 disp_mode=0;
                                                 dat[0]=Read_Rx();
//                                                     show_picture(dat[0]);
                                                 break;
		                        case 0x1b://显示帮助
//                                                     disp_help();
                                                 break;
                                 } //end of switch
                    } //end of if(ch==0x1b)
                    else if((dat[0]>=0x20)&&(dat[0]<0x80)){
                                if(disp_mode==0)
                                {
                                   Write_GChar(X,Y,dat[0]);
                                }
                                else
                                {  
                                   Write_Char(X,Y,dat[0]);
                                }   
								full_scr();
                              }
                    else if(dat[0]>0xa0){
                                 dat[1]=Read_Rx();
								 if(dat[1]>0xa0)
								 {
								 	if(disp_mode==0)
								 	{
								 	    Write_GHZ(X,Y,dat[0],dat[1]);                   
								 	}
								 	else
                                 		Write_HZ(X,Y,dat[0],dat[1]);                   
								 	full_scr();
								 }
                            }

    }

	   
}



⌨️ 快捷键说明

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