📄 main.c
字号:
#include <reg52.h>
#define WR197 RD
#define RD197 WR
#define HBEN T0
#define CS T1
#define DATA197 P2
//////////////////////
/////////////////////
///////液晶控制线宏定义
#define E INT0
#define RS RXD
#define RW TXD
///////////////////
//////////////////
//////////////////
code char table[]="The voltage is:";
code char ANSC[]={'0','1','2','3','4','5','6','7','8','9'};
char vdatatable[6]={' ','.',' ',' ',' ','V'};
void delay(unsigned char del)
{
unsigned x,y;
for(x=del;x>0;x--)
for(y=110;y>0;y--);
}
void Write_Com(unsigned char com)
{
RS=0;
P0=com;
delay(1);
E=1;
delay(1);
E=0;
}
void Write_Data(unsigned char date)
{
RS=1;
P0=date;
delay(1);
E=1;
delay(1);
E=0;
}
void init()
{
E=0;
RW=0;
Write_Com(0x38);
Write_Com(0x0c);
Write_Com(0x06);
Write_Com(0x01);
}
unsigned int write_command(unsigned char com)
{
unsigned int Vdata;
CS=1;
WR197=1;
RD197=1;
HBEN=1;
CS=0;
WR197=0;
DATA197=com;
WR197=1;
DATA197=0xff;
delay(40);
RD197=0;
Vdata=DATA197;
HBEN=0;
Vdata=(Vdata<<8)|DATA197;
RD197=0;
return Vdata;
}
void main()
{
unsigned int vdata;
unsigned char vdata4,vdata3,vdata2,vdata1;
unsigned char i=0;
INT1=1;
T1=1;
T0=1;
init();
Write_Com(0x80);
while(table[i]!='\0')
{
Write_Data(table[i]);
i++;
}
// P1=0xff;
P2=0x00;
P3=0;
// P3=0xff;
loop:
vdata=write_command(0x41);
vdata4=(unsigned char)(vdata/1000);
vdata3=(unsigned char)((vdata%1000)/100);
vdata2=(unsigned char)((vdata%100)/10);
vdata1=(unsigned char)(vdata%10);
vdatatable[0]=ANSC[vdata4];
vdatatable[2]='.';
vdatatable[2]=ANSC[vdata3];
vdatatable[3]=ANSC[vdata2];
vdatatable[4]=ANSC[vdata1];
Write_Com(0x80+0x45);
for(i=0;i<6;i++)
{
Write_Data(vdatatable[i]);
//delay(2);
}
delay(255);
delay(255);
delay(255);
goto loop;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -