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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1461|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)數(shù)字溫度傳感器程序 虛擬終端什么都沒有顯示 求幫助

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主

#include <REG52.H> /*special function register declarations*/
#include <stdio.h> /*prototype declarations for I/O functions*/
#include <intrins.h>
#include <Absacc.h>
#include <string.h>
#include <ctype.h>
#define byte unsigned char
#define uchar unsigned char
#define word unsigned int
#define uint unsigned int
#define ulong unsigned long
#define BYTE unsigned char
#define WORD unsigned int
#define TRUE 1
#define FALSE 0
void initUart(void); /*初始化串口*/
void time(unsigned int ucMs); //延時(shí)單位:ms
void delay_50us(void); //延時(shí)50us
void delay_10us(void);
void delay_100us(void); //延時(shí)100us
/********************************************
*DS1820驅(qū)動(dòng)程序
*版本:V1.0
*編程:飛揚(yáng)
********************************************/
//引腳定義
sbit DS1820_DQ=P3^4; //單總線引腳
//函數(shù)聲明
bit ds1820_reset();
void ds1820_write_data(unsigned char ds1820_wdat);
unsigned char ds1820_read_data();
unsigned int read_temp(); //讀溫度數(shù)據(jù)函數(shù)
/************* main函數(shù) **************/
void main(){
        int wT=-110;
        float f;
        initUart(); /*初始化串行口*/
        wT=read_temp(); //首次無效
        time(1000);
        do{
                wT=read_temp();f=(float)wT/2;
                printf("Temperature Measured Value of DS18S20=%g\n",f);
                                //輸出打印結(jié)果
                time(1000);
        }while(TRUE);
}
/**********************************************
*讀溫度數(shù)據(jù)函數(shù)
**********************************************/
unsigned int read_temp(){ //讀溫度數(shù)據(jù)函數(shù)
        
        unsigned char data temperature[2]; //存放溫度數(shù)據(jù)
        unsigned char i;
        unsigned int wTemp;
        ds1820_reset(); //復(fù)位
        ds1820_write_data(0xcc); //跳過ROM命令
        ds1820_write_data(0x44); //溫度轉(zhuǎn)換命令
        ds1820_reset(); //復(fù)位
        ds1820_write_data(0xcc); //跳過ROM命令
        ds1820_write_data(0xbe); //讀DS1820溫度暫存器命令
        for (i=0;i<2;i++){
                temperature[ i]=ds1820_read_data();
        }
        ds1820_reset(); //復(fù)位,結(jié)束讀數(shù)據(jù)
        wTemp=(wTemp);
}
/***********************************
*DS1820復(fù)位及存在檢測(cè)(通過存在脈沖可以判斷DS1820是否損壞)
*函數(shù)脈沖:DS1820_RESET()
*說明:函數(shù)返回一個(gè)位標(biāo)量(0或1),flag=0存在,反之flag=1不存在
***********************************/
bit ds1820_reset(){
        unsigned char i;
        bit flag; //DS1820存在標(biāo)志位
        DS1820_DQ=0; //拉低總線
        for(i=240;i>0;i--); //延時(shí)480us,產(chǎn)生復(fù)位脈沖
        DS1820_DQ=1; //釋放總線
        for(i=40;i>0;i--); //延時(shí)80us對(duì)總線采樣
        flag=DS1820_DQ;
        for(200;i>0;i--); //延時(shí)400us等待總線恢復(fù)
        return(flag);
}
/************************************
*寫數(shù)據(jù)到DS1820
*函數(shù)名稱:ds1820_write_data()*
************************************/
void ds1820_write_data(unsigned char ds1820_wdat){
        unsigned char i,j;
        for(i=8;i>0;i--){
                DS1820_DQ=0; //拉低總線,產(chǎn)生寫信號(hào)
                for(j=2;j>0;j--); //延時(shí)4us
    DS1820_DQ = ds1820_wdat&0x01; //發(fā)送1位
    for(j=30;j>0;j--); //延時(shí)60us,寫時(shí)序至少要60us
    DS1820_DQ = 1; //釋放總線,等待總線恢復(fù)
    ds1820_wdat>>=1; //準(zhǔn)備下一-位數(shù)據(jù)的傳送
        }
}
/*************************************
*從DS1820中讀出數(shù)據(jù)
*函數(shù)名稱:ds1820_read_data ()
**************************************/
unsigned char ds1820_read_data() {
        unsigned char i, j,ds1820_rdat;
        for (i=8;i>0;i--) {
                ds1820_rdat>>=1 ;
                DS1820_DQ = 0; //拉低總線,產(chǎn)生讀信號(hào)
    //for (j=2;j>0;j--); //延時(shí) 4us
    delay_10us(); //延時(shí)10us
    DS1820_DQ = 1; //釋放總線,準(zhǔn)備讀數(shù)據(jù)
    for(j=4;j>0;j--); //延時(shí)8us讀數(shù)據(jù)
    if(DS1820_DQ == 1)
    ds1820_rdat |= 0x80;
    for(j=30; j>0; j--); //延時(shí)60us
    DS1820_DQ = 1;//拉高總線,準(zhǔn)備下一位數(shù)據(jù)的讀取
        }
                return (ds1820_rdat) ; //返回讀到的數(shù)據(jù)
}
/***********************************************
* 函數(shù)說明:延時(shí)5us,品振改變時(shí)只需要改變這一個(gè)函數(shù)
* 1.對(duì)于11.0592MHz 晶振而言,需要2個(gè)_nop_();
* 2. 對(duì)于22.1184MHz晶振而言,需要4個(gè)_nop_();
* 入口參數(shù):無
* 返回:無
* 創(chuàng)建日期: 20010623
* 作者:張齊
*********************************************************/
void delay_5us(void)//延時(shí)5us,晶振改變時(shí)只用改變這一個(gè)函數(shù)!
{
        _nop_();
        _nop_();
        //_nop_();
        //_nop_();
}
/************ delay_50us ***************/
void delay_50us(void)//延時(shí)50us
{
        unsigned char i;
        for(i=0;i<4;i++)
        {
                delay_5us();
        }
}
/******** 延時(shí)100us ******************/
void delay_100us(void)//延時(shí)100us
{
        delay_50us();
        delay_50us();
}

