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

📄 lcd_subfun.c

📁 TMS320C6416的BOOTLOADER程序代码
💻 C
字号:
void LCD_INIT()
{ 
 int il;
 /******************system set *****************************/
  for(il=0,pLCD=0;il<SYS_SET_NUM;il++)
  { *(short*)(Blkadr+2*pLCD)=SYS_SET_TAB[il];
  pLCD++;
  }
/*Sets the scroll start address and the number of lines per scroll block*/
  for(il=0;il<SCROLL_NUM;pLCD++,il++)
  { *(short*)(Blkadr+2*pLCD)=SCROLL_TAB[il];
  }
/******************hold set *****************************/
  for(il=0;il< HDOTSET_NUM;pLCD++,il++)
  { *(short*)(Blkadr+2*pLCD)= HDOTSET_TAB[il];
  }
/*Selects layered screen composition and screen text/ graphics mode*/
  for(il=0;il<OYLAY_NUM;pLCD++,il++)
  { *(short*)(Blkadr+2*pLCD)=OYLAY_TAB[il];
  }
  
}

void LCD_CLEAR()//注意清屏会送入FPGA好多的0000;考虑自编代码让FPGA送
{
  int il;
  for(il=0;il<CSRDIR_NUM;pLCD++,il++)
  { *(short*)(Blkadr+2*pLCD)=CSRDIR_RIGHT_TAB[il];
  }
  for(il=0;il<CSRW_NUM;pLCD++,il++)
  { *(short*)(Blkadr+2*pLCD)=CSRW_TAB[il];
  }
  for(il=0;il< MWEAD_NUM;pLCD++,il++)
  { *(short*)(Blkadr+2*pLCD)= MWEAD_TAB[il];
  }
  //写入00用来清显示RAM
  for(il=0;il<2*240*40;pLCD++,il++)//1/2
  { *(short*)(Blkadr+2*pLCD)= 0x00;
  }
}
void LCD_DIPLAY(char CN_flag,short oxl,short oy,short cod)//0为汉字
{ int il,jd;
 char count1=0;
 char count2=0x10;//16
 short csrx,csry;
 short ap=SYS_SET_TAB[9];
 
 //计算汉字/数字的字模首地址
 short* adr;
 if(!CN_flag)
 adr=&HanZi[cod].HzDot[0];
 else
 adr=&Num[cod].NumDot[0];
 
 //计算光标的位置
 csrx=oy*ap+oxl;
 csry=ap+0x40;
 // 光标代码下移
  for(il=0;il<CSRDIR_NUM;pLCD++,il++)
  { *(short*)(Blkadr+2*pLCD)=CSRDIR_DOWN_TAB[il];
  }
 /***************左边的控制***************/ 
 //设置光标的地址
 CSRW_TAB[2] = csrx;//take care
 CSRW_TAB[3] = csry;
  for(il=0;il<CSRW_NUM;pLCD++,il++)
  { *(short*)(Blkadr+2*pLCD)=CSRW_TAB[il];
  }
//设置允许数据连续输入指令
   for(il=0;il<MWEAD_NUM;pLCD++,il++)
  { *(short*)(Blkadr+2*pLCD)=MWEAD_TAB[il];
  }
 //送左边字模数据代码
 for(jd=0;jd<count2;jd++,pLCD++)
   {
    *(short*)(Blkadr+2*pLCD)=*(short*)(adr+ count1*jd);
   }
 /**********右边的控制***************/  
   if (!CN_flag)
 {//修正光标地址
  CSRW_TAB[2] = csrx+1;
 
  for(il=0;il<CSRW_NUM;pLCD++,il++)
  { *(short*)(Blkadr+2*pLCD)=CSRW_TAB[il];
  }

 //设置允许数据连续输入指令
   for(il=0;il<MWEAD_NUM;pLCD++,il++)
  { *(short*)(Blkadr+2*pLCD)=MWEAD_TAB[il];
  }  
   //送右边字模数据代码
 count1++;
 for(jd=0;jd<count2;jd++,pLCD++)
   {

    *(short*)(Blkadr+2*pLCD)=*(short*)(adr+count2*count1+jd);
   }
  } 
 }

⌨️ 快捷键说明

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