📄 5588.c
字号:
WriteLCD(18,0x0f);
}
else
{
WriteLCD(18,0x0c);
}
break;
case SixFlash:
if(SixLightState)
{
WriteLCD(18,0x0f);
}
else
{
WriteLCD(18,0x0a);
}
break;
case SevenFlash:
if(SevenLightState)
{
WriteLCD(18,0x0f);
}
else
{
WriteLCD(18,0x06);
}
break;
case other:
WriteLCD(3,0x08);
Add10|=0x07; WriteLCD(10,Add10);
WriteLCD(12,0x0f);
WriteLCD(18,0x0f);
WriteLCD(24,0x0f);
WriteLCD(28,0x0f);
WriteLCD(38,0x0f);
WriteLCD(40,0x0f);
WriteLCD(44,0x0f);
WriteLCD(46,0x0f);
WriteLCD(58,0x0f);
WriteLCD(73,0x08);
WriteLCD(89,0x08);
WriteLCD(106,0x08);
WriteLCD(107,0x08);
WriteLCD(115,0x02);
WriteLCD(116,0x0f);
WriteLCD(117,0x0f);
WriteLCD(118,0x0f);
WriteLCD(119,0x0f);
}
}
// Write enable must precede all programming modes.
void Ewen(void)
{
unsigned char temp,InData;
_93C46_CS=0;
_93C46_CLK=0;
_93C46_CS=1;
InData=0x98; // 1 00 11XXXXX 8位工作方式
for(temp=9;temp!=0;temp--)
{
_93C46_DATA=InData&0x80;
_93C46_CLK=1;
_93C46_CLK=0;
InData<<=1;
}
_93C46_CS=0;
}
// Reads data stored in memory, at specified address.
unsigned char ReadE2prom(unsigned char address)
{
unsigned char temp;
unsigned char result;
Ewen();
_93C46_CLK=0; _93C46_DATA=1; // 110 A5-A0
_93C46_CS=0; _93C46_CS=1;
_93C46_CLK=1; _93C46_CLK=0; // 1
_93C46_DATA=1; // 110 A5-A0
_93C46_CLK=1; _93C46_CLK=0; // 1
address=address&0x7f;
for(temp=8;temp!=0;temp--)
{
_93C46_DATA=address&0x80;
_93C46_CLK=1; _93C46_CLK=0;
address<<=1;
}
_93C46_DATA=1;//
for(temp=8;temp!=0;temp--)
{ // 16
_93C46_CLK=1;
result=(result<<1)|_93C46_DATA;
_93C46_CLK=0;
}
_93C46_CS=0;
return(result);
}
// Writes memory location An - A0.
void WriteE2prom(unsigned char address, unsigned char InData)
{
unsigned char temp;
Ewen();
_93C46_CLK=0; _93C46_DATA=1; // 101 A5-A0
_93C46_CS=0; _93C46_CS=1;
_93C46_CLK=1; _93C46_CLK=0; // 1
_93C46_DATA=0;
_93C46_CLK=1; _93C46_CLK=0;
address=address&0x7f|0x80;
for(temp=8;temp!=0;temp--)
{
_93C46_DATA=address&0x80;
_93C46_CLK=1; _93C46_CLK=0;
address<<=1;
}
for(temp=8;temp!=0;temp--)
{
_93C46_DATA=InData&0x80;
_93C46_CLK=1; _93C46_CLK=0;
InData<<=1;
}
_93C46_CS=0; _93C46_DATA=1;
_93C46_CS=1; _93C46_CLK=1;
while(_93C46_DATA==0)// busy test
{
_93C46_CLK=0;
_93C46_CLK=1;
}
_93C46_CLK=0;
_93C46_CS=0;
}
unsigned char ADC0832(void)
{
_0832_CS=1; _0832_CLK=0; _0832_DATA=0; //ADC0832初始化
_0832_CS=0;//片选
_0832_DATA=1; //起始位,DI=1
_0832_CLK=1;_0832_CLK=0;//第一个脉冲,注意:在负跳变之前加一个DI反转操作
_0832_DATA=1; //DI置1,设为单通道
_0832_CLK=1;_0832_CLK=0;//第二个脉冲,
_0832_DATA=0; //DI置0,选择通道0
_0832_CLK=1;_0832_CLK=0;//第三个脉冲,
_0832_DATA=1;
_0832_CLK=1;_0832_CLK=0;//第四个脉冲,
B7=_0832_DATA; //第四个脉冲下降沿,DO端输出第一位数据,高位在前
_0832_CLK=1;_0832_CLK=0;
B6=_0832_DATA; //第五个脉冲下降沿,DO端输出第二位数据,以下雷同
_0832_CLK=1;;_0832_CLK=0;
B5=_0832_DATA;
_0832_CLK=1;_0832_CLK=0;
B4=_0832_DATA;
_0832_CLK=1;_0832_CLK=0;
B3=_0832_DATA;
_0832_CLK=1;_0832_CLK=0;
B2=_0832_DATA;
_0832_CLK=1;_0832_CLK=0;
B1=_0832_DATA;
_0832_CLK=1;_0832_CLK=0;
B0=_0832_DATA;
_0832_CS=1; //结束这一次转换周期,省去第12至19个脉冲
return(B);
}
void time2() interrupt 5 //10ms
{
TF2=0;
_10msCount++;
if(_10msCount==50)
{
SecondDotState=0;
LightState=0;
}
if(_10msCount>99)
{
_10msCount=0;
T1CountVal=TH1*256+TL1;
T0CountVal=TH0*256+TL0;
TH0=0;
TL0=0;
TH1=0;
TL1=0;
SamplingComplete=1;
ReadSecondEnable=1;
SecondDotState=1;
LightState=1;
if(SamplingCount<10)
{
SamplingCount++;
}
SecondCount++;
if(SecondCount>59)
{
SecondCount=0;
_1Minute=1;
}
}
if(KnockOut&&!KnockPause)
{
KnockCount++;
}
if(DelayHeatCountEnable)
{
DelayHeatCount++;
if(DelayHeatCount>1000)
{
DelayHeatCount=0;
DelayHeatCountEnable=0;
DelayHeatCountComplete=1;
}
}
if(DelayStopWaterCountEnable)
{
DelayStopWaterCount++;
if(DelayStopWaterCount>6000)
{
DelayStopWaterCount=0;
DelayStopWaterCountEnable=0;
DelayStopWaterCountComplete=1;
}
}
CartoonCount++;
if(!KnockPin1)
{
Knock1Count++;
if(Knock1Count>5)
{
Knock1Count=0;
KnockPin1=OFF;
}
}
if(!KnockPin2)
{
Knock2Count++;
if(Knock2Count>5)
{
Knock2Count=0;
KnockPin2=OFF;
}
}
if(!beep)
{
BeepCount++;
if(BeepCount>10)
{
BeepCount=0;
if(!WrongState)
{
beep=1;
}
}
}
if(_4_beep)
{
_4_beepCount++;
if(_4_beepCount>280)
{
_4_beepCount=0;
_4_beep=0;
}
}
if(WaterTemperatureShiftFlag)
{
WaterTemperatureShiftCount++;
if(WaterTemperatureShiftCount>200)
{
WaterTemperatureShiftCount=0;
WaterTemperatureShiftFlag=0;
OldWaterTemperatureVal=255;
}
}
}
main()
{
unsigned char BCD_HighBit,BCD_LowBit;
unsigned char i;
ReadClockChip(0x02,1);//读取时钟芯片数据
ClockBuf[0]=ClockBuf[0]&0x7f;
WriteClockChip(0x02,1);
TMOD=0X55;
SCON=0x90;
EA=1;
ET2=1;
RCAP2H=0xd8;//定时10ms
RCAP2L=0xf0;
TR0=1;
TR1=1;
if(ReadE2prom(7)!=33)
{
WriteE2prom(7,33);
WriteE2prom(10,0);
WriteE2prom(11,0);
WriteE2prom(12,0);
WriteE2prom(13,0);
}
TimeSumVal=(unsigned long)ReadE2prom(10)*256*65536;
TimeSumVal=TimeSumVal+(unsigned long)ReadE2prom(11)*65536;
TimeSumVal=TimeSumVal+(unsigned long)ReadE2prom(12)*256;
TimeSumVal=TimeSumVal+(unsigned long)ReadE2prom(13);
Write_LCD_Command(0x18);
Write_LCD_Command(0x01);
Write_LCD_Command(0x03);
OperateMode=MainMenuMode;
LowFreOperateMode=LowFreMainMenuMode;
SaveVal=0x03;
LowFreSaveVal=0x03;
ObjectBuf[Cartoon]=1;
ObjectBuf[MainKey]=1;
ObjectBuf[LowFreMainKey]=1;
ObjectBuf[Timer]=0;
LowWaterTemperatureFlag=1;
Display(other);
Display(TimeSum);
Display(Knock);
FirstTime=1;
//5322888
TR2=1;
while(1)
{
switch(CartoonCount)
{
case 0:
case 1:
CartoonCount=2;
ObjectBuf[Cartoon]=0;
Display(Cartoon);
break;
case 50:
case 51:
CartoonCount=52;
ObjectBuf[Cartoon]=1;
Display(Cartoon);
break;
case 100:
case 101:
CartoonCount=102;
ObjectBuf[Cartoon]=2;
Display(Cartoon);
break;
case 150:
case 151:
CartoonCount=152;
ObjectBuf[Cartoon]=3;
Display(Cartoon);
break;
case 200:
case 201:
CartoonCount=202;
ObjectBuf[Cartoon]=4;
Display(Cartoon);
break;
case 250:
case 251:
CartoonCount=252;
ObjectBuf[Cartoon]=5;
Display(Cartoon);
break;
case 300:
case 301:
CartoonCount=302;
ObjectBuf[Cartoon]=6;
Display(Cartoon);
break;
case 310:
case 311:
CartoonCount=312;
ObjectBuf[Cartoon]=7;
Display(Cartoon);
break;
case 320:
case 321:
CartoonCount=322;
ObjectBuf[Cartoon]=8;
Display(Cartoon);
break;
case 330:
case 331:
CartoonCount=332;
ObjectBuf[Cartoon]=9;
Display(Cartoon);
break;
case 340:
case 341:
CartoonCount=342;
ObjectBuf[Cartoon]=10;
Display(Cartoon);
break;
case 350:
case 351:
CartoonCount=352;
ObjectBuf[Cartoon]=11;
Display(Cartoon);
break;
case 360:
case 361:
CartoonCount=362;
ObjectBuf[Cartoon]=12;
Display(Cartoon);
break;
case 370:
case 371:
CartoonCount=372;
ObjectBuf[Cartoon]=13;
Display(Cartoon);
break;
case 380:
case 381:
CartoonCount=382;
ObjectBuf[Cartoon]=14;
Display(Cartoon);
break;
case 390:
case 391:
CartoonCount=392;
ObjectBuf[Cartoon]=15;
Display(Cartoon);
break;
case 400:
case 401:
CartoonCount=402;
ObjectBuf[Cartoon]=16;
Display(Cartoon);
break;
case 410:
case 411:
CartoonCount=412;
ObjectBuf[Cartoon]=17;
Display(Cartoon);
break;
case 420:
case 421:
CartoonCount=422;
ObjectBuf[Cartoon]=18;
Display(Cartoon);
break;
case 430:
case 431:
CartoonCount=432;
ObjectBuf[Cartoon]=19;
Display(Cartoon);
break;
case 440:
case 441:
CartoonCount=442;
ObjectBuf[Cartoon]=20;
Display(Cartoon);
break;
case 450:
case 451:
CartoonCount=452;
ObjectBuf[Cartoon]=21;
Display(Cartoon);
break;
case 460:
case 461:
CartoonCount=462;
ObjectBuf[Cartoon]=22;
Display(Cartoon);
break;
case 470:
case 471:
CartoonCount=472;
ObjectBuf[Cartoon]=23;
Display(Cartoon);
break;
case 480:
case 481:
CartoonCount=482;
ObjectBuf[Cartoon]=24;
Display(Cartoon);
break;
case 490:
case 491:
CartoonCount=492;
ObjectBuf[Cartoon]=25;
Display(Cartoon);
break;
case 500:
case 501:
CartoonCount=502;
ObjectBuf[Cartoon]=26;
Display(Cartoon);
break;
case 510:
case 511:
CartoonCount=512;
ObjectBuf[Cartoon]=27;
Display(Cartoon);
break;
case 520:
case 521:
CartoonCount=522;
ObjectBuf[Cartoon]=28;
Display(Cartoon);
break;
case 530:
case 531:
CartoonCount=532;
ObjectBuf[Cartoon]=29;
Display(Cartoon);
break;
case 540:
case 541:
CartoonCount=542;
ObjectBuf[Cartoon]=30;
Display(Cartoon);
break;
case 550:
case 551:
CartoonCount=552;
ObjectBuf[Cartoon]=31;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -