📄 setsoft.c
字号:
wr_data1(*p1);
}
p1++;
}
page++;
}
x++;
}
}
void wd_xs(uchar wdz,uchar sta) //display temperature sub
{
uchar L1,L2,L3;
L1=wdz%10; //
L2=wdz%100/10; //
L3=wdz%1000/100;
draw_clr1();
//draw_clr0();
if(sta==0)
draw_16x16(0,0,5,menkan,0);
//draw_16x16(0,0,5,shinei,0);
else
draw_16x16(0,0,5,wdzhi,1);
if(L3==0)
{
if(L2==0)
//display " "
delay(1);
else
draw_8x16(11,L2,1,fig,sta); //display " ten bit "
}
else
{
draw_8x16(11,L2,1,fig,sta); //display " ten bit "
draw_8x16(10,L3,1,fig,1); //display " hundred bit "
}
draw_8x16(12,L1,1,fig,sta);
if(neg==0x01)
draw_8x16(10,10,1,fig,sta);//display “- ”
////////draw_8x16(13,11,1,fig,sta);//display “℃ ”
draw_8x16(14,11,1,fig,sta);//display “℃ ”
}
void volt_xs(void)
{
uint zheng,ji;
uchar shi,ge;
float xiao,zheng1;
draw_clr1();
draw_16x16(0,0,5,voldat,1);
voltage=(float)adrel*5/255.0;
zheng=(int)voltage;
xiao=voltage-zheng;
xiao=xiao*100;
ji=(int)xiao;
shi=(uchar)ji%100/10;
ge=(uchar)ji%10;
draw_8x16(10,(uchar)zheng,1,fig,1);
draw_8x16(11,13,1,fig,1);
draw_8x16(12,shi,1,fig,1);
draw_8x16(13,ge,1,fig,1);
draw_8x16(14,12,1,fig,1);
}
//*************** main programmer ****************//
void main(void)
{
uchar r,i,j,k;
//WDR();
delay(20);
//key_data=0;
//WDR();
//led3flg=1;
init_devices();
CLI();
delay(100);
SEI();
r=PORTE;
lcd_ini();
backflg=1;
delay(10);
draw_clr();
delay(10);
draw_boot();
delay(100);
start: draw_16x16(0,0,8,start0,0);
draw_16x16(0,0,7,start1,1);
while(1)
{
keycai: // if((adrel-adrelold)>3)
// { adrelold=adrel;
// volt_xs();
//goto wdcai;
// }
// delay(800);
leddat=PIND;
if((leddat|0b11111110)==0xfe)
{
//goto keycai;
delay(10);
leddat=PIND;
if((leddat|0b11111110)==0xfe)
{draw_clr();
draw_end();
delay(500);
PORTD&=0b11111101;
}
}
keydata=PINB;
if((keydata|0b11000011)==0xff)
{
goto keycai;
}
else
{
delay(10);
keydata=PINB;
if((keydata|0b11000011)==0xff)
{
goto keycai;
}
else
{
backflg=1;
backcnt=0;
keybak=keydata;
while((keybak|0b11000011)!=0xff)
{
keybak=PINB;
}
if(keydata==0xdf) //设定
{ draw_clr();
draw_16x16(0,0,8,dumk,0);
delay(2000);
r=reset();
if(r)
{
keyval=0;
draw_clr();
draw_16x16(0,0,7,cuowu,0);
goto keycai;
}
keyval=1;
wr_byte(0xcc);
wr_byte(0x44);
delay(100);
r=reset();
wr_byte(0xcc);
wr_byte(0xBE);
for(j=0;j<5;j++)
ds_char[j]=rd_byte();
k=ds_char[2];
if(k>99||k<0)
k=50;
dzwd=k;
draw_clr0();
wd_xs(dzwd,0);
goto keycai;
}
else if(keydata==0xf7) //加
{
if(keyval==0x01)
{draw_clr0();
dzwd--;
if(dzwd<10)
dzwd=55;
wd_xs(dzwd,0);
}
else
{
con_down();
}
goto keycai;
}
else if(keydata==0xef) //减
{
if(keyval==0x01)
{draw_clr0();
dzwd++;
if(dzwd>55)
dzwd=10;
wd_xs(dzwd,0);
}
else
{
con_up();
}
goto keycai;
}
else if(keydata==0xfb) //确定
{
draw_clr();
draw_16x16(0,0,8,xiemk,1);
if(keyval==0x01)
{
keyval=0x00;
r=reset();
wr_byte(0xcc);
wr_byte(0x4e); //write action temperation
wr_byte(dzwd);
wr_byte(dzwd);
wr_byte(0x1f);
r=reset();
wr_byte(0xcc);
wr_byte(0x48);
goto wdcai;
}
else
{
//adc_isr();
//wd_xs(adrel,1);
//volt_xs();
goto start;
}
goto keycai;
}
else
goto keycai;
}
}
//delay(100);
//}
//PORTE^=0b00000100;
//PORTA=0x55;
//PORTC&=0b11111011; //clr pc2 a0
wdcai: r=reset();
wr_byte(0xcc);
wr_byte(0x44);
delay(1000);
delay(1000);
// delay(1000);
r=reset();
wr_byte(0xcc);
wr_byte(0xBE);
for(j=0;j<9;j++)
ds_char[j]=rd_byte();
if(ds_char[4]==0x0ff)
{
draw_16x16(0,0,7,cuowu,0);
goto xxx;
}
crc=crc_ck(&ds_char[0],9);
if (crc!=0x00)
{
draw_16x16(0,0,7,cuowu,0);
goto xxx;
}
if(ds_char[2]!=ds_char[3])
{
draw_16x16(0,0,7,cuowu,0);
goto xxx;
}
wd1820.pb[0]=ds_char[0]; //programmer of temperature disposal
wd1820.pb[1]=ds_char[1];
//wdint=wd1820.PI;
if(wd1820.pI<0)
{
wd1820.pI=(~wd1820.pI)+1;
wd1820.pI=wd1820.pI/16;
neg=1;
}
else
{
wd1820.pI=wd1820.pI/16;
neg=0;
}
if(wd1820.pI>0&&wd1820.pI<100)
{wd_xs(ds_char[2],0);
wd_xs(wd1820.pb[0],1);//xsdat);
delay(2000);
draw_clr();
draw_16x16(0,0,5,success,0);
draw_16x16(0,0,8,fanhui,1);
}
else
{
draw_16x16(0,0,7,cuowu,0);
draw_16x16(0,0,8,fanhui,1);
}
keycai2: keydata=PINB;
if((keydata|0b11000011)==0xff)
{
goto keycai2;
}
else
{
delay(10);
keydata=PINB;
if((keydata|0b11000011)==0xff)
{
goto keycai2;
}
else
{
keycai3: keydata=PINB;
if((keydata|0b11000011)==0xff)
// delay(500);
goto start;
else
goto keycai3;
}
}
xxx:delay(2000);
}
}
//-----------key programmer external interrupt 0 ---------
#pragma interrupt_handler int0_isr:2
void int0_isr(void)
{
//power_off();
//leddat++;
//if(leddat>3)
//{
//draw_clr();
//draw_16x16(0,0,6,off,0);
//}
}
#pragma interrupt_handler timer0_ovf_isr:17
void timer0_ovf_isr(void)
{
TCNT0 = 0x3D; //reload counter value
if(backflg==1)
{back_on();
backcnt++;
if(backcnt>200)
{
back_off();
backcnt=0;
backflg=0;
}
}
}
#pragma interrupt_handler adc_isr:22
void adc_isr(void)
{
//conversion complete, read value (int) using...
// value=ADCL; //Read 8 low bits first (important)
// value|=(int)ADCH << 8; //read 2 high bits and shift into top byte
adrel=ADCH;
adrel=adrel-25;
// wd_xs(adrel,1);
ADMUX|=0b01100000;
ADCSRA|=0b01000000;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -