freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

多功能數(shù)字電壓表、萬年歷和溫度測試器(編輯修改稿)

2024-10-08 18:49 本頁面
 

【文章內(nèi)容簡介】 EEPROM 中,掉電后依然保存。 DS18B20 的性能是新一代產(chǎn)品中最好的!性能價格比也非常出色! DS1822 與 DS18B20 軟件兼容,是 DS18B20 的簡化版本。省略了存儲用戶定義報警溫度、分辨率參數(shù)的EEPROM,精度降低為 177。2176。C ,適用于對性能要求不高,成本控制嚴(yán)格的應(yīng)用,是經(jīng)濟(jì)型產(chǎn)品。 繼 一線總線 的早期產(chǎn)品后, DS1820 開辟了溫度傳感器技術(shù)的新概念。 DS18B20 和 DS1822 使電壓、特性及封裝有更多的選擇,讓我們可以構(gòu)建適合自己的經(jīng)濟(jì)的測溫系統(tǒng)。 DS18B20 的新性能 1) 可用數(shù)據(jù)線供電,電壓范圍: ~; 2) 測溫范圍: 55~+125℃ ,在 10~+85℃ 時精度為 177?!?; 3) 可編程的分辨率為 9~12 位,對應(yīng)的可分辨溫度分別為 ℃ 、 ℃ 、℃ 和 ℃ ; 4) 12 位分辨率時最多在 750ms 內(nèi)把溫度值轉(zhuǎn)換為數(shù)字; 5) 負(fù)壓特性:電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作。 DS18B20 的外形和內(nèi)部結(jié)構(gòu) DS18B20 內(nèi)部結(jié)構(gòu)主要由四部分組成: 64 位光刻 ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器 TH和 TL、配置寄存器。 DS18B20 的管腳排列如下 : DS18B20 外形圖 引腳定義: 1) DQ 為數(shù)字信號輸入 /輸出端; 2) GND 為電源地; 3) VDD 為外接供電電源輸入端(在寄生電源接線方式時接地)。 內(nèi)部結(jié)構(gòu) DS18B20 內(nèi)部結(jié)構(gòu)圖 DS18B20 有 4個主要的數(shù)據(jù)部件: 1)光刻 ROM 中的 64 位序列號是出廠前被光刻好的,它可以看作是該 DS18B20 的地址序列碼。 64 位光刻 ROM的排列是:開始 8位( 28H)是產(chǎn)品類型標(biāo)號,接著的 48 位是該 DS18B20 自身的序列號,最后 8 位是前面 56位的循環(huán)冗余校驗(yàn)碼( CRC=X8+X5+X4+1)。光刻 ROM 的作用是使每一個 DS18B20 都各不相同,這樣就可以實(shí)現(xiàn)一根總線上掛接多個 DS18B20 的目的。 2) DS18B20 中的溫度傳感器可完成對溫度的測量,以 12位轉(zhuǎn)化為例:用 16 位符號擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以 ℃ /LSB 形式表達(dá),其中S為符號位。 表 61 DS18B20 溫度值格式表 這是 12位轉(zhuǎn)化后得到的 12位數(shù)據(jù),存儲在 18B20 的兩個 8比特的 RAM 中,二進(jìn)制中的前面 5位是符號位,如果測得的溫度大于 0,這 5位為 0,只要將測到的數(shù)值乘于 即可得到實(shí)際溫度;如果溫度小于 0,這 5位為 1,測到的數(shù)值需要取反加 1再乘于 即可得到實(shí)際溫度。 例如 +125℃ 的數(shù)字輸出為 07D0H, +℃ 的數(shù)字輸出為 0191H, ℃的數(shù)字輸出為 FF6FH, 55℃ 的數(shù)字輸出為 FC90H。 表 62 DS18B20 溫度數(shù)據(jù)表 3) DS18B20 溫度傳感器的存儲器 DS18B20溫度傳感器的內(nèi)部存儲器包括一個高速暫存 RAM和一個非易失性的可電擦除的 EEPRAM,后者存放高溫度和低溫度觸發(fā)器 TH、 TL和結(jié)構(gòu)寄存器。 4)配置寄存器 該字節(jié)各位的意義如下: 表 63 配置寄存器結(jié)構(gòu) TM R1 R0 1 1 1 1 1 低五位一直都是 1 , TM 是測試模式位,用于設(shè)置 DS18B20 在工作模式還是在測試模式。在 DS18B20 出廠時該位被設(shè)置為 0,用戶不要去改動。 R1和 R0 用來設(shè)置分辨率,如下表所示:( DS18B20 出廠時被設(shè)置為 12 位) 分辨率設(shè)置表: 表 64 溫度值分辨率設(shè)置表 R1 R0 分辨率 溫度最大轉(zhuǎn)換時間 0 0 9 位 0 1 10 位 1 0 11 位 375ms 1 1 12 位 750ms 硬件模塊設(shè)計 1)數(shù)字電壓模塊 設(shè)計方框圖如下 原理接線圖如下 單片機(jī) A/D 轉(zhuǎn)換器 電壓顯示器 模擬電壓輸入 量程控制電路 系統(tǒng)總框圖 2)萬年歷與溫測模塊 原理接線圖如下 4 軟件設(shè)計 我們采用 C 語言編程,通過定時器 0 計時實(shí)現(xiàn)顯示時間功能,通過串口中斷實(shí)現(xiàn)上位機(jī)對下位機(jī)的模式切換功能。通過鍵盤掃描和掃描處理函數(shù),實(shí)現(xiàn)鍵 盤的模式切換功能。同時我們還設(shè)計了浮點(diǎn)數(shù)顯示處理函數(shù),采樣函數(shù),交流采集電壓峰峰值函數(shù),顯示交流周期和峰峰值函數(shù)。這些函數(shù)的組合,實(shí)現(xiàn)了電壓表功能的完善。 萬年歷總流程圖 系統(tǒng)軟件設(shè)計總流程圖 溫度檢測 溫度檢測總流程圖 DS18B20在單片機(jī)控制下分三個階段 : ● 18B20 初始化:初始化流程圖見 ●讀 18B20時序:讀 DS18B20流程見圖 : ●寫 18B20時序:寫 18B20 流程見圖 圖 DS18B20流程圖 圖 DS18B20流程圖 5軟硬件聯(lián)調(diào) ............................................... .......... 6總結(jié) ............................................... .......... 設(shè)計中遇到的問題和解決方案 ....................... ............. 對本次設(shè)計的展望 .................................... 參考文獻(xiàn) .......................................... ...... .... . ...... ... 附錄 1: 源程序代碼 1) 數(shù)字電壓表程序 include //頭文件 define uchar unsigned char // define uint unsigned int // // ***********ADC************* / //========ADC0809=相關(guān)管腳設(shè)置以及變量定義 =================== sbit ADC_ST=P3^0。 sbit ADC_OE=P3^1。 sbit ADC_EOC=P3^2。 sbit ADC_CLK=P3^3。 uint ADC_xianshi。 float ADC_number,ADC_shiji 。 // ======================1602============== //===================1602 管腳設(shè)置及變量定義 ================= uchar code table[]=CuiLongFei!。 uchar qian,bai,shi,ge。 sbit lcden=P3^4。 sbit lcdrs=P3^5。 uchar num。 //=============== sbit LED=P2^0。 // **********延時程序 *********** // // // // ********************* // //================毫秒級的延時程序 =============== void DelayMS(uint xms) { uint i,j。 for(i=xms。i0。i) for(j=115。j0。j)。 } //================微秒級的延時程序 =============== void Delayus(unsigned int i) { while(i)。 } //========================================== //===================1602 寫命令子程序 ======================= void write_(uchar ) { lcdrs=0。 //RS=0。 P1=。 //P1 DelayMS(5)。 lcden=1。 //EN=1。 DelayMS(5)。 lcden=0。 } //===================1602 寫數(shù)據(jù)子程序 ======================= void write_data(uchar date) { lcdrs=1。 P1=date。 DelayMS(5)。 lcden=1。 DelayMS(5)。 lcden=0。 } //======================1602 初始化子程序 ===================== //========================================================== void init() { lcden=0。 write_(0x38)。 // write_(0x0c)。 write_(0x06)。 write_(0x01)。 } //==========================ADC=================== //=================ADC0809 顯示數(shù)據(jù)的處理 ============ void ADC_Display() { qian=ADC_xianshi/1000。 bai=ADC_xianshi%1000/100。 shi=ADC_xianshi%100/10。 ge=ADC_xianshi%100%10。 } //============ADC 初始化 ================== void ADC_Main() { ADC_ST=0。Delayus(5)。 ADC_ST=1。Delayus(5)。 ADC_ST=0。Delayus(5)。 while(ADC_EOC==0)。 // EOC=1。轉(zhuǎn)換結(jié)束 ADC_OE=1。Delayus(5)。 ADC_number=P0。Delayus(5)。 ADC_OE=0。Delayus(5)。 Delayus(5)。 ADC_shiji=(*ADC_number)/。 ADC_xianshi=ADC_shiji*1000。 Delayus(5)。 } //======================main============================= //======================主函數(shù) ======================== void main() { init()。 //1602 初始化 write_(0x80)。 //1602 第一排顯示命令 for(num=0。num11。num++) //顯示崔龍飛 { write_data(table[num])。 DelayMS(20)。 } while(1) //循環(huán)函數(shù) { LED=0。 ADC_Main()。 //ADC 初始化 ADC_Display()。 //ADC 數(shù)據(jù)處理 write_(0x80+0x40)。 //1602 第二排顯示命令 //==================顯示測量的電壓值 ================== write_data(0x30+qian)。DelayMS(20)。 write_data(0x30+bai)。 DelayMS(20)。 write_data(0x30+shi)。DelayMS(20)。 write_data(0x30+ge)。DelayMS(20)。 //===================MV 顯示 ========================== write_data(39。M39。)。DelayMS(20)。 write_data(39。V39。)。DelayMS(20)
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1