/*********** 延時(shí)單位:ms *******************/
void time(unsigned int ucMs)//延時(shí)單位:ms
{
        unsigned char j;        
        while(ucMs>0){
                for(j=0;j<10;j++) delay_100us();
                ucMs--;
        }
}
/*********初始化串行口波特率********/
void initUart (void)  /* 初始化串行口波特率,使用定時(shí)器2*/
{
/*Setup the serial port for 9600 baud at 11. 0592MHz*/
   SCON = 0x50;  //串行口工作在工作方式1
   RCAP2H= (65536- (3456/96))>>8;
   RCAP2L= (65536- (3456/96))%8256;
   T2CON=0x34;   /*置位TI*/
   TI=1;
}

求助:虛擬終端什么都沒有顯示

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

使用道具 舉報(bào)

沙發(fā)
ID:633070 發(fā)表于 2020-5-16 17:39 | 只看該作者
我的問題已經(jīng)解決了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产区精品 | 成人在线精品视频 | www.久草.com| 久久久久国产一区二区三区 | 精品久久久久久久 | 中文字幕免费在线观看 | 91免费看片| 中文字幕一区二区三区乱码在线 | 日韩视频高清 | 精品亚洲国产成av人片传媒 | 激情国产在线 | 国产精品久久国产愉拍 | 91在线观看免费视频 | av一级久久 | 国产高清视频在线观看 | 波多野结衣一区二区 | 日韩精品在线视频 | 黄网免费看| 国产人成精品一区二区三 | 中文字幕91 | 欧美黄色网| 深夜爽视频 | 日本高清视频在线播放 | 爱爱免费视频 | 少妇精品久久久久久久久久 | 在线播放一区二区三区 | 久久久久免费精品国产 | 成人1区2区| 一二区成人影院电影网 | 在线第一页 | 精品中文视频 | 欧美一区二区另类 | 给我免费的视频在线观看 | 九色国产 | 国产高清久久久 | 国产三区在线观看视频 | 蜜桃av一区二区三区 | 性高湖久久久久久久久3小时 | 国产91丝袜在线18 | 丁香综合 | 精品久久久久久18免费网站 |