www.rtmj.net > 急需用温度传感器Ds18B20,数码管显示温度的单片机...

急需用温度传感器Ds18B20,数码管显示温度的单片机...

#include<reg52.h> #define uchar unsigned char #define uint unsigned int sbit DQ=P1^4; //ds18b20与单片机连接口 unsigned char code str[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40} ; //共阴数码管字码表unsigned char

#include extern GetTemp(); //声明引用外部函数extern unsigned int idata Temperature; // 声明引用外部变量void delay(unsigned int i);//else IOsbit LS138A=P2^2; //管脚定义sbit LS138B=P2^3;sbit LS138C=P2^4; //此表为 LED 的字模,

楼上的是共阳的,共阴、共阳的我都有,包括仿真的所有程序,可以显示负温,负号随数位移动的.0度时只显示一个0, 不会出现000.0情况.要的留下你邮箱或Q我:625616751

参考下吧! 18B20数字温度显示系统 综合实验:用18B20(数字温度采集)74LS47(数码管译码)74LS138(三八译码) DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式;温度测量范围为-55℃~+125

主器件是够了.还需要数码管的驱动芯片,比如573,再搭建一个单片机最小系统就OK了

void dsInit() //初使化DS18b20dsWait() //等待,延时bit readBit() //读取一bit(一位),返回值为一个bitunsigned char readByte() //读取一个字节(Byte),就是读ds18b20一个字节的信息void writeByte(unsigned char dat) //写一个字节给ds18b20,参数就是要写进的数据int getTmpValue() //获取温度值,这个会返回一个整型的温度值

程序错在这句话上:unsigned char ReadTemperature(void)返回值是uchar型,也就是8位数,返回的高位数据都被丢弃了.所以改成unsigned int ReadTemperature(void)就可以了.

就一个串口,没什么好讲的,自己看一下资料100%可以搞定.

温度传感器可以用热敏电阻或者用DS18B20也可以的

A_BIT EQU 20H B_BIT EQU 21H FLAG EQU 38H DQ EQU P3.3 MAIN: ACALL RE_TEMP ACALL TURN ACALL DISPLAY JMP MAIN RE_TEMP: SETB DQ ACALL RESET_1820 JB FLAG,ST ST: MOV A,#0CCH ACALL WRITE_1820 MOV A,

网站地图

All rights reserved Powered by www.rtmj.net

copyright ©right 2010-2021。
www.rtmj.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com