当前位置:文档之家› 信号发生器程序

信号发生器程序

if(boxing==4)
{
boxing=0;
}
display();
EA=1;
}
}
}
voidbujindisplay()
{
uintbai,shi,ge;
bai=bujin1/100;
shi=bujin1%100/10;
ge=bujin1%100%10;
write_com(0x80+6);
write_date(table[bai]);
write_date('');
write_date('');
write_com(0x80+0x40+0xa);
//write_date('');
write_date('1');
write_date('0');
write_date('H');
delay(5);
write_date('Z');
delay(5);
write_date('j');
write_date('u');
write_date('c');
write_date('h');
write_date('i');
write_date('');
write_date('');
}
}
voidkeyscan()//键盘检测函数
{
if(s1==0)
{
EA=0;
delay(2);
255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};//矩形波取码
ucharcodesanjiao[64]={
0,8,16,24,32,40,48,56,64,72,80,88,96,104,112,120,128,136,144,152,160,168,176,184,192,200,208,216,224,232,240,248,
delay(1);
write_date(table[shi]);
delay(1);
write_date('.');
delay(1);
write_date(table[ge]);
delay(1);
}
voidbujinjiance()
{
if(s4==0)
{
delay(5);
if(s4==0)
{
while(!s4);
146,133,121,108,96,84,72,61,50,41,32,24,17,11,7,3,1,0,0,2,5,9,14,20,28,36,45,55,66,78,90,102,114,128
};//正弦波取码
ucharcodejuxing[64]={
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
{
while(!s1);
bujin1++;
if(bujin1==101)
{
bujin1=100;
}
bujindisplay();
}
}
if(s2==0)
{
delay(5);
if(s2==0)
{
while(!s2);
bujin1--;
if(bujin1==0)
{
bujin1=1;
}
bujindisplay();
write_date('');
}
if(boxing=1)
{
write_com(0x80+7);
write_date('j');
write_date('u');
write_date('x');
write_date('i');
write_date('n');
write_date('g');
}
if(boxing==2)
h++;
if(h==1)
{
write_com(0x01);
write_com(0x80);
write_date('b');delay(1);
write_date('u');delay(1);
write_date('j');delay(1);
write_date('i');delay(1);
write_date('n');delay(1);
#include<reg52.h>//包含头文件
#include<intrins.h>
#defineucharunsigned char//宏定义
#defineuintunsignedint
sbits1=P3^4;//定义按键的接口
sbits2=P3^5;
sbits3=P3^6;
sbits4=P3^7;
sbitlcdrs=P2^3;//液晶控制位
sbitlcdrw=P2^4;
sbitlcden=P2^5;
charnum,boxing,u;//定义全局变量
intpinlv=100,bujin=1,bujin1=1;
ucharcode table[]="0123456789";//定义显示的数组
ucharcode table1[]="frequence:boxing:";
if(s1==0)
{
while(!s1);
pinlv+=bujin;
if(pinlv>1000)
{
pinlv=1000;
}
display();
m=65534-(156250/pinlv);
a=m/256;
b=m%256;
EA=1;
}
}
if(s2==0)
{
delay(5);
if(s2==0)
{
EA=0;
for(a=xms;a>0;a--)
for(b=110;b>0;b--);
}
voidwrite_com(ucharcom)//写命令函数
{
lcdrs=0;
lcdrw=0;
lcden=0;
P0=com;
delay(1);
lcden=1;
delay(1);
lcden=0;
}
voidwrite_date(uchardate)//写数据函数
}
voidinitclock()//时钟初始化
{
uinti;
TMOD=0x01;
TH0=a;
TL0=b;
EA=1;
ET0=1;
TR0=1;
write_com(0x80+0x40);
for(i=0;i<9;i++)
{
write_date(table1[i]);
delay(5);
}
write_com(0x80);
write_date('Z');
delay(5);
if(boxing==0)
{
write_com(0x80+7);
write_date('s');
write_date('i');
write_date('n');
write_date('');
write_date('');
write_date('');
write_date(':');delay(1);
bujin1=bujin;
bujindisplay();
}
if(h==2)
{
h=0;
bujin=bujin1;
init_lcd();
initclock();
display();
}
}
}
if(h==1)
{
if(s1==0)
{
delay(5);
if(s1==0)
248,240,232,224,216,208,200,192,184,176,168,160,152,144,136,128,120,112,104,96,88,80,72,64,56,48,40,32,24,16,8,0
};//三角波取码
ucharcodejuchi[64]={
0,4,8,12,16,20,24,28,32,36,40,45,49,53,57,61,65,69,73,77,81,85,89,93,97,101,105,109,113,117,121,125,130,134,138,142,
}
void display()//显示函数
{
ucharqian,bai,shi,ge;
qian=pinlv/1000;
bai=pinlv%1000/100;
shi=pinlv%1000%100/10;
ge=pinlv%1000%100%10;
write_com(0x80+0x40+0x08);
write_date(table[qian]);
相关主题