|
http://www.embedds.com/tag/nokia-3310-lcd/
(原文件名:nokia_3310_lcd_scope_project.jpg)
#include <reg52.h>
sbit SCE = P1^0;
sbit ADCDATA = P1^1;
sbit CLK = P1^2;
sbit CS = P1^3;
sbit RES = P1^4;
sbit DC = P1^5;
sbit SDIN = P1^6;
sbit SCLK = P1^7;
unsigned char waveform[73];
char code picture[ ] =
{
0x00,0x00,0x00,0x00,0x2E,
0x2A,0x3A,0x00,0x88,0xF8,
0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x88,0xFF,
0x00,0x00,0x00,0xC0,0x20,
0xC0,0x00,0x80,0x88,0xFF,
0x00,0x00,0x00,0x01,0x02,
0x01,0x00,0x00,0x88,0xFF,
0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x88,0xFF,
0x00,0x08,0x08,0x00,0x2E,
0x2A,0x3A,0x00,0x08,0x0F,
};
char code graph1[]={
0x08,0x00,0x00,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,0x00,0x00,
0x01,0x00,0x00,0x00,0x00,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x40,0x00,0x00,0x00,0x00,
0x00,0x20,0x00,0x00,0x00,0x00,
0x00,0x10,0x00,0x00,0x00,0x00,
0x00,0x08,0x00,0x00,0x00,0x00,
0x00,0x04,0x00,0x00,0x00,0x00,
0x00,0x02,0x00,0x00,0x00,0x00,
0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x80,0x00,0x00,0x00,
0x00,0x00,0x40,0x00,0x00,0x00,
0x00,0x00,0x20,0x00,0x00,0x00,
0x00,0x00,0x10,0x00,0x00,0x00,
0x00,0x00,0x08,0x00,0x00,0x00,
0x00,0x00,0x04,0x00,0x00,0x00,
0x00,0x00,0x02,0x00,0x00,0x00,
0x00,0x00,0x01,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x40,0x00,0x00,
0x00,0x00,0x00,0x20,0x00,0x00,
0x00,0x00,0x00,0x10,0x00,0x00,
0x00,0x00,0x00,0x08,0x00,0x00,
0x00,0x00,0x00,0x04,0x00,0x00,
0x00,0x00,0x00,0x02,0x00,0x00,
0x00,0x00,0x00,0x01,0x00,0x00,
0x00,0x00,0x00,0x00,0x80,0x00,
0x00,0x00,0x00,0x00,0x40,0x00,
0x00,0x00,0x00,0x00,0x20,0x00,
0x00,0x00,0x00,0x00,0x10,0x00,
0x00,0x00,0x00,0x00,0x08,0x00,
0x00,0x00,0x00,0x00,0x04,0x00,
0x00,0x00,0x00,0x00,0x02,0x00,
0x00,0x00,0x00,0x00,0x01,0x00,
0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x40,
0x00,0x00,0x00,0x00,0x00,0x20,
0x00,0x00,0x00,0x00,0x00,0x10,
0x00,0x00,0x00,0x00,0x00,0x08,
};
write_data(char data1);
write_command(char Command);
delay();
initial();
clear_screen();
write_picture();
gotoxy(char x,char y);
putpoint(char a,char x);
int read_ADC(char n);
putgraph();
read_wave();
dot(char x,char y);
pg();
void main()
{
RES = 0;
P1=0x3e;
initial();
clear_screen();
write_picture();
while(1)
{
read_wave();
putgraph();
}
}
int read_ADC(char n)
{
char i,channel;
int k;
k=0;
CS=0;
if(n==0) channel=0x0d;
else channel=0x0f;
for(i=0;i<4;i++)
{
CLK = 0;
if(channel&8) ADCDATA = 1;
else ADCDATA = 0;
CLK = 1;
channel <<=1;
}
ADCDATA = 1;
CLK = 0;
for(i=0;i<12;i++)
{
k<<=1;
CLK=1;
CLK=0;
if(ADCDATA) k|=1;
else k&=~1;
}
CS = 1;
return k&0xfff;
}
read_wave()
{
int d;
unsigned char t;
for(t=0;t<73;t++)
{
d = read_ADC(0);
waveform[t] =d/103;
}
}
putgraph()
{
char m;
m=0;
while(m<73)
{
putpoint(waveform[m],m+10);
m++;
}
}
putpoint(char a,char x)
{
char b=5;
int c;
c=a*6;
while(b>=0)
{
gotoxy(x,b);
write_data(graph1[c]);
c++;
b--;
}
}
write_picture()
{
char a,b,c,i;
a=0;
b=0;
do
{
gotoxy(a,b);
c=0;
i=b*10;
do
{
write_data(picture);
c++;
i++;
}while(c<10);
a=0;
b++;
}while(b<=5);
}
write_data(char data1)
{
char a;
DC =1;
for (a=0;a<8;a++)
{
if(data1&0x80)
{
SDIN=1;
}
else
{
SDIN=0;
}
SCLK=1;
SCLK=0;
data1<<=1;
}
}
write_command(char command)
{
char a;
DC =0;
for (a=0;a<8;a++)
{
if(command&0x80)
{
SDIN=1;
}
else
{
SDIN=0;
}
SCLK=1;
SCLK=0;
command<<=1;
}
}
initial()
{
RES = 0;
RES = 1;
write_command(0x21);
write_command(0xbc);
write_command(0x07);
write_command(0x13);
write_command(0x20);
write_command(0x0c);
}
clear_screen()
{
int i=0;
write_command(0x80);
write_command(0x40);
for(i=0;i<504;i++)
write_data(0);
}
gotoxy(char x,char y)
{
write_command(0x80+x);
write_command(0x40+y);
} |
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|