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

📄 co0511.c

📁 用m128调试CO0511液晶的源代码!
💻 C
📖 第 1 页 / 共 2 页
字号:
}
void set_res(uchar i)
{	 
	 if(i)
	 PORTA|=0x02;
	 else
	 PORTA&=0xfd;
}
void set_a0(uchar i)
{	 
	 if(i)
	 PORTA|=0x04;
	 else
	 PORTA&=0xfb;
}
void set_sclk(uchar i)
{	 
	 if(i)
	 PORTC|=0x40;
	 else
	 PORTC&=0xbf;
}
void set_si(uchar i)
{	 
	 if(i)
	 PORTC|=0x80;
	 else
	 PORTC&=0x7f;
} 
void set_c86(uchar i)
{	 
	 if(i)
	 PORTA|=0x20;
	 else
	 PORTA&=0xcf;
} 
void set_ps(uchar i)
{	 
	 if(i)
	 PORTA|=0x10;
	 else
	 PORTA&=0xef;
} 
void data_send(unsigned char dat)
{
unsigned char s,temp;
int i;
set_sclk(0);
s=dat;
for(i=8;i>0;i--)
{set_sclk(0);
NOP();
NOP();
temp=s & 0x80;
if(temp)
{set_si(1);}
else {set_si(0);}
set_sclk(1);
s=s<<1;
}
}
/*************************************************/
//写命令,串行模式
/*************************************************/
void w_com(unsigned char com)
{
set_a0(0);
set_cs(0);
data_send(com);
}
/*************************************************/
//写数据,串行模式
/*************************************************/
void w_data(unsigned char dat)
{
set_a0(1);
set_cs(0);
data_send(dat);
}
/*************************************************/
//清DDRAM
/************************************************/
void clrram (void)
{ uchar i,j,page;
  page=0xb0;
  for(i=0;i<8;i++)
  {
  w_com(page);   /*设置页*/
  w_com(0x10);   /*设置列号*/
  w_com(0x00);
  for(j=0;j<128;j++)
  {
  w_data(0x00);
  }
  page++;
  }
}
/************************************************/
//液晶初始化
/************************************************/
void init_lcd (void)
{
  uchar i=0;
  set_res(0);
  delay_nms(100);
  set_res(1);
  delay_nms(100);          /*复位液晶*/
  w_com(0xae);  /*Display ON/OFF 0xae:OFF 0xaf:ON*/
  w_com(0xa2);  /*LCD bias set 0xa2:1/9 0xa3:1/7*/
  w_com(0xa0);  /*ADC select 0xa0:0-127 0xa1:127-0*/
  w_com(0xc8);
  w_com(0xa6);  /*Display 0xa6:normal 0xa7:reverse*/
  w_com(0x2a);  /* V0 Voltage Regulator Internal Resistor Ration Set*/
  w_com(0x81);  /*Electronic Volume*/
  w_com(0x2a);
  w_com(0x2f);  /*power control*/
  delay_nms(100);
}
/**********************************************/
//图形显示
/*********************************************/
void img_disp(const uchar *point)
{ uchar i,j,page;
  page=0xb7;
  w_com(0xaf);
  for(i=0;i<8;i++)
  {
  w_com(page);   /*设置页*/
  w_com(0x10);   /*设置列号*/
  w_com(0x10);
  for(j=0;j<128;j++)
  {
  w_data(*(point++));
  }
  page--;
  }
  w_com(0xaf);  /*Display ON*/
}
/*****************************************/
/****************************************
void text_disp()
{
uchar i,j,page;
  page=0xb0;
  w_com(0xaf);
  w_com(page);   /*设置页
  //w_com(0x10);   /*设置列号
  //w_com(0x01);
  w_data(0xff);
  //page--;
  w_com(0xaf);  /*Display ON
}
/****************************************/
//16的初始化
/****************************************/
void init_m16()
{    DDRA=0Xff;
	 DDRB|=0Xf9;
	 DDRB&=0Xf9;
	 DDRC=0Xff;
	 DDRD=0Xff;
	 DDRE=0Xff;
	 DDRF=0Xff;
	 PORTA=0xff;
	 //PORTB=0Xff;
	 PORTC=0xff;
	 PORTD=0xff;
	 PORTE=0xff;
	 PORTF=0xff;
	
}
/********max195初始化********/ 
void max195_inital(void)
    {
     set_cs_195(1);
     set_sclk_195(0);
    }
/**********************
max195转换开始
**********************/
void max195_start(void)
{
     set_conv(0);//,启动转换
     delay_nus(10);
     set_conv(1);
}
/***********************/
void max195_read()
{	 uint num2=0;
	 uchar num1=0,k;
	 while((PINB&0x02)==0x02);
	 set_cs_195(0);
	 for(k=0;k<16;k++)
	 {
	 set_sclk_195(1);
	 delay_1us();
	 if((PINB&0x04)==0x04)//判断pa1是否为1
	 {
	 num1=1;
	 //PORTA|=0x20;
	 }
	 else
	 {
	 num1=0;
	 //PORTA&=0xdf;
	 }
	 num2=num2*2+num1;
	 set_sclk_195(0);//下降沿锁存下一位
	 delay_nus(3);
	 }
	 turn[n++]=num2/1024;
	 set_conv(0);//,启动转换
     delay_nus(10);
     set_conv(1);
}
/*************************************/
 display()
  {uchar i,point,page,num;
   clrram ();
   w_com (0xaf);
   w_com (0xc0);
   for(i=0;i<128;i++)
    {
     point=turn[i];
     page=point/8;
     num=point%8;
     w_com(0xb0+page);
     //  num=0x01<<(num);
      //  wr_dat(num);
	 if(num==0)
       w_data(0x02);
     else
       num=0x03<<(num);
        w_data(num);
     }
	 //w_com(0xae);
   }
/***************主函数**************************/
void main()
{
  uchar i,k;
  uint m;
  init_m16();
  set_c86(1);
  set_ps(0);
  w_com(0xaf);
  clrram ();
  init_lcd ();
  max195_inital();
 /* for(i=64;i>0;i--)
  {
  w_com(0x40+i);
  img_disp(tab5);
  w_com(0xc0);
  delay_nms(100);
  }*/
   max195_start();
  //delay_nms(1);
   while (1)
  {
   //PORTC&=0xfe;
 while(n<128) 
 max195_read();
//for(i=0;i<128;i++)
	//    FFT_Re[i]*=turn[i];
 // FFT_Proc();
  display();
  //w_com(0xc0);
  //delay_nms(100);
  }
}

⌨️ 快捷键说明

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