#include 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[i]); 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); }