久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3868|回復: 1
打印 上一主題 下一主題
收起左側

用單片機最小系統做18B20溫度測量試驗

[復制鏈接]
跳轉到指定樓層
樓主
ID:73477 發表于 2015-2-10 20:37 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
       由電子樂屋介紹的用單片機最小系統做18B20溫度測量試驗的這個單片機實驗項目,所用到的試驗器材,單片機最小系統系統板、發光二極管制作的四位7段數碼管,DS18B20溫度傳感器。試驗過程及碰到的問題大家可一同進行討論。試驗前,將數碼管的A-H各段引線與單片機的P0.0-0.7口對應用導線連接,將數碼管的位驅動的℃位、小數位、個位十位與與單片機的P2.0、P2.1、P2.2、P2.3口連接。溫度傳感器DS18B20的1腳與GND連接、2腳與單片機的P1.0口連接、3腳與VCC連接。連接好的硬件下圖。將編譯好的HEX文件寫入單片機中,就可工作。單片機使用的是STC89C52RC單片機,這種單片機可用板上的232口下載程序,只需要一條串口線,不需要額外的設備。源程序附后。這個程序測溫范圍為0-99.9℃。下面是試驗板工作的照片。





        

用單片機最小系統做18B20溫度測量試驗完整源程序

#include<reg52.h>

#include <intrins.h>
#define  uchar  unsigned  char
#define  uint   unsigned  int
sbit  DATA = P1^1; //DS18B20接入口
uchar code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//共陽字型碼


int temp;  //溫度值
int ss;  //中間的一個變量
int j;
uchar data buf[4];//字型顯示中間變量


sbit  LED1=P2^3;
sbit  LED2=P2^2;
sbit  LED3=P2^1;
sbit  LED4=P2^0;


int n;


void delay(uint);
//函數的定義區
/*延時子函數*/
void delay(uint num)
{
while(num--) ;
}


//DS18b20溫度傳感器所需函數,分為初始化,讀寫字節,讀取溫度4個函數
Init_DS18B20(void)     //傳感器初始化
{
  uchar x=0;
  DATA = 1;    //DQ復位
  delay(10);  //稍做延時
  DATA = 0;    //單片機將DQ拉低
  delay(80); //精確延時 大于 480us    //450
  DATA = 1;    //拉高總線
  delay(20);
  x=DATA;      //稍做延時后 如果x=0則初始化成功 x=1則初始化失敗
  delay(30);
}
ReadOneChar(void)  //讀一個字節
{
uchar i=0;
uchar dat = 0;
for (i=8;i>0;i--)
  {
    DATA = 0; // 給脈沖信號
    dat>>=1;
    DATA = 1; // 給脈沖信號
    if(DATA)
     dat|=0x80;
    delay(8);
  }
  return(dat);
}
WriteOneChar(unsigned char dat) //寫一個字節
{
  uchar i=0;
  for (i=8; i>0; i--)
  {
    DATA = 0;
    DATA = dat&0x01;
   delay(10);
   DATA = 1;
   dat>>=1;
  }
delay(8);
}
int ReadTemperature(void) //讀取溫度
{
uchar a=0;
uchar b=0;
int t=0;
float tt=0;
Init_DS18B20();
WriteOneChar(0xCC); // 跳過讀序號列號的操作
WriteOneChar(0x44); // 啟動溫度轉換
Init_DS18B20();
WriteOneChar(0xCC); //跳過讀序號列號的操作
WriteOneChar(0xBE); //讀取溫度寄存器等(共可讀9個寄存器) 前兩個就是溫度
a=ReadOneChar();//低位
b=ReadOneChar();//高位
t=b;
t<<=8;
t=t|a;
tt=t*0.0625;
t= tt*10+0.5;
return(t);
}


//顯示正值子函數
void  display()
{  
buf[1]=temp/1000;//顯示百位
buf[2]=temp/100%10;//顯示十位
buf[3]=temp%100/10;//顯示個位
buf[0]=temp%10; //小數
for(j=0;j<3;j++)
{
     P0=table[buf[2]];
  LED1=0;
  delay(70);
  LED1=1;
  delay(20);
  P0=table[buf[3]];
  LED2=0;
  delay(70);
  LED2=1;
  delay(20);
  P0=0x7F;
  LED2=0;
  delay(70);
  LED2=1;
  delay(20);
     P0=table[buf[0]];
  LED3=0;
  delay(70);
  LED3=1;
  delay(20);
  P0=0xC6;
  LED4=0;
  delay(70);
  LED4=1;
  delay(20);
}
}




void  main()
{
    TCON=0x01;
    TMOD=0X01;
TH0=0XD8;
TL0=0XF0;
EA=1;
ET0=1;
TR0=1;
EX0=1;
while(1)
{
  ss=ReadTemperature();
  display();
}  
}
void time0(void) interrupt 1 using 1  //每隔10ms執行一次此子程序
{
TH0=0X56;
TL0=0XDC;
temp=ss;
}      






分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:79034 發表于 2015-9-21 13:19 | 只看該作者
頂一個。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久久国产精品一区二区 | 欧美综合一区 | 精品一区二区久久久久久久网站 | 91av国产在线视频 | 欧美一区永久视频免费观看 | 在线免费观看黄色网址 | 日韩中文字幕免费 | 婷婷激情综合 | caoporon| 国产yw851.c免费观看网站 | 日本精品一区二区三区四区 | 国产精品欧美精品日韩精品 | 久久精品国产久精国产 | 国产在线不卡 | 久久久精品综合 | 日韩欧美一区二区三区免费看 | 日本特黄a级高清免费大片 特黄色一级毛片 | 天天干视频 | 一区二区三区中文字幕 | 99热在线观看精品 | 91精品国产一区二区 | 农村黄性色生活片 | 国产精品美女久久久av超清 | 人成精品 | 国产精品久久久久久久久久不蜜臀 | 成人中文网| 成人精品视频 | 黄色一级大片在线免费看产 | 天天操欧美 | 国产一区二区三区在线看 | 亚洲国产成人精品女人久久久 | 久久久精品国产 | 日本高清中文字幕 | 波多野结衣亚洲 | 国产97色| 夜夜草| 五月婷婷 六月丁香 | 精品久久久久久久 | 天天干精品 | 超碰免费在线 | 瑞克和莫蒂第五季在线观看 |