• 大小: 60KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-12-09
  • 语言: C/C++
  • 标签: 温控系统  

资源简介

我们于本周进行了硬件类课程设计,我们的选题是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

评论

共有 条评论