?? led.h
字號:
/* This is the header file of led type robot handheld ckt. */
void EEWrite(unsigned char Adr,unsigned char Data)
{
//while (EECR&0x02);
while (1) {
if ( (EECR&0x02)==0x00 ) break;
#asm("nop")
#asm("nop")
//_NOP();
//_NOP();
}
EEARH=0;
EEARL=Adr;
EEDR=Data;
//_CLI();
#asm("cli")
EECR|=0x04;
EECR|=0x02;
#asm("nop")
#asm("nop")
//_NOP();
//_NOP();
//_SEI();
#asm("sei")
}
unsigned char EERead(unsigned char Adr)
{
unsigned char data;
//while (EECR&0x02);
while (1) {
if ( (EECR&0x02)==0x00 ) break;
}
EEARH=0;
EEARL=Adr;
EECR|=0x01;
data=EEDR;
return data;
}
void Bin4Bcd(void)
{
unsigned char j;
for ( j=0;j<4;j++) {
CurDigBuf[j]=0;
}
//i=CurBinByte[1]; i<<=8;
//i|=CurBinByte[2];
while ( WordNumber>=1000 ) {
WordNumber-=1000;
CurDigBuf[0]++;
}
while ( WordNumber>=100 ) {
WordNumber-=100;
CurDigBuf[1]++;
}
while ( WordNumber>=10 ) {
WordNumber-=10;
CurDigBuf[2]++;
}
CurDigBuf[3]=WordNumber;
}
void Bin2Bcd(unsigned char i)
{
unsigned char j;
for ( j=0;i<2;j++) {
CurDigBuf[i]=0;
}
//i=CurBinByte[2];
while ( i>=10 ) {
i-=10;
CurDigBuf[0]++;
}
CurDigBuf[1]=i;
}
void DspMode(void)
{
if (Mode==0) {
CurLedDspBuf[0]=0x0f;
CurLedDspBuf[1]=0x12;
CurLedDspBuf[2]=0x0e;
CurLedDspBuf[3]=9;
}
if (Mode==1) {
CurLedDspBuf[0]=41;
CurLedDspBuf[1]=0;
CurLedDspBuf[2]=1;
CurLedDspBuf[3]=17;
}
}
void DspData(void)
{
if (Mode==0) {
WordNumber=ParaNo[0].Data;
Bin4Bcd();
CurLedDspBuf[0]=CurDigBuf[0];
CurLedDspBuf[1]=CurDigBuf[1];
CurLedDspBuf[2]=CurDigBuf[2]+20;
CurLedDspBuf[3]=CurDigBuf[3];
}
if (Mode==1) {
WordNumber=ParaNo[1].Data;
Bin4Bcd();
CurLedDspBuf[0]=CurDigBuf[0];
CurLedDspBuf[1]=CurDigBuf[1];
CurLedDspBuf[2]=CurDigBuf[2];
CurLedDspBuf[3]=CurDigBuf[3];
}
}
void DspNoPreData(void)
{
CurLedDspBuf[0]=36;
CurLedDspBuf[1]=36;
CurLedDspBuf[2]=36;
CurLedDspBuf[3]=36;
}
void DspPreData(void)
{
if (Mode==0) {
WordNumber=ParaNo[0].PreData;
Bin4Bcd();
CurLedDspBuf[0]=CurDigBuf[0];
CurLedDspBuf[1]=CurDigBuf[1];
CurLedDspBuf[2]=CurDigBuf[2]+20;
CurLedDspBuf[3]=CurDigBuf[3];
}
if (Mode==1) {
WordNumber=ParaNo[1].PreData;
Bin4Bcd();
CurLedDspBuf[0]=CurDigBuf[0];
CurLedDspBuf[1]=CurDigBuf[1];
CurLedDspBuf[2]=CurDigBuf[2];
CurLedDspBuf[3]=CurDigBuf[3];
}
}
void DspPreFlash(void)
{
if (Flash==0) {
DspPreData();
Flash=1;
Tmr[1].Pv=80;
}
else {
DspNoPreData();
Flash=0;
Tmr[1].Pv=13;
}
Tmr[1].Con=0x81;
}
void KeyInc(void)
{
if (SnrBuf[1]==0xff) {
UpKeyPressed=1;
if (MenuLevel==2) {
if (IncCnt<20) {
if (Mode==0) {
if (ParaNo[Mode].PreData++ >=1200) {
ParaNo[Mode].PreData--;
}
}
if (Mode==1) {
if (ParaNo[Mode].PreData++ >=220) {
ParaNo[Mode].PreData--;
}
}
}
if (IncCnt>=20 && IncCnt<40) {
if (Mode==0) {
ParaNo[Mode].PreData+=10;
if ( ParaNo[Mode].PreData >=1200) {
ParaNo[Mode].PreData-=10;
IncCnt=0;
}
}
if (Mode==1) {
ParaNo[Mode].PreData+=10;
if (ParaNo[Mode].PreData >=220) {
ParaNo[Mode].PreData-=10;
IncCnt=0;
}
}
}
if (IncCnt>=40) {
if (Mode==0) {
ParaNo[Mode].PreData+=100;
if ( ParaNo[Mode].PreData >=1200) {
ParaNo[Mode].PreData-=100;
IncCnt=0;
}
}
if (Mode==1) {
ParaNo[Mode].PreData+=100;
if (ParaNo[Mode].PreData >=220) {
ParaNo[Mode].PreData-=100;
IncCnt=0;
}
}
}
}
DspPreData();
}
if (SnrBuf[2]==0xff) {
DownKeyPressed=1;
if (MenuLevel==2) {
if (IncCnt<20) {
if (Mode==0) {
if (ParaNo[Mode].PreData-- <=400) {
ParaNo[Mode].PreData++;
}
}
if (Mode==1) {
if (ParaNo[Mode].PreData-- <=110) {
ParaNo[Mode].PreData++;
}
}
}
if (IncCnt>=20 && IncCnt<40) {
if (Mode==0) {
ParaNo[Mode].PreData-=10;
if (ParaNo[Mode].PreData <=400) {
ParaNo[Mode].PreData+=10;
IncCnt=0;
}
}
if (Mode==1) {
ParaNo[Mode].PreData-=10;
if (ParaNo[Mode].PreData <=110) {
ParaNo[Mode].PreData+=10;
IncCnt=0;
}
}
}
if (IncCnt>=40) {
if (Mode==0) {
ParaNo[Mode].PreData-=100;
if (ParaNo[Mode].PreData <=400) {
ParaNo[Mode].PreData+=100;
IncCnt=0;
}
}
if (Mode==1) {
ParaNo[Mode].PreData-=100;
if (ParaNo[Mode].PreData <=110) {
ParaNo[Mode].PreData+=100;
IncCnt=0;
}
}
}
}
DspPreData();
}
if (SnrBuf[1]==0 && SnrBuf[2]==0) IncCnt=0;
else
if (IncCnt++ >=61 ) IncCnt=61;
Tmr[2].Con=0x81;
}
void KeyScan(void)
{
if (KeyFlag==0xff) {
KeyFlag=0;
switch ( PressKeyCode ) {
case ModeKey:
switch (MenuLevel) {
case 0:
if (Mode==0) Mode=1;
else Mode=0;
DspMode();
break;
case 1:
MenuLevel=0;
DspMode();
break;
case 2:
MenuLevel=1;
Tmr[1].Con=0;
Tmr[2].Con=0;
DspData();
break;
}
break;
case UpKey:
if (MenuLevel==2) {
IncCnt=0;
if (Mode==0) {
if (ParaNo[Mode].PreData++ >=1200) {
ParaNo[Mode].PreData--;
break;
}
}
if (Mode==1) {
if (ParaNo[Mode].PreData++ >=220) {
ParaNo[Mode].PreData--;
break;
}
else ParaNo[Mode].PreData++;
}
}
break;
case DownKey:
if (MenuLevel==2) {
IncCnt=0;
if (Mode==0) {
if (ParaNo[Mode].PreData-- <=400) {
ParaNo[Mode].PreData++;
break;
}
}
if (Mode==1) {
if (ParaNo[Mode].PreData-- <=110) {
ParaNo[Mode].PreData++;
break;
}
}
}
break;
case EnterKey:
switch (MenuLevel) {
case 0:
MenuLevel=1;
DspData();
break;
case 1:
MenuLevel=2;
ParaNo[Mode].PreData=ParaNo[Mode].Data;
Tmr[1].Con=0x81;
Tmr[2].Con=0x81;
IncCnt=0;
break;
case 2:
ParaNo[Mode].Data=ParaNo[Mode].PreData;
if (Mode==0) {
DeltaSmall=K1/ParaNo[Mode].Data;
EEWrite(100,ParaNo[Mode].Data>>8); //纗
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -