#include "reg51.h" //此文件中定义了单片机的一些特殊功能寄存器
#include "lcd.h"
#include
#define uchar unsigned char
#define uint unsigned int
***it Cs0832=P3^5;
***it clk0832=P3^1;
***it Di0832=P3^0;
***it Do0832=P3^0;
uchar Disp[]=" Pechin Science ";
uchar Ch0value,Ch1value;
void delayms(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
uchar read0832(uchar channel)//获得数据返回值。通道的入口(0或者1)
{
uchar i,dat1=0,dat2=0;
Cs0832=0;
clk0832=0;
Di0832=1;
clk0832=1;
//以上过程就产生了一个开始信号
clk0832=0;
Di0832=1;//这个1使芯片只能工作于单通道工作模式
clk0832=1;
//第二个送一个1,也可以送0,如果送0就是差分输入
clk0832=0;
Di0832=channel;//这个如果是0则对通道进行转换,如果是1就对通道1进行转换
clk0832=1;
clk0832=0;
Di0832=1;//释放总线
for(i=0;i<8;i++)
{
clk0832=1;
clk0832=0;
if(Do0832)
{
dat1|=0x80>>i;
}
}
for(i=0;i<8;i++)
{
if(Do0832)
{
dat2|=0x80<
}
clk0832=1;
clk0832=0;
}
Cs0832=1;
clk0832=1;
Di0832=1;
//数据读取完成,释放总线
if(dat1==dat2)
return(dat1);
}
void display()
{
uchar a0,a1,a2,b0,b1,b2;
a0=Ch0value*196/10000;
a1=Ch0value*196%10000/1000;
a2=Ch0value*196%1000/100;
b0=Ch1value*196/10000;
b1=Ch1value*196%10000/1000;
b2=Ch1value*196%1000/100;
LcdWriteCom(0x80+11);
LcdWriteData(0x30+a0);
LcdWriteData('.');//显示小数点
LcdWriteData(0x30+a1);
LcdWriteData(0x30+a2);
LcdWriteData('V');//显示单位伏特
LcdWriteCom(0x80+0x40+11);
LcdWriteData(0x30+b0);
LcdWriteData('.');//显示小数点
LcdWriteData(0x30+b1);
LcdWriteData(0x30+b2);
LcdWriteData('V');//显示单位伏特
}
/*******************************************************************************
* 函 数 名 : main
* 函数功能 : 主函数
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void main(void)
{
LcdInit();
while(1)
{
Ch0value=read0832(0);
delayms(50);
Ch1value=read0832(1);
delayms(50);
display();
}
}
1