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

📄 240128.c

📁 2005年全国大学生电子设计大赛 频谱仪 题 源代码。作品获国家一等奖
💻 C
字号:

#include<aduc841.h>
#include<math.h>
#include<240128.h>
#include<absacc.h>
//#include<hz.h>




void set_ram_pointer(unsigned int idata addstart,unsigned char idata x,unsigned char idata y)
{
 unsigned int idata tmp;
 tmp=addstart+y*30+x;
 while(((LCD_inst)&0x03)!=0x03);    //check STA1
 LCD_data=(tmp)&0xff;
 while(((LCD_inst)&0x03)!=0x03);    //check STA1
 LCD_data=(tmp>>8)&0xff;
 while(((LCD_inst)&0x03)!=0x03);    //check STA0
 LCD_inst=0x24;                //address pointer set    32k




}
/*
void set_cursor_1(unsigned char idata x,unsigned char idata y)
{
  while(((LCD_inst)&0x03)!=0x03);    //check STA1
 LCD_data=x;
 while(((LCD_inst)&0x03)!=0x03);    //check STA1
 LCD_data=y;
 while(((LCD_inst)&0x03)!=0x03);    //check STA0
 LCD_inst=0x21;


}

void set_cursor_2(unsigned char idata x,unsigned char idata y)
{
  while(((LCD_inst)&0x03)!=0x03);    //check STA1
 LCD_data=x;
 while(((LCD_inst)&0x03)!=0x03);    //check STA1
 LCD_data=y+0x10;
 while(((LCD_inst)&0x03)!=0x03);    //check STA0
 LCD_inst=0x21;


}
*/
void set_text_ramstart(unsigned int idata add)
{
 while(((LCD_inst)&0x03)!=0x03);    //check STA1
 LCD_data=add&0xff;
 while(((LCD_inst)&0x03)!=0x03);    //check STA1
 LCD_data=(add>>8)&0xff;
 while(((LCD_inst)&0x03)!=0x03);    //check STA0
 LCD_inst=0x40;
}

void set_graph_ramstart(unsigned int idata add)
{
 while(((LCD_inst)&0x03)!=0x03);    //check STA1
 LCD_data=add&0xff;
 while(((LCD_inst)&0x03)!=0x03);    //check STA1
 LCD_data=(add>>8)&0xff;
 while(((LCD_inst)&0x03)!=0x03);    //check STA0
 LCD_inst=0x42;
}

void set_text_area(unsigned char idata col)
{
 while(((LCD_inst)&0x03)!=0x03);    //check STA1
 LCD_data=col;
 while(((LCD_inst)&0x03)!=0x03);    //check STA1
 LCD_data=0;
 while(((LCD_inst)&0x03)!=0x03);    //check STA0
 LCD_inst=0x41;
}

void set_graph_area(unsigned char idata col)
{
 while(((LCD_inst)&0x03)!=0x03);    //check STA1
 LCD_data=col;
 while(((LCD_inst)&0x03)!=0x03);    //check STA1
 LCD_data=0;
 while(((LCD_inst)&0x03)!=0x03);    //check STA0
 LCD_inst=0x43;
}

void set_mode(unsigned char idata mode,unsigned char ie)// mode:'a'-and mode,'o'-or mode,'x'-xor mode,'t'-text mode
{
 if (mode=='a')
  {
   while(((LCD_inst)&0x03)!=0x03);    //check STA1
   LCD_inst=0x83+0x08*(unsigned char)(ie);
  }
 if (mode=='o')
  {
   while(((LCD_inst)&0x03)!=0x03);    //check STA1
   LCD_inst=0x80+0x08*(unsigned char)(ie);
  }
 if (mode=='x')
  {
   while(((LCD_inst)&0x03)!=0x03);    //check STA1
   LCD_inst=0x81+0x08*(unsigned char)(ie);
  }
 if (mode=='t')
  {
   while(((LCD_inst)&0x03)!=0x03);    //check STA1
   LCD_inst=0x84+0x08*(unsigned char)(ie);
  }

}

void set_onoff(bit c_blink,bit c_show,bit text_show,bit graph_show)
{
 unsigned char idata tmp=0x90;
 if (graph_show) tmp=tmp+0x08;
 if (text_show) tmp=tmp+0x04;
 if (c_show) tmp=tmp+0x02;
 if (c_blink) tmp=tmp+0x01;
 while(((LCD_inst)&0x03)!=0x03);    //check STA1
 LCD_inst=tmp;

}
/*
void set_cursor_shape(unsigned char idata shape)
{
 while(((LCD_inst)&0x03)!=0x03);    //check STA1
 LCD_inst=0x14+shape;
}
*/
void write_ramauto(unsigned char indata[],unsigned int idata num)
{
 unsigned int idata tmp;
 while(((LCD_inst)&0x03)!=0x03);    //check STA1
 LCD_inst=0xb0;
 for(tmp=0;tmp<num;tmp++)
 {
  while(!((LCD_inst)&0x08));    //check STA3
  LCD_data=indata[tmp];
 }
 while(((LCD_inst)&0x03)!=0x03);    //check STA3
 LCD_inst=0xb2;

}


void write_ramautoc(unsigned char indata[],unsigned char idata num)
{
 unsigned char idata tmp;
 while(((LCD_inst)&0x03)!=0x03);    //check STA1
 LCD_inst=0xb0;
 for(tmp=0;tmp<num;tmp++)
 {
  while(!((LCD_inst)&0x08));    //check STA3
  LCD_data=indata[tmp]-0x20;
 }
 while(!((LCD_inst)&0x08));    //check STA3
 LCD_inst=0xb2;

}


void write_ramonce(unsigned char idata indata,unsigned char idata mode) //mode:'i'-increase,'d'-decrease,'n'-nonvolatile
{
 while(((LCD_inst)&0x03)!=0x03);    //check STA1
 LCD_data=indata;
 if(mode=='i')
 {
  while(((LCD_inst)&0x03)!=0x03);    //check STA1
  LCD_inst=0xc0;
 }
 if(mode=='d')
 {
  while(((LCD_inst)&0x03)!=0x03);    //check STA1
  LCD_inst=0xc2;
 }
 if(mode=='n')
 {
  while(((LCD_inst)&0x03)!=0x03);    //check STA1
  LCD_inst=0xc4;
 }
}



void write_rambit(bit setclr,unsigned char idata nbit)
{
 unsigned char idata tmp=0xf0;
 if (setclr) tmp=tmp+0x08;

 while(((LCD_inst)&0x03)!=0x03);    //check STA1
 LCD_inst=tmp+nbit;

}

 




⌨️ 快捷键说明

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