资源简介
我们于本周进行了硬件类课程设计,我们的选题是DS18B20温度传感器设计。通过基于MCS-51系列单片机AT89C51和DS18B20温度传感器检测温度,熟悉芯片的使用,温度传感器的功能。数码显示管的使用,C语言的设计,并把我们这一年所学的数字和模拟电子技术、检测技术、单片机应用等知识,通过理论联系实际,从题目分析、电路设计调试、程序编制调试到传感器的选定等这一完整的实验过程,培养了学生正确的设计思想,使学生充分发挥主观能动性,去独立解决实际问题,以达到提升学生的综合能力、动手能力、文献资料查阅能力的作用,为毕业设计和以后工作打下一个良好的基础。
代码片段和文件信息
/*******************************************
** 温度传感器设计温控系统 **
** STC89C52RC+DS18B20+LCD12864 **
** 作者:九江学院 周远明 **
** 完成日期:2015年04月01日 **
********************************************/
#include
#define uchar unsigned char
#define uint unsigned int
sbit sda_24c02=P2^0;//串行数据输入/输出端
sbit scl_24c02=P2^1;//串行时钟输入端
sbit DQ=P2^2; //温度传感器 I/O 口
sbit U1s=P2^7;//段位锁存
sbit U2s=P2^6;//位选锁存
sbit data_595si=P1^0;//595数据输入口
sbit clk_595srck=P1^4;//595数据写进移位寄存器时钟输入口
sbit e_595rck=P2^3;//595移位寄存器,数据送输出的时钟
sbit PSB_12864=P1^3;//串/并方式控制
sbit RST_12864=P1^5;//复位
sbit led_d=P0^2;//led灯引脚定义
sbit led_z=P0^1;//led灯引脚定义
sbit led_g=P0^0;//led灯引脚定义
sbit CS_12864=P2^5;
sbit SID_12864=P2^6;
sbit SCLK_12864=P2^4;
sbit S1=P3^7;//定义按键
sbit S2=P3^6;//定义按键
sbit S3=P3^5;//定义按键
sbit S4=P3^4;//定义按键
#define keyL_A S1//按键-左加
#define keyL_S S2//按键-左减
#define keyR_A S3//按键-右加
#define keyR_S S4//按键-右减
long int temperature=0;
int temp_Ltemp_H; //初始温度值*10后的值
uchar code dis1[16]={“ 温控系统 “};
uchar code dis2[16]={“The Contr Range:“};
int temp;//定义整型温度数据变量
float f_temp;//定义浮点型温度数据变量
/*----------------延时函数部分-----------------------*/
void delayms(uint xms)//延时单位ms
{
uint i;
for(;xms>0;xms--)
{
for(i=0;i<=110;i++)
{
;
}
}
}
void delayus(uint xus)//单位微妙us
{
while(xus)
{
xus--;
}
}
void delay_ds18b20(uint time)
{
uint ij;
for(i=0;i for(j=0;j<1;j++);
}
/*----------------初始化板子部分-----------------------*/
void write_data_74hc595(uchar da)//写字节给74hc595芯片
{
uint i;
e_595rck=0;//先置低电平为得到上升沿做准备
for(i=1;i<=8;i++)
{
clk_595srck=0;//先置于低电平为得到上升沿做准备
data_595si=da&0x80;//送一位最高位
da<<=1;//左移动一位去掉已送的原先数据的最高的那一位,右边自动添零
clk_595srck=1;//置高电平,使得到一上升沿把数据中的最高的一位送入缓存寄存器中
}
e_595rck=1;//置为高电平得到上升沿把缓存寄存器中的数据送到数据口(即把8位数据送出)
data_595si=0;//把数据输入口置为零,和单片机硬件接口有关
}
void initboard(void)
{
U1s=1;
U2s=1;
P0=0x00;//关闭所有数码管,避免驱动电压不够
U1s=0;
U2s=0;
write_data_74hc595(0x40);//开通发光二极管的使能端
P1=0xff;//关闭所有发光二极管,避免驱动电压不够
write_data_74hc595(0x00);//关闭发光二极管的使能端
}
/*----------------DS18B20温度传感器处理部分-----------------------*/
uchar reset_ds18b20()
{
uchar presence;
DQ=0;
delay_ds18b20(29); //延时480 - 960 us
DQ=1;
delay_ds18b20(3); //延时 15 - 60 us
presence=DQ;
delay_ds18b20(25); //延时 60 - 240 us
return(presence);
}
uchar read_bit_ds18b20()
{
uchar i;
DQ=1;
delay_ds18b20(1);
DQ=0;
DQ=1;
for(i=0;i<3;i++);
return(DQ);
}
void write_bit_ds18b20(uchar dat)
{
DQ=0; //置0 无需延时
if(dat==1)
DQ=1;
delay_ds18b20(1); //延时 60 - 120 us
DQ=1;
delay_ds18b20(1); //延时 1 - ∞ us
}
void write_byte_ds18b20(uchar dat)
{
uchar ij;
for(i=0;i<8;i++)
{
j=((dat>>i)&0x01);
write_bit_ds18b20(j);
}
}
uchar read_byte_ds18b20()
{
uchar dat=0;
uchar i;
for(i=0;i<8;i++)
{
if(read_bit_ds18b20())
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 0 2015-04-05 10:32 DS18B20娓╂帶绯荤粺锛堟恫鏅?姝h礋娓╁害+鏁版嵁淇濆瓨锛?
文件 27404 2015-04-04 20:55 DS18B20娓╂帶绯荤粺锛堟恫鏅?姝h礋娓╁害+鏁版嵁淇濆瓨锛?DS18B20娓╂帶绯荤粺锛堟恫鏅朵覆琛岋級
文件 11555 2015-04-04 20:55 DS18B20娓╂帶绯荤粺锛堟恫鏅?姝h礋娓╁害+鏁版嵁淇濆瓨锛?DS18B20娓╂帶绯荤粺锛堟恫鏅朵覆琛岋級.c
文件 8063 2015-04-04 20:55 DS18B20娓╂帶绯荤粺锛堟恫鏅?姝h礋娓╁害+鏁版嵁淇濆瓨锛?DS18B20娓╂帶绯荤粺锛堟恫鏅朵覆琛岋級.hex
文件 102 2015-04-04 20:55 DS18B20娓╂帶绯荤粺锛堟恫鏅?姝h礋娓╁害+鏁版嵁淇濆瓨锛?DS18B20娓╂帶绯荤粺锛堟恫鏅朵覆琛岋級.lnp
文件 25121 2015-04-04 20:55 DS18B20娓╂帶绯荤粺锛堟恫鏅?姝h礋娓╁害+鏁版嵁淇濆瓨锛?DS18B20娓╂帶绯荤粺锛堟恫鏅朵覆琛岋級.LST
文件 40052 2015-04-04 20:55 DS18B20娓╂帶绯荤粺锛堟恫鏅?姝h礋娓╁害+鏁版嵁淇濆瓨锛?DS18B20娓╂帶绯荤粺锛堟恫鏅朵覆琛岋級.M51
文件 31806 2015-04-04 20:55 DS18B20娓╂帶绯荤粺锛堟恫鏅?姝h礋娓╁害+鏁版嵁淇濆瓨锛?DS18B20娓╂帶绯荤粺锛堟恫鏅朵覆琛岋級.OBJ
文件 5863 2015-04-04 21:00 DS18B20娓╂帶绯荤粺锛堟恫鏅?姝h礋娓╁害+鏁版嵁淇濆瓨锛?DS18B20娓╂帶绯荤粺锛堟恫鏅朵覆琛岋級.plg
文件 55732 2015-04-04 21:00 DS18B20娓╂帶绯荤粺锛堟恫鏅?姝h礋娓╁害+鏁版嵁淇濆瓨锛?DS18B20娓╂帶绯荤粺锛堟恫鏅朵覆琛岋級.uvopt
文件 13492 2015-04-01 00:45 DS18B20娓╂帶绯荤粺锛堟恫鏅?姝h礋娓╁害+鏁版嵁淇濆瓨锛?DS18B20娓╂帶绯荤粺锛堟恫鏅朵覆琛岋級.uvproj
文件 55732 2015-04-04 19:53 DS18B20娓╂帶绯荤粺锛堟恫鏅?姝h礋娓╁害+鏁版嵁淇濆瓨锛?DS18B20娓╂帶绯荤粺锛堟恫鏅朵覆琛岋級_uvopt.bak
文件 0 2015-03-31 20:49 DS18B20娓╂帶绯荤粺锛堟恫鏅?姝h礋娓╁害+鏁版嵁淇濆瓨锛?DS18B20娓╂帶绯荤粺锛堟恫鏅朵覆琛岋級_uvproj.bak
文件 6376 2009-05-07 14:37 DS18B20娓╂帶绯荤粺锛堟恫鏅?姝h礋娓╁害+鏁版嵁淇濆瓨锛?STARTUP.A51
文件 14048 2015-04-04 20:55 DS18B20娓╂帶绯荤粺锛堟恫鏅?姝h礋娓╁害+鏁版嵁淇濆瓨锛?STARTUP.LST
文件 749 2015-04-04 20:55 DS18B20娓╂帶绯荤粺锛堟恫鏅?姝h礋娓╁害+鏁版嵁淇濆瓨锛?STARTUP.OBJ
评论
共有 条评论