999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

溫度傳感器DS18B20在Proteus中的仿真※

2010-06-25 02:45:04陳芳江和
關(guān)鍵詞:單片機(jī)

陳芳,江和

(福州大學(xué),福州 350108)

陳芳(研究生)、江和(副教授),主要研究方向?yàn)橹悄茈娖骷捌湓诰€監(jiān)測(cè)。

引 言

目前,微機(jī)與外設(shè)之間進(jìn)行數(shù)據(jù)的串行總線主要有I2C總線、SPI總線和SCI總線。其中,I2C總線以同步串行2線方式進(jìn)行通信(1條時(shí)鐘線和1條數(shù)據(jù)線),SPI總線以同步串行3線方式進(jìn)行通信(1條時(shí)鐘線、1條數(shù)據(jù)輸入線和1條數(shù)據(jù)輸出線),而SCI總線則是以異步方式進(jìn)行通信的(1條數(shù)據(jù)輸入線和1條數(shù)據(jù)輸出線)。這些總線至少需要2條信號(hào)線及地線。Dallas公司推出的單總線技術(shù)用單根信號(hào)線及地線,既傳輸時(shí)鐘又傳輸數(shù)據(jù),而且數(shù)據(jù)的傳輸時(shí)雙向的,具有線路簡(jiǎn)單、硬件開銷少、成本低、便于總線擴(kuò)展和維護(hù)等優(yōu)點(diǎn)[1]。

DS18B20是典型的單總線數(shù)字式溫度傳感器,工作電壓為3~5 V,測(cè)量溫度范圍為-55~+125℃,可根據(jù)實(shí)際需要通過(guò)軟件設(shè)置選擇9~12位分辨率;用戶設(shè)置的報(bào)警溫度存儲(chǔ)在芯片內(nèi)部EEPROM中,可掉電保持;每個(gè)芯片都有全球唯一的編碼,用戶可以通過(guò)其特有的序列號(hào)查詢其溫度,因此理論上一條總線上可連接無(wú)數(shù)個(gè)該測(cè)溫元件。單總線通常要求外接一個(gè)約4.7 kΩ的上拉電阻,保證總線閑置時(shí)其狀態(tài)為高電平。

1 Proteus中DS18B20仿真圖的設(shè)計(jì)

1.1 Proteus簡(jiǎn)介

Pro teus是英國(guó) Labcenter Electronics公司研發(fā)的EDA工具軟件。它是能進(jìn)行模擬電路、數(shù)字電路、模/數(shù)混合電路、RS232動(dòng)態(tài)仿真、I2C調(diào)試器、SPI調(diào)試器、鍵盤和LCD、LED系統(tǒng)的設(shè)計(jì)與仿真的平臺(tái)。Proteus具備原理圖設(shè)計(jì)、電路分析與仿真、PCB設(shè)計(jì)功能,可以通過(guò)調(diào)入程序的編譯結(jié)果.hex或.cof文件來(lái)調(diào)試單片機(jī)程序,還可直接嵌入到Microchip公司的單片機(jī)調(diào)試軟件MPLAB IDE中,進(jìn)行程序的調(diào)試和仿真。

Proteus的特色是能實(shí)現(xiàn)單片機(jī)與外設(shè)的混合電路系統(tǒng)、軟件系統(tǒng)的設(shè)計(jì)和仿真。在仿真過(guò)程中,用戶可以用鼠標(biāo)單擊開關(guān)、鍵盤、電位計(jì)、可調(diào)電阻等外設(shè)設(shè)備,使單片機(jī)系統(tǒng)根據(jù)輸入信號(hào)做出相應(yīng)的響應(yīng),并將響應(yīng)處理結(jié)果根據(jù)所編制的軟件在LCD、LED等顯示器件上顯示,整個(gè)過(guò)程與硬件仿真器調(diào)試過(guò)程相似。因此,在缺乏硬件的情況下,這是款非常實(shí)用的仿真軟件,其仿真的原理圖經(jīng)驗(yàn)證后可直接應(yīng)用到現(xiàn)實(shí)中。Proteus還提供虛擬示波器、邏輯分析儀、信號(hào)發(fā)生器和I2C、SPI調(diào)試器等多種虛擬終端,方便用戶仿真調(diào)試。

1.2 DS18B20仿真的實(shí)現(xiàn)

目前,國(guó)內(nèi)采用單片機(jī)作控制系統(tǒng)中的微處理器時(shí)多選擇PIC、51系列或Freescale系列單片機(jī)。PIC單片機(jī)具有外圍電路簡(jiǎn)單、功耗低、外圍資源豐富等優(yōu)點(diǎn)。本系統(tǒng)選用PIC系列單片機(jī)PIC16F877A作為控制芯片[2]。

