资源简介
单片机+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组件
- 下一篇:段页式虚拟存储管理
相关资源
- 51单片机ADXL345三轴加速度传感器源代
- 组态王 单片机 通讯协议
- 单片机 万年历1602带闹钟带温度带调时
- 51单片机1602万年历矩阵按键
- altium designer STC_单片机原理图库
- 基于单片机的智能型金属探测器的设
- 4×4 键盘在 8×8LED点阵上的应用课程设
- 超声波测距仪
- STC89C52RC使用电位器控制WS2812B调光
- 流水灯源程序及其仿真电路图
- 基于BH1415F的数控调频发射器设计
- C51单片机电子琴
- ds18b20.zip
- DS18B20数码管显示温度VHDL程序
- 无线蓝牙称重系统设计
- 基于单片机的温控风扇设计
- 篮球赛计时计分器.zip
- 单片机单总线通信的自已编写
- 带串口通信的温度控制器(带proteus仿
- 基于51单片机的智能家居系统程序
- AD9833驱动程序
- hmc5883l 电子罗盘430单片机程序
- 基于C51单片机音乐盒设计[1]
- 温度监控系统的详细毕业设计
- 89C51单片机控制HT1621B驱动LCD(C程序)
- 单片机单击,双击,长击程序
- 51单片机 lcd1602测试C程序
- ADC0804与单片机的模数转换程序附仿真
- 基于单片机的智能温度控制系统设计
- 单片机.zip
评论
共有 条评论