ICL7135怎样显示温度

ICL7135怎样显示温度,第1张

/*查询法实现AD转换,接4位7段共阴数码管数码管,单片机P00~P03接位选,P20~P27接段选,ALE接CD4040分频,

频率为500kHz,再接到ICL7135的CLOCKIN上。稳压管为TCL431,扒春通过多圈电位器给ICL7135的参考电压分为1V,

ICL7135的负电压端通过ICL7660来供给(接近-5V就行了),ICL7135的电容要用CBB电容,质量好一些。

有一个值得注意的问题,单片机、显示、还有7135的模块要共地。如果熟悉单片机,想看下边的程序应该不会碧搏

很难。 */

#include<reg52.h>

#include<math.h>

#define uchar unsigned char

#define uint unsigned int

sbit BUSY=P3^2

uint tt,temp

float v,Rx,t

double c

uchar code table[]={0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f}

uchar code table1[]={0xbf,0x86,0xdb,0xcf,

0xe6,0xed,0xfd,0x87,

0xff,0xef}

void delay(uchar z)

{

uchar x,y

for(x=20x>0x--)

for(y=zy>悔此祥0y--)

}

void init()

{

EA=1

TMOD=0x09

TH0=0

TL0=0

ET0=1

// IT0=1

}

void main()

{

uint i

init()

while(1)

{

while(BUSY)

TH0=0

TL0=0

TR0=0

while(!BUSY)

TR0=1

while(BUSY)

TR0=0

temp=(TH0*256+TL0)/2-10001

v=(float)(temp)/10000

v=v/50.4

Rx=5000/(50.0/51.0-v/2.45)-5000

c=39.08*39.08-4*0.58*(Rx-100)

t=(39.08-sqrt(c))*100/(2*0.58)

for(i=0i<50i++)

{

P2=table[(unsigned int)(t*100)%10]

P0=0xf7

delay(10)

P2=table[(unsigned int)(t*10)%10]

P0=0xfb

delay(10)

P2=table1[(int)(t)%10]

P0=0xfd

delay(10)

P2=table[(int)(t/10)%10]

P0=0xfe

delay(10)

P0=0xff

}

}

}

直接与稿租单片机连接就改敬颂好了,就两条线,busy和CLK,另外地线是必须连一起的

单片机核郑的P32口连BUSY,P34接CLK,单片机定时器工作在门控计数器方式,下面是程序:

void int0 ()interrupt 0

{

TR0=0

adc=TH0//读取转换数据

adc=ADC*8+TL0

TL0=0xef //清除定时器0

TH0=0xd8

TR0=1

t_sign1=1 //AD转换完毕标志

}

void MCUInit()

{

TMOD=0x0d

EX0=1

IT0=1 //边沿触发模式

TL0=0xf0 //清除定时器0

TH0=0xd8

TR0=1

EA=1

}

时钟频率太低,肯定影响芯片的转换速度和精举带唯度,要求是120K,你只有5K,相差太大。

下图也是用51单片机读取数据的应用实例,正培用的是STC单片机,就可以输出可编程的时钟信号,不知行粗你用的什么单片机。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12360643.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存