Proteus仿真圖設(shè)計(jì)的第一步就是拾取仿真所需要的元器件,單擊圖1所示界面預(yù)覽窗口下面的P按鈕,彈出Pick Devices(元器件拾取)對(duì)話框。然后,在Keywords文本框內(nèi)分別輸入 DS18B20、LM041L(4行×16字符型LCD)、PIC16F877A、RES(電阻)。在檢索出來(lái)的結(jié)果中,選中所要的元器件并雙擊,該元器件就會(huì)出現(xiàn)在左側(cè)預(yù)覽窗口中。

圖1 元件拾取圖

元器件拾取完畢后,關(guān)閉Pick Devices窗口回到主設(shè)計(jì)頁(yè)面。在左側(cè)預(yù)覽窗口中,選中元器件放置到合適的位置。然后,在最左側(cè)選中圖標(biāo)(terminals mode),分別選中POWER(電源)和GROUND(地),放置在合適的位置,并進(jìn)行連接。欲改變?cè)骷膮?shù),雙擊該元器件,然后在出現(xiàn)的屬性框中直接修改即可。本文所設(shè)計(jì)的由12個(gè)DS18B20組成的測(cè)溫網(wǎng)絡(luò)如圖2所示。

圖2 仿真設(shè)計(jì)原理圖

2 單總線器件DS18B20的使用

2.1 DS18B20的工作原理

在該測(cè)溫系統(tǒng)中,單片機(jī)PIC16F877A作為主機(jī),DS18B20溫度傳感器作為從機(jī)。由于DS18B20采用的是主從結(jié)構(gòu),只有主機(jī)呼叫從機(jī)時(shí),從機(jī)才能應(yīng)答。因此,訪問器件時(shí)必須嚴(yán)格遵循單總線命令序列,以及初始化、ROM、命令功能的命令。如果序列混亂,則器件不響應(yīng)主機(jī)。從機(jī)主機(jī)和從機(jī)之間的通信通過(guò)3個(gè)步驟完成:初始化器件;識(shí)別器件;交換數(shù)據(jù)。

單總線器件采用嚴(yán)格的通信協(xié)議來(lái)保證數(shù)據(jù)的完整性。通信協(xié)議包括:復(fù)位脈沖、應(yīng)答脈沖、寫0、寫1、讀0和讀1。所有這些信號(hào)都是以先低位、后高位的方式發(fā)送的。

(1)復(fù)位脈沖和應(yīng)答脈沖

復(fù)位脈沖和應(yīng)答脈沖即為初始化過(guò)程,所有的通信都是以初始化開始的。首先主機(jī)要拉低總線至少480μs,接著釋放總線并持續(xù)15~60μs,然后進(jìn)入接收狀態(tài),檢測(cè)總線DQ的電平。若DQ為低電平,則表示從機(jī)已就緒,可以發(fā)送ROM命令。由于C語(yǔ)言簡(jiǎn)潔緊湊、靈活方便且可移植性好,因此本文程序采用C語(yǔ)言來(lái)完成。相應(yīng)的初始化程序如下:

其中,變量dq用來(lái)判斷DS18B20是否有返回的存在脈沖,為0即有返回脈沖,表明復(fù)位成功,可跳出循環(huán);DQ表示總線的電平,當(dāng)總線為高電平時(shí)DQ為1,否則為0;DQ_IO用來(lái)表示DQ所連的單片機(jī)I/O口的狀態(tài),若該I/O口對(duì)單片機(jī)是作為輸入使用則DQ_IO為1,作為輸出使用則DQ_IO為0。

(2)寫操作時(shí)序

無(wú)論是命令還是數(shù)據(jù),所有的寫操作都是以字節(jié)為單位的,全部以先低位、后高位的方式傳輸?shù)摹N粚懭脒^(guò)程是這樣的:主機(jī)將總線拉低15μs,然后根據(jù)要發(fā)的那位數(shù)據(jù)的電平來(lái)決定接下來(lái)總線的電平。若數(shù)據(jù)待發(fā)位為低電平,則主機(jī)須將DQ置為低電平并保持15~45μs;若數(shù)據(jù)待發(fā)位為高電平,則主機(jī)需將DQ置為高電平且保持15~45μs。發(fā)送1位數(shù)據(jù)的時(shí)間(從總線拉低開始到發(fā)送結(jié)束)必須控制在 60~120μs。位與位之間要有一個(gè)大于1μs的高電平時(shí)間間隙隔開。一個(gè)字節(jié)的數(shù)據(jù)寫入結(jié)束后需要將總線釋放,以確保之后操作的正確進(jìn)行[3]。

