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

正文內(nèi)容

本科畢業(yè)論文-基于stc89c52rc單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)-文庫吧

2025-01-01 16:45 本頁面


【正文】 圖 7 字節(jié)分配 下表為 12位轉(zhuǎn)化后得到的 12位數(shù)據(jù),存儲在 18B20 的兩個(gè) 8 比特的 RAM中,二進(jìn)制中的前面 5 位是符號位,如果測得的溫度大于 0, 這 5 位為 0,只要將測到的數(shù)值乘于 即可得到實(shí)際溫度;如果溫度小于 0,這 5 6 位為 1,測到的數(shù)值需要取反加 1 再乘于 即可得到實(shí)際 溫度。 例如 +125℃的數(shù)字輸出為 07D0H, 實(shí)際溫度 =07D0H*=2022*=125℃。 例如 55℃的數(shù)字輸出為 FC90H,則應(yīng)先將 11 位數(shù)據(jù)位取反加 1 得 370H(符號位不變,也不作運(yùn)算), 實(shí)際溫度 =370H*=880*=55℃。 可見其中低四位為小數(shù)位。 圖 8 DS18B20溫度數(shù)據(jù)表 顯示電路 LED數(shù)碼管顯示采用動(dòng)態(tài)掃描方式,能簡化電路布線,節(jié)約單片機(jī) I/O端口。 段碼和位碼由單片機(jī) P0送出,分別用 74HC673N 鎖存。 7 圖 9 數(shù)碼管驅(qū)動(dòng)顯示電路 聲光報(bào)警電路 當(dāng)溫度超過設(shè)定溫度值時(shí),實(shí)現(xiàn)聲光報(bào)警,蜂鳴器鳴叫、 8 個(gè)發(fā)光二極管點(diǎn)亮。蜂鳴器由單片機(jī) P2^3口控制,用三極管驅(qū)動(dòng),發(fā)光二極管接單片機(jī) P1口,由 74HC673N鎖存。 圖 10 聲光報(bào)警電路 鍵盤輸入電路 四個(gè)鍵分別連接單片機(jī) P3^ P3^ P3^ P3^7 構(gòu)成獨(dú)立式鍵盤,分別實(shí)現(xiàn)報(bào)警溫度范圍上下限的設(shè)定功能。 8 key2key3key4key5GND 圖 11 鍵盤輸入電路 四、軟件設(shè)計(jì) 主程序模塊 主程序需要調(diào)用 3個(gè)子程序,分別為: ? 實(shí)時(shí)溫度顯示子程序:驅(qū)動(dòng)數(shù)碼管把實(shí)時(shí)溫度值送出在 LED 數(shù)碼管顯示 ? 查詢記錄溫度值子程序:查詢過去存儲的溫度值,最多可查詢 10個(gè)值 ? 溫度設(shè)定、報(bào)警子程序:設(shè)定報(bào)警溫 度值,當(dāng)溫度超過該值時(shí)產(chǎn)生報(bào)警,即驅(qū)動(dòng)蜂鳴器鳴叫、 8個(gè)發(fā)光二極管發(fā)光 主程序流程圖: 圖 12 主程序流程圖 讀溫度值模塊 讀溫度值模塊需要調(diào)用 4個(gè)子程序,分別為: 開始 顯示實(shí)時(shí)溫度 溫度設(shè)定、報(bào)警 查詢記錄溫度值 定時(shí)器初始化、啟動(dòng) 9 ? DS18B20 初始化子程序:讓單片機(jī)知道 DS18B20 在總線上且已準(zhǔn)備好操作 ? DS18B20寫字節(jié)子程序:對 DS18B20 發(fā)出命令 ? DS18B20讀字節(jié)子程序:讀取 DS18B20 存儲器的數(shù)據(jù) ? 延時(shí)子程序:對 DS18B20操作時(shí)的時(shí)序控制 1. 讀溫度值模塊流程圖: 圖 13 讀溫度值子程序流程圖 2. DS18B20初始化子程序流程圖: DS18B20 初始化 跳過讀序列號 啟動(dòng)溫度轉(zhuǎn)換 延時(shí) DS18B20 初始化 跳過讀序列號 讀取溫度值高低位 數(shù)據(jù)轉(zhuǎn)換處理 返回 DQ 置高電平 稍延時(shí) 入口 入口 10 N Y 圖 14 DS18B20初始化子程序流程圖 3. DS18B20寫字節(jié)和讀字節(jié)子程序流程圖: 返回 11 圖 15 DS18B20寫字節(jié)子程序流程圖 圖 16 DS18B20讀字節(jié)子程序流程圖 中斷模塊 中斷采用 T0方式 1, 初始值定時(shí)為 50ms。 中斷模塊需調(diào)用兩個(gè)子程序: ? 讀溫度值子程序:定時(shí)讀取溫度值,實(shí)時(shí)更新溫度值 ? 記錄溫度值子程序:定時(shí)記錄溫度值,供查詢使用 把這兩個(gè)子程序放在中斷的原因是,不會因?yàn)檎{(diào)整報(bào)警溫度或查詢歷史溫度值而停止更新溫度值和記錄溫度值。 中斷模塊流程圖: 12 Y N 圖 17中斷模塊流程圖 溫度查詢模塊 溫度查詢模塊需要接受按鍵輸入,進(jìn)入查詢界面后,按加減鍵分別查詢上一個(gè)和下一個(gè)歷史溫度值,并驅(qū)動(dòng)數(shù)碼管顯示需要查 詢的溫度值。 溫度查詢模塊流程圖如下: 中斷入口 定時(shí)器重置初值 計(jì)數(shù)值加 1 1 秒? 記錄溫度值 讀溫度值 中斷返回 13 N Y N Y N Y Y N N Y Y N N Y 圖 18 溫度查詢模塊流程圖 入口 功能鍵按 下? 延時(shí)消抖 確認(rèn)按下? 顯示溫度值與位次 加鍵按下? 延時(shí)消抖 確認(rèn)按下? 查詢下一個(gè)值 減鍵按下? 延時(shí)消抖 確認(rèn)按下? 查詢上一個(gè)值 退出功能鍵按下? 返回 14 溫度設(shè)定、報(bào)警模塊 此模塊跟溫度查詢模塊類似,需要接受按鍵輸入,進(jìn)入模塊界面后,按加減鍵分別上調(diào)和下調(diào)設(shè)定報(bào)警溫度值,當(dāng)實(shí)時(shí) 溫度值超過設(shè)定值時(shí)驅(qū)動(dòng)蜂鳴器發(fā)聲,并點(diǎn)亮 8位發(fā)光二極管,實(shí)現(xiàn)聲光報(bào)警。 溫度設(shè)定、報(bào)警模塊流程圖如下: N Y N Y N Y Y N N 入口 功能鍵按下? 延時(shí)消抖 確認(rèn)按下? 顯示設(shè)定溫度值 加鍵按下? 延時(shí)消抖 確認(rèn)按下? 減鍵按下? 延時(shí)消抖 上調(diào)設(shè)定值 15 Y Y N Y N N Y 圖 19 溫度設(shè)定、報(bào)警模塊流程圖 數(shù)碼管驅(qū)動(dòng)模塊 本設(shè)計(jì)數(shù)碼管通過鎖存器接單片機(jī) P0 口, 采用動(dòng)態(tài)掃描驅(qū)動(dòng) 7 段 LED 數(shù)碼管進(jìn)行顯示,需調(diào)用延時(shí)子程序以穩(wěn)定顯示。 模塊流程圖如下: 確認(rèn)按下? 溫度超出設(shè)定值? 取消報(bào)警 判斷退出界面? 返回 下調(diào)設(shè)定值 聲光報(bào)警 入口 關(guān)段選 P0 置高 開位選 送位碼 關(guān)位選 P0 清零 16 圖 20 數(shù)碼管驅(qū)動(dòng)模塊流程圖 五、總結(jié) 此次課程設(shè)計(jì)中,難點(diǎn)在于 DS18B20的使用,即對它的時(shí)序控制、初始化以及字節(jié)讀寫方法,任何一個(gè)環(huán)節(jié)出錯(cuò)或是時(shí)序控制不到位的話就不能得到正確的數(shù)據(jù)。一旦學(xué)會了正確的使用方法,就能感覺到它帶來的便利是熱電偶不能比擬的,以后再次使用的話就能很快上手了。 軟件 設(shè)計(jì)中,把程序按功能分模塊的話能提高編程效率,把問題一一解決,同時(shí)畫流程圖能幫助理清思路,使問題簡單化。定義變量時(shí),盡量定義局部變量,在字符型變量能達(dá)到要求的情況下就不用定義成整形變量了,以節(jié)省內(nèi)存空間。同時(shí)局部變量應(yīng)避免與全局變量取同名,否則全局變量將被屏蔽或與局部變量相沖突而達(dá)不到設(shè)計(jì)的效果。另一方面,取變量名時(shí)也要講究技巧,應(yīng)盡量使其見名知意,同樣地,寫程序時(shí)加注釋確是非常必要的,否則隔一段時(shí)間后,想再改進(jìn)或做擴(kuò)展的話就比較困難了,因?yàn)榧词故亲约簩懙某绦蛞沧兊秒y讀難懂了。在做鍵盤消抖時(shí),延時(shí)的時(shí)間比較 重要,一般為 10ms 左右,延時(shí)太短就會使按鍵太過靈敏,按一下就使數(shù)字跳變幾次;而延時(shí)過長則可能使按鍵按下了卻無響應(yīng),在外部定義初始化一個(gè)延時(shí)函數(shù)的入口參量則能很方便地調(diào)整延時(shí)時(shí)間,以達(dá)到比較好的效果。另外,如果對按鍵進(jìn)行釋放判斷的話就能解決長時(shí)間按鍵導(dǎo)致按鍵重復(fù)響應(yīng)的問題。 此設(shè)計(jì)中沒有為溫度的單位(攝氏度)準(zhǔn)備專用的數(shù)碼管來顯示,若單獨(dú)用一個(gè)數(shù)碼管顯示“ C”來代替“ ℃ ”的話,看起來感覺很別扭。偶然想起如若用一個(gè)數(shù)碼管的上半部顯“ 0”,即 a、 b、 f、 g段點(diǎn)亮,來代替“ ℃ ”左上角的“度”的話,效果應(yīng)該不錯(cuò), 便作了一試,發(fā)現(xiàn)這是確是一個(gè)很好的主意,便在此次設(shè)計(jì)中采用了這個(gè)辦法來顯示溫度單位。另外此次設(shè)計(jì)也考慮了實(shí)時(shí)溫度顯示界面與報(bào)警溫度設(shè)置界面的區(qū)別,即在進(jìn)入報(bào)警溫度設(shè)置界面時(shí),讓其余的數(shù)碼管都顯示出一橫杠,即 g段點(diǎn)亮,這樣則不會讓兩個(gè)界面相互混淆。 總的來說,自己從這次獨(dú)立的課程設(shè)計(jì)中收獲了一些知識與經(jīng)驗(yàn),一些從書開段選 送段碼 關(guān)段選 延時(shí) 返回 17 本中學(xué)之不來的東西,不是說理論無用,而這恰恰是在理論的土壤中開出的花朵,是在理論的肩膀望見的更寬廣的道路!成功來之不易,自主動(dòng)手動(dòng)腦實(shí)踐,小小的成果亦能帶來碩大的喜悅!
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1