首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

[更新!]数字温度计DS18B20内带原理图,程序(更新为C语言,见后面)

我下了你的C程序怎么在我的keil51上运行不了

我是才开始学的

麻烦高手指点一下.谢谢!

下面的程序在这个仿真图上运行是在什么问题??

图片点击可在新窗口打开查看

#include <reg51.h>
#include <intrins.h>

#define uint unsigned int
#define uchar unsigned char

sbit DQ=P3^3;

uint lp,hp,a,b,shi,ge,xs;

void Delay(uint num);
DS18B20_init(void);
eadOneChar(void) ;
WriteOneChar(uchar dat) ;
Read_Temperature(void);
Disp_Temperature() ;
void Delay1mS(unsigned int tt);


uchar code LEDData[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};

bit flag_init=0;


void main(void)
{

DS18B20_init();
while(1)
{
Read_Temperature();
Disp_Temperature();

}

}


DS18B20_init(void)
{
flag_init=1;
DQ = 1;
_nop_();

DQ = 0;
Delay(52);

DQ= 1;
Delay(5);

flag_init= DQ;
Delay(25);
}


Readonechar(void)
{
uchar i = 0;
uchar dat = 0;
for (i = 8; i > 0; i--)
{
DQ = 0;
dat >>= 1;
DQ = 1;

if(DQ)
dat |= 0x80;
Delay(5);
}
return (dat);
}

WriteOneChar(uchar dat)
{
uchar i = 0;
for (i = 8; i > 0; i--)
{
DQ = 0;
DQ = dat&0x01;
Delay(5);

DQ = 1;
dat>>=1;
}
}

Read_Temperature(void)
{

DS18B20_init();
WriteOneChar(0xcc);
WriteOneChar(0x44);
DS18B20_init();
WriteOneChar(0xcc);
WriteOneChar(0xbe);

lp=Readonechar();
hp=Readonechar();

 hp<<=8;
hp|=lp;
a=hp*625/10000;
b=a*10+5/10;

shi=b/100;
ge=b/10%10;
xs=b%10;

}


Disp_Temperature()
{
P2=0xfe;
P0=LEDData [shi];
Delay1mS(5);
P2=0xfd;
P0=LEDData [ge]|0x80;
Delay1mS(5);
P2=0xfb;
P0=LEDData [xs];
Delay1mS(5);
}


void Delay1mS(unsigned int tt)
{
unsigned char i;
while(tt--)
{
for(i=113;i>0;i--);
}
}


void Delay(uint num)
{
while( --num );
}


在keilc51上运行不了?不会的,它提示什么错误,你把它贴出来
人要保持斗志,并有疯狂的追求,生活才会精彩! QQ:24387110 手机:13871563876
Build target 'Target 1'
compiling Delay.C...
compiling DS18B20.C...
..\DS18B20_S\DS18B20.C(2): error C202: 'P3': undefined identifier
..\DS18B20_S\DS18B20.C(10): error C202: 'DQ': undefined identifier
..\DS18B20_S\DS18B20.C(12): error C202: 'DQ': undefined identifier
compiling 测温.c...
..\ds18b20_s\测温.c(1): warning C318: can't open file 'REGX51.H'
..\DS18B20_S\DS18B20.C(2): error C202: 'P3': undefined identifier
..\DS18B20_S\DS18B20.C(10): error C202: 'DQ': undefined identifier
..\DS18B20_S\DS18B20.C(12): error C202: 'DQ': undefined identifier
..\DS18B20_S\DS18B20.C(14): error C202: 'DQ': undefined identifier
..\DS18B20_S\DS18B20.C(16): error C202: 'DQ': undefined identifier
..\DS18B20_S\DS18B20.C(25): error C202: 'DQ': undefined identifier
..\DS18B20_S\DS18B20.C(27): error C202: 'DQ': undefined identifier
..\DS18B20_S\DS18B20.C(28): error C202: 'DQ': undefined identifier
..\DS18B20_S\DS18B20.C(40): error C202: 'DQ': undefined identifier
..\DS18B20_S\DS18B20.C(41): error C202: 'DQ': undefined identifier
..\DS18B20_S\DS18B20.C(43): error C202: 'DQ': undefined identifier
..\DS18B20_S\测温.C(8): error C202: 'P2': undefined identifier
..\DS18B20_S\测温.C(9): error C202: 'P0': undefined identifier
..\DS18B20_S\测温.C(11): error C202: 'P2': undefined identifier
..\DS18B20_S\测温.C(12): error C202: 'P0': undefined identifier
..\DS18B20_S\测温.C(14): error C202: 'P2': undefined identifier
..\DS18B20_S\测温.C(15): error C202: 'P0': undefined identifier
Target not created

他出现这些怎么回事?

我大部分按你写的我写的前面发的那个程序

但仿真时显示的数字不动

麻烦你给我看下

谢谢

我才学几个星期很多都不知道

你应该打开工程文件.Uv2

人要保持斗志,并有疯狂的追求,生活才会精彩! QQ:24387110 手机:13871563876

还有就是你的UV2设置应该要搞成正确的

人要保持斗志,并有疯狂的追求,生活才会精彩! QQ:24387110 手机:13871563876

我把下的程序写到一起

把#include<REGX51.H>改成##include<reg51.h>