(3)讀操作時(shí)序

所有數(shù)據(jù)的讀取是以字節(jié)為單位,以先低位、后高位的方式進(jìn)行傳輸?shù)摹N蛔x取的過(guò)程如下:首先需要主機(jī)將總線拉低1~15μs,然后釋放總線,對(duì)總線的電平進(jìn)行判斷。若總線為低電平,說(shuō)明帶讀取數(shù)據(jù)位為0;若總線為高電平,則表明帶讀取數(shù)據(jù)位為1。讀取1位數(shù)據(jù)的時(shí)間(從總線拉低開始到將總線置高準(zhǔn)備下一位數(shù)據(jù))必須大于60μs。同樣,位與位之間須有一個(gè)大于1μs的高電平時(shí)間間隙隔開。一個(gè)字節(jié)的數(shù)據(jù)讀取結(jié)束后需要將總線釋放,以確保操作的正確進(jìn)行。由于DS18B20的溫度采用9~12位的分辨率,因此一個(gè)溫度數(shù)據(jù)需要讀取2字節(jié)的溫度數(shù)據(jù)。2字節(jié)的數(shù)據(jù)讀取結(jié)束后將總線釋放,以便接下來(lái)數(shù)據(jù)的正確傳輸[4]。

2.2 讀溫度主要使用的命令

讀溫度主要使用的命令如表1所列。

表1 主要命令及功能

3 測(cè)溫的實(shí)現(xiàn)及在Proteus中的仿真

3.1 測(cè)溫的實(shí)現(xiàn)

整個(gè)讀取溫度步驟具體如下:

(1)配置寄存器

若還要讀其他芯片的溫度,則從②~⑤開始循環(huán)。其中,reset()為調(diào)用初始化子程序;send_com()為機(jī)向從機(jī)發(fā)送1字節(jié)的子程序;send_num()為主機(jī)向從機(jī)發(fā)送64位器件序列號(hào)的子程序;delay()為延時(shí)子程序;check()為主機(jī)判斷所有從機(jī)的溫度是否全部讀取完畢的子程序。

3.2 Proteus仿真

在Proteus中使用多個(gè)DS 18B20時(shí),必須改變器件的屬性,使仿真中每個(gè)器件的序列號(hào)各不相同。具體作法是:右擊DS18B20,選中 Edit Properties選項(xiàng),在其中改變ROM Serial Number的值;還可改變Granularity的數(shù)值,即改變每次調(diào)整溫度的額度。在Proteus中,可以人為改變3個(gè)字節(jié)的器件序列號(hào)。要想得到全部8個(gè)字節(jié),一個(gè)簡(jiǎn)單的方法就是每一次總線上只連接一個(gè)器件,利用0x33讀器件序列號(hào)的命令在程序中得到完整的器件序列號(hào)。具體的程序如下所示:

其中,send_com()為主機(jī)向從機(jī)發(fā)送一個(gè)字節(jié)的子程序,read_dat()為主機(jī)讀取從機(jī)一個(gè)字節(jié)的子程序。例如,將器件序列號(hào)改為B8C530,在MPLAB IDE中的Watch窗口中可直接觀察到該器件的完整的器件序列號(hào),如圖3所示。

本系統(tǒng)中共使用12個(gè)DS18B20,序列號(hào)為B8C530~B8C53B。通過(guò)上述的方法可得到所有器件的序列號(hào),然后組成一個(gè)數(shù)組,在讀取溫度程序中就可直接使用。數(shù)組如下所示:

圖3 Watch窗口中的序列號(hào)

在MPLAB IDE中,使用Proteus VSM仿真模式。根據(jù)上述讀取溫度程序的過(guò)程,編寫讀取溫度的程序,經(jīng)編譯、運(yùn)行,即可得到仿真結(jié)果。

結(jié) 語(yǔ)

經(jīng)驗(yàn)證,在Proteus中的仿真結(jié)果和實(shí)際實(shí)驗(yàn)結(jié)果完全一致。這充分說(shuō)明該軟件仿真結(jié)果真實(shí)性很高,在缺乏硬件的情況下,這是款非常實(shí)用的仿真軟件。其仿真的原理圖和結(jié)果經(jīng)實(shí)驗(yàn)驗(yàn)證后可直接應(yīng)用到實(shí)際項(xiàng)目中。

單總線數(shù)字式溫度傳感器DS18B20具有體積小、動(dòng)態(tài)范圍寬、測(cè)量精度高等特點(diǎn),分辨率可根據(jù)實(shí)際的需求進(jìn)行相應(yīng)的設(shè)置。單總線器件連接簡(jiǎn)單,且具有很強(qiáng)的擴(kuò)展性,可以組建多點(diǎn)的溫度檢測(cè)網(wǎng)絡(luò),在電子產(chǎn)品各部件特別是半導(dǎo)體器件的溫度測(cè)量領(lǐng)域具有良好的應(yīng)用前景。

