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

📄 lcd_send.c

📁 书中详细说明了多路数据采集的方法,以及怎么样用AD来采集数据哟,大家不妨看看嘛,说不定有所帮助哟?
💻 C
字号:
/*=================================================================================*/
//LCD显示函数
/*=================================================================================*/
#include <c8051f020.h> // SFR 声明
#include <intrins.h>
#include <ABSACC.H>
#include "LCD_send.h"

/*************************************************************************************
  函数功能:us延时
  输入参数:延时时间timer
  输出参数:无
*************************************************************************************/         
void delay_us(int timer)//us沿时
{  
  timer*=20;//时钟周期调整
  for(;timer>0;timer--)
  _nop_();
}

/*************************************************************************************
  函数功能:ms延时
  输入参数:延时时间timer
  输出参数:无
*************************************************************************************/ 
void delay_ms(unsigned int i)//ms沿时
{ 
   while(--i)
   delay_us(500);
}

/************************************************************************************
  函数功能:LCD 初始化
  输入参数:无
  输出参数:无                              
************************************************************************************/
void lcd_init(void)
{
  LCDRES=0;
  delay_ms(5);
  LCDRES=1;
  LCDREQ=0;
  LCDBUSY=0;
  delay_ms(5);
}

/************************************************************************************
 函数功能:写数据到LCD
 输入参数:写数据 (char) writedata                               
 输出参数:无
*************************************************************************************/
void write_data(unsigned  char data writedata) 
{
 LCDBUSY=1;
 while(LCDBUSY!=0);
 OE573=0;
 LCDDATA=writedata;
 delay_us(2);
 LCDREQ=1;
 delay_us(10);
 LCDBUSY=1;
 while(LCDBUSY==0);		
 LCDREQ=0;
 OE573=1;
}
/*************************************************************************************
函数功能:显示8*8ASCII字符 
输入参数:X坐标X从0x04到0x13共16个字符以字符为单位递增;(0--15)                       
         Y坐标Y从0到0x3F共64个点以点为单位递增;        (0--63)
输出参数:无
*************************************************************************************/
void send_ascii8(unsigned char x,unsigned char y,unsigned char ascii)
  
{ 
 write_data(0xf1);
 write_data(x+0x04);
 write_data(y);
 write_data(ascii);//写要显示的ASCII码;
}
/**************************************************************************************
 
 函数功能:显示8*16ASCII字符变量
 输入参数:X坐标X从0x04到0x13共16个字符以字符为单位递增;(0--15)                       
          Y坐标Y从0到0x3F共64个点以点为单位递增;        (0--63)
 输出参数:无
**************************************************************************************/
void send_ascii16(unsigned char x,unsigned char y,unsigned char ascii)
{
  write_data(0xF9);
  write_data(x+0x04);
  write_data(y);
  write_data(ascii);//写要显示的ASCII码;
}

/*************************************************************************************
 函数功能:显示8*8ASCII字符串
 输入参数:X坐标从0x04到0x13共16个字符以字节为单位递增  (0--15)                            
          Y坐标从0到0x3F共64个点以点为单位递增         (0--63)
 输出参数:无
*************************************************************************************/
void send_asc8str(unsigned char x,unsigned char y,unsigned char *ascii)  
{ 
   while((*ascii)!=0)
   {
      write_data(0xf1);
      write_data(x+0x04);
      write_data(y);
      write_data(*ascii);//写要显示的ASCII码;
      ascii++;
	  if(x<0x0f)
	  x++;
	  else
      {
	     x=0x00;
	     y+=8;
	     if(y==0x40)
	     y=0;
      }
    }
}

/**************************************************************************************
 函数功能:显示8*16ASCII字符串
 输入参数:X坐标X从0x04到0x13共16个字符以字符为单位递增;(0--15)                       
          Y坐标Y从0到0x3F共64个点以点为单位递增;        (0--63)
 输出参数:无
**************************************************************************************/
void send_asc16str(unsigned char x,unsigned char y,unsigned char *ascii)
{
  while((*ascii)!=0)
  {
    write_data(0xF9);
    write_data(x+0x04);
    write_data(y);
    write_data(*ascii);//写要显示的ASCII码;
	ascii++;
    if(x<0x0f)
	x++;
	else
    {
	   x=0x00;
	   y+=16;
	   if(y==0x40)
	   y=0;
     }
  }
}

/*************************************************************************************
 函数功能:显示16*16汉字
 输入参数:x为横坐标(0x02-0x09);    (0--7)                      
          y为纵坐标(0x00-0x03);    (0--3)
 输出参数:无
*************************************************************************************/
void send_hz(unsigned char x,unsigned char y,unsigned char *hz_p)  
{
  while((*hz_p)!=0)
  {
    write_data(0xf0);
    write_data(x+0x02);
    write_data(y);
    write_data(*hz_p-0xa0);
    hz_p++;
    write_data(*hz_p-0xa0);
    hz_p++;
    if(x<0x07)
	x++;
	else
    {
	  x=0x00;
	  y++;
	  if(y==0x05)
	  y=0;
     }
   }
} 
 
/**********************************************************************************************************
 函数功能:显示字节点阵
 输入参数:x为横轴起始坐标(0x04-0x13)        (0--17)                                
          y为纵轴起始坐标(0x00-0x3f)        (0--63)
          显示字节点阵宽度为widh共16个字节  (0--16)
		  高度为high(0x00-0x3f)共64个点     (0--64)  
 输出参数:无
**********************************************************************************************************/
void send_zjdz(unsigned char x,unsigned char y,unsigned char widh,unsigned char high,unsigned char *bmp_p)
{
   unsigned char high_extent,widh_extent;
   for(high_extent=0;high_extent<high;high_extent++)
     {
       for(widh_extent=0;widh_extent<widh;widh_extent++)
	   {
	     write_data(0xf3);
	     write_data(x+0x04);
		 write_data(y);
		 write_data(*bmp_p);
         bmp_p++;
			 x++;
       }
      x-=widh;
      y++;
     }
}



⌨️ 快捷键说明

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