?? c8051f021.c
字號:
#include <C8051F020.h>
//#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
#define x1 0x80
#define x2 0x88
#define y 0x80
#define comm 0
#define dat 1
sbit rs = P2^7; //H=data; L=command;
sbit rw = P2^6; //H=read; L=write;
sbit e = P2^5; //input enable;
sbit psb= P2^4; //H=并口; L=串口;
sbit rst= P2^3; //Reset Signal 低電平有效
sbit bl= P1^6; //背光,低電平有效
sbit busy=P3^7; //lcd busy bit
sbit p15=P1^5;
sbit p17=P1^7;
sbit p20=P2^0;
sbit p21=P2^1;
sbit p22=P2^2;
//變量定義
bit k1t=0; //各個按鍵的標(biāo)志
bit k1=0;
bit k2=0;
bit k3t=0;
bit k3=0;
bit k4=0;
bit menu=0; //菜單標(biāo)志,0為菜單界面,1為功能界面
bit fun1=0; //進入功能1標(biāo)志
bit fun2=0; //進入功能2標(biāo)志
bit fun3=0; //進入功能3標(biāo)志
bit fun4=0; //進入功能4標(biāo)志
bit key2r=0; //KEY2蜂鳴標(biāo)志,0則叫,1不叫
bit key4r=0; //KEY4蜂鳴標(biāo)志,0則叫,1不叫
bit topsi=0; //加法到達最高速度標(biāo)志
bit topsd=0; //減法到達最高速度標(biāo)志
bit meda=0; //進入DA功能的選擇界面
bit mepw=0; //進入PWM功能的選擇界面
uchar kmark=0; //按鍵掃描標(biāo)志
uchar fcount=0; //功能選擇標(biāo)志
uchar f1co=0; //AD計數(shù)
uchar f2count=0; //DA路數(shù)選擇標(biāo)志
uchar f3count=0; //PWM路數(shù)選擇標(biāo)志
uchar incount=9; //加計數(shù)
uchar decount=9; //減計數(shù)
uchar k2count=0; //上翻鍵計數(shù)
uchar k4count=0; //下翻鍵計數(shù)
uchar instd=9; //上翻標(biāo)準(zhǔn)
uchar destd=9; //下翻標(biāo)準(zhǔn)
xdata uchar adnum0[3]={0,0,0}; //AD0數(shù)據(jù)存儲
xdata uchar adnum1[3]={0,0,0}; //AD1數(shù)據(jù)存儲
xdata uint adf0[10]={0,0,0,0,0,0,0,0,0,0}; //AD0濾波數(shù)據(jù)存儲
xdata uint adf1[10]={0,0,0,0,0,0,0,0,0,0}; //AD1濾波數(shù)據(jù)存儲
uint adres0=0; //AD0濾波后的結(jié)果
uint adres1=0; //AD1濾波后的結(jié)果
xdata uchar danum0[4]={0,0,0,0}; //DA0數(shù)據(jù)存儲數(shù)組
xdata uchar danum1[4]={0,0,0,0}; //DA1數(shù)據(jù)存儲數(shù)組
//uchar pwpr0[4]; //PWM0占空比存儲數(shù)組
//uchar pwpr1[4]; //PWM1占空比存儲數(shù)組
xdata uchar pwnum0[4]={0,0,0,0}; //PWM0電壓存儲數(shù)組
xdata uchar pwnum1[4]={0,0,0,0}; //PWM1電壓存儲數(shù)組
//uchar pwlas0[4]={0xff,0xff,0xff,0xff};
xdata uchar fqnum0[6]={0,0,0,0,0,0}; //頻率數(shù)據(jù)存儲數(shù)組
uchar pwcp0h=0;
uchar pwcp0l=0;
uchar pwcp1h=0;
uchar pwcp1l=0;
uchar adsel=0; //AD路數(shù)選擇標(biāo)志,(0,1,2)為第一路,(3,4,5)為第二路
//函數(shù)聲明
void tt0();
void pca();
void ring(void);
void wr_lcd (uchar,uchar);
void chk_busy (void);
uchar code * selnt(uchar);
void npd_ad(uchar,uchar,uchar,uchar);
void delay (uint);
void delay1(uint);
void f1disp();
void f2disp();
void f3disp();
void f4disp();
void npd_da(uchar,uchar,uchar,uchar,uchar);
void bcda4(uchar *,uchar,uchar,uchar,uchar);
void bcds4(uchar *,uchar,uchar,uchar,uchar);
void npd_fa(uchar,uchar,uchar,uchar);
void npd_fb(uchar,uchar,uchar,uchar,uchar);
void adfun();
uint bcdhb(uchar *,uchar);
void pwm0fun();
void pwm1fun();
uint filter(uint *,uchar,uint,uint);
void ditui(uint *,uchar ,uint );
unsigned long int sumarr(uint *,uchar );
void mami(uint *,uchar ,uint *,uint *);
void flashre();
void flashwr();
/*
void config(void);
void init_lcd (void)
void wr_zb(uchar,uchar);
void chn_disp (uchar code *);
void clrram (void)
void con_disp (uchar,uchar,uchar,uchar,uchar,uchar);
void clrp_disp (void);
void init_disp(void);
void kscan(void);
void key1(void);
void key3(void);
void keyans(void);
uchar code * selnt(uchar);
*/
uchar code tabme[]={
"1.12位A/D 輸入 "
"3.16位PWM 輸出 "
"2.12位D/A 輸出 "
"4.波形頻率測量 "
};
uchar code tabmes[]={
"2.12位D/A 輸出 "
"4.波形頻率測量 "
"3.16位PWM 輸出 "
"5.FLASH 存儲 "
};
uchar code tab1[]={
"1.選擇第一路DA "
" "
"2.選擇第二路DA "
" "
};
uchar code tab2[]={
"第一路DA輸出的電"
"壓為: "
};
uchar code tab3[]={
"第二路DA輸出的電"
"壓為: "
};
uchar code tab4[]={
"1.選擇第一路PWM "
" "
"2.選擇第二路PWM "
" "
};
uchar code tab5[]={
"第一路PWM 輸出的"
"電壓為: "
};
uchar code tab6[]={
"第二路PWM 輸出的"
"電壓為: "
};
uchar code tab7[]={
"輸入信號的頻率為"
" "
};
uchar code tab8[]={
"已存入FLASH!^_^ "
" "
};
uchar code tabn0[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFF,0xE0,0x07,
0xFF,0xE0,0x1F,0xFF,0xF8,0x3F,0x00,0xFC,0x3F,0x00,0xFC,0x3F,0x03,0xFC,0x3F,0x03,
0xFC,0x3F,0x1F,0xFC,0x3F,0x1F,0xFC,0x3F,0xBF,0xFC,0x3F,0xFE,0xFC,0x3F,0xFC,0xFC,
0x3F,0xF0,0xFC,0x3F,0xF0,0xFC,0x3F,0xF0,0xFC,0x3F,0x00,0xFC,0x3F,0x00,0xFC,0x3F,
0x00,0xFC,0x3F,0x00,0xFC,0x1F,0xFF,0xF8,0x07,0xFF,0xE0,0x07,0xFF,0xE0,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
uchar code tabn1[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,
0x7F,0x00,0x00,0xFF,0x00,0x01,0xFF,0x00,0x07,0xFF,0x00,0x07,0xFF,0x00,0x07,0xFF,
0x00,0x00,0x3F,0x00,0x00,0x3F,0x00,0x00,0x3F,0x00,0x00,0x3F,0x00,0x00,0x3F,0x00,
0x00,0x3F,0x00,0x00,0x3F,0x00,0x00,0x3F,0x00,0x00,0x3F,0x00,0x00,0x3F,0x00,0x00,
0x3F,0x00,0x0F,0xFF,0xFC,0x0F,0xFF,0xFC,0x0F,0xFF,0xFC,0x0F,0xFF,0xFC,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
uchar code tabn2[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFF,0xF0,0x07,
0xFF,0xF0,0x3F,0xFF,0xFC,0x3F,0x00,0xFC,0x3F,0x00,0xFC,0x3F,0x00,0xFC,0x00,0x00,
0xFC,0x00,0x03,0xFC,0x00,0x07,0xF0,0x00,0x0F,0xE0,0x00,0x3F,0xC0,0x00,0x7F,0x80,
0x00,0xFE,0x00,0x01,0xFC,0x00,0x03,0xF8,0x00,0x07,0xF0,0x00,0x0F,0xE0,0x00,0x3F,
0xC0,0xFC,0x3F,0x00,0xFC,0x3F,0xFF,0xFC,0x3F,0xFF,0xFC,0x3F,0xFF,0xFC,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
uchar code tabn3[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFF,0xF0,0x0F,
0xFF,0xF0,0x3F,0xFF,0xFC,0x3F,0x00,0xFC,0x3F,0x00,0xFC,0x3F,0x00,0xFC,0x00,0x00,
0xFC,0x00,0x00,0xFC,0x00,0x00,0xFC,0x01,0xFF,0xF8,0x01,0xFF,0xF0,0x01,0xFF,0xF8,
0x00,0x00,0xFC,0x00,0x00,0xFC,0x00,0x00,0xFC,0x00,0x00,0xFC,0x00,0x00,0xFC,0x3F,
0x00,0xFC,0x3F,0x00,0xFC,0x3F,0xFF,0xFC,0x0F,0xFF,0xF0,0x07,0xFF,0xF0,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
uchar code tabn4[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,
0x0F,0xE0,0x00,0x1F,0xE0,0x00,0x3F,0xE0,0x00,0x7F,0xE0,0x00,0xFF,0xE0,0x01,0xFF,
0xE0,0x03,0xF7,0xE0,0x07,0xE7,0xE0,0x0F,0xC7,0xE0,0x1F,0x87,0xE0,0x1F,0x07,0xE0,
0x1F,0xFF,0xFC,0x1F,0xFF,0xFC,0x1F,0xFF,0xFC,0x00,0x07,0xE0,0x00,0x07,0xE0,0x00,
0x07,0xE0,0x00,0x07,0xE0,0x00,0x1F,0xF8,0x00,0x1F,0xF8,0x00,0x1F,0xF8,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
uchar code tabn5[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,0xFC,0x3F,
0xFF,0xFC,0x3F,0xFF,0xFC,0x3F,0x00,0x00,0x3F,0x00,0x00,0x3F,0x00,0x00,0x3F,0x00,
0x00,0x3F,0x00,0x00,0x3F,0x00,0x00,0x3F,0xFF,0xF0,0x3F,0xFF,0xF8,0x3F,0xFF,0xFC,
0x00,0x00,0xFE,0x00,0x00,0x7E,0x00,0x00,0x7E,0x00,0x00,0x7E,0x00,0x00,0x7E,0x3F,
0x80,0x7E,0x3F,0x80,0x7E,0x3F,0xFF,0xFC,0x07,0xFF,0xF8,0x07,0xFF,0xF0,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
uchar code tabn6[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x80,0x00,
0xFF,0x80,0x07,0xFF,0x80,0x07,0xE0,0x00,0x07,0xE0,0x00,0x1F,0xE0,0x00,0x1F,0x80,
0x00,0x1F,0x80,0x00,0x1F,0x80,0x00,0x1F,0xFF,0xE0,0x1F,0xFF,0xF0,0x1F,0xFF,0xF8,
0x1F,0x81,0xFC,0x1F,0x80,0xFC,0x1F,0x80,0xFC,0x1F,0x80,0xFC,0x1F,0x80,0xFC,0x1F,
0x80,0xFC,0x1F,0x80,0xFC,0x0F,0xFF,0xF8,0x07,0xFF,0xF0,0x03,0xFF,0xE0,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
uchar code tabn7[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,0xFC,0x1F,
0xFF,0xFC,0x1F,0xFF,0xFC,0x1F,0x80,0xFC,0x1F,0x80,0xFC,0x1F,0x80,0xFC,0x00,0x01,
0xFC,0x00,0x03,0xFC,0x00,0x07,0xF0,0x00,0x0F,0xE0,0x00,0x1F,0xC0,0x00,0x3F,0x80,
0x00,0x7F,0x00,0x00,0x7E,0x00,0x00,0x7E,0x00,0x00,0x7E,0x00,0x00,0x7E,0x00,0x00,
0x7E,0x00,0x00,0x7E,0x00,0x00,0x7E,0x00,0x00,0x7E,0x00,0x00,0x7E,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
uchar code tabn8[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFF,0xE0,0x0F,
0xFF,0xF0,0x3F,0xFF,0xFC,0x3F,0x81,0xFC,0x3F,0x00,0xFC,0x3F,0x00,0xFC,0x3F,0x00,
0xFC,0x3F,0x00,0xFC,0x3F,0x81,0xFC,0x3F,0xFF,0xFC,0x0F,0xFF,0xF0,0x0F,0xFF,0xF0,
0x3F,0x81,0xFC,0x3F,0x00,0xFC,0x3F,0x00,0xFC,0x3F,0x00,0xFC,0x3F,0x00,0xFC,0x3F,
0x00,0xFC,0x3F,0x81,0xFC,0x3F,0xFF,0xFC,0x0F,0xFF,0xF0,0x07,0xFF,0xE0,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
uchar code tabn9[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xE0,0x0F,
0xFF,0xF0,0x3F,0xFF,0xF8,0x3F,0x00,0xFC,0x3F,0x00,0xFC,0x3F,0x00,0xFC,0x3F,0x00,
0xFC,0x3F,0x00,0xFC,0x3F,0x00,0xFC,0x3F,0xFF,0xFC,0x0F,0xFF,0xFC,0x0F,0xFF,0xFC,
0x00,0x01,0xFC,0x00,0x00,0xFC,0x00,0x00,0xFC,0x00,0x00,0xFC,0x00,0x01,0xFC,0x00,
0x07,0xF8,0x00,0x07,0xE0,0x0F,0xFF,0xE0,0x0F,0xFF,0x80,0x0F,0xFF,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
uchar code tabd[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x00,0x00,0x00,0x00,0x00,0x00
};
/*------初始化子程序------------------------*/
void config(void)
{
//看門狗禁止
WDTCN=0x07;
WDTCN=0xDE;
WDTCN=0xAD;
//I/O口配置
XBR0=0x14; //配置TX0,RX0,CEX0,CEX1
XBR1=0x00;
XBR2=0x40;
P0MDOUT=0x00;
P1MDOUT=0x00;
P2MDOUT=0x00;
P3MDOUT=0x00;
//使用內(nèi)部晶振16MHZ
OSCICN=0x17;
//定時器配置,T0定時方式1用做鍵盤掃描,T1定時方式1用于頻率測量,定時1S
TMOD=0x11;
//定時器T0
TL0=0xc5; //ff
TH0=0x67; //ef
//12路ADC0配置
ADC0CF=0x00; //SAR時鐘=系統(tǒng)時鐘,內(nèi)部增益為1
ADC0CN=0x90; //ADC允許,數(shù)據(jù)右對齊
//DAC0配置
DAC0CN=0x80; //DAC0允許,輸出更新發(fā)生在寫DAC0H時,數(shù)據(jù)格式靠右對齊
//DAC1配置
DAC1CN=0x80; //DAC0允許,輸出更新發(fā)生在寫DAC0H時,數(shù)據(jù)格式靠右對齊
//PCA配置
PCA0CN=0x40; //允許PCA
//PCA0MD=0x08; //用系統(tǒng)時鐘,禁止PCA中斷
PCA0MD=0x09; //用系統(tǒng)時鐘,允許PCA中斷
PCA0CPM0=0xC2; //允許16PWM,允許比較器功能,匹配禁止,PWM允許,禁止CFFn中斷
//PCA0CPM0=0xCB; //允許16PWM,允許比較器功能,匹配允許,PWM允許,允許CFFn中斷
PCA0CPM1=0xC2; //允許16PWM,允許比較器功能,匹配禁止,PWM允許,禁止CFFn中斷
//PCA0CPM1=0xCB; //允許16PWM,允許比較器功能,匹配允許,PWM允許,允許CFFn中斷
PCA0L=0x00;
PCA0H=0x00;
//PCA0CPL0=0xff;
//PCA0CPH0=0xff;
//PCA0CPL1=0xff;
//PCA0CPH1=0xff;
//電壓基準(zhǔn)配置
REF0CN=0x03; //使用內(nèi)部基準(zhǔn)
//中斷優(yōu)先級配置
PT0=1;
//中斷允許配置
EIE1|=0x08; //總體允許PCA0中斷
//開定時器T0中斷計時
TR0=1;
ET0=1;
//開定時器T1中斷
//ET1=1;
EA=1;
}
/*------------------LCD初始化-----------------*/
void init_lcd (void)
{
rst=1;
psb=1;
wr_lcd (comm,0x30); /*30---基本指令動作*/
wr_lcd (comm,0x01); /*清屏,地址指針指向00H*/
wr_lcd (comm,0x06); /*光標(biāo)的移動方向*/
wr_lcd (comm,0x0c); /*開顯示,關(guān)游標(biāo)*/
}
/*---------------顯示漢字或字符----------------*/
void chn_disp (uchar code *chn)
{
uchar i,j;
wr_lcd (comm,0x30);
wr_lcd (comm,0x80);
for (j=0;j<4;j++)
{
for (i=0;i<16;i++)
wr_lcd (dat,chn[j*16+i]);
}
}
/*---------------顯示上面漢字或字符----------------*/
void chns_disp (uchar code *chn)
{
uchar i,j;
i=0;
j=0;
wr_lcd (comm,0x30);
wr_lcd (comm,0x80);
for (i=0;i<16;i++)
wr_lcd (dat,chn[i]);
wr_lcd (comm,0x90);
for (i=0;i<16;i++)
wr_lcd (dat,chn[16+i]);
}
/*---------------清除圖形----------------*/
void clrp_disp (void)
{
uchar i,j;
for(j=0;j<32;j++)
{
for(i=0;i<8;i++)
{
wr_lcd (comm,0x34);
wr_lcd (comm,y+j);
wr_lcd (comm,x1+i);
wr_lcd (comm,0x30);
wr_lcd (dat,0x00);
wr_lcd (dat,0x00);
}
}
for(j=32;j<64;j++)
{
for(i=0;i<8;i++)
{
wr_lcd (comm,0x34);
wr_lcd (comm,y+j-32);
wr_lcd (comm,x2+i);
wr_lcd (comm,0x30);
wr_lcd (dat,0x00);
wr_lcd (dat,0x00);
}
}
//wr_lcd (comm,0x36);
}
/*--------------清DDRAM------------------*/
void clrram (void)
{
wr_lcd (comm,0x30);
wr_lcd (comm,0x01);
}
/*---------------顯示光條----------------*/
//當(dāng)data1=0xff,data2=0xff時,在x0,y0處反白顯示16xl*yl. //80 90 88 98
//80 90 80 90
void con_disp (uchar data1,uchar data2,uchar x0,uchar y0,uchar xl,uchar yl)
{
uchar i,j;
for(j=0;j<yl;j++)
{
for(i=0;i<xl;i++)
{
wr_lcd (comm,0x34);
wr_lcd (comm,y0+j);
wr_lcd (comm,x0+i);
wr_lcd (comm,0x30);
wr_lcd (dat,data1);
wr_lcd (dat,data2);
}
}
wr_lcd (comm,0x36);
}
/*-------------------液晶接口子程序---------*/
void wr_zb(uchar lcd_x,uchar lcd_y) //寫座標(biāo)
{
wr_lcd(comm,0x36);
wr_lcd(comm,lcd_y);
wr_lcd(comm,lcd_x);
}
void wr_lcd (uchar dat_comm,uchar content)
{
chk_busy ();
if(dat_comm)
{
rs=1; //data
rw=0; //write
}
else
{
rs=0; //command
rw=0; //write
}
P3=content; //output data or comm
e=1;
delay(1);
e=0;
}
void chk_busy (void)
{
P3=0xff;
rs=0;
rw=1;
e =1;
while(busy==1);
e =0;
}
void delay (uint us) //delay time
{
while(us--);
}
void delay1 (uint ms)
{
uint i,j;
for(i=0;i<ms;i++)
for(j=0;j<15;j++)
delay(1);
}
/*---------------初始化顯示截面------------------------*/
void init_disp(void)
{
clrp_disp();
chn_disp (tabme);
con_disp (0xff,0xff,0x80,0x80,8,16); //顯示光條
bl=0;
}
/*---------------按鍵掃描------------------------*/
void kscan(void)
{
if (kmark==0)
{ //KEY1 功能鍵
p17=1;
if(p17==0)
{
k1t=1;
goto keyl;
}
else
{
if(k1t==1)
{
k1t=0;
k1=1;
}
else
{
goto keyl;
}
}
}
if(kmark==1) //KEY2 加鍵
{
p20=1;
if (p20==0)
{
k2=1;
goto keyl;
}
else
{
key2r=0;
k2=0;
incount=16;
k2count=0;
instd=16;
topsi=0;
goto keyl;
}
}
if(kmark==2) //KEY3 確定鍵
{
p21=1;
if(p21==0)
{
k3t=1;
goto keyl;
}
else
{
if(k3t==1)
{
k3t=0;
k3=1;
goto keyl;
}
else
{
goto keyl;
}
}
}
if(kmark==3) //KEY4 減鍵
{
p22=1;
if (p22==0)
{
k4=1;
goto keyl;
}
else if(k4==0)
{
key4r=0;
k4=0;
decount=0x1F;
k4count=0x00;
destd=0x1F;
topsd=0;
goto keyl;
}
else
{
goto keyl;
}
}
keyl: kmark+=1;
if (kmark==4)
{
kmark=0;
}
}
/*----------------KEY1功能鍵響應(yīng)子程序-----------------------*/
void key1(void)
{
clrp_disp();
if (meda==0&&mepw==0)
{
menu=0;
fun1=0;
fun2=0;
fun3=0;
fun4=0;
chn_disp (tabme);
fcount+=1;
if (fcount==5)
{
fcount=0;
}
switch(fcount)
{
case 0:con_disp (0xff,0xff,0x80,0x80,8,16);break; //第一行顯示光條
case 1:con_disp (0xff,0xff,0x90,0x90,8,16);break; //第二行顯示光條
case 2:con_disp (0xff,0xff,0x88,0x80,8,16);break; //第三行顯示光條
case 3:con_disp (0xff,0xff,0x98,0x90,8,16);break; //第四行顯示光條
case 4: //菜單換頁,第四行顯示光條
{
chn_disp (tabmes);
con_disp (0xff,0xff,0x98,0x90,8,16);
break;
}
}
}
if (meda==1)
{
meda=0;
fun2=0;
chn_disp(tab1);
f2count+=1;
if (f2count==2)
{
f2count=0;
}
switch(f2count)
{
case 0:con_disp (0xff,0xff,0x80,0x80,8,16);break; //第一行顯示光條
case 1:con_disp (0xff,0xff,0x90,0x90,8,16);break; //第二行顯示光條
}
}
if (mepw==1)
{
mepw=0;
fun3=0;
chn_disp(tab4);
f3count+=1;
if (f3count==2)
{
f3count=0;
}
switch(f3count)
{
case 0:con_disp (0xff,0xff,0x80,0x80,8,16);break; //第一行顯示光條
case 1:con_disp (0xff,0xff,0x90,0x90,8,16);break; //第二行顯示光條
}
}
}
/*----------------KEY3確定鍵響應(yīng)子程序-----------------------*/
void key3(void)
{
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -