|
7IG4SYC63JQS}XX2(N`2WR8.png (141.98 KB, 下載次數(shù): 34)
下載附件
2018-5-19 17:07 上傳
39%6K9K{17YGF{DZRJ`A]9D.png (8.96 KB, 下載次數(shù): 38)
下載附件
2018-5-19 17:07 上傳
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
sbit scl=P1^0;
sbit sda=P1^1;
sbit st=P1^3;
uchar num,ge,shi,bai,qian,xge,xbai,xshi,xqian;
void delay()
{ ; ; }
void delayms(uint x)
{
uint y;
for(;x>0;x--)
for(y=114;y>0;y--);
}
void init()
{
sda=1;
delay();
scl=1;
delay();
st=0;
SCON=0;
EA=1;
ES=1;
TI=0;
}
void chulishu(uint shu)
{
qian=shu/1000;
bai=shu%1000/100;
shi=shu%100/10;
ge=shu%10;
xge=table[ge];
xshi=table[shi];
xbai=table[bai];
xqian=table[qian]|0x80;
}
void start()
{
sda=1;
delay();
scl=1;
delay();
sda=0;
}
void stop()
{
sda=0;
delay();
scl=1;
delay();
sda=1;
}
void respons()
{
uchar i=0;
scl=1;
delay();
while((sda==1)&(i=250))
i++;
scl=0;
delay();
}
void writebyte(uchar date)
{
uchar i,temp;
temp=date;
for(i=0;i<8;i++)
{
temp=temp<<1;
scl=0;
delay();
sda=CY;
delay();
scl=1;
delay();
}
scl=0;
delay();
sda=1;
delay();
}
uchar readbyte()
{
uchar i,k;
scl=0;
delay();
sda=1;
for(i=0;i<8;i++)
{
scl=1;
delay();
k=(k<<1)|sda;
scl=0;
delay();
}
delay();
return k;
}
bit dac_out(uchar date) //write_add
{
start();
writebyte(0x90+0);
respons();
writebyte(0x40);
respons();
writebyte(date);
respons();
stop();
return(1);
}
bit adc_read(uchar com)
{
start();
writebyte(0x90+0);
respons();
writebyte(com);
respons();
start();
writebyte(0x90+1);
respons();
num=readbyte();
stop();
return(1);
}
void main()
{
uint aa;
//bb=1234;
init();
while(1)
{
if (adc_read(0x00));
// if (dac_out(num));
dac_out(num);
aa=num*19.61;
chulishu(aa);
SBUF=xge;
delayms(1);
SBUF=xshi;
delayms(1);
SBUF=xbai;
delayms(1);
SBUF=xqian;
delayms(1);
st=0;
st=1;
}
}
void ser0() interrupt 4
{
TI=0;
}
|
評(píng)分
-
查看全部評(píng)分
|