就只出现

".\测温.obj"
TO "temp_test"
*** FATAL ERROR L210: I/O ERROR ON INPUT FILE:
EXCEPTION 0021H: PATH OR FILE NOT FOUND
FILE: F:\KC51\C51\LIB\C51FPS.LIB
Target not created

不改就出现上面的那些错误

Build target 'Target 1'
compiling Delay.C...
compiling DS18B20.C...
..\DS18B20_S\DS18B20.C(2): error C202: 'P3': undefined identifier
..\DS18B20_S\DS18B20.C(10): error C202: 'DQ': undefined identifier
..\DS18B20_S\DS18B20.C(12): error C202: 'DQ': undefined identifier
compiling 测温.c...
..\ds18b20_s\测温.c(1): warning C318: can't open file 'REGX51.H'
..\DS18B20_S\DS18B20.C(2): error C202: 'P3': undefined identifier
..\DS18B20_S\DS18B20.C(10): error C202: 'DQ': undefined identifier
..\DS18B20_S\DS18B20.C(12): error C202: 'DQ': undefined identifier
..\DS18B20_S\DS18B20.C(14): error C202: 'DQ': undefined identifier
..\DS18B20_S\DS18B20.C(16): error C202: 'DQ': undefined identifier
..\DS18B20_S\DS18B20.C(25): error C202: 'DQ': undefined identifier
..\DS18B20_S\DS18B20.C(27): error C202: 'DQ': undefined identifier
..\DS18B20_S\DS18B20.C(28): error C202: 'DQ': undefined identifier
..\DS18B20_S\DS18B20.C(40): error C202: 'DQ': undefined identifier
..\DS18B20_S\DS18B20.C(41): error C202: 'DQ': undefined identifier
..\DS18B20_S\DS18B20.C(43): error C202: 'DQ': undefined identifier
..\DS18B20_S\测温.C(8): error C202: 'P2': undefined identifier
..\DS18B20_S\测温.C(9): error C202: 'P0': undefined identifier
..\DS18B20_S\测温.C(11): error C202: 'P2': undefined identifier
..\DS18B20_S\测温.C(12): error C202: 'P0': undefined identifier
..\DS18B20_S\测温.C(14): error C202: 'P2': undefined identifier
..\DS18B20_S\测温.C(15): error C202: 'P0': undefined identifier
Target not created
======================================================
问题出在 <REGX51.H>这个头文件上,可能你keil编译器设置的不对
人要保持斗志,并有疯狂的追求,生活才会精彩! QQ:24387110 手机:13871563876

我以前都是用的<reg51.h>

没用过<REGX51.H>

keil编译器设置要怎么弄?

还有UV2应该怎么设置?\

不好意识新手啥都不知道

那就好办了,你把<regx51>改成<reg51.h>就行了

人要保持斗志,并有疯狂的追求,生活才会精彩! QQ:24387110 手机:13871563876

还是不行

Build target 'Target 1'
compiling Delay.C...
compiling 测温.c...
compiling DS18B20.C...
linking...
BL51 BANKED LINKER/LOCATER V5.03 - SN: Eval Version
COPYRIGHT KEIL ELEKTRONIK GmbH 1987 - 2002
"Delay.obj",
"测温.obj",
"DS18B20.obj"
TO "DS18B20"
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
SYMBOL: _DELAY1MS
MODULE: 测温.obj (测温)
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
SYMBOL: _DELAY_US
MODULE: 测温.obj (测温)
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
SYMBOL: DECILE
MODULE: DS18B20.obj (DS18B20)
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
SYMBOL: TMP
MODULE: DS18B20.obj (DS18B20)
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
SYMBOL: TENS
MODULE: DS18B20.obj (DS18B20)
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
SYMBOL: TMPRT
MODULE: DS18B20.obj (DS18B20)
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
SYMBOL: UNITS
MODULE: DS18B20.obj (DS18B20)
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
SYMBOL: FLAG_INIT
MODULE: DS18B20.obj (DS18B20)
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
SYMBOL: READTEMPERATURE
MODULE: DS18B20.obj (DS18B20)
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
SYMBOL: _WRITEONECHAR
MODULE: DS18B20.obj (DS18B20)
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
SYMBOL: READONECHAR
MODULE: DS18B20.obj (DS18B20)
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
SYMBOL: DS18B20_INIT
MODULE: DS18B20.obj (DS18B20)
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
SYMBOL: _DELAY1MS
MODULE: DS18B20.obj (DS18B20)
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
SYMBOL: _DELAY_US
MODULE: DS18B20.obj (DS18B20)
*** FATAL ERROR L210: I/O ERROR ON INPUT FILE:
EXCEPTION 0021H: PATH OR FILE NOT FOUND
FILE: F:\KC51\C51\LIB\C51FPS.LIB
Target not created

你有空时能不能帮我看一下

我发的那个程序

我按你那个写的

程序能运行

仿真的时有问题

非常感谢

程序能运行

仿真的时有问题

======================

仿真有什么问题?

人要保持斗志,并有疯狂的追求,生活才会精彩! QQ:24387110 手机:13871563876
你该把uv2 换成新的版本了
人要保持斗志,并有疯狂的追求,生活才会精彩! QQ:24387110 手机:13871563876
顶啊,谢谢楼主!
返回列表