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

正文內(nèi)容

基于at89c51單片機(jī)的蔬菜大棚溫度控制系統(tǒng)的設(shè)計(jì)(編輯修改稿)

2025-10-03 19:44 本頁面
 

【文章內(nèi)容簡介】 外 ROM16 位地址輸入端,當(dāng) PSEN 信號有效時(shí),外 ROM 將相應(yīng)地 址存儲(chǔ)單元中的內(nèi)容送至數(shù)據(jù)總線 (P0 口 ), CPU 讀入后存入指定單元 [5]。 需要指出的是, 64KB 中有一小段范圍是單片機(jī)系統(tǒng)的專用單元, 0003H~0023H 是五個(gè)中斷源中斷服務(wù)程序入口地址,用戶不能安排其它內(nèi)容。單片機(jī)復(fù)位后, (PC)=0000H, CPU從地址為 0000H 的 ROM 單元中讀取指令和數(shù)據(jù)。從 0000H到 0003H 只有 3個(gè)字節(jié),根本不可能安排一個(gè)完整的系統(tǒng)程序,而單片機(jī)又是依次讀 ROM 字節(jié)的,因此,這 3 個(gè)字節(jié)只能用來安排一條跳轉(zhuǎn)指令,跳轉(zhuǎn)到其它合適的地址范圍執(zhí)行真正的主程序。 外部數(shù)據(jù)存 儲(chǔ)器 (外 RAM):外部數(shù)據(jù)存儲(chǔ)器共 64KB,讀寫外 RAM 用 MOVX 指令,控制信號是 P3 的 WR 和 RD。 讀寫外 RAM 的過程:外 RAM16 位地址分到由 P0口 (低 8 位 )和 P2 口 (高 8位 )同時(shí)輸出, ALE 信號有效時(shí)由地址鎖存器鎖存低 8位地址信號,地址鎖存器輸出的低 8位地址信號和 P2 口輸出的高 8位地址信號同時(shí)加到外 RAM16 位地址輸入 11 端,當(dāng)信號有效時(shí),外 RAM 將相應(yīng)地址單元中的內(nèi)容送至數(shù)據(jù)總線 (P0 口 ), CPU讀入后存入指定單元?;虍?dāng)信號有效時(shí),外 RAM 將數(shù)據(jù)總線 (P0 口分別傳送 )上的內(nèi)容寫入相應(yīng)地址存儲(chǔ)單元中 [6]。 外部數(shù)據(jù)存儲(chǔ)器主要用于存放數(shù)據(jù)和運(yùn)算結(jié)果。一般情況下,只有在內(nèi) RAM不能滿足應(yīng)用時(shí),才接外 RAM。其最大容量可達(dá) 64K字節(jié),外部數(shù)據(jù)存儲(chǔ)器和內(nèi)部數(shù)據(jù)存儲(chǔ)器的功能基本相同,但前者不能用于堆棧操作。 必須注意,由于數(shù)據(jù)存儲(chǔ)器與程序存儲(chǔ)器全部 64K 地址重疊,且數(shù)據(jù)存儲(chǔ)器的片內(nèi)外的低字節(jié)地址重疊。所以,對片內(nèi)、片外數(shù)據(jù)存儲(chǔ)器的操作使用不同的指令。對片內(nèi) RAM讀寫數(shù)據(jù)時(shí),無讀寫信號 (RD, WR)產(chǎn)生;對片外 RAM 讀寫數(shù)據(jù)時(shí),有讀寫信號產(chǎn)生。同樣對程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器的操作也是靠不同的控制信號 PSEN、 RD、 WR 來區(qū)分的。 另外,在片外數(shù)據(jù)存儲(chǔ)器中,數(shù)據(jù)區(qū)和擴(kuò)展的 I/O 口是統(tǒng)一編址的,使用的指令也完全相同。因此,在系統(tǒng)設(shè)計(jì)時(shí),必須合理的進(jìn)行外部 RAM 和 I/O 口的地址分配,并保證譯碼的唯一性,如表 1 所示: 表 1 地址分配 端 口 管 腳 備選功能 T2 定時(shí)器 T2 外部輸入 WR 外部數(shù)據(jù)存貯器寫選通道 RD 外部數(shù)據(jù)存儲(chǔ)器讀選通道 單片機(jī)最小系統(tǒng)電路設(shè)計(jì) 單片機(jī)最小系統(tǒng)就是保證單片機(jī)能夠正常工作的最基本的硬件電路。主要包括時(shí)鐘電路、復(fù)位電路 [7]。 單 片機(jī)工作的時(shí)間基準(zhǔn)是有時(shí)鐘電路提供的。在單片機(jī)的 XTAL1 和 XTAL2 管腳,按圖 3 所示接上晶振和電容就夠成了單片機(jī)的時(shí)鐘電路。 12 圖 3 時(shí)鐘電路 圖中電容 C C2 對晶振頻率有微調(diào)的作用,通常的取值范圍為( 30+10pf)。石英晶體選擇 12MHz,選擇不同的石英晶體,其結(jié)果只是機(jī)器周期不同。 單片機(jī)的復(fù)位方式有上電復(fù)位和手動(dòng)復(fù)位兩種。本設(shè)計(jì)系統(tǒng)采用上電自動(dòng)復(fù)位和手動(dòng)復(fù)位組合電路,如圖 4所示復(fù)位電路。 圖 4 復(fù)位電路 圖中可以看到單片機(jī)的 RST 引腳連接 R1( 10K)、 C3( 10uf),按鍵 可以選擇專用的復(fù)位按鍵,也可以選擇輕觸開關(guān)。只要 VCC 上升時(shí)間不超過 1ms,他們都能很好的工作。 溫度采集部分設(shè)計(jì) 本系統(tǒng)采用采用了 DS18B20 單總線可編程溫度傳感器 ,來實(shí)現(xiàn)對溫度的采集和轉(zhuǎn)換,與單片機(jī) 口相連,直接與單片機(jī)通訊,大大簡化了電路的復(fù)雜度。 DS18B20 是美國 DALLAS 半導(dǎo)體公司推出的支持“一線總線”接口的溫度傳感器,它具有微小化、功耗低、性能高、高抗干擾能力、容易搭配微處理器等優(yōu)點(diǎn),可直接將溫度轉(zhuǎn)化為串行數(shù)字信號供處理器處理 [8]。如圖 5所示。 13 圖 5 溫度采集 按鍵電路設(shè)計(jì) 基于單片機(jī)的溫度控制系統(tǒng)工作時(shí)應(yīng)具備以下功能:一、可以切換顯示實(shí)時(shí)溫度和溫度上下限的值。二、可以調(diào)節(jié)溫度上下限。要實(shí)現(xiàn)這些功能,可以通過按鍵輸入電路 [9]。 鍵盤結(jié)構(gòu)可分為獨(dú)立式鍵盤和行列式鍵盤(矩陣式)兩類,由于本系統(tǒng)只采用 3 個(gè)按鍵,因此可選用獨(dú)立式按鍵。如圖 6所示,電路有三個(gè)按鍵組成,按鍵采用輕觸開關(guān)。 圖 6 按鍵電路 各個(gè)按鍵的功能: S1:功能鍵(顯示溫度值、報(bào)警上限、報(bào)警下限三態(tài)循環(huán)。) S2:遞減鍵(當(dāng)顯示溫度報(bào)警上下限時(shí), 按此鍵則顯示的報(bào)警上限和下限減 1.) S3:遞增鍵(當(dāng)顯示溫度報(bào)警上下限時(shí),按此鍵則顯示的報(bào)警上限和下限加 1.) 數(shù)碼管顯示電路設(shè)計(jì) 單片機(jī)應(yīng)用系統(tǒng)中,通常都需要進(jìn)行人機(jī)對話,這包括人對應(yīng)用系統(tǒng)的狀態(tài)干預(yù)和數(shù)據(jù)輸入,以及應(yīng)用系統(tǒng)向外界顯示運(yùn)行狀態(tài)和運(yùn)行結(jié)果等。 14 數(shù)碼管顯示電路通過位驅(qū)動(dòng)電路和段驅(qū)動(dòng)電路組合而成。由于數(shù)碼管顯示器不能被單片機(jī)的并行口驅(qū)動(dòng),所以必須采用專門的驅(qū)動(dòng)電路芯片,讓它產(chǎn)生足夠大的電流,顯示器才能正常工作。如果驅(qū)動(dòng)電路能力差,即負(fù)載能力不夠,顯示器亮度就低,而且驅(qū)動(dòng) 電路長期在超負(fù)荷下運(yùn)行非常容易損壞 [10]。 數(shù)碼管顯示器的顯示控制方式分為靜態(tài)顯示和動(dòng)態(tài)顯示兩種,若選擇靜態(tài)顯示,則數(shù)碼管驅(qū)動(dòng)器的選擇較為簡單,只要驅(qū)動(dòng)器的驅(qū)動(dòng)能力與顯示器的電流相匹配即可,而且一般只需考慮斷的驅(qū)動(dòng);動(dòng)態(tài)顯示則不同,由于一位數(shù)據(jù)的顯示是由段和位選信號共同配合完成的,因此,要同時(shí)考慮段和位的驅(qū)動(dòng)能力,而且段的驅(qū)動(dòng)能力決定位的驅(qū)動(dòng)能力 [11]。 本系統(tǒng)采用并行驅(qū)動(dòng)動(dòng)態(tài)顯示。采用單片機(jī) P2 口的低 3位作為數(shù)碼管的位碼輸出信號, P0 口作為段碼輸出信號。該驅(qū)動(dòng)電路如圖 220所示, P0口作為段碼輸出信號需外接上拉電阻。由圖 7可以看到,原理圖中用 3個(gè)三極管作為數(shù)碼管的位驅(qū)動(dòng)。 圖 7 數(shù)碼管顯示電路 溫度控制電路設(shè)計(jì) 本設(shè)計(jì)通過繼電器控制外部負(fù)載來達(dá)到升降溫的目的,當(dāng)溫度超過設(shè)置上限時(shí),電機(jī)運(yùn)轉(zhuǎn)連接風(fēng)扇降低大棚內(nèi)部溫度,當(dāng)溫度低于設(shè)置下限時(shí),電熱爐加熱升高大棚內(nèi)部溫度。( LED 燈管作用為判斷當(dāng)前負(fù)載的工作情況)如圖 8 所示。 15 圖 8 溫度控制電路 報(bào)警電路設(shè)計(jì) 當(dāng)溫度達(dá)到或超過上下限是就會(huì)報(bào)警,報(bào)警電路如圖 9所示: 圖 9 報(bào)警電路 報(bào)警電路與單片機(jī)的 口相連當(dāng)單片機(jī)輸出一個(gè)低電平時(shí),蜂鳴器就會(huì)發(fā)出報(bào)警信號,說明溫度已經(jīng)超過規(guī)定的上下限值,外部輸出設(shè)備應(yīng)該啟動(dòng)進(jìn)行相應(yīng)的措施。只用在人按下復(fù)位按鈕或溫度在允許的范圍內(nèi)報(bào)警電路就不會(huì)觸動(dòng)。 16 第 4 章 系統(tǒng)軟件設(shè)計(jì) 該系統(tǒng)程序的編寫采用模塊化程序設(shè)計(jì),采用模塊化程序設(shè)計(jì)的優(yōu)點(diǎn)在于:每個(gè)模塊都可以分配給不同的程序員完成,從而縮短開發(fā)周;各個(gè)模塊高聚合、模塊之間低耦合,只要模塊之間確定了參數(shù)遞的接口,不管那個(gè)模塊內(nèi)部的改動(dòng),均不會(huì)影響其他模塊,從而使件產(chǎn)品的生產(chǎn)更加靈活;系統(tǒng)細(xì)化到模塊,條理清晰,系 統(tǒng)更加容易理解和實(shí)現(xiàn);容易維護(hù)、系統(tǒng)可靠 [12]。系統(tǒng)程序主要包括以下幾個(gè)部分:主程序、按鍵掃描、定時(shí)器 0 中斷子程序。 主程序流程圖 總模塊流程圖如圖 10 所示。本軟件設(shè)計(jì)采用循環(huán)查詢來處理各個(gè)模塊,溫度是緩慢變化量所以可以滿足性能要求。以及主程序的中斷流程圖。 初 始 化D S 1 8 B 2 0 是 否 存 在L E D 燈 亮顯 示 上 次 數(shù) 值數(shù) 據(jù) 處 理鍵 盤 掃 描 子 程 序是 否顯 示 子 程 序溫 度 是 否 高 于 設(shè) 置 溫 度L E D 燈 亮風(fēng) 扇電 熱 爐是 否開 始 ( a) 17 定 時(shí) 器 中 斷如 果 顯 示 報(bào) 警 上 限如 果 顯 示 溫 度 如 果 顯 示 報(bào) 警 下 限讀 取 溫 度 并 轉(zhuǎn) 換 、顯 示 , 超 溫 報(bào) 警讀 取 報(bào) 警 上 限 并 轉(zhuǎn)換 、 顯 示 , 如 果加 、 減 、 存 、 恢 復(fù)則 作 相 應(yīng) 操 作讀 取 報(bào) 警 下 限 并 轉(zhuǎn)換 、 顯 示 , 如 果加 、 減 、 存 、 恢 復(fù)則 作 相 應(yīng) 操 作掃 描 數(shù) 碼 管中 斷 返 回 ( b) 圖 10 主程序流程圖 鍵盤掃描子程序 鍵 盤掃描子程序如圖 11 所示: 鍵盤掃描功能鍵是否按下設(shè)置上下限報(bào)警值主函數(shù)是開始 圖 11 鍵盤掃描子程序 18 讀取 DS18B20 溫度模塊子程序 每次對 DS18B20 操作時(shí)都要按照 DS18B20 工作過程中的協(xié)議進(jìn)行。 初始化 ROM 操作命令 存儲(chǔ)器操作命令 處理數(shù)據(jù)。程序流程圖如圖12所示。 初 始 化DS18B20存 在 ?ROM操 作 命 令存 儲(chǔ) 操 作 命 令讀 取 溫 度 值否是開 始返 回 圖 12 讀取 DS18B20溫度子程序流程圖 數(shù)據(jù)處理子程序 由于 DS18B20 轉(zhuǎn)換后的代碼并不 是實(shí)際的溫度值,所以要進(jìn)行數(shù)據(jù)處理。由于本程序采用的是 的精度,小數(shù)部分的值,可以用后四位代表的實(shí)際數(shù)值乘以 ,得到真正的數(shù)值,數(shù)值可能帶幾個(gè)小數(shù)位,所以采取四舍五入,保留一位小數(shù)即可。也就說,本系統(tǒng)的溫度精確到了 度。 首先程序判斷溫度是否是零下,如果是,則 DS18B20 保存的是溫度的補(bǔ)碼值,需要對其低 8 位( LS Byte)取反加一變成原碼。處理過后把 DS18B20 的溫度復(fù)制到單片機(jī)的 RAM 中,里面已經(jīng)是溫度值的 Hex 碼了,然后轉(zhuǎn)換 Hex 碼到 BCD碼,分別把小數(shù)位,個(gè)位,十位的 BCD 碼存入 RAM 中 [13]。數(shù)據(jù)處理子程序流程 19 圖如圖 13 所示。 數(shù) 據(jù) 傳 遞溫 度 是 否 為 負(fù) ? 求 補(bǔ) 運(yùn) 算B C D 碼 轉(zhuǎn) 換返 回否是 圖 13 數(shù)據(jù)處理子程序流程 20 第 5章 系統(tǒng)的仿真 編程軟件簡介 本系統(tǒng)的編程軟件選用 Keil C51。 Keil C51 是美國 Keil Software 公司出品的 51 系列兼容單片機(jī) C語言軟件開發(fā)系統(tǒng)。 與匯編相比, C 語言 具有語言簡潔、緊湊,使用方便、靈活,運(yùn)算符豐富,數(shù)據(jù)類型豐富等特點(diǎn) 。 Keil 提供了包括 C 編譯器、 宏匯 編、連接器、庫管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個(gè)集成開發(fā)環(huán)境( μ Vision)將這些部分組合在一起 [14]。 Keil C51 是一種 支持 8051 微控制器 體系結(jié)構(gòu)的 Keil 開發(fā)工具,適合每個(gè)階段的開發(fā)人員,不管是專業(yè)的 應(yīng)用工程師 ,還是剛學(xué)習(xí) 嵌入式軟件開發(fā) 的學(xué)生。 產(chǎn)業(yè)標(biāo)準(zhǔn)的 Keil C 編譯器 、宏 匯編器 、 調(diào)試器 、實(shí)時(shí)內(nèi)核、單板計(jì)算機(jī)和仿真器 ,支持所有的 251 系列微控制器,幫助你如期完成項(xiàng)目進(jìn)度。 當(dāng)你開始一個(gè)新項(xiàng)目,只需簡單的從設(shè)備數(shù)據(jù)庫選擇使用的設(shè)備, μV ision IDE將設(shè)置好
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1