新闻中心

EEPW首页>嵌入式系统>设计应用> 单片机数字温度计设计

单片机数字温度计设计

作者: 时间:2013-04-03 来源:网络 收藏

(2) 把“系统”区域中的P2.0-P2.7与“动态数码显示”区域中的S1S2S3S4S5S6S7S8端口用8芯排线连接。

(3) 把“系统”区域中的P3.0与“模数转换模块”区域中的ST端子用导线相连接。

(4) 把“系统”区域中的P3.1与“模数转换模块”区域中的OE端子用导线相连接。

(5) 把“单片机系统”区域中的P3.2与“模数转换模块”区域中的EOC端子用导线相连接。

(6) 把“单片机系统”区域中的P3.3与“模数转换模块”区域中的CLK端子用导线相连接。

(7) 把“模数转换模块”区域中的A2A1A0端子用导线连接到“电源模块”区域中的GND端子上。

(8) 把“模数转换模块”区域中的IN0端子用导线连接到自制的AD590电路上。

(9) 把“单片机系统”区域中的P0.0-P0.7用8芯排线连接到“模数转换模块”区域中的D0D1D2D3D4D5D6D7端子上。

5.程序设计内容

(1) ADC0809的CLK信号由单片机的P3.3管脚提供

(2) 由于AD590的温度变化范围在-55℃-+150℃之间,经过10KΩ之后采样到的电压变化在2.182V-4.232V之间,不超过5V电压所表示的范围,因此参考电压取电源电压VCC,(实测VCC=4.70V)。由此可计算出经过A/D转换之后的摄氏温度显示的数据为:

如果(D*2350/128)<2732,则显示的温度值为-(2732-(D*2350/128))

如果(D*2350/128)≥2732,则显示的温度值为+((D*2350/128)-2732)

6.汇编源程序

(略)

7.C语言源程序

#include AT89X52.H>

#include ctype.h>

unsigned char code dispbitcode[]={0xfe,0xfd,0xfb,0xf7,

0xef,0xdf,0xbf,0x7f};

unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,

0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};

unsigned char dispbuf[8]={10,10,10,10,10,10,0,0};

unsigned char dispcount;

unsigned char getdata;

unsigned long temp;

unsigned char i;

bit sflag;

sbit ST=P3^0;

sbit OE=P3^1;

sbit EOC=P3^2;

sbit CLK=P3^3;

sbit LED1=P3^6;

sbit LED2=P3^7;

sbit SPK=P3^5;

void main(void)

{

ST=0;

OE=0;

TMOD=0x12;

TH0=0x216;

TL0=0x216;

TH1=(65536-4000)/256;

TL1=(65536-4000)%6;

TR1=1;

TR0=1;

ET0=1;

ET1=1;

EA=1;

ST=1;

ST=0;

getdata=148;

while(1)

{

;

}

}



评论


相关推荐

技术专区

关闭