#include "reg51.h"
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
#define Port P0
sbit RS="P2"^0;
sbit RW="P2"^1;
sbit E="P2"^2;
sbit OE="P2"^3;
sbit ST="P2"^4;
sbit EOC="P2"^5;
uint getdata,volt;
uchar Read();
uchar code str0[]={"ChinaI Love You!"}; /*定义数组*/
uchar code str1[]={" V"};
uchar a[6];
/*延时子函数*/
void delay(uint k)
{
uint i,j;
for(i=0;i {
for(j=0;j<60;j++)
{;}
}
}
/*写状态函数*/
void WriteCommand(uchar WLCD,uchar Busy)
{
if(Busy) Read(); //若Busy为1,则调用Read子函数进行忙检测
Port="WLCD"; //将变量WLCD中的指令传送至P1口
RS="0"; //选中指令寄存器
RW="0"; //写模式
E="1"; //置E端为高电平,写使能
_nop_(); //延时一段时间
_nop_();
_nop_();
E="0"; //置E端为低电平
delay(5);
}
/*写数据子函数*/
void WriteData(uchar WDLCD)
{
Read();
Port="WDLCD";
RS="1";
RW="0";
E="1"; //置E端为高电平,读使能
_nop_();
_nop_();
_nop_();
E="0";
delay(5);
}
/*读状态子函数*/
uchar Read(void)
{
Port="0xff";
RS="0";
RW="1";
E="0";_nop_();
E="1";
while(Port&0x80); /*检测忙信号,当P1口内容与80H相与后不为0时,程序原地踏步*/
return(Port);
}
void RESET()
{
WriteCommand(0x30,0);
WriteCommand(0x38,1); //设置工作方式,8位数据传送,2行显示,检测忙信号
WriteCommand(0x0c,1); //设置状态模式,显示屏打开,光标不显示、不闪烁、检测忙信号
WriteCommand(0x01,1); //清屏,检测忙信号
WriteCommand(0x06,1); //输入方式设置,显示光标右移设置,检测忙信号
}
/*显示指定坐标的一个字符子函数*/
void DisplayOnechar(uchar x,uchar y,uchar Data)
{
y&=0x01; //y的变化范围0~1
x&=0x0f; //x的变化范围0~15
if(y) x|=0x40; //若y为1,地址码+0x40
x|=0x80; //指令码为地址码+0x80
WriteCommand(x,0); //将指令x写入LCD,忽略忙信号检测
WriteData(Data); //再将数据Data写入LCD
}
//显示指定坐标的一串字符子函数
void DisplayChar(uchar x,uchar y,uchar *Data)
{
uchar Length="0";
y&=0x1;
x&=0xf;
while((x<0xf)&(Data[Length]!='\0')) //x<15时进入while语句循环
{
DisplayOnechar(x,y,Data[Length]); //显示单个字符
Length++; //数据指针递增
x++; //x轴坐标递增
}
}
intput(uint j)
{
uchar i;
a[0]=(j/1000)%10;
a[1]='.';
a[2]=(j/100)%10;
a[3]=(j/10)%10;
a[4]=(j/1)%10;
for(i=0;i<5;i++)
{ if(i==1) a='.';
else a=a+'0';
}
DisplayChar(0,1,&a[0]);
}
void main()
{
RESET();
DisplayChar(0,0,&str0[0]);
DisplayChar(0,1,&str1[0]);
while(1)
{
ST="1";
ST="0";
while(EOC==0);
OE="1";
getdata="P1";
OE="0";
volt="getdata"*1.0*5000/255;
intput(volt);
delay(10);
}
}
文章评论(0条评论)
登录后参与讨论