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

正文內(nèi)容

基于ds18b20測溫系統(tǒng)論文(更新版)

2026-01-11 20:40上一頁面

下一頁面
  

【正文】 [4]SPI THE REAL TIMER DS1302 DRIVER LIB COPYRIGHT (c) 2020 BY JJJ. ALL RIGHTS RESERVED File Name: Author: Jiang Jian Jun Created: 2020/7/21 Modified: NO Revision: ***************************************************************************/ include include sbit DS1302_CLK = P3^5。ino1。 /*啟動總線 */ SendByte(sla)。 } Stop_I2c()。 /*發(fā)送器件地址 */ if(ack==0)return(0)。 _Nop()。 SCL=1。 _Nop()。 SCL=1。BitCnt8。 /*判斷是否接收到應(yīng)答信號 */ SCL=0。 /*8 位發(fā)送完后釋放數(shù)據(jù)線,準(zhǔn)備接收應(yīng)答位 */ _Nop()。 _Nop()。 for(BitCnt=0。 _Nop()。 /*鉗住 I2C 總線,準(zhǔn)備發(fā)送或接收數(shù)據(jù) */ _Nop()。 _Nop()。 //I2C 數(shù)據(jù) bit ack。 TempBuffer0[13]=39。:39。 TempBuffer0[4]=39。 //將高低字節(jié)的有效值的整數(shù)部分拼成一個字節(jié) TempBuffer0[1]=t[1]/100+0x30。 //0xfe 為變 +的 ASCII 碼 t[1]=4。 t[1]=*pt。 39。:39。 39。 TempBuffer0[10]=()/10+0X30。 TempBuffer0[5]=39。 TempBuffer0[1]=39。) { LCD_Write(LCD_DATA,*str)。 //8 位數(shù)據(jù)端口 ,2行顯示 ,5*7點陣 LCD_Write(LCD_COMMAND,0x38)。 _nop_()。 return DBPort。 LcdRw=1。 unsigned char TempBuffer1[9]={0x2b,0x31,0x32,0x32,0x2e,0x30,0x30,0x43,39。 } [2]顯示程序 : include include include include //定義的時間類型 SYSTEMTIME MTIME。 // 啟動溫度 轉(zhuǎn)換 delay(80)。 // 跳過讀序號列號的操作 // WriteOneChar1(0x4E)。 i) { DQ2 = 0。 // 給脈沖信號 dat=1。 //拉高總線 delay(14)。 } Ds18b201: include include include unsigned char tt1[2]。 // 啟動溫度轉(zhuǎn)換 24 delay(80)。 // 跳過讀序號列號的操作 // WriteOneChar(0x4E)。 i) { DQ1 = 0。 // 給脈沖信號 dat=1。 //拉高總線 delay(14)。 } 22 } } 各模塊子程序 [1]溫度測試程序: Ds18b20: include include include unsigned char tt[2]。//獲取溫度的整數(shù)位 if(TemperatureBTH||TemperatureBTL) { led2=0。 } else { led1=1。//讀一下 at24c02避免編譯時出現(xiàn)警告在次程序中并無實際意義 20 while(1) { DS1302_GetTime(amp。//溫度整數(shù) A signed char TemperatureB _at_ 0x21。 以下 是 keil 開發(fā)界面圖。二是執(zhí)行軟件(子程序),它是用來完成各種實質(zhì)性的功能如測量、計算、顯示、通訊等。 SDA 線上的數(shù)據(jù)在時鐘 “ 高 ” 期間必須是穩(wěn)定的,只有當(dāng) SCL 線上的時鐘信號為低時,數(shù)據(jù)線上的 “ 高 ” 或 “ 低 ” 狀態(tài)才可以改變。 15腳 GND、 16 腳 VCC( +5v)。由 6 腳和 4 只電容構(gòu)成。 2 系統(tǒng)硬件電路設(shè)計系統(tǒng)硬件電路包括傳感器數(shù)據(jù)采集、溫度顯示、模式選擇、上下限報警主電路和無線報警電路等。其工作電平規(guī)定如下:對于數(shù)據(jù)(邏輯 “1” 的電平低于 3V;邏輯 “0” 的電平高于 +3V)。 圖 24 多路 DS18B20 液晶顯示 液晶顯示模塊具有體積小、功耗低、顯示 內(nèi)容豐富、超薄輕巧等優(yōu)點,在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中得到廣泛的應(yīng)用。 寫保護(hù)引腳,實現(xiàn)硬件軟件數(shù)據(jù)保護(hù) 9 而實際上,根據(jù)本人的經(jīng)驗,如果不采用上拉電阻,則很難實現(xiàn) AT24C512B 和單片機(jī)的通訊??梢圆捎?12h 或 24h 方式計時,采用雙電源供電,可設(shè)置備用 8 電源充電方式,同時提供了對后備電源進(jìn) 行涓流充電的能力。另外, AT89S51可降至 0 Hz 靜態(tài)邏輯操作,支持 2 種軟件可選擇節(jié)電模式。綜合以上產(chǎn)品的發(fā)展特點,希望溫度檢測系統(tǒng)在未來的發(fā)展中有更廣闊的應(yīng)用空間并且具有更好的現(xiàn)場測量優(yōu)越性。上位機(jī)部分使用了通用 PC。下位機(jī)實現(xiàn)溫度的檢測并提供標(biāo)準(zhǔn)RS232 通信接口,芯片使用了 ATMEL 公司的 AT89C51 單片機(jī)和 DALLAS 公司的DS18B20 數(shù)字溫度傳感器。另外液晶顯示模塊具有體積小、功耗低、顯示內(nèi)容豐富、超薄輕巧等優(yōu)點在各類儀表和顯示系統(tǒng)中得到越來越多的應(yīng)用,現(xiàn)在也是單片機(jī)應(yīng)用設(shè)計中 最常用的信息顯示模塊。 AT89S51含有: 256 字節(jié) RAM、32 位 I/O 口線、看門狗定時器、 2 個數(shù)據(jù)指針、三個 16 位定時器 /計數(shù)器、一個 6 向量 2 級中斷結(jié)構(gòu)、全雙工串行口、片內(nèi)晶振及時鐘電路。實時時鐘可以提供秒、分、時、日、星期、月和年,一個月小于 31 日時可自動調(diào)整,包括閏年,有效至 2100 年。如果采用上拉電阻,建議為 10K。1 MHz (,) 兼容 400 kHz () ℃ ; 11 ⑥ 可編程的分辨率為 9~ 12 位,對應(yīng)的分辨率分別為 ℃ 、 ℃ 、℃ 和 5℃ ,可實現(xiàn)高精度測溫; ⑦ 轉(zhuǎn)換時間為 ms( 9 位)和 750 ms( 12 位),對于一般的實時測溫系統(tǒng)已經(jīng)足夠了; ⑧ 測量結(jié)果直接輸出數(shù)字溫度信號,以丹總線串行傳送給 CPU,同時可傳送 CRC 校驗碼,具有極強的抗干擾糾錯能力; ⑨ 負(fù)壓特性:電源極性接反時,芯片不會因發(fā)熱而燒毀,但不能正常工作。該標(biāo)準(zhǔn)適用于數(shù)據(jù)傳輸速率在 0~20Kbps 范圍內(nèi)的通信,已成為數(shù)據(jù)終端設(shè)備 DTE 與計算機(jī)和 數(shù)據(jù)通信設(shè)備 DCE 的接口標(biāo)準(zhǔn),是 PC 機(jī)與通信工業(yè)中應(yīng)用最廣泛的一種串行接口。系統(tǒng)抗干擾性強、設(shè)計靈活方便 ,適合在惡劣的環(huán)境下進(jìn)行溫度測量。 引腳介紹 第一部分是電荷泵電路。 第三部分是供電。使用硬件接口可以很容易地檢測到開始和停止條件,沒有這種接口的微機(jī)必須以每時鐘 周期至少兩次對 SDA 取樣,以檢測這種變化。從軟件的功能不同可分為兩大類:一是監(jiān)控軟件(主程序),它是整個控制系統(tǒng)的核心,專門用來協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系。uVision3 提供邏輯分析器,可監(jiān)控基于 MCUI/O 引腳和外設(shè)狀態(tài)變化下的程序變量。 //下一步擴(kuò)展時可能通過這兩個變量 ,調(diào)節(jié)上下限 signed char TemperatureA _at_ 0x20。 IRcvStr(AT24C02,0,(unsigned char*)(0xff),0)。//獲取溫度的整數(shù)位 if(TemperatureATH||TemperatureATL) { led1=0。 TemperatureB= (*pt4)|(*(pt+1)4)。TemperatureA,2)。 //精確延時 大于 480us DQ1= 1。i) { DQ1 = 0。 i0。 // WriteOneChar(0xCC)。 // 跳過讀序號列號的操作 WriteOneChar(0x44)。 //讀取溫度值高位 return(tt)。 //精確延時 大于 480us DQ2= 1。i) { 25 DQ2 = 0。 i0。 // WriteOneChar1(0xCC)。 // 跳過讀序號列號的操作 WriteOneChar1(0x44)。 //讀取溫度值高位 return(tt1)。 //用來存放溫度值 ,測溫程序就是通過這個數(shù)組與主函數(shù)通信的 //unsigned char display[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88}。 // 內(nèi)部等待函數(shù)************************************************************************** unsigned char LCD_Wait(void) { LcdRs=0。0x80==0x80 //實際硬件時打開此語句 LcdEn=0。//注意順序 LcdEn=1。 LCD_Write(LCD_COMMAND,0x38)。\039。 39。139。39。 TempBuffer1[0]=39。 TempBuffer1[5]=39。 TempBuffer1[11]=39。 pt++。 /*********************/ } else TempBuffer0[0]=0x2b。 //和前面兩句就是取出 t[0]的高四位 t[1]=t[1]|x。 //左移兩位 ,以便查表 x=t[0]。 TempBuffer0[8]=39。 TempBuffer0[12]=temp%10+0x30。 //I2C 時鐘 sbit SDA=P2^6。 _Nop()。 SCL=0。 _Nop()。 } //字節(jié)數(shù)據(jù)發(fā)送函數(shù) void SendByte(uchar c) { uchar BitCnt。 /*置時鐘線為高,通知被控器開始接收數(shù)據(jù)位 */ _Nop()。 SDA=1。 else ack=1。 /*置數(shù)據(jù)線為輸入方式 */ 33 for(BitCnt=0。 _Nop()。 } SCL=0。 _Nop()。 /*清時鐘線,鉗住 I2C 總線以便繼續(xù)接收 */ _Nop()。 /*啟動總線 */ SendByte(sla)。 s++。 Start_I2c()。 for(i=0。 /*結(jié)束總線 */ return(1)。 for(i=8。 i0。 DS1302_RST = 1。 DS1302_RST = 1。 } void DS1302_SetTime(unsigned char Address, unsigned char Value) // 設(shè)置時間函數(shù) { DS1302_SetProtect(0)。 TimeMinute = ((ReadValueamp。 TimeDay = ((ReadValueamp。 TimeMonth = ((ReadValueamp。 if(Seconda
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1