#include <reg52.h>
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
sbit adrd=P0^0; //读选通
sbit adwr=P0^1; //写选通
sbit en=P3^3; //1602使能
sbit rs=P3^4; //1602寄存器
uchar a,b,c,adval,n;
void delay(uint z)
{
uchar x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void wcmd(uint c)
{
rs=0;
en=0;
P1=c;
delay(5);
en=1;
delay(5);
en=0;
}
void wdat(uint d)
{
rs=1;
en=0;
P1=d;
delay(5);
en=1;
delay(5);
en=0;
}
void lcdinit()
{
en=0;
wcmd(0x38);
wcmd(0x0c);
wcmd(0x06);
wcmd(0x01);
wcmd(0x80);
}
/*void lcdpos(uchar x,uchar y)
{
if(x)
wcmd(0x80+y);
else if(x==2)
wcmd(0x80+0x40+y);
} */
void main()
{
lcdinit();
while(1)
{
//WR写——启动AD转换
adwr=1;
_nop_(); //一个机器周期
adwr=0;
_nop_();
adwr=1;
//用显示时间延长转换时间
for(n=12;n>0;n--)
{
wcmd(0x80+4);
wdat(a+0x30);
wdat(b+0x30);
wdat(c+0x30);
}
P2=0xff;
//操作RD——读
adrd=1;
_nop_();
adrd=0;
_nop_();
adval=P2;
adrd=1;
a=adval/100;
b=adval%100/10;
c=adval%10;
}
}