📄 lcddis3.c
字号:
#include<pic.h>
#include<stdio.h>
unsigned char TRANS;
unsigned char PAGEADD;
unsigned char PAGENUM;
unsigned char CLMSUM;
unsigned char CLMADD;
unsigned char WRITE;
unsigned char row;
extern void Init_Lcd(void);
extern void Line_1(void);
extern void Line_2(void);
extern void Write_Lcd_Data(unsigned char);
extern void Write_Lcd_Cmd(unsigned char);
unsigned char i,k,POS2,adder;
unsigned int qq,gg;
const char table[192]={ 0x00,0xf8,0x48,0x48,0x48,0x48,0xff,0x48,
0x48,0x48,0x48,0xfc,0x08,0x00,0x00,0x00,
0x00,0x07,0x02,0x02,0x02,0x02,0x3f,0x42,
0x42,0x42,0x42,0x47,0x40,0x70,0x00,0x01,
0x00,0x00,0xfe,0x02,0x82,0x82,0x82,0x82,
0xfe,0x82,0x82,0x82,0xc3,0x82,0x00,0x00,
0x40,0x30,0x0f,0x40,0x40,0x40,0x40,0x40,
0x7f,0x40,0x42,0x44,0x4c,0x60,0x40,0x00,
0x04,0x04,0x04,0x84,0xe4,0x3c,0x27,0x24,
0x24,0x24,0x24,0xf4,0x24,0x06,0x04,0x00,
0x04,0x02,0x01,0x00,0xff,0x09,0x09,0x09,
0x09,0x49,0x89,0x7f,0x00,0x00,0x00,0x00,
0x88,0x48,0xb8,0x9, 0x0a,0x98,0x2c,0x48,
0x20,0xd0,0x1f,0x10,0x10,0xf8,0x10,0x00,
0x40,0x20,0x18,0x05,0x02,0x0d,0x30,0x80,
0x80,0x41,0x36,0x08,0x37,0xc0,0x40,0x00,
0x80,0x40,0x20,0xf8,0x07,0x04,0xe4,0xa4,
0xa4,0xbf,0xa4,0xa4,0xf6,0x24,0x00,0x00,
0x00,0x00,0x00,0xff,0x40,0x40,0x7f,0x4a,
0x4a,0x4a,0x4a,0x4a,0x7f,0x40,0x40,0x00,
0x10,0x22,0x64,0x0c,0x80,0x44,0x44,0x64,
0x55,0x4e,0x44,0x54,0x66,0xc4,0x00,0x00,
0x04,0x04,0xfe,0x01,0x00,0x80,0x40,0x3f,
0x00,0xff,0x00,0x3f,0x40,0x40,0x70,0x0,
};
void putch(unsigned char data)
{
Write_Lcd_Data(data);
}
void INITIAL()
{
ADCON1=0X87;
TRISA3=0;
TRISB0=0;
TRISE=0X00;
}
void LCDSTA1()
{
while(1){
TRISD=0XFF;
RB0=1;
RA3=0;
RE0=1;
RE1=0;
if(RD7==0) break;
}
}
void TRANS1()
{
LCDSTA1();
TRISD=0X00;
RB0=1;
RA3=0;
RE0=0;
RE1=0;
PORTD=TRANS;
RB0=0;
RE0=1;
}
void WRITE1()
{
TRANS=CLMADD;
TRANS1();
LCDSTA1();
TRISD=0X00;
RB0=1;
RA3=0;
RE0=0;
RE1=1;
PORTD=WRITE;
RB0=0;
CLMADD++;
RE0=1;
}
void DISP1()
{
TRANS=0XAF;
TRANS1();
LCDSTA1();
TRISD=0XFF;
RB0=1;
RA3=0;
RE0=1;
RE1=0;
}
void CLEAR1()
{
PAGEADD=0XB8;
for(PAGENUM=0X04;PAGENUM>0;PAGENUM--)
{
TRANS=PAGEADD;
TRANS1();
CLMADD=0X00;
for(CLMSUM=0X50;CLMSUM>0;CLMSUM--)
{
LCDSTA1();
WRITE=0X00;
WRITE1();
}
PAGEADD++;
}
}
void lcd1()
{
TRANS=0XA4;
TRANS1();
TRANS=0XA9;
TRANS1();
TRANS=0XE2;
TRANS1();
TRANS=0XA0;
TRANS1();
CLEAR1();
LCDSTA1();
DISP1();
}
void LCDSTA2()
{
while(1){
TRISD=0XFF;
RB0=0;
RA3=1;
RE0=1;
RE1=0;
if(RD7==0) break;
}
}
void TRANS2()
{
LCDSTA2();
TRISD=0X00;
RB0=0;
RA3=1;
RE0=0;
RE1=0;
PORTD=TRANS;
RA3=0;
RE0=1;
}
void WRITE2()
{
TRANS=CLMADD;
TRANS2();
LCDSTA2();
TRISD=0X00;
RB0=0;
RA3=1;
RE0=0;
RE1=1;
PORTD=WRITE;
RA3=0;
CLMADD++;
RE0=1;
}
void DISP2()
{
TRANS=0XAF;
TRANS2();
LCDSTA2();
TRISD=0XFF;
RB0=0;
RA3=1;
RE0=1;
RE1=0;
}
void CLEAR2()
{
PAGEADD=0XB8;
for(PAGENUM=0X04;PAGENUM>0;PAGENUM--)
{
TRANS=PAGEADD;
TRANS2();
CLMADD=0X00;
for(CLMSUM=0X50;CLMSUM>0;CLMSUM--)
{
LCDSTA2();
WRITE=0X00;
WRITE2();
}
PAGEADD++;
}
}
void lcd2()
{
TRANS=0XA4;
TRANS2();
TRANS=0XA9;
TRANS2();
TRANS=0XE2;
TRANS2();
TRANS=0XA0;
TRANS2();
CLEAR2();
LCDSTA2();
DISP2();
}
void dis1()
{
TRANS=row;
TRANS1();
TRANS=PAGEADD;
TRANS1();
i=i*32;
for(k=0;k<16;k++)
{
WRITE=table[i+k];
WRITE1();
}
CLMADD=CLMADD-16;
PAGEADD=PAGEADD+1;
TRANS=PAGEADD;
TRANS1();
for(;k<32;k++)
{
WRITE=table[i+k];
WRITE1();
}
}
void dis2()
{
TRANS=row;
TRANS2();
TRANS=PAGEADD;
TRANS2();
i=i*32;
for(k=0;k<16;k++)
{
WRITE=table[i+k];
WRITE2();
}
CLMADD=CLMADD-16;
PAGEADD=PAGEADD+1;
TRANS=PAGEADD;
TRANS2();
for(;k<32;k++)
{
WRITE=table[i+k];
WRITE2();
}
CLMADD=CLMADD+61;
}
void dis()
{ unsigned char cale1,cale2,q;
if(CLMADD<=48)
{
dis1();
goto end;
}
if(CLMADD>=62) {
CLMADD=CLMADD-61;
POS2=1;
dis2();
goto end;
}else POS2=0;
if(CLMADD>=48)
{
cale1=61-CLMADD;
cale2=16-cale1;
q=CLMADD;
TRANS=row;
TRANS1();
TRANS=PAGEADD;
TRANS1();
i=i*32;
for(k=0;k<cale1;k++)
{
WRITE=table[i+k];
WRITE1();
}
TRANS=row;
TRANS2();
TRANS=PAGEADD;
TRANS2();
CLMADD=0;
for(k=cale1;k<16;k++)
{
WRITE=table[i+k];
WRITE2();
}
PAGEADD=PAGEADD+1;
TRANS=PAGEADD;
TRANS1();
CLMADD=q;
for(;k<16+cale1;k++)
{
WRITE=table[i+k];
WRITE1();
}
TRANS=PAGEADD;
TRANS2();
CLMADD=0;
for(;k<32;k++)
{
WRITE=table[i+k];
WRITE2();
}
CLMADD=CLMADD+61;
}
end:q++;
}
void temp(void)
{
unsigned int data;
ADCON1=0X84;
ADC0N0=0X49;
ADGO=1;
WHILE(ADGO==1);
data=ADRESH*256+ADRESL;
Line_1();
printf("Voltage=%d,data");
printf("v");
}
main()
{
Init_Lcd();
gg=5623;
INITIAL();
lcd1();
lcd2();
row=0x00;
PAGEADD=0XB8;
CLMADD=0X0;
adder=CLMADD;
loop: PAGEADD=0XB8;
CLMADD=adder;
i=0;
ADCON1=0X84;
dis();
PAGEADD=0XB8;
i=1;
dis();
PAGEADD=0XB8;
i=2;
dis();
for(qq=gg;qq>0;qq--);
for(qq=gg;qq>0;qq--);
for(qq=gg;qq>0;qq--);
adder++;
if(adder>121) adder=0;
CLEAR1();
CLEAR2();
temp();
goto loop;
}
/*main()
{
INITIAL();
lcd1();
lcd2();
row=0x00;
PAGEADD=0XB8;
CLMADD=0X0;
i=0;
dis();
PAGEADD=0XB8;
CLMADD=16;
i=1;
dis();
PAGEADD=0XB8;
CLMADD=32;
i=2;
dis();
PAGEADD=0XB8;
CLMADD=48;
i=3;
dis();
PAGEADD=0XB8;
CLMADD=0;
i=4;
dis();
PAGEADD=0XBA;
CLMADD=0X00;
i=0;
dis();
PAGEADD=0XBA;
CLMADD=16;
i=5;
dis();
PAGEADD=0XBA;
CLMADD=32;
i=2;
dis();
PAGEADD=0XBA;
CLMADD=48;
i=3;
dis();
PAGEADD=0XBA;
CLMADD=0;
i=4;
dis();
while(1){
;
}
}*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -