📄 lcd_motor.c
字号:
E=0;
}
void locatexy()
{
uchar collo,rowlo;
switch(col&0x40)
{
case 0x00: {CSA=1;CSB=0;break;}
case 0x40: {CSA=0;CSB=1;break;}
}
collo=(col&0x3f)|0x40;
rowlo=(row&0x07)|0xb8;
wten();
RS=0;
RW=0;
LCD_D=collo;
E=1;E=0;
wten();
RS=0;
RW=0;
LCD_D=rowlo;
E=1;E=0;
}
void wten()
{
RS=0;
RW=1;
LCD_D=0xff;
E=1;
_nop_();
while(LCD_D&0x80);
E=0;
}
void welcome()
{
col=0x08;
row=0x01;
wrchz(ch2);
col=0x28;
wrchz(ch2+32);
col=0x48;
wrchz(ch2+64);
col=104;
wrchz(ch2+96);
col=8;
row=3;
wrchz(ch2+128);
wrchz(ch2+160);
wrchz(ch2+192);
wrchz(ch2+224);
wrchz(ch2+256);
wrchz(ch2+288);
wrchz(ch2+320);
col=64;
row=5;
wrchz(ch2+352);
wrchz(ch2+384);
wrchz(ch2+416);
wrchz(ch2+448);
}
void lcdinit()
{
CSA=1;
CSB=0;
wten();
RS=0;
RW=0;
LCD_D=0x3e;
E=1;E=0;
CSA=0;
CSB=1;
wten();
RS=0;
RW=0;
LCD_D=0x3e;
E=1;E=0;
CSA=1;
CSB=0;
wten();
RS=0;
RW=0;
LCD_D=0x3f;
E=1;E=0;
CSA=0;
CSB=1;
wten();
RS=0;
RW=0;
LCD_D=0x3f;
E=1;E=0;
CSA=1;
CSB=0;
wten();
RS=0;
RW=0;
LCD_D=0xc0;
E=1;E=0;
CSA=0;
CSB=1;
wten();
RS=0;
RW=0;
LCD_D=0xc0;
E=1;E=0;
for(row=0;row<8;row++)
for(col=0;col<0x80;col++)wrdata(0x00);
col=0;
row=0;
locatexy();
}
void rollscreen(uchar roll)
{
uchar cbyte;
cbyte=0xc0|roll;
CSA=1;
CSB=0;
wten();
RS=0;
RW=0;
LCD_D=cbyte;
E=1;_nop_();E=0;
CSA=0;
CSB=1;
wten();
RS=0;
RW=0;
LCD_D=cbyte;
E=1;E=0;
}
void ready_work()
{
col=8;
row=1;
wrchz(ch1);
wrchz(ch1+32);
//col=40;
//row=1;
disp(0x10|price_10);
disp(0x20|price_1);
//col=56;
//row=1;
wrchz(ch1+64);
//col=72;
//row=1;
disp(0x30|time_10h);
disp(0x40|time_h);
disp_num(10);
disp(0x50|time_10m);
disp(0x60|time_m);
col=8;
row=3;
wrchz(ch1+80);
wrchz(ch1+112);
//col=40;
//row=3
disp(0x70|jour_6);
disp(0x80|jour_5);
disp(0x90|jour_4);
disp(0xa0|jour_3);
disp(11);
disp(0xb0|jour_2);
disp(0xc0|jour_1);
//col=96;
//row=3
wrchz(ch1+144);
wrchz(ch1+176);
col=8;
row=5;
wrchz(ch1+208);
wrchz(ch1+240);
wrchz(ch1+272);
//col=56;
//row=5;
disp_amount();
//col=114;
//row=5;
wrchz(ch1+64);
if(set_pt)disp_modf(set_count+2);
else if(!refresh){lcdinit();refresh=1;}
}
void wrchz(uchar * pch1)
{
uchar i,colch1,rowch1;
colch1=col;
rowch1=row;
for(i=0;i<16;i++)
{
wrdata(*(pch1+i));
col++;
}
col=colch1;
row=rowch1+1;
for(i=16;i<32;i++)
{
wrdata(*(pch1+i));
col++;
}
row=rowch1;
}
void disp_modch()
{
col=32;
row=1;
wrchz(ch3);
wrchz(ch3+32);
wrchz(ch3+64);
wrchz(ch3+96);
col=16;
row=5;
wrchz(ch3+128);
wrchz(ch3+160);
col=80;
row=5;
wrchz(ch3+192);
wrchz(ch3+224);
if(car_mod){disp_modf(0x01);}
else{disp_modf(0x02);}
}
void disp_modf(uchar modfch)
{
uchar modfbyte;
uchar i;
switch(modfch&0x0f)
{
case 0x01:{col=16;row=4;}
case 0x02:{col=80;row=4;}
case 0x03:{col=40;row=0;}
case 0x04:{col=48;row=0;}
case 0x05:{col=80;row=0;}
case 0x06:{col=88;row=0;}
case 0x07:{col=104;row=0;}
case 0x08:{col=112;row=0;}
}
for(i=0;i<8;i++)
{
modfbyte=chf[i];
wrdata(modfbyte);
}
}
void add_night_price()
{
uchar n_price;
if(nigf)
if(!nig_pf)
{
n_price=price_10<<1+price_10<<3+price_1;
n_price++;
if(n_price<100)
{
price_10=n_price/10;
price_1=n_price%10;
}
nig_pf=1;
}
else if(nig_pf)
{
n_price=price_10<<1+price_10<<3+price_1;
n_price--;
if(n_price>0)
{
price_10=n_price/10;
price_1=n_price%10;
nig_pf=0;
}
}
}
void start_motor()
{
updospeed=0;
speed_count=0;
TH1=0x10;
TL1=0x00;
TR1=1;
motor_zhuan=0xf7;
}
void stop_motor()
{
updospeed=1;
}
int main()
{
uchar i;
lcdinit();
welcome();
for(i=0;i<64;i++)
rollscreen(i);
/* TMOD=0x11;
ET0=1;
ET1=1;
ET2=1;//可能可以去掉
RCLK=1;
TCLK=1;
TH2=0xff; //baud 5000;
TL2=0xf2;
RCAP2H=0xff;
RCAP2L=0xf2;
TR2=1;
ES=1;
PS=1;
EA=1;
TH0=0x3c;
TL0=0x60;
TR0=1;
COMTO1=0;
_nop_();
_nop_();
_nop_();
lcdinit();
COMTO1=1;
_nop_();
_nop_();
while(COMTO1)disp_modch();*/
lcdinit();
while(1)ready_work();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -