新闻中心

EEPW首页>嵌入式系统>设计应用> PCF8591A/D D/A之间转换

PCF8591A/D D/A之间转换

作者: 时间:2016-12-01 来源:网络 收藏

void write_address(uchar address,uchar date)
{
start();
write_byte(0x90);
respons();
write_byte(address);
respons();
write_byte(date);
respons();
stop();
}
uchar read_address(uchar address)
{
uchar date;
start();
write_byte(0x90); //10010000 前四位固定 接下来三位全部被接地了 所以都是0 最后一位是写 所以为低电平
respons();
write_byte(address);
respons();
start();
write_byte(0x91);
respons();
date=read_byte();
stop();
return date;
}
void display()
{
uchar i;
Ledout[0]=table[num0%10000/1000];
Ledout[1]=table[num0%1000/100];
Ledout[2]=table[num0%100/10];
Ledout[3]=table[num0%10];
Ledout[4]=table[num1%10000/1000];
Ledout[5]=table[num1%1000/100];
Ledout[6]=table[num1%100/10];
Ledout[7]=table[num1%10];
for(i=0;i<8;i++)
{
P0=Ledout[i];
switch(i)
{
case 0:LS138A=0; LS138B=0; LS138C=0; break;
case 1:LS138A=1; LS138B=0; LS138C=0; break;
case 2:LS138A=0; LS138B=1; LS138C=0; break;
case 3:LS138A=1; LS138B=1; LS138C=0; break;
case 4:LS138A=0; LS138B=0; LS138C=1; break;
case 5:LS138A=1; LS138B=0; LS138C=1; break;
case 6:LS138A=0; LS138B=1; LS138C=1; break;
case 7:LS138A=1; LS138B=1; LS138C=1; break;
}
delay1ms(2);
}
P0=0x00;
}
void main()
{
init();
AD_change=0;
while(1)
{
switch(AD_change)
{
case 0:num0=read_address(0x41);
break;
case 1:num1=read_address(0x42);
break;
case 2:num2=read_address(0x43);
break;
case 3:num3=read_address(0x40);
break;
case 4:write_address(0x40,num1);
break;
}
if(++AD_change>4)
{
AD_change=0;
}
display();
}
}

上一页 1 2 下一页

关键词:PCF8591ADD

评论


相关推荐

技术专区

关闭