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

正文內(nèi)容

溫度測(cè)量及顯word版(完整版)

  

【正文】 語(yǔ)言編程實(shí)現(xiàn)對(duì)DS18B20 訪問(wèn),并且 通過(guò)鍵盤(pán)和 LED 顯示數(shù)碼管對(duì)系統(tǒng)進(jìn)行控制和顯示 。因此設(shè)計(jì)4位數(shù)的 LED數(shù)碼顯示管就已足夠,顯示 3位整數(shù)(負(fù)溫度時(shí),為 2 位整數(shù)), 1位小數(shù)。 鹽城工學(xué)院本科生畢業(yè)論文 ( 2022) 3 圖 2 AT89C51 方框圖 引腳功能說(shuō)明 AT89C51的引腳排列如圖 3所示。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流( IIL)。 P3 口輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流) 4 個(gè) TTL 邏輯門(mén)電路。即使不訪問(wèn)外部存儲(chǔ)器, ALE 仍以時(shí)鐘振蕩器頻率的 1/6輸出固定的正脈沖信號(hào),因此它對(duì)外輸出時(shí)鐘或用于定時(shí)目的。欲使 CPU 僅訪問(wèn)外部程序存儲(chǔ)器(地址為0000HFFFFH), EA 端必須保持低電平(接地)。 外接石英晶體(或陶瓷諧振器)及電容 C C2 接在放大器的反饋回路中 構(gòu)成并聯(lián)振蕩電路,對(duì)外接電容 C C2 雖然沒(méi)有十分嚴(yán)格的要求,但電容容量的大小會(huì)輕微影 響振蕩頻率的高低,振蕩器工作的穩(wěn)定性,起振的難易程度及溫度穩(wěn)定性,如使用石英晶體,推薦電容使用 30pF 10pF,而如使用陶瓷諧振器擇選擇 40pF 10pF。 IDL 是空閑等待方式,當(dāng) IDL=1,激活空閑工作模式,單片機(jī)進(jìn)入睡眠狀態(tài)。 需要注意的是,當(dāng)由硬件復(fù)位來(lái)終止空閑工作模式時(shí), CPU 通常是從激活空閑模式那條指令的下一條指令開(kāi)始繼續(xù)執(zhí)行程序的,要完成內(nèi)部復(fù)位操作,硬件復(fù)位脈沖要保持兩個(gè)機(jī)器周期( 24個(gè)時(shí)鐘周期)有效,在這種情況下,內(nèi)部禁止 CPU 訪問(wèn)片內(nèi) RAM,而允許訪問(wèn)其它端口。編程時(shí),可采用 420MHz 的時(shí)鐘振蕩器, AT89C51 編程方法如下: 在地址上加上要編程單元的地址信號(hào)。 程序校驗(yàn):如果加密位 LB LB2沒(méi)有進(jìn)行編程,則代碼數(shù)據(jù)可通過(guò)地址和數(shù)據(jù)線讀回編寫(xiě)的數(shù)據(jù),采用如圖 5所示的電路,程序存儲(chǔ)器的地址由 P1和 P2口的 ,數(shù)據(jù)由 P0口讀出, 、 、 4, PSEN 保持低電平, ALE|EA、 RST 保持高電平。 ( 032H) =05H聲明為 5V編程電壓。 ℃ ⑥ 可編程的分辨率為 9~ 12 位,對(duì)應(yīng)的可分辨溫度 分別為 ℃ 、 ℃ 、℃ 和 ℃ ,可實(shí)現(xiàn)高精度測(cè)溫 ⑦ 在 9位分辨率時(shí)最多在 , 12位分辨率時(shí)最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快 ⑧ 測(cè)量結(jié)果直接輸出數(shù)字溫度信號(hào),以 一線總線 串行傳送給 CPU,同時(shí)可傳送 CRC校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)能力 ⑨ 負(fù)壓特性:電源極性接反時(shí),芯片不會(huì)因發(fā)熱而燒毀,但不能正常工作。高溫度系數(shù)晶振 隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號(hào)作為計(jì)數(shù)器 2 的脈沖輸入。 在外部電源供電方式下, DS18B20 工作電源由 VDD引腳接入,此時(shí) I/O線不需要強(qiáng)上拉,不存在電源電流不足的問(wèn)題,可以保證轉(zhuǎn)換精度,同時(shí)在總線上理論可以掛接任意多個(gè) DS18B20傳感器,組成多點(diǎn)測(cè)溫系統(tǒng)。在僅使用單只的 DS18B20時(shí),使用該命令可以簡(jiǎn)化編程。 TL(Byte0): TH(Byte1): 溫度測(cè)量及顯示仿真實(shí)現(xiàn) 16 存儲(chǔ)器 TH 中的 bit15~bit11 為符號(hào)位,如果溫度為負(fù)數(shù),則 bit15~bit11 全為 1,否則全為 0。只需要占用單片機(jī)的一個(gè) I/O口,使用非常方便。主機(jī)發(fā)送一個(gè)復(fù)位脈沖(最短時(shí)間為 480us 的低電平信號(hào)),接著釋放總線并進(jìn)入接收狀態(tài)。 由以上的時(shí)序關(guān)系可見(jiàn), DS18B20 的時(shí)序關(guān)系十分嚴(yán)格,很好地掌握其時(shí)序關(guān)系也是編寫(xiě) AT89C51 單片機(jī)與 DS18B20接口程序的關(guān)鍵。 ( 1) 對(duì) DS18B20 的初始化(復(fù)位) 對(duì) DS18B20進(jìn)行初始化的函數(shù)為 Init18B20()。 //關(guān)中斷 DQ18B20=1。 //開(kāi)中斷 } ( 2) 向 DS18B20 的寫(xiě)命令 單片機(jī)向 DS18B20 寫(xiě)入一個(gè)字節(jié)的程序?yàn)?Write_18B20(unsigned char dat)。 例如:編寫(xiě)向 DS18B20 寫(xiě)入一個(gè)字節(jié)的函數(shù) sbit P1_7=P1^7 溫度測(cè)量及顯示仿真實(shí)現(xiàn) 20 void write_18B20(unsigned char dat) { char i,j。 //延時(shí) if(dat%2==1) { //傳送命令 P1_7=1。 DS18B20輸出的數(shù)據(jù)是從最低位( LSB)開(kāi)始的,逐位輸出。 例如:編寫(xiě)從 DS18B20 讀入一個(gè)字節(jié)的函數(shù)。 delay(1)。 //延時(shí) 50us P1_7=1。 ( 6) 跳過(guò) ROM[CCh]。 //復(fù)位 Write_18B20(0xCC)。這里采用讀取總線狀態(tài)的方法判斷溫度轉(zhuǎn)換是否完成。 EA=0。 //復(fù)位 write_18B20(0xCC)。 DS18B20的配置字節(jié)就是用于設(shè)置分辨率的,需要用寫(xiě) DS18B20存儲(chǔ)器命令(命令代碼 4Eh)寫(xiě)入。這種情況主要是由總線分布電容使信號(hào)波形產(chǎn)生畸變?cè)斐傻摹K鼉?nèi)含硬件動(dòng)態(tài)掃描顯示控制,每片可驅(qū)動(dòng) 8個(gè) LED 數(shù)碼管,因此也可用于直接驅(qū)動(dòng) 64 段 LED 條圖顯示器。每一個(gè) LED數(shù)碼管顯示一個(gè)十進(jìn)制位,稱為一個(gè)位碼,因此 8個(gè) LED數(shù)碼管可顯示 8個(gè)位碼。Digit 0~ Digit 7 對(duì)應(yīng)與 MAX7219 的 DIG 0~ DIG 7 相連的 8 個(gè) LED 數(shù)碼顯示器,即地址 0x01對(duì)應(yīng)于 DIG 0上的 LED數(shù)碼顯示器,具體的顯示內(nèi)容由串行數(shù)據(jù)的 D0~D7決定。 表 10 譯碼方式寄存器舉例 譯碼方式 寄存器數(shù)據(jù) 十六進(jìn) 制 D7 D6 D5 D4 D3 D2 D1 D0 Digit 0~ 7均非譯碼 0 0 0 0 0 0 0 0 00H Digit 0為 BCD譯碼Digit 1~ 7非譯碼 0 0 0 0 0 0 0 1 01H Digit 0~ 3為 BCD譯碼Digit 4~ 7非譯碼 0 0 0 0 1 1 1 1 0FH Digit 0~ 7均 BCD譯碼 1 1 1 1 1 1 1 1 FFH 例如向 MAX7219 寄存器地址 0x99(譯碼方式寄存器)寫(xiě)入數(shù)據(jù) 0x0F,也可以說(shuō)向 MAX7219連續(xù)寫(xiě)入 16位數(shù)據(jù) 0x090F,則表示將位碼 Digit0~ 3設(shè)置為 BCD譯碼,位碼 Digit4~ 7設(shè)置為非譯碼。例如 ,在非譯碼方式下,當(dāng)向 MAX7219地址 0x01中寫(xiě)入 0x0C,將會(huì)顯示“ ”。 ( 4) 關(guān)斷寄存器 關(guān)斷寄存器中的 D1~D7任意, D0為 0,關(guān)閉所有顯示器,但各寄存器中的數(shù)據(jù)保持不變; D1為 1,正常顯示。 圖 18 AT89C51的 LED顯示電路 向 MAX7219 傳送數(shù)據(jù) AT89C52向 MAX7219每次用串行方式傳送 16bit的數(shù)據(jù),其中高 8bit是地址信息(寄存器地址),低 8bit是相應(yīng)的寄存器中要寫(xiě)入的數(shù)據(jù)。參數(shù)“ AA”是寫(xiě)入的寄存器地址,參數(shù)“ DD”是往相應(yīng) 的寄存器中寫(xiě)入的數(shù)據(jù),均為unsigned char型,共有 16bit。 //以 low_V 代表低電平 max7219_load=high_V。j++) { delay(5)。 m=m1。 //數(shù)碼管掃描范圍, digit0~digit7 write7219_data(0x0c,0x01)。 void display7219(bit neg,unsigned int dis_dat) { unsigned char dis_b。 //向 Digit2中寫(xiě)入數(shù)據(jù) dis_b=dis_dat/10。 lowbyte 和 highbyte 中包含了測(cè)量溫度的信息。 // Digit1 中包含小數(shù)點(diǎn) write7219_data(0x02,dis_b)。 //為負(fù)時(shí), Digit3顯示負(fù)號(hào) }else { dis_b=dis_dat/1000。 // LED 顯示亮度設(shè)置 write7219_data(0x09,0xff)。 第二個(gè) for語(yǔ)句是將 八位的二進(jìn)制數(shù),一位一位地寫(xiě)入寄存器,具體實(shí)施時(shí)運(yùn)用“?”語(yǔ)句來(lái)進(jìn)行判斷,當(dāng)與 0x80 進(jìn)行邏輯與運(yùn)算后, m 中的第 0 到 6 位為0,第 7 位保持不變,當(dāng)“()”內(nèi)為邏輯真(不等于 0,表明最高位是 1)時(shí),給max7219_din寫(xiě)入 1,當(dāng)“()”內(nèi)為邏輯真(等于 0,表明最高位是 0),給 max7219_din寫(xiě)入 0,在 CLK的上升沿將數(shù)據(jù)寫(xiě)入寄存器,然后把 m中的數(shù)據(jù)左移一位,為寫(xiě)入下一位數(shù)據(jù)做準(zhǔn)備。 鹽城工學(xué)院本科生畢業(yè)論文 ( 2022) 29 if(mamp。 //將 clk 至低 max7219_load=low_V。 sbit max7219_load=p1^4。分析圖中的時(shí)序關(guān)系是單片機(jī)與 MAX7219通信編程的關(guān)鍵,可以看出數(shù)據(jù)傳輸?shù)牟襟E。寄存器中 D7~D4 位任意。例如在 BCD 譯碼方式時(shí),要將位碼 Digit 1 的顯示設(shè)置為“ 5.” (注意數(shù)據(jù) 5后有小數(shù)點(diǎn)),需向MAX7219地址 0x02中寫(xiě)入 0x85( 0x85=0x85|0x80)。采用 BCD碼方式時(shí),要在指定位碼上顯示字符,只要按 BCD 碼字符表將字符代碼寫(xiě)入相應(yīng)的位碼寄存器即可。表 后面的 5個(gè)為控制寄存器。 MAX7219提供串行接口與單片機(jī)相連, DIN 為串行數(shù)據(jù)輸入端; CLK 為串行時(shí)鐘輸入端; DOUT 為串行數(shù)據(jù)輸出端,在級(jí)聯(lián)時(shí)傳到下一片 MAX7219 的 DIN 端; LOAD為裝入數(shù)據(jù)控制端,封裝圖如圖 17所示。亦可以將 MAX7219 的一部分用于數(shù)字顯示,一部分用于條圖顯示。 4) 在 DS1820 測(cè)溫程序設(shè)計(jì)中,向 DS1820 發(fā)出溫度轉(zhuǎn)換命令后,程序總要等待 DS1820的返回信號(hào),一旦某個(gè) DS1820接觸不好或斷線,當(dāng)程序讀該 DS1820時(shí),將沒(méi) 有返回信號(hào),程序進(jìn)入死循環(huán)。在使用 PL/M、 C等高級(jí)語(yǔ)言進(jìn)行系統(tǒng)程序設(shè)計(jì)時(shí),對(duì) DS1820操作部分最好采用匯編語(yǔ)言實(shí)現(xiàn)。 //讀取溫度寄存器 lowbyte=read_18B20。 highbyte =0x00。 因?yàn)闇囟戎凳谴鎯?chǔ)在 DS18B20的 Byte0和 Byte1中的,所以要進(jìn)行兩次讀操作以讀取全部的溫度數(shù)據(jù)。 //讀取溫度寄存器 lowbyte=Read_18B20()。 即使用以下程序的順序進(jìn)行。 //返回?cái)?shù)據(jù) } ( 4) 單片機(jī)采集 DS18B20中溫度值的操作順序 因?yàn)閱纹瑱C(jī)僅連接一個(gè) DS18B20,所以可以省掉讀 取序列號(hào)及匹配等過(guò)程。 //存入 0 P1_7=0。 unsigned char dat。 首先令 口為高電平即保證總線處于高電平狀態(tài)。 //準(zhǔn)備下一次傳送 delay10us(22)。 //關(guān)中斷 P1_7=1。 單片機(jī)向 DS18B20 寫(xiě)命令字節(jié)從最低位( LSB)開(kāi)始,逐位寫(xiě)入。 //延時(shí) DQ18B20=0。延遲一段時(shí)間后令 為低,觸發(fā) DS18B20 的初始化。因此只要檢測(cè)總線的狀態(tài)即可得知轉(zhuǎn)換是否完成。 溫度測(cè)量及顯示仿真實(shí)現(xiàn) 18 圖 15 DS18B20 初始化時(shí)序圖 ( 2) DS18B20的寫(xiě)時(shí)序 如圖 16 所示,整個(gè)寫(xiě)時(shí)間隙需要持續(xù)至少 60us,連續(xù)寫(xiě) 2 位數(shù)據(jù)的間隙最少1us。采取數(shù)據(jù)總線供電方式可以節(jié)省一根導(dǎo)線,但完成溫度測(cè)量的時(shí)間較長(zhǎng);采用外部供電方式則多用一根導(dǎo)線,但測(cè)量速度較快。 TL 的 bit3~bit0存儲(chǔ)溫度的小數(shù)部分, TL 的 LSB(最低位)的“ 1”表示 ℃。 DS18B20接收到該命令后將觸發(fā)溫度測(cè)量,收到命令數(shù)百毫秒后,溫度才能測(cè)量完畢,將測(cè)量的值存入 RAM的字節(jié) 0和字節(jié) 1中。 圖 13 外部電源工作方式 鹽城工學(xué)院本科生畢業(yè)論文 ( 2022) 15 DS18B20 的 具體說(shuō)明 DS18B20 內(nèi)部具有地址分配如表 5 所示的 9 字節(jié) RAM。計(jì)數(shù)器 1 對(duì) 低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)計(jì)數(shù)器 1 的預(yù)置值減到 0 時(shí),溫度寄存器的值將加 1,計(jì) 數(shù)器 1 的預(yù)置將重新被裝入,計(jì)數(shù)器 1 重 新開(kāi)始對(duì)低溫
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1