📄 co0511.c
字号:
}
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 + -