write_data(0x66);
write_data(0x3a); }
void write_f(uint date) //写频率 {
uchar qian,bai,shi,ge; qian=date/1000; bai=date/100; shi=date/10; ge=date;
write_com(0x80+0x42); write_data(0x30+qian); write_data(0x30+bai); write_data(0x30+shi); write_data(0x30+ge); write_data(0x48); write_data(0x5a); }
void xsf() //显示频率 {
if(s1num==1) {
fre=(1000/(9+3*ys)); write_f(fre); }
if(s1num==2) {
fre=(100000/(3*ys)); write_f(fre); }
if(s1num==3) {
fre=(1000/(15+3*ys)); write_f(fre); } }
void keyscanf() {
d=0;
if(s1==0) {
delay(5);
26
if(s1==0) {
while(!s1); s1num++;
if(s1num==1) {
ys=0;
write_com(0x80+0x05);
write_data(0x73); //写sine: write_data(0x69); write_data(0x6e); write_data(0x65); write_data(0x20);
write_data(0x20); }
if(s1num==2) {
ys=10;
write_com(0x80+0x05); write_data(0x73); // write_data(0x71); write_data(0x75); write_data(0x61); write_data(0x72); write_data(0x65); } if(s1num==3) {
ys=0;
write_com(0x80+0x05); write_data(0x74); write_data(0x72); write_data(0x61); write_data(0x69); write_data(0x6e); write_data(0x20); }
if(s1num==4) {
s1num=0; P1=0;
write_com(0x80+0x05); write_data(0x20);
27
写squrae //写train
write_data(0x20); write_data(0x20); write_data(0x20); write_data(0x20);
write_data(0x20); write_com(0x80+0x42); write_data(0x20); write_data(0x20); write_data(0x20); write_data(0x20); write_data(0x20); write_data(0x20); } } }
if(s2==0) {
delay(5); if(s2==0) {
while(!s2); ys++; } }
if(s3==0) {
delay(5); if(s3==0) {
while(!s3); ys--; } } }
void main() {
init(); while(1) {
keyscanf();
if(s1num==1) //正弦波// {
for(j=0;j<255;j++)
28
{
P0=tosin[j]; delay1(ys); }
}
if(s1num==2) //方波// { P0=0xff;
delay1(ys); P0=0;
delay1(ys); }
if(s1num==3) //三角波// {
if(a<128) {
P0=a;
delay1(ys); } else {
P0=255-a; delay1(ys); } a++; }
if(!(s1&s2&s3)) {
xsf(); } } }
29