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

📄 lcd.c

📁 dsp控制LCD的显示,很详细的源代码,可以直接参考编程
💻 C
📖 第 1 页 / 共 3 页
字号:
/*********************************************************************/  
//* 说明: 
//* 功能: 2407初始化
//* 调用:
//* 输入:  
//* 返回值: 无
/*********************************************************************/
void  initial()
{   
   asm(" setc    SXM");    
   asm(" clrc     OVM");    
   asm(" clrc      CNF");   
      *SCSR1=0x81FE;//4倍频
      *WDCR=0x0E8;
      WSGR=0x0000;
      *IMR=0x0005;  
      *IFR=0xFFFF;
      *MCRA=*MCRA&0X0000|0x03;         // IOPB端口配置为一般的I/O功能
      *MCRC=*MCRA&0X03ff;         // IOPF2端口和IOPF3~6配置为一般的I/O功能
    *PADATDIR=*PADATDIR|0XFF00;       
    *PBDATDIR=*PBDATDIR|0XFF00;   // IOPB端口设置为输出方式
    *PFDATDIR=*PFDATDIR|0x0400;	// IOPF2端口为输出端口,IOPF3-IOPF6为输入端口
    a=1;
} 
/*********************************************************************/  
//* 说明: 
//* 功能: AD初始化子程序
//* 调用:
//* 输入:  
//* 返回值: 无
/*********************************************************************/ 
void  ADINIT()
{  
   int i; 
	for (i=0;i<128;i++)	/* 缓冲区清0 */
		ADRESULT[i]=0;
   /**EVBIMRB = 0x01;	                       // 使能T4PINT 
   *EVBIFRB=0x0FFFF;                       //清除EVB中断标志,“写1清0”   
   *GPTCONB=0x0400;                        //T4周期中断标志触发AD转换
   *T4CNT=0x0000;                          //计数器清零                                                   
   *T4CON=0x170C;                          //T4为连续增减计数模式,128分频,且选用内部时钟源
   *T4PR=0x0BC;                            //设置T4的周期寄存器/0.08S
                                           // */  
   /**ADCTRL1=0X10;                          //采样时间窗口预定标位ACQ PS3~ACQ PS0 为0
                                           //转换时间预定标位CPS为0,AD为启动/停止模式,排
                                           //序器为级连工作方式,且禁止特殊的两种工作模式 */
  /* *ADCTRL1= 0x2040;	                   // 设置连续转换模式                                                                                           
   *ADCTRL2=0X8404;                        //可以用EVB的一个事件信号触发AD转换,且用中断模式1       
   *MAXCONV=0X02;                         
   *CHSELSEQ1=0X3210; */
   /**CHSELSEQ2=0X7654; 
   *CHSELSEQ3=0X08; */
   /**CHSELSEQ4=0X0FEDC; */ 
   *T4CNT=0x0000; 
   *T4CON=0x170C; 
   *T4PR=0x05F;    //300um
   /**T4PR=0x0BC; */
   *GPTCONB=0x0400;
   *EVBIFRB=0x0FFFF; 
   *ADCTRL1=0X10;
   *ADCTRL2=0X8404;
   *MAXCONV=0X0f;
   *CHSELSEQ1=0X3210;
   *CHSELSEQ2=0X7654;
   *CHSELSEQ3=0XBA98;
   *CHSELSEQ4=0XFEDC;
     
}
/*********************************************************************/  
//* 说明: 
//* 功能: LCD初始化
//* 调用:
//* 输入:  
//* 返回值: 无
/*********************************************************************/
void init_lcd()
{ 
  /*rst; */
  /*psb;*/ 
  wr_lcd(comm,0x0030);//8位并行接口 基本指令 
  /*delay(80);                     //72us */
  wr_lcd(comm,0x000f);         //开启屏幕 光标 闪烁 
  /*delay(4800);                     //4.6ms */
  wr_lcd(comm,0x0001);               //清屏幕 clear
  /*delay(4800);                     //4.6ms*/
  wr_lcd(comm,0x0006);
  /*delay(80);                     //72us */
  wr_lcd(comm,0x000C); 
  /*delay(80);                     //72us */     
}
/*********************************************************************/  
//* 说明: 
//* 功能: SCI初始化
//* 调用:
//* 输入:  
//* 返回值: 无
/*********************************************************************/ 
void sciint()
{   
    *SCICCR=0x07;           	
    *SCICTL1=0x12;     
    *SCICTL2=0x01;       	
    *SCIHBAUD=0x02;
	*SCILBAUD=0x08;   //9600    	
    *SCICTL1=0x32;   
    *SCIPRI=0x60; 
    *SCITXBUF=0x00;   
}
/*********************************************************************/  
//* 说明: 
//* 功能: SCI中断服务子程序
//* 调用:
//* 输入:  
//* 返回值: 无
/*********************************************************************/ 
void interrupt  uarttr( )    	
{ 
  /*int k;  
  uchar key,bt;
  static int i=0;
  bt=0; 
  while (!bt)
  {
   i=0;
   key=GetKey();
   if(a==1)
   { cc8=bb[i]>>8; 
     a=0;}
   else if(a==0)
   { cc8=bb[i++];  
     a=1;   }               
   *SCITXBUF=cc8;         
   if(i>63)  i=0;  
   *IFR=0x0010;	
    enable();
    
    delay (50);
    if(key==5)bt=1;
    }
	/*return;*/
	int k;  
  uchar key,bt;
  static int i=0;
  bt=0; 
  while (!bt)
  {
   i=0;
   key=GetKey();
   if(a==1)
   { cc8=ADRESULT[0]>>8; 
     a=0;}
   else if(a==0)
   { cc8=ADRESULT[0];  
     a=1;   }               
   *SCITXBUF=cc8; 
   *IFR=0x0010;	
    enable();
    delay (150);
    if(key==5)bt=1; 
	}
} 
/*********************************************************************/  
//* 说明: 
//* 功能: AD屏蔽中断子程序
//* 调用:
//* 输入:  
//* 返回值: 无
/*********************************************************************/  
void  inline  disable()
{
   asm(" setc INTM ");
}
/*********************************************************************/  
//* 说明: 
//* 功能: AD开关中断子程序
//* 调用:
//* 输入:  
//* 返回值: 无
/*********************************************************************/
void  inline  enable()
{
   asm(" clrc INTM ");
}
/*********************************************************************/  
//* 说明: 
//* 功能: AD中断
//* 调用:
//* 输入:  
//* 返回值: 无
/*********************************************************************/ 
/*void interrupt  T2INT()
{
   int flag;
   unsigned int Itest;
   flag=*EVAIFRB&0x0001;
   if(flag!=0x0001)
   {
     enable();
     return;
   }
}*/ 
/*********************************************************************/  
//* 说明: 启动AD转换子程序(通过启动定时器4的方式间接启动)
//* 功能: 
//* 调用:
//* 输入:  
//* 返回值: 无
/*********************************************************************/ 
void ADSOC()
{
   *T4CON=*T4CON|0X0040;
} 
/*********************************************************************/  
//* 说明: 
//* 功能: AD中断服务子程序
//* 调用:
//* 输入:  
//* 返回值: 无
/*********************************************************************/
void  interrupt  adint()
{  
   int i;  
   int max,min,sum;
   asm(" clrc  SXM");          
  /* s=RESULT0; 
   cesi=*s>>6;      
   ADRESULT[q]=cesi;
   q++;
   if(q>=127)q=0;
    
   for(q=0;q<=8;q++)
   {
     ADRESULT[q]=*s>>6;
     cesi=ADRESULT[q]; 
   }
   *ADCTRL2=*ADCTRL2|0X4200;     //复位SEQ1,且清除INT  FLAG SEQ1 标志“写1

⌨️ 快捷键说明

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