編者注:本文為期刊縮略版,全文見本刊網(wǎng)站www.mesnet.com.cn。

[1]單總線(1-Wire Bus)技術(shù)及其應(yīng)用[OL].[2010-03].www.symcukf.com.

[2]李正榮,劉啟中,陳學(xué)軍.PIC單片機(jī)原理及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2003.

[3]Maxim.DS18B20 datasheet[OL].[2010-03].www.maximic.com.

[4]1-wire單總線的基本原理[OL].[2010-03].www.symcukf.com.

猜你喜歡
單片機(jī)
基于單片機(jī)的SPWM控制逆變器的設(shè)計(jì)與實(shí)現(xiàn)
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機(jī)的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機(jī)的多功能智能插排
電子制作(2019年11期)2019-07-04 00:34:48
基于單片機(jī)的便捷式LCF測(cè)量?jī)x
電子制作(2019年9期)2019-05-30 09:42:02
小議PLC與單片機(jī)之間的串行通信及應(yīng)用
電子制作(2018年12期)2018-08-01 00:48:04
MSP430單片機(jī)在仿真中要注意的幾點(diǎn)問題
電子制作(2017年9期)2017-04-17 03:00:53
基于單片機(jī)的平衡控制系統(tǒng)設(shè)計(jì)
電子制作(2017年19期)2017-02-02 07:08:27
基于單片機(jī)的三維LED點(diǎn)陣設(shè)計(jì)
電子制作(2016年21期)2016-05-17 03:52:51
Microchip推出兩個(gè)全新PIC單片機(jī)系列
基于Proteus的單片機(jī)控制系統(tǒng)的仿真設(shè)計(jì)
主站蜘蛛池模板: 美女高潮全身流白浆福利区| 一级在线毛片| 日韩欧美91| 国产午夜在线观看视频| 狠狠v日韩v欧美v| 97人人模人人爽人人喊小说| 国产鲁鲁视频在线观看| 欧美日韩91| 亚洲高清在线播放| 国产一区在线观看无码| 欧美一级夜夜爽www| 亚洲热线99精品视频| 麻豆精品在线播放| 久久国产热| 亚洲精品图区| 亚洲第一在线播放| 国产手机在线观看| 无码国内精品人妻少妇蜜桃视频| 色网站免费在线观看| 国产精品久久自在自2021| 国产原创自拍不卡第一页| 波多野结衣中文字幕一区| 一本色道久久88综合日韩精品| 一级全免费视频播放| 麻豆精品在线| 久996视频精品免费观看| 国产高清在线精品一区二区三区 | 久久国产乱子| a级毛片免费播放| 亚洲成人一区在线| 大香网伊人久久综合网2020| 久久久久久午夜精品| 久久精品无码一区二区日韩免费| 91精品国产福利| 无码区日韩专区免费系列| 久久精品无码一区二区国产区| 露脸一二三区国语对白| 91国内在线观看| 欧美特级AAAAAA视频免费观看| 亚洲无码不卡网| 国产免费网址| 久久精品66| 亚洲AⅤ波多系列中文字幕| 黄色网在线免费观看| 国产小视频a在线观看| 四虎永久免费地址在线网站| 久久天天躁夜夜躁狠狠| 日韩精品无码一级毛片免费| 日韩在线视频网| 欧美国产三级| 强乱中文字幕在线播放不卡| 九色视频一区| 午夜国产精品视频黄| 国产欧美日韩精品综合在线| 国产欧美精品午夜在线播放| 欧美一级大片在线观看| 日韩精品毛片人妻AV不卡| 日韩亚洲综合在线| 国产亚洲欧美在线中文bt天堂 | 欧美一区二区人人喊爽| 无码日韩人妻精品久久蜜桃| 国产精品大白天新婚身材| A级毛片无码久久精品免费| 亚洲国产91人成在线| 91久久国产热精品免费| 热久久这里是精品6免费观看| 无码视频国产精品一区二区| 国产精品美人久久久久久AV| 久久中文电影| 亚洲中文字幕久久精品无码一区 | 自偷自拍三级全三级视频| 996免费视频国产在线播放| 天天干天天色综合网| 国产精品无码影视久久久久久久| 精品国产香蕉伊思人在线| 高潮毛片免费观看| 国产精品亚洲精品爽爽| 国产欧美在线| 免费无遮挡AV| 幺女国产一级毛片| 亚洲天堂视频在线观看免费| 呦女亚洲一区精品|