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

正文內(nèi)容

基于單片機(jī)的電子萬(wàn)年歷設(shè)計(jì)與實(shí)現(xiàn)(編輯修改稿)

2025-01-11 01:15 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 年又少了 44 分 56 秒為了更準(zhǔn)確地計(jì)時(shí)天文學(xué)家又規(guī)定凡能被 100 整除的年份只有能被 400 整除才是閏 年 , 即每 400 年要減掉 3 個(gè)閏年 , 經(jīng)過(guò)這樣處理后實(shí)際上每 400 年的誤差只有 2 小時(shí) 53 分20 秒 , 已相當(dāng)準(zhǔn)確了 。 農(nóng)歷與公歷不同 , 農(nóng)歷把月亮繞地球一周作為一月 。 因?yàn)樵铝晾@地球一周不是一整天 , 所以農(nóng)歷把月分為大月和小月 。 大月 30 天 , 小月 29 天 。 通過(guò)設(shè)置大小月使農(nóng)歷日始終與月亮與地球的位置相對(duì)應(yīng) 。 為了使農(nóng)歷的年份與公歷年相對(duì)應(yīng) , 農(nóng)歷通過(guò)設(shè)置閏月的辦法使它的平均年長(zhǎng)度與公歷年相等 。 農(nóng)歷是中國(guó)傳統(tǒng)文化的代表之一 , 并與農(nóng)業(yè)生產(chǎn)聯(lián)系密切 , 中國(guó)人民特別是廣大農(nóng)民十分熟悉并喜愛農(nóng)歷 。 公歷與農(nóng)歷是我國(guó)目前并存的 兩種歷法 , 各有其固有的規(guī)律 。 農(nóng)歷與月球的運(yùn)行相對(duì)應(yīng)其影響因素多 , 它的大小月和閏月與天體運(yùn)行有關(guān)計(jì)算十分復(fù)雜 , 且每年都不一致 。 因此要用單片機(jī)實(shí)現(xiàn)公歷與農(nóng)歷的轉(zhuǎn)換用查表法是最方便實(shí)用的辦法 。 51 系列單片機(jī)因其在功能上能滿足大部份對(duì)速度要求不高的應(yīng)用場(chǎng)合的要求且價(jià)格低廉開發(fā)工具普及程度高 , 是目前應(yīng)用最多的單片機(jī)之一 。 本文介紹成都工業(yè)學(xué)院 通信工程系畢業(yè)設(shè)計(jì)論文 10 一種用 51 單片機(jī)實(shí)現(xiàn)從 1901 年到 2099 年 199 年公歷日到農(nóng)歷日及星期的轉(zhuǎn)換方法 。 基本原理 實(shí)現(xiàn)公歷與農(nóng)歷的轉(zhuǎn)換,一般采用查表法,按日查表是速度最快的方法,但單片機(jī)尋址能力有 限,不 可能采 用按日查表的方法。除按日查外,我們可以通過(guò)按年查表的方法,再通過(guò)適當(dāng)?shù)挠?jì)算,來(lái)確定公歷日所對(duì)應(yīng)的農(nóng)歷日期,最大限度地減少表格所占的空間。 對(duì)于農(nóng)歷來(lái)說(shuō),大月為 30天,小月為 29天,這是固定不變的,這樣我們就可用 1個(gè) BIT( 1位)表示大小月信息。農(nóng)歷一年,如有閏月為 13 個(gè)月,否則是12 個(gè)月,所以一年需要用 13 個(gè) BIT,閏月在農(nóng)歷中所在的月份并不固定,大部分閏月在農(nóng)歷 28 月,但也有少量年份在 9月以后。所以要表示閏月的信息,至少要 4BIT,在這里我們用 4BIT 的值來(lái)表示閏月的月份。值為 0表示本年沒(méi)有 閏月。有了以上信息,還不足以判斷公歷日對(duì)應(yīng)的農(nóng)歷日,因?yàn)檫€需要個(gè)參照日,我們選用農(nóng)歷正月初一所對(duì)應(yīng)的公歷日期作參照日,公歷日最大為 31 日,需要5 BIT 來(lái)表示,而春節(jié)所在的月份不是 1月就是 2月,用 1 BIT 就夠了,考慮到表達(dá)方便,我們用 2 BIT 的值直接表示月份。這樣一年的農(nóng)歷信息只用 3個(gè)字節(jié)就全部包括了。每年對(duì)應(yīng)的 3字節(jié)數(shù)據(jù)格式說(shuō)明如下: ? 第一字節(jié) BIT7- 4 位表示閏月月份 ,值為 0 為無(wú)閏月 ,BIT3- 0 對(duì)應(yīng)農(nóng)歷 第 1- 4 月的大小。 ? 第二字節(jié) BIT70 對(duì)應(yīng)農(nóng)歷第 5- 12 月大小。 ? 第三字節(jié) BIT77 表示農(nóng)歷第 13 個(gè)月大小, BIT65 表示春節(jié)的公歷月份 ,BIT4- 0 表示春節(jié)的公歷日期。 ? 月份對(duì)應(yīng)的位為 1 表示本農(nóng)歷月大 (30 天 ),為 0 表示小 (29 天 ) 計(jì)算公歷對(duì)應(yīng)的農(nóng)歷日期的方法:先計(jì)算出公歷日離當(dāng)年元旦的天數(shù),然后查表取得當(dāng)年的春節(jié)日期,計(jì)算出春節(jié)離元旦的天數(shù),二者相減即可算出公歷日離春節(jié)的天數(shù),以后只要根據(jù)大小月和閏月信息,減月天數(shù),調(diào)整農(nóng)歷月份,即可推算出公歷日對(duì)應(yīng)的農(nóng)歷日期。如果公歷日不到春節(jié)日期,農(nóng)歷年要比公歷年小一年,農(nóng)歷大小取前一年的信息。農(nóng)歷月從 12月向前推算。 公歷 日是非常有規(guī)律的,所以公歷日所對(duì)應(yīng)的星期天可以通過(guò)計(jì)算直接得到,理論上公元 0 年 1 月 1 日為星期日,只要求得公歷日離公元 0年 1月 1日的天數(shù),除 7后的余數(shù)就是星期天,為了簡(jiǎn)化計(jì)算,采用月校正法,根據(jù)公歷的年月日可直接計(jì)算出星期天。其算法是:日期 +年份 +所過(guò)閏年數(shù) +月較正數(shù)之和除7 的余數(shù)就是星期天,但如果是在閏年又不到 3月份,上述之和要減一天再除 7。其 112 月的校正數(shù)為: 6,2,2,5,0,3,5,1,4,6,2,4。年份和閏年數(shù)只計(jì)算 1900年以后的年份和閏年數(shù),實(shí)際校正數(shù)為: 0,3,3,6,1,4,6,2,5,0,3,5。 舉例說(shuō)明:用查表法得出公歷 2021 年 3月 9日對(duì)應(yīng)的農(nóng)歷及星期信息。 1) 查表得 2021 年的數(shù)據(jù)為 0x09,0x2d,0x47( 0000, 1001; 0010, 1100; 0100,0111)。 該數(shù)據(jù)表示該年無(wú)閏月,農(nóng)歷月的 2, 3, 5, 6, 8, 11, 12月為小月 29 天,1, 4, 7, 9, 10月為大月 30 天。該年春節(jié)在公歷 2月 7日。 2) 計(jì)算公歷日( 2021 年 3 月 9 日)離當(dāng)年元旦的天數(shù): 30+29+9= 68。 3) 計(jì)算春節(jié)離元旦的天數(shù): 30+7= 37。 4) 算出公歷日( 2021 年 3 月 9 日)離春節(jié)的天數(shù): 68- 37= 31。 5) 調(diào)整農(nóng)歷月份:因?yàn)?31- 30= 1,所以相對(duì)應(yīng)的農(nóng)歷月份是 2 月,農(nóng)歷日是成都工業(yè)學(xué)院 通信工程系畢業(yè)設(shè)計(jì)論文 11 1+1= 2。 6) 計(jì)算星期(日期 +年份 +所過(guò)閏年數(shù) +月較正數(shù)之和除 7再求余數(shù)): 9+( 2021- 1900) +( 2021- 1900) /4+3]% 7= 0 綜上所述,公歷日 2021 年 3月 9日對(duì)應(yīng)的是農(nóng)歷 2021 年 2 月 2 日星期天。 程序流程圖 圖 35公農(nóng)歷轉(zhuǎn)換程序流程圖 成都工業(yè)學(xué)院 通信工程系畢業(yè)設(shè)計(jì)論文 12 DS18B20 溫度模塊 概述 美國(guó) DALLAS公司生產(chǎn)的單線數(shù)字溫度傳感器 DS18B20,可把溫度信號(hào)直接轉(zhuǎn)換成串行數(shù)字信號(hào)供微機(jī)處理。由于每片 DS18B20 含有唯一的硅串行數(shù) , 所以在一條總線上可掛接任意多個(gè) DS18B20 芯片。從 DS18B20 讀出的信息或?qū)懭隓S18B20 的信息,僅需要一根口線(單線接口)。讀寫及溫度變換功率來(lái)源于數(shù)據(jù)總線,總線本身也可以向所掛接的 DS18B20 供電,而無(wú)需額外電源。 DS18B20可 提供 9~ 12 位溫度讀數(shù),構(gòu)成多點(diǎn)溫度檢測(cè)系統(tǒng)而無(wú)需任何外圍硬件。 因此, DS18B20 具有如下性能優(yōu)點(diǎn): ? 單線接口:僅需一根口線與 MCU連接 進(jìn)行通信。 ? 多個(gè) DS18B20 可以并聯(lián)在惟一的 3線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)功能。 ? 無(wú)需外圍元件 ? 可通過(guò)數(shù) 據(jù)線供電,電壓范圍為 ~ 。 ? 零待機(jī)功耗 ? 測(cè)溫范圍: 55 ~ 125 ℃ 。固有測(cè)溫分辨率為 ℃ 。 ? 通過(guò)編程可實(shí)現(xiàn) 9~ 12位的數(shù)字讀數(shù)方式 ? 用戶可自設(shè)定非易失性的報(bào)警上下限值 ? 支持多點(diǎn)組網(wǎng)功能,多個(gè) DS18B20 可以并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn) 測(cè)溫 。 ? 報(bào)警搜索命令可識(shí)別哪片 DS1820 超溫度限 ? 負(fù)壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作。 DS18B20 的內(nèi)部結(jié)構(gòu) 圖 36是 DS18B20 的內(nèi)部結(jié)構(gòu)圖。 I/O C VDD 圖 36 DS18B20內(nèi)部結(jié)構(gòu) (1) 64位 ROM 結(jié)構(gòu)分為 8位檢驗(yàn) CRC、 48 位序列號(hào)、 8位工廠代碼( 10H)。開始 8位是產(chǎn)品類型的編號(hào),接著是每個(gè)器件的惟一的序號(hào),共有 48 位,最后8位是前 56位的 CRC 校驗(yàn)碼,這也是多個(gè) DS18B20 可以采用一線進(jìn)行通信的原因。 (2) 高速暫存存儲(chǔ)器 64 位 ROM 和 單線接口 存儲(chǔ)器與控制邏輯 高 速 緩 存 溫度傳感器 低溫觸發(fā)器 高溫觸發(fā)器 8 位 CRC 發(fā)生器 成都工業(yè)學(xué)院 通信工程系畢業(yè)設(shè)計(jì)論文 13 DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器包括一個(gè)高速暫存 RAM和一個(gè)非易失性的可電擦除的 E2PROM。 高速 RAM 包含 9 字節(jié)存儲(chǔ)器,前兩個(gè)字節(jié)包含測(cè)得的溫度信息。第 3 和 第 4字節(jié)是 TH和 TL 的拷貝,是易失的,每次上電復(fù)位時(shí)被刷新。 第5 個(gè)字節(jié) 是 配置寄存器, 它 的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率, DS18B20工作時(shí)按此寄存器中的分辨率將溫度轉(zhuǎn)換為相應(yīng)精度的數(shù)值。低 5位一直都是 1,TM 是測(cè)試模式位,用于設(shè)置 DS18B20 在工作模式還是在測(cè)試模式。 高速暫存 RAM第 6~ 8 字節(jié)未用,表現(xiàn)為全邏輯 1;第 9字節(jié)讀出的是前面所有 8 個(gè)字節(jié)的 CRC碼,可用來(lái)保證通信正確。 DS18B20 的測(cè)溫原理 DS18B20 的測(cè)溫原理如圖 37,圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn) 生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器 1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器 2的脈沖輸入,圖中還隱含著計(jì)數(shù)門,當(dāng)計(jì)數(shù)門打開時(shí), DS18B20 就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖后進(jìn)行計(jì)數(shù),進(jìn)而完成溫度測(cè)量。計(jì)數(shù)門的開啟時(shí)間由高溫度系數(shù)振蕩器來(lái)決定,每次測(cè)量前 , 先將 55℃ 所對(duì)應(yīng)的基數(shù)分別置入減法計(jì)數(shù)器 1 和溫度寄存器中,減法計(jì)數(shù)器 1和溫度寄存器被預(yù)置在 55℃ 所對(duì)應(yīng)的一個(gè)基數(shù)值。 停止 圖 37 DS18B20測(cè)溫原理 減法計(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 重新開始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直 到減法計(jì)數(shù)器 2計(jì)數(shù)到 0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測(cè)溫度。圖 37中的斜率累加器用于補(bǔ)償和修正測(cè)溫過(guò)程中的非線性,其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)門仍未關(guān)閉就重復(fù)上述過(guò)程,直至溫度寄存器值達(dá)到被測(cè)溫度值。 另 外,由于 DS18B20 單線通信功能是分時(shí)完成的, 它 有嚴(yán)格的時(shí)隙概念,因此讀寫時(shí)序很重要。系統(tǒng)對(duì) DS18B20 的各種操作必須按協(xié)議進(jìn)行。操作協(xié)議為:初始化 DS18B20(發(fā)復(fù)位脈沖) → 發(fā) ROM 功能命令 → 發(fā)存儲(chǔ)器操作命令 → 處理數(shù)據(jù)。 DS18B20 與單片機(jī)的接口設(shè)計(jì) DS18B20 可以采用兩種方式供電,一種是采用電源供電方式,此時(shí) DS18B20的 1 腳接地, 2 腳作為信號(hào)線, 3 腳接電源;另一種是寄生電源供電方式,單片機(jī)端口接單線總線,為保證在有效的 DS18B20 時(shí)鐘周期內(nèi)提供足夠的電流,可用一個(gè) MOSFET 管來(lái)完成對(duì)總線的上拉。 斜率累加器 計(jì)數(shù)比較器 預(yù)置 減法計(jì)數(shù)器 1 低溫系數(shù)振蕩器 預(yù)置 減到 0 溫度寄存器 高溫度系數(shù)振蕩器 減法計(jì)數(shù)器2 減到 0 成都工業(yè)學(xué)院 通信工程系畢業(yè)設(shè)計(jì)論文 14 當(dāng) DS18B20 處于寫存儲(chǔ)器操作和溫度 A/D 變換操作時(shí),總線上必須有強(qiáng)的上拉,上拉開啟時(shí)間最大為 10μs 。采用寄生電源供電方式是 VDD 和 GND 端均接地。由于單線制只有一根線,因此發(fā)送接收口必須是三態(tài)的。 本設(shè)計(jì) 采用電源供電方式,設(shè)計(jì)電路如圖 38 所 示 。 圖 38 DS18B20溫度采集引腳連接 時(shí)間可調(diào)模塊 鍵盤掃描原理 如圖 39 所示,鍵盤是由多個(gè)按鍵組成。首先將與按鍵相接的單片機(jī)接口都置高電平,當(dāng)沒(méi)有按鍵按下時(shí),單片機(jī)和地線之間是不相連的,若第 N個(gè)鍵被按下,則接這個(gè)鍵的單片機(jī)接口為低電平,通過(guò)查詢接到按鍵的單片機(jī)接口,就知道是第 N個(gè)按鍵被按下,從而進(jìn)行相應(yīng)程序處理。 圖 39 按鍵電路設(shè)計(jì) 按鍵說(shuō)明: ? “設(shè)置” :選擇要改變的量,依次為年、月、日、星期、時(shí)、分、秒。 ? “ 加 ” :按一次數(shù)值加一,依次遞增。 ? “減” :按一次數(shù)值減一 ,依次遞減。 按鍵的軟件設(shè)計(jì)思路 首先判斷是否有鍵按下,如果有則延時(shí)一段時(shí)間,再判斷是否有鍵按下,其目的是為了消除電路抖動(dòng)和消除干擾信號(hào)。一般按鍵的時(shí)間至少有十幾毫秒,而干擾信號(hào)的時(shí)間都很短,只要兩次判斷都有按鍵按下,才被確認(rèn)為真有鍵按下。當(dāng)確認(rèn)有按鍵按下后,進(jìn)行相應(yīng)的程序處理。 顯示模塊
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1