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

📄 hitool1.c

📁 关于lcd数显的源程序
💻 C
字号:
//函数名   Lcd_Clr()
//功能    清显示屏
//参数   无
//返回   无
void  Lcd_Clr(void)
{
 INT32U  i;
 INT32U  *pDisp=(INT32U *)LCD_VIRTUAL_BUFFER;
 for(i=0;i<(SCR_XSIZE*SCR_YSIZE/2/4);i++)
 {
  *pDisp++=WHITE;
 }
}

//函数名   Lcd_Active_Clr()
//功能    清屏
//参数   无
//返回   无
void Lcd_Active_Clr(void)
{
 INT32U  i;
 INT32U  *pDisp=(INT32U *)LCD_VIRTUAL_BUFFER;
  for(i=0;i<(SCR_XSIZE*SCR_YSIZE/2/4);i++)
 {
  *pDisp++=WHITE;
 }
}

//函数名   Lcd_Draw_HLine()
//功能    用指定颜色画水平线
//参数    usX0,usY0   起始坐标 
//          usX1      结束X坐标
//          ucColor   线条颜色
//          usWidth   线条宽度
//返回   无

void Lcd_Draw_HLine(INT16 usX0,INT16 usX1,INT16 usY0,INT8U  ucColor,INT16U usWidth)
{
 INT16  usLen;
  if(usX1<usX0)
  {
   GUISWAP(usX1,usX0);
  }
  while((usWidth--)>0)
   {
    usLen=usX1-usX0+1;
    while((usLen--)>0)
     {
      LCD_PuPixel(usX0+usLen,usY0,ucColor);
     }
    usY0++;
  }  
}

//函数名   Lcd_Draw_VLine()
//功能    用指定颜色画水平线
//参数    usX0,usY0   起始坐标 
//          usX1      结束X坐标
//          ucColor   线条颜色
//          usWidth   线条宽度
//返回   无
void Lcd_Draw_VHine(INT16 usY0,INT16 usY1,INT16 usX0,INT8U  ucColor,INT16U usWidth)
{
 INT16 usLen;
  if(usY1<usY0)
  {
   GUISWAP(usY1,usY0);
  }
  while((usWidth--)>0)
   {
    usLen=usY1-usY0+1;
    while((usLen--)>0)
     {
      LCD_PuPixel(usX0,usY0+usLen,ucColor);
     }
    usX0++;
  }  
}

//函数名   BitmapView()
//功能    显示位图文件
//参数     x,y起始坐标
   //     Stru_Bitmap  位图定义文件
//返回   无

void BitmapView(INT16U x,INT16 y,STRU_BITMAP Stru_Bitmap)
{
 INT32U i,j;
 INT8U ucColor;
 
 for(i=0;i<Stru_Bitmap.usHeight;i++)
 {
   for(j=0;j<Stru_Bitmap.usWidth;j++)
   {
    if((ucColor=*(INT8U*)(Stru_Bitmap.pucStart+i*Stru_Bitmap.usWidth+j))!=TRANSPARENCY)
    {
     LCD_PuPixel(x+j,y+1,ucColor);
    }
   }
 }
}


//  DMA
//函数名   Lcd_Dma_Trans()
//功能   使用DMA传送显示缓冲区内容到显示存储器
//参数    无
//返回   无

void  Lcd_Dma_Trans(void)
{
 INT8U  err;
 ucZdma0Done=1;
 //******** 
 
 //********  
 rNCACHBE1=(((unsigned)(LCD_ACTIVE_BUFFER)>>12)<<16)((unsigned)(LCD_VIRTUL_BUFFER)>>12);
 rZDISRC0=(DW<<30)|(1<<28)|LCD_VIRTUL_BUFFER;
 rZDIDES0=(2<<30)|(1<<28)|LCD_VIRTUL_BUFFER;
 rZDICNTO=(2<<28)|(1<<26)|(3<<22)|(LCD_BUF_SIZE)|(0<<20);
 
 //重新使能ZDMA传输
 rZDICNTO|=(1<<20);     //ES3
 rZDCON0=0x1;          //开始传送
 
 Delay(500);       //等待
 while(ucZdma0Done);   //DMA完成否 
}                          

⌨️ 快捷键说明

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