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

正文內(nèi)容

基于單片機的萬年歷加溫度顯示設(shè)計畢業(yè)設(shè)計-資料下載頁

2025-07-27 08:14本頁面
  

【正文】 銹蝕和其它雜質(zhì)。○ 3焊接完成的電路板不得有斑點、裂紋、氣泡、發(fā)白等現(xiàn)象,銅箔及敷形涂覆○ 426層不得脫落、不起翹、不分層。元器件的引腳或引線表面應(yīng)滲錫均勻?!?5在完成電路的焊接后,測試之前,一定要先對電路檢測,看是否有短路情況出現(xiàn),以免芯片損壞。電源輸入電壓也是關(guān)鍵因素,在供電之前務(wù)必用萬用表先測量。4 系統(tǒng)軟件設(shè)計在系統(tǒng)軟件設(shè)計中,我們使用了 Keil μVision3,它是 2022 年 1 月 30 日 ARM 推出全新的針對各種嵌入式處理器的軟件開發(fā)工具,集成 Keil μVision3 的 RealView MDK 開發(fā)環(huán)境。 RealView MDK 開發(fā)工具 KeilμVision3 源自 Keil 公司。 RealView MDK 集成了業(yè)內(nèi)領(lǐng)先的技術(shù),包括 Keil μVision3 集成開發(fā)環(huán)境與 RealView 編譯器。支持 ARM ARM9 和最新的 CortexM3 核處理器,自動配置啟動代碼,集成 Flash燒寫模塊,強大的 Simulation 設(shè)備模擬,性能分析等功能,與 ARM 之前的工具包ADS 等相比, RealView 編譯器的最新版本可將性能改善超過 20%。Keil C51 生成的目標代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢,所以我們選擇該軟件來開發(fā)我們的萬年歷程序。27 萬年歷軟件系統(tǒng)的流程圖圖 41 系統(tǒng)軟件流程圖當接通電源開始工作后,單片機中的程序開始運行,將對DS18B20進行初始化,以便和單片機芯片達成通信協(xié)議。完成初始化后,由于本系統(tǒng)只有一個測溫元件,單片機會向其發(fā)出跳過RAM指令,接下來便可向其發(fā)送操作指令,啟動測溫程序,測溫過程完成后,發(fā)出溫度轉(zhuǎn)換指令,從而便可將溫度轉(zhuǎn)化成數(shù)字模式進行顯示讀??;同時DS1302 將讀取時分秒星期以及年月日寄存器然后通過液晶顯示實時時間、星期及日期;鍵盤電路中按鍵可對實時日歷時鐘進行調(diào)整。 溫度信息的采集通過DS18B20單線總線的所有執(zhí)行處理都從一個初始化序列開始。初始化序列包括一個由總線控制器發(fā)出的復位脈沖和隨后由從機發(fā)出的存在脈沖:(1)復位:首先我們必須對DS18B20芯片進行復位,復位就是由控制器(單片機)給DS18B20單總線至少 480us的低電平信號。當18B20接到此復位信號后則會在15~60us 后回發(fā)一個芯片的存在脈沖。 (2)存在脈沖:在復位電平結(jié)束之后,控制器應(yīng)該將數(shù)據(jù)單總線拉高,以便于在15~60us后接收存在脈沖,存在脈沖為一個60~ 240us的低電平信號。至此,通信28雙方已經(jīng)達成了基本的協(xié)議,接下來將會是控制器與18B20間的數(shù)據(jù)通信。(3)控制器發(fā)送ROM指令:雙方打完了招呼之后最要將進行交流了,ROM指令共有5條,每一個工作周期只能發(fā)一條,ROM指令分別是讀ROM數(shù)據(jù)、指定匹配芯片、跳躍ROM 、芯片搜索、報警芯片搜索。各自功能如下: Read ROM(讀ROM)[33H] (方括號中的為16進制的命令字): 這個命令允許總線控制器讀到DS18B20的64位ROM 。只有當總線上只存在一個 DS18B20的時候才可以使用此指令。Match ROM(指定匹配芯片)[55H]: 這個指令后面緊跟著由控制器發(fā)出了64位序列號,當總線上有多只DS18B20時,只有與控制發(fā)出的序列號相同的芯片才能做出反應(yīng),其它芯片將等待下一次復位。這條指令適合單芯片和多芯片掛接。 Skip ROM(跳躍ROM指令)[CCH]: 這條指令使芯片不對ROM編碼做出反應(yīng),在單總線的情況之下,為了節(jié)省時間則可以選用此指令。如果在多芯片掛接時使用此指令將會出現(xiàn)數(shù)據(jù)沖突,導致錯誤出現(xiàn)。 Search ROM(搜索芯片)[F0H]: 在芯片初始化后,搜索指令允許總線上掛接多芯片時用排除法識別所有器件的64位ROM。 Alarm Search(報警芯片搜索)[ECH]: 在多芯片掛接的情況下,報警芯片搜索指令只對附合溫度高于TH或小于TL報警條件的芯片做出反應(yīng)。只要芯片不掉電,報警狀態(tài)將被保持,直到再一次測得溫度值達不到報警條件為止。 ROM指令為8位長度,功能是對片內(nèi)的64位光刻ROM進行操作。其主要目的是為了分辨一條總線上掛接的多個器件并作處理。誠然,單總線上可以同時掛接多個器件,并通過每個器件上所獨有的ID號來區(qū)別,一般只掛接單個18B20芯片時可以跳過ROM指令(注意:此處指的跳過ROM指令并非不發(fā)送ROM指令,而是用特有的一條“跳過指令 ”)。(4)控制器發(fā)送存儲器操作指令:在ROM指令發(fā)送給18B20之后,緊接著(不間斷)就是發(fā)送存儲器操作指令了。操作指令同樣為8位,共6條,存儲器操作指令分別是寫RAM 數(shù)據(jù)、讀RAM數(shù)據(jù)、將RAM 數(shù)據(jù)復制到 EEPROM、溫度轉(zhuǎn)換、將EEPROM中的報警值復制到RAM 、工作方式切換。 Write Scratchpad (向RAM中寫數(shù)據(jù))[4EH]:這是向RAM中寫入數(shù)據(jù)的指令,隨后寫入的兩個字節(jié)的數(shù)據(jù)將會被存到地址2(報警RAM之TH)和地址3(報警29RAM之TL)。寫入過程中可以用復位信號中止寫入。 Read Scratchpad (從RAM中讀數(shù)據(jù))[BEH]:此指令將從RAM中讀數(shù)據(jù),讀地址從地址0開始,一直可以讀到地址9,完成整個RAM數(shù)據(jù)的讀出。芯片允許在讀過程中用復位信號中止讀取,即可以不讀后面不需要的字節(jié)以減少讀取時間。 Copy Scratchpad (將RAM數(shù)據(jù)復制到EEPROM中)[48H]:此指令將RAM中的數(shù)據(jù)存入EEPROM 中,以使數(shù)據(jù)掉電不丟失。此后由于芯片忙于EEPROM 儲存處理,當控制器發(fā)一個讀時間隙時,總線上輸出“0” ,當儲存工作完成時,總線將輸出 “1”。在寄生工作方式時必須在發(fā)出此指令后立刻超用強上拉并至少保持10MS,來維持芯片工作。 Convert T(溫度轉(zhuǎn)換)[44H]:收到此指令后芯片將進行一次溫度轉(zhuǎn)換,將轉(zhuǎn)換的溫度值放入RAM的第2地址。此后由于芯片忙于溫度轉(zhuǎn)換處理,當控制器發(fā)一個讀時間隙時,總線上輸出“0” ,當儲存工作完成時,總線將輸出 “1”。在寄生工作方式時必須在發(fā)出此指令后立刻超用強上拉并至少保持500MS,來維持芯片工作。 Recall EEPROM(將EEPROM 中的報警值復制到 RAM)[B8H] :此指令將EEPROM中的報警值復制到RAM 中的第4個字節(jié)里。由于芯片忙于復制處理,當控制器發(fā)一個讀時間隙時,總線上輸出“0” ,當儲存工作完成時,總線將輸出 “1”。另外,此指令將在芯片上電復位時將被自動執(zhí)行。這樣RAM中的兩個報警字節(jié)位將始終為EEPROM 中數(shù)據(jù)的鏡像。 Read Power Supply(工作方式切換)[B4H]:此指令發(fā)出后發(fā)出讀時間隙,芯片會返回它的電源狀態(tài)字,“0” 為寄生電源狀態(tài),“1”為外部電源狀態(tài)。 存儲器操作指令的功能是命令18B20作什么樣的工作,是芯片控制的關(guān)鍵。 (5)執(zhí)行或數(shù)據(jù)讀寫:一個存儲器操作指令結(jié)束后則將進行指令執(zhí)行或數(shù)據(jù)的讀寫,這個操作要視存儲器操作指令而定。 DS18B20需要嚴格的協(xié)議以確保數(shù)據(jù)的完整性。協(xié)議包括幾種單線信號類型:復位脈沖、存在脈沖、寫0、寫1 、讀0和讀1。所有這些信號,除存在脈沖外,都是由總線控制器發(fā)出的。和DS18B20間的任何通訊都需要以初始化序列開始。一個復位脈沖跟著一個存在脈沖表明DS18B20已經(jīng)準備好發(fā)送和接收數(shù)據(jù)(適當?shù)腞OM命令和存儲器操作命令)。DS18B20的復位時序:30 圖42 DS18B20復位時序圖DS18B20 的讀時序:對于DS18B20的讀時序分為讀0時序和讀1時序兩個過程。對于DS18B20的讀時隙是從主機把單總線拉低之后,在15us之內(nèi)就得釋放單總線,以讓 DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。DS18B20 在完成一個讀時序過程,至少需要60us才能完成。 圖43 DS18B20讀時序圖DS18B20 的寫時序:對于 DS18B20 的寫時序仍然分為寫 0 時序和寫 1 時序兩個過程。對于 DS18B20寫 0 時序和寫 1 時序的要求不同,當要寫 0 時序時,單總線要被拉低至少 60us,保證 DS18B20 能夠在 15us 到 45us 之間能夠正確地采樣 IO 總線上的“0” 電平,當要寫1 時序時,單總線被拉低之后,在 15us 之后就得釋放單總線。 圖 44 DS18B20 寫時序圖31 時鐘的讀取 DS1302 控制字節(jié)的說明 控制字節(jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入到DS1302 中位 6 如果為0,則表示存取日歷時鐘數(shù)據(jù),為1 表示存取 RAM 數(shù)據(jù)。位5至位1 指示操作單元的地址。最低有效位(位0)如為0 表示要進行寫操作,為1 表示進行讀操作,控制字節(jié)總是從最低位開始輸出。 圖45 DS1302控制字節(jié) DS1302 時間日期寄存器及相應(yīng)位定義表 41 為 DS1302 時間寄存器信息:表 41 DS1302 時間日期寄存器 DS1302 數(shù)據(jù)的輸入和輸出在控制指令字輸入后的下一個SCLK 時鐘的上升沿時數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0 開始。同樣,在緊跟8 位的控制指令字后的下一個SCLK 脈沖的下降沿讀出DS1302 的數(shù)據(jù),讀出數(shù)據(jù)時從低位0 位至高位7。32圖46 DS1302的時序 DS1302 讀寫部分(程序)部分DS1302 讀寫模塊與單片機進行數(shù)據(jù)交換時,先有 STC89C52 向電路發(fā)出命令字節(jié),命令字節(jié)的最高位 MSB(D7)必須為邏輯 1,如果 D7=0,則禁止寫 DS1302,即寫保護;如果 D6=0,指定時數(shù)據(jù), D6=1,指定 RAM 數(shù)據(jù);D5~D1 指定輸入的寄存器;最低位 MLB(D0)為邏輯 0,指定寫操作(輸入), =1,指定讀操作(輸出)。 若進行單字節(jié)傳送,8 位命令字節(jié)傳送結(jié)束后,在下另一個 SCLK 周期的上升沿輸入數(shù)據(jù)字節(jié),或在下八個 SCLK 周期的下降沿輸出數(shù)據(jù)字節(jié)。33變量初始化關(guān)閉 D S 1 3 0 2 寫保護復位關(guān)閉D S 1 3 0 2 地址寫入延時向該地址寫入數(shù)據(jù)復位關(guān)閉寫入 D S 1 3 0 2 地址延時開始讀地址的數(shù)據(jù)讀出地址增加地址增加顯示數(shù)據(jù)數(shù)據(jù)寫完否 ?數(shù)據(jù)讀完否 ?YN YN 圖 47 DS1302 讀寫程序模塊流程圖 溫度的顯示控制當所測溫度從 DS18B20 輸送到單片機上之后,下一步就是要將其在液晶顯示器上顯示出來。首先對液晶進行初始化,液晶顯示器 12864 的初始化過程如下:先將復位引腳置高位即 RST=數(shù)據(jù)傳輸方式設(shè)為并口方式即 PSB=1(在設(shè)計中,我們將 LCD 的該引腳接 VCC),然后將指令集調(diào)到基本指令集上來即寫指令30H,再將顯示打開、關(guān)光標、清除液晶里先前的顯示內(nèi)容即分別寫指令0CH、 01H,寫指令時需分別延時 5ms。然后就是數(shù)據(jù)的傳送過程,要使數(shù)據(jù)在液晶顯示器上顯示必須要按照其讀寫操作時序來進行,其讀、寫操作時序圖為:34寫操作時序: 圖 48 12864 液晶顯示器寫時序圖讀操作時序: 圖 49 12864 液晶顯示器讀時序圖 鍵盤模塊鍵盤模塊的軟件程序相對于溫度模塊和時鐘模塊比較簡單。鍵盤模塊的設(shè)計,關(guān)鍵是消陡。通常的按鍵所用開關(guān)為機械彈性開關(guān),當機械觸點斷開、閉合時,由于機械觸點的彈性作用,一個按鍵開關(guān)在閉合時不會馬上穩(wěn)定地接通,在斷開時也不會一下子斷開。因而在閉合及斷開的瞬間均伴隨有一連串的抖動,為了不產(chǎn)生這種35現(xiàn)象而作的措施就是按鍵消抖。按鍵的消抖,可用硬件或軟件兩種方法。因為硬件消抖需要添加額外的硬件,故這里我們采用軟件消抖。軟件方法去抖,即檢測出鍵閉合后執(zhí)行一個延時程序,5ms~10ms 的延時,讓前沿抖動消失后再一次檢測鍵的狀態(tài),如果仍保持閉合狀態(tài)電平,則確認為真正有鍵按下。當檢測到按鍵釋放后,也要給 5ms~10ms 的延時,待后沿抖動消失后才能轉(zhuǎn)入該鍵的處理程序。 蜂鳴器模塊蜂鳴器模塊的設(shè)計,主要是讓單片機產(chǎn)生一定頻率的電流信號,在我們的設(shè)計中,使用單片機通過程序輸出方波信號,來產(chǎn)生蜂鳴器需要的信號,當鬧鐘定時結(jié)束時,就可以調(diào)用蜂鳴器程序,讓蜂鳴器發(fā)出聲音。當然,我們的萬年歷再開機時會提醒用戶是否開啟按鍵時,蜂鳴器是否聲音提醒,實現(xiàn)的方法是:我們在蜂鳴器中設(shè)置了 flag 標志位,當開機時,用戶的選擇會賦給 flag 標志位,從而由單片機判斷是否讓蜂鳴器工作,為了記錄用戶的選擇,我們將 flag 標志位放在了 DS1302 的空閑寄存器中,以保證用戶的選擇不會因為系統(tǒng)的掉電而消失,當系統(tǒng)重新上電時,系統(tǒng)還可以恢復用戶的選擇。5 設(shè)計總結(jié)在硬件電路焊接和軟件程序設(shè)計分別完成的基礎(chǔ)之上,進行軟硬件的結(jié)合與調(diào)試。通過下載將在電腦上已完成的程序下載到單片機芯片中。在調(diào)試中發(fā)現(xiàn)軟件中存在的問題,及時解決問題,確保系統(tǒng)能正常工作并達到設(shè)計要求。通過反復的調(diào)試與實驗,可以證明該系統(tǒng)能夠較好
點擊復制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1