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

📄 ts12864.c

📁 一个51单片机的shell调试命令
💻 C
📖 第 1 页 / 共 2 页
字号:
;创 建 人: 何  呈
;创建日期:2007.6.20
;修改日期:2007.6.20
******************************************************************************/ 
void send_com_init(unsigned char command_init ) 
{ 
	RS=0; 
	RW=0; 
	lcd_data=command_init; 
	E = 1; 
	NOP(); 
	NOP(); 
	E =0; 
} 
/*****************************************************************************
;函 数 名:void send_data(uchar da)  
;功    能: 写数据
;说    明:无
;入口参数:无
;返 回 值:无
;创 建 人: 何  呈
;创建日期:2007.6.20
;修改日期:2007.6.20
******************************************************************************/
void Send_Data_Lcd(uchar da)
{
	check_busy(); 
	RS=1; 
	RW=0;
	lcd_data = da;
	E =1; 
	NOP(); 
    NOP(); 
	E =0; 
} 
/*****************************************************************************
;函 数 名:unsigned char read_data(void)  
;功    能: 读数据
;说    明:无
;入口参数:无
;返 回 值:无
;创 建 人: 何  呈
;创建日期:2007.6.20
;修改日期:2007.6.20
******************************************************************************/
unsigned char read_data(void) 
{ 
  	unsigned char read_data; 
	check_busy(); 
	RS=1; 
	RW=1; 
	E =1; 
	NOP(); 
	read_data=lcd_data; 
	E =0;  
	return (read_data); 
} 
/*****************************************************************************
;函 数 名:void clear_LCD(void)  
;功    能: 清屏
;说    明:无
;入口参数:无
;返 回 值:无
;创 建 人: 何  呈
;创建日期:2007.6.20
;修改日期:2007.6.20
******************************************************************************/  
void clear_LCD(void) 
{ 
  	send_com(0x01); 
	send_com(0x34); 
	send_com(0x30); 
} 
/*****************************************************************************
;函 数 名:void initial_LCD(void)  
;功    能: LCD初始化
;说    明:无
;入口参数:无
;返 回 值:无
;创 建 人: 何  呈
;创建日期:2007.6.20
;修改日期:2007.6.20
******************************************************************************/
void Init_LCD(void) 
{   
	 PSB=1; 
	 RST=0;//Reset. 
	 NOP(); 
	 NOP(); 
	 RST=1; 
	 NOP(); 
	 delay_10us(10); 
	 send_com_init(0x30);//30H--基本指令操作 
	 delay_10us(4); 
	 send_com_init(0x0c);//开显示,关光标,不闪烁。 
	 delay_10us(10); 
	 send_com_init(0x01);//清除显示 
	 delay_ms(10); 
	 send_com_init(0x06);//指定在资料写入或读取时,光标的移动方向,DDRAM的地址计数器(AC)加1。   
} 
/*****************************************************************************
;函 数 名:void WR_ZB(void)  
;功    能: 写准备
;说    明:无
;入口参数:无
;返 回 值:无
;创 建 人: 何  呈
;创建日期:2007.6.20
;修改日期:2007.6.20
******************************************************************************/  
void WR_ZB(void) 
{ 
	 send_com(0x34); 
	 send_com(LCD_Y); 
	 send_com(LCD_X); 
	 send_com(0x30); 
} 
/*****************************************************************************
;函 数 名:void QUSHU(const unsigned char *shu)  
;功    能: 取数送显示
;说    明:无
;入口参数:无
;返 回 值:无
;创 建 人: 何  呈
;创建日期:2007.6.20
;修改日期:2007.6.20
******************************************************************************/ 
void QUSHU(const unsigned char *shu) 
{ 
   for (;COUNT!=0;COUNT--) 
   { 
       Send_Data_Lcd(*shu++); 
       delay_ms(80); 
   }   
} 
/*****************************************************************************
;函 数 名:void flash(void)  
;功    能: Flash
;说    明:无
;入口参数:无
;返 回 值:无
;创 建 人: 何  呈
;创建日期:2007.6.20
;修改日期:2007.6.20
******************************************************************************/ 
void flash(void) 
{ 
	 send_com(0x08);//关闭显示 
	 delay_ms(250); 
	 send_com(0x0c);//开显示,关光标,不闪烁。 
	 delay_ms(250); 
	 send_com(0x08);//关闭显示 
	 delay_ms(250); 
	 send_com(0x0c);//开显示,关光标,不闪烁。 
	 delay_ms(250); 
	 send_com(0x08);//关闭显示 
	 delay_ms(250); 
} 
/*****************************************************************************
;函 数 名:void PHO_DISP(const unsigned char *s)  
;功    能: 显示图形子程序
;说    明:无
;入口参数:无
;返 回 值:无
;创 建 人: 何  呈
;创建日期:2007.6.20
;修改日期:2007.6.20
******************************************************************************/  
void PHO_DISP(const unsigned char *s) 
{ 
   COUNT3=0X02; 
   LCD_X=0X80; 
   for (;COUNT3!=0;COUNT3--) 
   { 
       LCD_Y=0X80; 
       COUNT2=0X20;//32 
       for (;COUNT2!=0;COUNT2--) 
       { 
         COUNT1=0X10;//16 
         WR_ZB(); 
         for (;COUNT1!=0;COUNT1--) 
          { 
            Send_Data_Lcd(*s++); 
             
          } 
         LCD_Y+=1; 
       } 
       LCD_X=0X88; 
   } 
   send_com(0x36); 
   send_com(0x30); 
} 
/*****************************************************************************
;函 数 名:void LAT_DISP(void)  
;功    能: 显示点阵子程序
;说    明:无
;入口参数:无
;返 回 值:无
;创 建 人: 何  呈
;创建日期:2007.6.20
;修改日期:2007.6.20
******************************************************************************/
void LAT_DISP(void) 
{ 
   COUNT3=0X02; 
   LCD_X=0X80; 
   for (;COUNT3!=0;COUNT--) 
    { 
       LCD_Y=0X80; 
       F0=0; 
       COUNT2=0X20; 
       for (;COUNT2!=0;COUNT--) 
         { 
           COUNT1=0X10; 
           WR_ZB(); 
           if (F0!=0) 
           { 
             LCD_DATA=LCD_DATA2; 
           } 
           else LCD_DATA=LCD_DATA1; 
           for (;COUNT1!=0;COUNT1--) 
             { 
              Send_Data_Lcd(LCD_DATA); 
             } 
           LCD_Y+=1; 
           F0=!F0; 
         } 
       LCD_X=0X88; 
    } 
    
   send_com(0x36); 
   send_com(0x30); 
} 
/*****************************************************************************
;函 数 名:void Show(uchar *temp)  
;功    能: 查表取数据送显示
;说    明:无
;入口参数:无
;返 回 值:无
;创 建 人: 何  呈
;创建日期:2007.6.20
;修改日期:2007.6.20
******************************************************************************/
void Show(uchar *temp)
{
    //Delay_Nms(80);延//时80ms		  ,
    while((*temp)!='\0' )
   {
  	  Send_Data_Lcd(*temp);
      temp++;
   }        
}
/*****************************************************************************
;函 数 名:void Test_Lcd_End(void) 
;功    能: ts12864测试程序
;说    明:无
;入口参数:无
;返 回 值:无
;创 建 人: 何  呈
;创建日期:2007.6.20
;修改日期:2007.6.20
******************************************************************************/
void Test_Lcd_End(void)
{
    lcd_data = 0x00; 
    RS = 0;
    RW = 0;
    E = 0;
    PS = 0;
    RST = 0;
}
/*************************st12864的主测试程序*******************************/
void Test_Lcd(void) 
{   
	   Test_Lcd_End();   //初始化端口
       Init_LCD();
  
       clear_LCD(); 
       PHO_DISP(TU_TAB2);	//显示图形 
	   delay_ms(60000);
	   delay_ms(60000);

	   PHO_DISP(TU_TAB1);	//显示图形 
	   delay_ms(60000);
	   delay_ms(60000);
       clear_LCD();
	   
	   send_com(0x80);   	//显示第一行汉字
	   Show(hanzi0);
	   delay_ms(60000);

	   send_com(0x90);   	//显示第二行汉字
	   Show(hanzi1);
	   delay_ms(60000);

	   send_com(0x88);   	//显示第三行汉字
	   Show(hanzi2);
	   delay_ms(60000);

	   send_com(0x98);   	//显示第四行汉字
	   Show(hanzi3);
	   delay_ms(60000);

	   delay_ms(60000);
	   delay_ms(60000);
	   clear_LCD();   

   	   Test_Lcd_End(); 
}

⌨️ 快捷键说明

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