资源简介
单片机温度测量,附源代码与protues仿真
代码片段和文件信息
#include
#include
#define uint unsigned int
#define uchar unsigned char
sbit adrd=P3^7; //IO口定义
sbit adwr=P3^6;
sbit diola=P2^5;
sbit dula=P2^6;
sbit wela=P2^7;
sbit csda=P3^2;
sbit dawr=P3^6;
sbit DS=P2^2; //define interface
uint temp; // variable of temperature
uchar code table[]={0x3f0x060x5b0x4f0x660x6d0x7d //数码管编码
0x070x7f0x6f0x770x7c0x390x5e0x790x71};
uchar code table1[]={0xbf0x860xdb0xcf0xe60xed0xfd
0x870xff0xef}; //数码管个位显示,带小数点
void Init_Com(void); //串口初始化
void delay1(uint count); //delay函数
void dsreset(void); //复位DS18B20
void tmpwritebyte(uchar dat); //向ds18b20写入八位设置数
void tmpchange(void); //DS18B20 初始化
bit tmpreadbit(void); //read a bit
uchar tmpread(void); //向DS18B20读取数据
uint tmp() ; //获得当前温度
void wendu(); //温度函数
void display2(uint temp); //显示程序
void main()
{
while(1)
{ wendu();
//设置控温范围
/*if(tmp()<200)
{P1=0xff;}
else if(tmp()<190)
{P1=0x00;}
else if(tmp()>200)
{P1=0x0f;}*/
}
}
///////功能:串口初始化波特率9600,方式1///////
void Init_Com(void)
{
TMOD = 0x20;
PCON = 0x00;
SCON = 0x50;
TH1 = 0xFd;
TL1 = 0xFd;
TR1 = 1;
}
void delay1(uint count) //delay
{
uint i;
while(count)
{
i=200;
while(i>0)
i--;
count--;
}
}
void dsreset(void) //send reset and initialization command
{
uint i;
DS=0;
i=103;
while(i>0)i--;
DS=1;
i=4;
while(i>0)i--;
}
void tmpwritebyte(uchar dat) //write a byte to ds18b20
{
uint i;
uchar j;
bit testb;
for(j=1;j<=8;j++)
{
testb=dat&0x01;
dat=dat>>1;
if(testb) //write 1
{
DS=0;
i++;i++;
DS=1;
i=8;while(i>0)i--;
}
else
{
DS=0; //write 0
i=8;while(i>0)i--;
DS=1;
i++;i++;
}
}
}
void tmpchange(void) //DS18B20 begin change
{
dsreset();
delay1(1);
tmpwritebyte(0xcc); // address all drivers on bus
tmpwritebyte(0x44); // initiates a single temperature conversion
}
void display2(uint temp) //显示程序
{
uchar A1A2A2tA3ser;
ser=temp/10;
SBUF=ser;
A1=temp/100;
A2t=temp%100;
A2=A2t/10;
A3=A2t%10;
dula=0;
P0=table[A1]; //显示十位
dula=1;
dula=0;
wela=0;
P0=0x7e;
wela=1;
wela=0;
delay1(1);
dula=0;
P0=table1[A2]; //显示个位
dula=1;
dula=0;
wela=0;
P0=0x7d;
wela=1;
wela=0;
delay1(1);
P0=table[A3]; //显示小数位
dula=1;
dula=0;
P0=0x7b;
wela=1;
wela=0;
delay1(1);
}
bit tmpreadbit(void) //read a bit
{
uint i;
bit dat;
DS=0;i++; //i++ for delay
DS=1;i++;i++;
dat=DS;
i=8;while(i>0)i--;
return (dat);
}
uchar tmpread(void) //read a byte date
{
uchar ijdat;
dat
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2012-11-12 12:30 温度调节\
目录 0 2012-11-18 12:08 温度调节\protues仿真\
文件 151462 2012-11-11 21:20 温度调节\protues仿真\Last Loaded wendu.DBK
文件 151526 2012-11-12 12:30 温度调节\protues仿真\wendu.DSN
文件 1364 2012-11-18 12:08 温度调节\protues仿真\wendu.PWI
目录 0 2012-11-12 12:30 温度调节\原理图\
文件 50823 2012-11-11 11:13 温度调节\原理图\DS18B20.jpg
文件 120274 2012-11-11 11:15 温度调节\原理图\串口部分.jpg
文件 134153 2012-11-11 11:16 温度调节\原理图\八位LED.jpg
文件 152877 2012-11-11 11:14 温度调节\原理图\六位数码管.jpg
文件 6659 2012-11-12 12:27 温度调节\原理图\加热模块.png
文件 155148 2012-11-11 11:13 温度调节\原理图\单片机部分.jpg
文件 213608 2012-11-11 11:15 温度调节\原理图\数码管锁存器.jpg
目录 0 2012-11-12 12:44 温度调节\程序\
文件 4519 2012-11-11 11:01 温度调节\程序\123
文件 3889 2012-11-12 12:49 温度调节\程序\123.c
文件 4088 2012-11-11 11:01 温度调节\程序\123.hex
文件 38 2012-11-11 11:01 温度调节\程序\123.lnp
文件 7993 2012-11-11 11:01 温度调节\程序\123.LST
文件 16279 2012-11-11 11:01 温度调节\程序\123.M51
文件 4856 2012-11-11 11:01 温度调节\程序\123.OBJ
文件 953 2012-11-11 11:21 温度调节\程序\123.Opt
文件 15620 2012-11-11 11:01 温度调节\程序\123.plg
文件 0 2012-11-11 09:19 温度调节\程序\123.uv2
文件 151462 2012-11-11 21:20 温度调节\程序\Last Loaded wendu.DBK
文件 1364 2012-11-12 12:30 温度调节\程序\wendu.PWI
- 上一篇:DTMF采用RFC2833进行带外传输的实现
- 下一篇:图幅坐标计算程序
相关资源
- 基于51单片机的比赛用记分器
- 用DS1302与LCD12864设计的可调电子钟及仿
- 51单片机nrf24L01遥控小车
- 51单片机的数字温度,使用DS18B20,数
- 51单片机的步进电机控制,lcd1602显示
- stc 51单片机实现的交通灯包括keil程序
- 51单片机光敏电阻寻光程序
- 基于51单片机的遥控小车设计小车和遥
- 基于51单片机的DDS函数信号发生器的设
- 51单片机定时器初值计算器
- 单片机光敏电阻源码
- 基于51单片机的自感应风扇系统prote
- 电子万年历毕业设计基于AT89C51单片机
- 51单片机封装库
- C51单片机密码锁4×4矩阵键盘+LCD1602液
- 基于51单片机的万年历程序
- 基于51单片机的lcd篮球计分器程序
- 51单片机 等精度测频率 LCD显示 C程序
- 基于51单片机的锯齿波&正弦波发生器
- 利用51单片机实现了红外发射以及接受
- 51单片机LED16X16点阵滚动显示
- 基于51单片机的空调遥控器C源程序
- 51单片机控制RDA5807收音机模块
- 基于C51单片机的声光控灯
- 51单片机电子门铃设计
- 基于51单片机的 4×4键盘及8位数码管显
- 基于51单片机的霹雳灯
- 51单片机贪吃蛇游戏程序
- 51单片机控制57步进电机启停,正反转
- 51单片机实现Modbus从机程序
评论
共有 条评论