📄 uc1682.c
字号:
#include <reg52.h>
#include <ABSACC.h>
sbit RAMCS=P3^0; //ram cs=0 u3,cs=1 u4
sbit CS0=P3^1; //chip select, low active
sbit RS=P3^2; //command is low or data is high
sbit WR0=P3^3; //write signal,
sbit RD0=P3^4; //write signa2,
sbit hold=P3^7;
sbit evrup=P3^5;
sbit evrdown=P3^6;
unsigned char gain=0x30,temp=5;
void uc1682();
void writei(unsigned char ins);
void writed(unsigned char dat);
void display1(void);
void display2(void);
void display3(void);
void display4(void);
void pause1();
void delay(long tt);
void delay1(long tt);
void evr();
unsigned char rgb[]={0x00,0x1f,0x07,0xc0,0xf8,0x00,0x00,0x00,0xff,0xff};
unsigned char colorbar[]={0xff,0xff,0xf8,0x00,0xff,0xe0,0x07,0xe0,0x07,0xff,0x00,0x1f,0x00,0x00};
void main(void)
{
uc1682();
while(1)
{
display2();
display1();
display3();
display4();
}
}
void uc1682()
{
writei(0xe2); /*display control */
writei(0xeb); /*bias*/
writei(0x81); /*pm*/
writei(gain);
writei(0xd6); /* set scroll start */
writei(0xf4);
writei(0x00);
writei(0xf5);
writei(0x10);
writei(0xf6);
writei(0x5f);
writei(0xf7);
writei(0x4f);
writei(0xf9);
writei(0xc4);
writei(0xaf); /* disp on*/
}
void display4(void)
{unsigned int i,j,k;
RAMCS=0;
writei(0x60);
writei(0x71);
writei(0x10);
writei(0x00);
k=0;
for(j=0;j<64;j++)
{
for(i=0;i<96*2;i++)
{ writed(CBYTE[k+8192+12288]);
k++;
};
}
delay(50000);
}
void display1(void)
{unsigned int i;
writei(0x60);
writei(0x71);
writei(0x10);
writei(0x00);
for(i=0;i<6144;i++)
{
writed(0xf8);
writed(0x00);
};
delay(50000);
writei(0x60);
writei(0x71);
writei(0x10);
writei(0x00);
for(i=0;i<6144;i++)
{
writed(0x07);
writed(0xc0);
};
delay(50000);
writei(0x60);
writei(0x71);
writei(0x10);
writei(0x00);
for(i=0;i<6144;i++)
{
writed(0x00);
writed(0x1f);
};
delay(50000);
}
void display2(void)
{unsigned int j,i;
writei(0x60);
writei(0x71);
writei(0x10);
writei(0x00);
for(i=0 ;i <32 ; i++ )
{
for (j=0 ;j <32 ; j++ )
{
writed(rgb[0]);
writed(rgb[1]);
}
for (j=0 ;j <32 ; j++ )
{
writed(rgb[2]);
writed(rgb[3]);
}
for (j=0 ;j <32 ; j++ )
{
writed(rgb[4]);
writed(rgb[5]);
}
}
for(i=0 ;i <32 ; i++ )
{for (j=0 ;j <48 ; j++ )
{
writed(rgb[6]);
writed(rgb[7]);
}
for (j=0 ;j <48 ; j++ )
{
writed(rgb[8]);
writed(rgb[9]);
}
}
delay(50000);
}
void display3(void)
{unsigned int j,i;
writei(0x60);
writei(0x71);
writei(0x10);
writei(0x00);
for(i=0 ;i <64 ; i++ )
{
for (j=0 ;j <13 ; j++ )
{ writed(colorbar[0]);
writed(colorbar[1]);
}
for (j=0 ;j <14 ; j++ )
{ writed(colorbar[2]);
writed(colorbar[3]);
}
for (j=0 ;j <14 ; j++ )
{
writed(colorbar[4]);
writed(colorbar[5]);
}
for (j=0 ;j <14 ; j++ )
{
writed(colorbar[6]);
writed(colorbar[7]);
}
for (j=0 ;j <14 ; j++ )
{
writed(colorbar[8]);
writed(colorbar[9]);
}
for (j=0 ;j <14 ; j++ )
{
writed(colorbar[10]);
writed(colorbar[11]);
}
for (j=0 ;j <13 ; j++ )
{
writed(colorbar[12]);
writed(colorbar[13]);
}
}
delay(50000);
}
void writei(unsigned char ins)
{
CS0=0;
RS=0;
RD0=1;
P1=ins;
WR0=0;
WR0=1;
CS0=1;
}
void writed(unsigned char dat)
{
CS0=0;
RS=1;
RD0=1;
P1=dat;
WR0=0;
WR0=1;
CS0=1;
}
void delay(long tt)
{while(tt>0)
{tt--;pause1();evr();}
}
void delay1(long tt)
{while(tt>0)
{tt--;}
}
void evr()
{
while(evrup==0)
{ delay1(1000);
if (evrup==0)
{ while(evrup==0);
gain=gain+temp;
writei(0x81);
writei(gain);
}
}
while(evrdown==0)
{ delay1(1000);
if (evrdown==0)
{ while(evrdown==0);
gain=gain-temp;
writei(0x81);
writei(gain);
}
}
}
void pause1()
{ char k;
k=0;
while(hold==0)
{ delay1(1000);
if (hold==0)
{ k=0;
while(hold==0);
k=1;
}
}
if (k==1)
{while(hold==1) evr();}
k=0;
while(hold==0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -