资源简介
单片机+DS18B20温度显示,-55~127°显示

代码片段和文件信息
#include
#define uchar unsigned char
#define uint unsigned int
sbit SMG1=P2^0;
sbit SMG2=P2^1;
sbit SMG3=P2^2;
sbit SMG4=P2^3;
sbit TMDAT=P3^2;
sbit dian=P0^7;
//定义各位数码管的控制端
void display(char x1char x2char x3char x4);
unsigned char code tab[14]={0xc00xf90xa40xb00x990x920x820xf80x800x900xc00xf90xa40xbf};
uchar tmpbuf[5];
//预置数码管显示的数据,此处设为0123456789012.
void delay2(unsigned int z)
{
unsigned xy;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}//定义延时函数
////////////////////////////////////////////////////////
void Delay(uint useconds)
{
while(useconds--);
}
uchar Reset_Bus(void)
{
uchar presence;
TMDAT = 0;
Delay(85);
TMDAT = 1;
Delay(5);
presence = TMDAT;
Delay(40);
return(presence);
}
void Write_Bit(char bitval)
{
TMDAT = 0;
if(bitval==1) TMDAT =1;
Delay(10);
TMDAT = 1;
}
void Write_Byte(char val)
{
uchar i;
uchar temp;
for (i=0; i<8; i++) {
temp = val>>i;
temp &= 0x01;
Write_Bit(temp);
}
Delay(10);
}
uchar Read_Bit(void)
{
uchar i;
TMDAT = 0;
TMDAT = 1;
for (i=0; i<3; i++);
return(TMDAT);
}
uchar Read_Byte(void)
{
uchar i;
uchar value = 0;
for (i=0;i<8;i++)
{
if(Read_Bit()) value|=0x01< Delay(6);
}
return(value);
}
uint DS18B20_Tmp_Read(void)
{
uint TEMP;
uchar TEMP_LSBTEMP_MSB;
Reset_Bus();
Write_Byte(0xCC);
Write_Byte(0x44);
Delay(5);
Reset_Bus();
Write_Byte(0xCC);
Write_Byte(0xBE);
TEMP_LSB = Read_Byte();
TEMP_MSB = Read_Byte();
TEMP=TEMP_MSB;
TEMP=TEMP<<8;
TEMP=TEMP|TEMP_LSB;
return TEMP;
}
//////////////////////////////////////////////////////////////////
////主函数
void main()
{ uint tmp;
uchar itmphtmpl;
P2=0;
while(1)
{
tmp=DS18B20_Tmp_Read();
tmpl=(uchar)(tmp&0x0f);
tmph=(uchar)((tmp>>4)&0xff);
tmpl=tmpl*6.25;
if(tmph/100>1)
{
tmph=256-tmph;
tmpbuf[4]=tmpl%10;
tmpbuf[3]=tmpl/10;
tmpbuf[2]=tmph%10;
tmpbuf[1]=(tmph%100)/10;
tmpbuf[0]=tmph/100;
if(tmpbuf[0]==0)
{
tmpbuf[0]=10;
if(tmpbuf[1]==0)
tmpbuf[1]=10;
tmpbuf[0]=13;
}
}
else
{
tmpbuf[4]=tmpl%10;
tmpbuf[3]=tmpl/10;
tmpbuf[2]=tmph%10;
tmpbuf[1]=(tmph%100)/10;
tmpbuf[0]=tmph/100;
if(tmpbuf[0]==0)
{
tmpbuf[0]=10;
if(tmpbuf[1]==0)
tmpbuf[1]=10;
}
}
//for(i=0;i<1000;i++)
//display(1234);
display(tmpbuf[0]tmpbuf[1]tmpbuf[2]tmpbuf[3]) ;
}
}
////////////显示部分
void display(char x1char x2char x3char x4)
{
SMG4=0;
SMG1=1;
P0=~tab[x1];
delay2(3);//控制第一位数码管的输出
SMG1=0;
SMG2=1;
P0=~tab[x2];
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2013-12-06 23:52 DS18B20 数码管 (-55~127度)\
目录 0 2013-12-07 12:24 DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\
文件 26827 2010-03-10 15:07 DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18B20截图.jpg
目录 0 2013-12-07 12:23 DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\
文件 9876 2013-12-07 03:36 DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\1.LST
文件 9627 2013-12-07 03:36 DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\1.OBJ
文件 3296 2013-12-07 03:36 DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\1.c
文件 9022 2013-12-07 03:36 DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\18B20
文件 23 2013-12-07 03:36 DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\18B20.lnp
文件 10710 2013-12-07 03:38 DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\18B20.plg
文件 148386 2013-12-07 02:41 DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\18B20.uvgui.1
文件 143093 2013-12-07 02:31 DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\18B20.uvgui_1.bak
文件 6867 2013-12-07 02:41 DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\18B20.uvopt
文件 13265 2013-12-07 02:41 DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\18B20.uvproj
文件 5910 2013-12-07 02:31 DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\18B20_uvopt.bak
文件 13249 2013-12-07 01:13 DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\18B20_uvproj.bak
文件 900 2010-03-10 15:02 DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\18b20.JPR
文件 12640 2013-12-07 03:36 DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\18b20.M51
文件 3080 2013-12-07 03:36 DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\18b20.hex
文件 57 2010-03-10 15:02 DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\18b20.jsb
文件 7362 2010-03-10 15:02 DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\18b20asm.asm
文件 7673 2010-03-10 13:38 DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\18b20asm.bak
文件 20066 2010-03-10 15:02 DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\18b20asm.lst
文件 2852 2010-03-10 15:02 DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\18b20asm.obj
文件 19 2013-12-07 02:41 DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\ExtDll.iex
文件 85 2010-03-10 15:02 DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\jyobj.lin
文件 78 2010-03-10 15:02 DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\jyprj.cog
文件 108909 2013-12-07 12:24 DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\DS18B20+数码管(-55~127度).DSN
文件 1515 2013-12-07 12:24 DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\DS18B20+数码管(-55~127度).PWI
文件 1054 2010-03-10 15:05 DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\DS18B20温度传感器实验.PWI
文件 1003 2010-03-10 15:07 DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\DS18B20温度数码管.PWI
............此处省略4个文件信息
- 上一篇:fluentftp组件
- 下一篇:段页式虚拟存储管理
相关资源
- STC8951系列单片机中方指南
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- LCD显示温度+串口接收温度.rar
- 飞思卡尔单片机MC9S12XS12G128驱动(硬件
- 51单片机PWM程序,占空比、周期可调整
- 单片机和adc0809数字电压表
- PIC单片机完成的电子密码锁
- 单片机、ADC0808809设计简易数字电压表
- 51单片机多功能自行车测速仪
- 单片机做的6位时分秒数字钟
- 单片机电子时钟 闹钟 日历
- 音乐代码转换软件 单片机编程时用
- 单片机课程设计 篮球计分器
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 单片机与温度传感器DS18B20的程序设计
- 毕业论文之温度传感器DS18B20(源码
- 51单片机基于protues的几个仿真实例
- 基于52单片机的直流电压测量
- 38k单片机红外发送代码、keil
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- stm32 ds18b20 温度传感器 测试通过
- 51单片机控制舵机程序
- 武汉理工大学 单片机课程设计 16*16点
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- 浙江工业大学2005-2006学年单片机习题
评论
共有 条评论