课程设计数字温度计方案设计
❶ 课程设计 单片机做数字温度计
给你个C51编写的DS18B20程序,自己去看,很简单的,上下限报警,就加个判断就OK了,还是自己去做一部分,如果有人全帮你做了,他就没安好心,恰恰是在害你,害中国的青年!
代码如下:
/*DS18B20数字温度传感器*/
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
extern void _nop_(void);
#define nop1 _nop_()
#define nop nop1;nop1;
sbit DQ=P3^2;
uchar code table[]={
0x09,0x7d,0x07,0x15,0x71,
0x91,0x81,0x3d,0x01,0x11,
0x21,0xc1,0x8b,0x45,0x83,0xa3,0xff};
uchar dis[]={0,0,0,0};
void delay(uchar z)
{
uchar x,y,j;
for(x=0;x<z;x++)
{for(y=200;y>0;y--)
{for(j=0;j<10;j++);
}
}
}
void delay_us(del)
{
while(del>0)
{ del--;
}
}
void init_DS18B20()
{
DQ = 1; //DQ复位
delay_us(3); //稍做延时
DQ=0; //复位脉冲
delay_us(40); //延时约480us
DQ=1;
//延时约25us
while(DQ); //检测存在脉冲
delay_us(13);
}
void write_onechar(uchar t)
{
uchar i;
DQ=1;
for(i=0;i<8;i++)
{
DQ=0;
//delay_us(2);
nop;//基本不延时都可以的
DQ=(bit)(t&0x01);
delay_us(2);//延时15us~60us,让总线去采样输入位,低电平为0
DQ=1;//写下一位
nop;
t=t>>1;
}
}
uchar read_onechar()
{
uchar i,value;
EA =0;
value=0;
DQ=1;
for(i=0;i<8;i++)
{
DQ=0;
nop;
value=value>>1;
DQ = 1 ;//产生读时间隔
nop;
if(DQ)
{ value=value|0x80;
}
delay_us(1);
}
EA =1;
return value;
}
uint temperature_con()
{
uchar a;
int b;
float tt;
a=0;
b=0;
init_DS18B20();
write_onechar(0xcc);
write_onechar(0x44);
// WriteOneChar(0xcc);
// WriteOneChar(0x44);
delay(30);//204MS延时
init_DS18B20();
write_onechar(0xcc);
write_onechar(0xbe);
//WriteOneChar(0xcc);
//WriteOneChar(0xbe);
a=read_onechar();
b=read_onechar();
b=b<<8; //用来移动的B要是16位的,否则移位就没有意义了
b=b|a;
tt=b*0.0625;//为了计算精度t要为浮点型
tt= tt*10+0.5; //放大10倍输出并四舍五入
return(tt);
}
void display(int aa)
{
uchar i;
SCON=0;
dis[0]=16;
dis[1]=aa/100;
dis[2]=aa%100/10;
dis[3]=aa%100%10;
for(i=0;i<4;i++)
{
if(i==2)
SBUF=(table[dis[i]]-1);//小数点是查表值减一
else
SBUF=table[dis[i]];
while(TI==0);
TI=0;
}
}
main(
)
{
uint value=0;
value=temperature_con();
display(value);
}
❷ 课程设计:基于单片机的数字温度计的设计
说实话,自己做复吧,制不难的,理工科的嘛,不多动手出来不好混的。
题目也有点问题,既然是数字温度计,为什么还要用AD?
采用8031芯片用与中断程序
通过8155芯片用于8位LED动态显示电路
这两个很少用吧,我记得就在微机原理的试验箱上见过...
你可以搜索DS18B20,大家在学校最常用的数字温度计,51的程序也一大堆,搜索下就有了。
❸ 求单片机数字温度计的课程设计
如果不限制方案,那么18B20的比较合适,网上现成的方案很多大部分100元的开发板也都专带;你就属搜索 单片机+18B20 就能搜出一大堆
小于0.1是不可能的,现在国内作为标准的 “国家一等标准温度计” (500元一只,一套大概5000元) 精度也只不过0.1;
18B20温度探头,在20-40度的区间内,测量误差在0.2左右
❹ 急求!!!!数字温度计课程设计
说实话,要完全一样的现成答案在这里很难的,除非运气好碰到一个做过类似实例的人就给你了。
这个问题用单片机可以做,用可编程器件和VHDL编程也可以做。这我都会,但是要我花那多时间做好了然后用protel99se画好电路图给你,这根本不可能,谁搞那么累啊。
最好的办法还是自己到网上去搜,下载来改改试试,这样最快。 网上像数字温度计,数字频率计,数字秒表,数字定时器都很多的。
❺ 单片机原理及应用课程设计课题为:数字温度计的设计方案(DS18B20)
cgh