📄 control.h
字号:
#include <at89x52.H>
#include <keyboard.h>
#include "mcutofpga.h"
#include"delay.h"
#include<lcd1602.h>
#define uchar unsigned char
#define uint unsigned int
#define exit 15
#define back 14
uchar code number[]={"0123456789"};
uint frequence=1000; //初始化频率和相位
uint phrase=0;
uchar code string1[]={"1:wave 2:FM 3:PM "};
uchar code string2[]={"4:AM ..plz selcet"};
uchar code complete[]={"seting is OK "};
uchar key ;
void start() //液晶显示初始选择界面
{ WriteCommandLCM(0x01,1);
DisplayListChar(0,0,string1);
DisplayListChar(0,1,string2);
}
void flash ( uchar *line) //按下选项时,选项闪烁的子函数
{ uchar j;
for(j=0;j<2;j++)
{
DisplayListChar(0,0,line);
DisplayListChar(0,1,string2);
delay(700);
DisplayListChar(0,0,string1);
DisplayListChar(0,1,string2);
delay(700);
}
}
void setwave() //选择波形
{
uchar code str[]={"plz select wave."};
uchar code str1[]={"1sin 2tri 3squa"};
WriteCommandLCM(0x01,1);
delay(50) ;
DisplayListChar(0,0,str);
DisplayListChar(0,0,str1);
delay(500) ;
while(1)
{
key=scan();
if(key>0 && key<4)
{
if(key==1)
{
}
if(key==2)
{
}
if(key==3)
{
}
break;
}
}
WriteCommandLCM(0x01,1);
delay(50) ;
DisplayListChar(0,0,complete);
delay(1000);
start();
}
void setfrequence() //设置频率
{ uchar i=0;
uchar frequencedisplay[]={" HZ"};
unsigned char str[]= {"plz input freq. "};
WriteCommandLCM(0x01,1);
delay(50) ;
DisplayListChar(0,0,str);
DisplayListChar(0,1,frequencedisplay);
delay(500) ;
while(1)
{key=scan();
if(key>=0 &&key<10)
{ frequence*=10;
frequence+=key;
frequencedisplay[i]=number[key];
DisplayListChar(0,1,frequencedisplay); //1602显示频率数值
++i;
if(i==1 && key==0)--i;
}
if(key==back){start();return ; }
if(i==8 || key==exit)
{
break; }
}
sentData(frequence,phrase); //向FPGA发送数据
WriteCommandLCM(0x01,1);
delay(50) ;
DisplayListChar(0,0,complete); //显示数据已发送
DisplayListChar(0,1,frequencedisplay);
delay(1000);
start();
}
void setphrase() //设置相位
{ uchar i=0;
uchar code str[]={"plz set phrase. "};
uchar phrasedisplay[]={" "};
WriteCommandLCM(0x01,1);
DisplayListChar(0,0,str);
while(1)
{key=scan();
if(key>=0 &&key<10)
{
phrase*=10;
phrase+=key;
phrasedisplay[i]=number[key];
DisplayListChar(0,1,phrasedisplay); //1602显示频率数值
++i;
if(i==1 && key==0)--i;
}
if(key==back){start();return ; }
if(i==8 || key==exit)
{
i=0;
break;
}
}
sentData(frequence,phrase); //向FPGA发送数据
WriteCommandLCM(0x01,1);
delay(50) ;
DisplayListChar(0,0,complete); //显示数据已发送
delay(1000);
start();
}
/* void setap()
{ uchar i=0;
uchar str[]={"plz set ampitu"};
uchar apdisplay[]={" "};
WriteCommandLCM(0x01,1);
DisplayListChar(0,0,str);
while(1)
{
key=scan();
if(key>=0 &&key<10)
{
ap*=10;
ap+=key;
apdisplay[i]=number[key];
DisplayListChar(0,1,frequencedisplay); //1602显示频率数值
++i;
}
if(key==back) setap();
if(i==8 || key==exit)
break;
}
} */
void control() //键盘控制子函数
{ uchar key;
uchar code selectFM[]= {"1:wave 3:PM "};
uchar code selectwave[]={" 2:FM 3:PM "};
uchar code selectPM[]= {"1:wave 2:FM "};
InitialMcu();
start();
while(1)
{key=scan();
if(key)
{
switch (key )
{ case 1:
{ flash(selectwave);
setwave();break;
}break;
case 3:
{ flash(selectPM);
setphrase();break;
}break;
case 2:
{
flash(selectFM) ;
setfrequence();
break;
}break;
case 4:
{
/*setap()*/ ;break;
}break;
default : break ;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -