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

正文內(nèi)容

工學(xué)]基于單片機(jī)的粉塵檢測儀控制程序設(shè)計(jì)(編輯修改稿)

2024-12-14 01:15 本頁面
 

【文章內(nèi)容簡介】 邏輯操作,支持 2種軟件可選擇節(jié)電模式??臻e模式下, CPU停止工作,允許 RAM、定時器 /計(jì)數(shù)器、串口、中斷繼續(xù)工作?;趩纹瑱C(jī)的粉塵檢測儀控制程序設(shè)計(jì) 7 掉電保護(hù)方式下, RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個中斷或硬件復(fù)位為止。 (2) 部分引腳功能: XTAL1: 接外部晶振的一個引腳。在 單片機(jī)內(nèi)部,它是一反相 放大器輸入端,這個放大器構(gòu)成了片內(nèi)振蕩器。它采用外部振蕩器時,此 引腳應(yīng)接地。 XTAL2: 接外部晶振的一個引腳。在片內(nèi)接至振蕩器的反相放大器輸出端和內(nèi)部時鐘發(fā)生器輸入端。當(dāng)采用外部振蕩器時,則此引腳接外部振蕩信號的輸入。 RST: 復(fù)位輸入。晶振工作時, RST腳持續(xù) 2個機(jī)器周期高電平將使單片機(jī)復(fù)位??撮T狗計(jì)時完成后, RST 腳輸出 96個晶振周期的高電平。特殊寄存器 AUXR(地址 8EH)上的DISRTO位可以使此功能無效。 DISRTO默認(rèn)狀態(tài)下,復(fù)位高電平有效 。 ALE/PROG : ALE表示允許地址鎖存允許信號。當(dāng)訪問外部存儲器時, ALE信號負(fù)跳變來觸發(fā)外部的 8位鎖存器 (如 74LS373),將端口 P0 的地址總線 (A0A7)鎖存進(jìn)入鎖存器中。在非訪問外部存儲器期間, ALE引腳的輸出頻率是系統(tǒng)工作頻率的 1/16,因此可以用來驅(qū)動其他外圍芯片的時鐘輸入。 PSEN : 訪問外部程序存儲器選通信號,低電平有效。在訪問外部程序存儲器讀取指令碼 時, 每個機(jī)器周期產(chǎn)生二次 PSEN 信號。在執(zhí) 行片內(nèi)程序存儲器指令時,不產(chǎn)生 PSEN 信號,在訪問外部數(shù)據(jù)時,亦不產(chǎn)生 PSEN 信號。 P0: P0口 (~ )是一個 8位漏極開路雙向輸入輸出端口, 內(nèi)部沒有上拉電阻,所以端口要外接八個上拉電阻。 當(dāng)訪問外部數(shù)據(jù)時,它是地址總線(低 8位)和數(shù)據(jù)總線復(fù)用。外部不擴(kuò)展而單片應(yīng)用時,則作一般雙向 I/O口用。 P0口每一個引腳可以推動 8個 LSTTL負(fù)載。 P2: P2口 (~ )是具有內(nèi)部提升電路的雙向 I/0端口 (準(zhǔn)雙向并行 I/O口 ),當(dāng)訪問外部程序存儲器時,它是 高 8位地址。外部不擴(kuò)展而單片應(yīng)用時,則作一般雙向 I/O口用。每一個引腳可以推動 4個 LSTL負(fù)載。 P1: P1口 (~ )口是具有內(nèi)部提升電路的雙向 I/0端口 (準(zhǔn)雙向并行 I/O口 ),其輸出可以推動 4個 LSTTL負(fù)載。僅供用戶作為輸入輸出用的端口。 P3: P3口 (~ )口是具有內(nèi)部提升電路的雙向 I/0端口 (準(zhǔn)雙向并行 I/O口 ),它還提供特殊功能,包括串行通信、外部中斷控制、計(jì)時計(jì)數(shù)控制及外部隨機(jī)存儲器內(nèi)容的讀取或?qū)懭肟刂频裙δ堋F涮厥夤δ芤_分配如下: RXD 串行通信輸入 TXD 串行通信輸出 T0 計(jì)數(shù)器 0 外部事件計(jì)數(shù)輸入端 T1 計(jì)數(shù)器 1 外部事件計(jì)數(shù)輸入端 0INT 外部中斷 0輸入 ,低電平有效 1INT 外部中斷 1輸入 ,低電平有效 陜西科技大學(xué)畢業(yè)論文(設(shè)計(jì)說明書) 8 WR 外部隨機(jī)存儲器的寫選通,低電平有效 RD 外部隨機(jī)存儲器的讀選通,低電平有效 各 外圍電路 模塊 由圖 21系統(tǒng)結(jié)構(gòu)圖和本系統(tǒng)所完成的功能可以將 外圍電路 分為以下幾個模塊。 (1) 模擬信號采集單元:即 ADC0809 將 5V 的模擬信號轉(zhuǎn)換成數(shù)字信號。 (2) LED 數(shù)碼管顯示:通過 I/O 口控制數(shù)碼管的段選和位選,顯示數(shù)字化的粉塵濃度 ,使報(bào)告更形象化,而且也使報(bào)告顯示系統(tǒng)具有雙重保障。 (3) 鍵盤設(shè)定參考值:通過獨(dú)立按鍵輸入粉塵濃度參考值,與當(dāng)前采集的濃度值對比判斷濃度是否在安全范圍內(nèi)。 (4) 看門狗:使系統(tǒng)因故死機(jī)后能自動恢復(fù)正常。 (5) 蜂鳴器報(bào)警:濃度超標(biāo)時,報(bào)警提示,使 設(shè)計(jì)更完整。 (6) 顯示切換:切換顯示當(dāng)前濃度與濃度參考值,可以觀察當(dāng)前濃度與危險(xiǎn)濃度的差距。 (7) 電源:將電源轉(zhuǎn)化為 12V 的電壓供電。 軟件程序設(shè)計(jì) 是依據(jù)硬件將各部分的功能發(fā)揮,并使之成為一個整體。 程序框圖和流程圖 因?yàn)檐浖陀布敲懿豢煞值?,所?由 系統(tǒng)的 硬件 結(jié)構(gòu)圖 可以 得出 軟件設(shè)計(jì)的程序框圖和流程圖。 程序框圖 設(shè)計(jì) 根據(jù)硬件系統(tǒng)結(jié)構(gòu)圖 所得出的 各模塊如圖 22所示。 主 控 制 器 C P U 信 號 采 集 部 分 顯 示 部 分 鍵 盤 部 分 看 門 狗 部 分 圖 22 系統(tǒng) 各 模塊 組成 基于單片機(jī)的粉塵檢測儀控制程序設(shè)計(jì) 9 如圖 22所示系統(tǒng) 所 設(shè)計(jì)的程序 分 為以下 四 個部分。 (1) 信號 采集的 程序 : 該程序設(shè)計(jì)主要是將模數(shù)轉(zhuǎn)換得來的數(shù)字信號輸入到單片機(jī)內(nèi)部。 (2) LED 的顯示程序 : 本程序設(shè)計(jì)主要完成粉塵濃度的數(shù)字顯示。 (3) 看門狗的復(fù)位程序 :該程序設(shè)計(jì)主要完成程序飛跑或死機(jī)時系統(tǒng)的復(fù)位。 (4) 鍵盤輸入部分 :該部分主要完成濃度參考值的設(shè)定和顯示切換。 粉塵檢測儀 程序 主 流程 圖 設(shè)計(jì) 根據(jù)硬件系統(tǒng)結(jié)構(gòu)圖所設(shè)計(jì) 的 程序 主 流程圖如圖 23 所示。 陜西科技大學(xué)畢業(yè)論文(設(shè)計(jì)說明書) 10 開 始系 統(tǒng) 初 始 化鍵 盤 設(shè) 定 濃 度 最 大 限顯 示 濃 度 最 大 限采 集 當(dāng) 前 濃 度A / D 轉(zhuǎn) 換當(dāng) 前 濃 度 濃 度 最 大 限顯 示 當(dāng) 前 濃 度切 換 顯 示5 s 定 時報(bào) 警 、 顯 示采 取 相 應(yīng) 措 施YN 圖 23程序 主 流程圖 基于單片機(jī)的粉塵檢測儀控制程序設(shè)計(jì) 11 3 粉塵測試儀的 程序 設(shè)計(jì) 編程 語言的選擇 C 語言是一種高級程序設(shè)計(jì)語言,它提供了十分完備的規(guī)范化流程控制結(jié)構(gòu)。因此采用 C51 語言設(shè)計(jì)單片機(jī)應(yīng)用系統(tǒng)程序時,首先要盡可能地采用結(jié)構(gòu)化的程序設(shè)計(jì)方法,這樣可使整個應(yīng)用系統(tǒng)程序結(jié)構(gòu)清晰,易于調(diào)試和維護(hù)。對于一個較大的程序,可將整個程序按功能分成若干個模塊,不同的模塊完成不同的功能。對于不同的功能模塊,分別指定相應(yīng)的入口參數(shù)和出口參數(shù),而經(jīng)常使用的一些程序最好編成函數(shù),這樣既不會引起整個程序管理的混亂,還可增強(qiáng)可讀性,移植性也好。 在程序設(shè)計(jì)過程中,要充分利用 C51 語言的預(yù)處理命令。對于一些常用的常數(shù),如 TRUE, FALSE, PI 以及各種特殊功能寄存器,或程序中一些重要的依據(jù)外界條件可變的常量,可采用宏定義 # define或集中起來放在一個頭文件中進(jìn)行定義,再采用文件包含命令 # include將其加入到程序中去。這樣當(dāng)需要修改某個參量時,只須修改相應(yīng)的包含文件或宏定義,而不必對使用它們的每個程序文件都作修改,從而有利于文件的維護(hù)和更新。 C 語言的優(yōu)點(diǎn) 根據(jù) C 語言的功能可以歸結(jié)出 C語言具有以下優(yōu)點(diǎn)。 (1) C 語言是編譯型語言,具有高級語言的特點(diǎn),也具備匯編語言簡潔、可以控制硬件的功能。 (2) 表達(dá)能力強(qiáng),易于編程,可讀性好。 (3) 可移植性好, C語言本身不依賴系統(tǒng)硬件,可以很容易移植到不同類型的單片機(jī)上。編譯時要選擇芯片,將同一條語句變成該芯片對應(yīng)的指令。 (4) 有豐富的庫函數(shù)可以調(diào)用。 (5) 寄存器的分配,由編譯器完成,編程者可將精力集中到軟件整體設(shè)計(jì),有利于提高軟件質(zhì)量。(而匯編語言編程者必須記住這些分配) (6) 可以多人編寫一個大程序,將 各模塊之間接口確定即可。 (7) 有實(shí)時多任務(wù)操作系統(tǒng)( RTOS),可以合理的分配 CPU 的時間及單片機(jī)的資源。 (8) 開發(fā)周期短,適合工程技術(shù)人員的 開發(fā)應(yīng)用軟件。 單片機(jī) C 語言與一般 C 語言的異同 由 單片機(jī) C語言和一般 C語言編譯條件和環(huán)境的不同可以歸結(jié)出以下幾個相同點(diǎn)和不同點(diǎn)。 陜西科技大學(xué)畢業(yè)論文(設(shè)計(jì)說明書) 12 相同點(diǎn):語法結(jié)構(gòu)基本相同,也是采用函數(shù)結(jié)構(gòu);大部分函數(shù)相同。 不同點(diǎn): (1) 輸入、輸出不同 (2) 數(shù)據(jù)類型不同 單片機(jī)增加了 bit,sbit,sfr,sfr16 等數(shù)據(jù)類型。 (3) 單片機(jī) C語言增加了存儲 類型。 (4) 不隱含支持遞歸調(diào)用,要遞歸調(diào)用前必須說明。 (5) 庫函數(shù)不同 如在 CX51 中沒有 fputs 等庫函數(shù)。在 ANSIC 中沒有 _NOP_,_crol_()應(yīng)用是查相關(guān)資料。 (6) 單片機(jī) C有自動覆蓋技術(shù) — 單片機(jī)的 RAM 和計(jì)算機(jī)相比少的可憐,所以在編譯時會自動分析判斷,將不再被用的變量占用的空間重新使用。 (7) 單片機(jī) C有優(yōu)化技術(shù),可以最大限度減少代碼長度。 (8) 由于單片機(jī) C語言編程的目的是要將程序最后固化到單片機(jī)或者 EPROM 中,所以最后要 產(chǎn)生 [后綴 .HEX 的文件,該文件可以固化到單片機(jī) 中。 注:用單片機(jī) C 語言編程是要注意 以下兩個方面 。 (1) 應(yīng)用單片機(jī)的 C 更要注重對系統(tǒng)資源的理解 。 (2) 對于程序上應(yīng)用的各種算法要精簡 。 控制器 內(nèi)部存儲空間分布 本設(shè)計(jì)是以 AT89S52 為核心控件,完成數(shù)據(jù)的采集,處理,顯示等功能。所以單片機(jī) AT89S52 作為主控制器要控制 A/D 轉(zhuǎn)換的模數(shù)轉(zhuǎn)換工作和數(shù)據(jù)采集的工作,還要完成鍵盤的掃描工作,同時當(dāng)現(xiàn)場濃度值大于設(shè)定值時還要驅(qū)動蜂鳴器報(bào)警。 數(shù)據(jù)采集時還要設(shè)定采集的間隔時間,所以還要用到定時器。若要完成以上各部分工作就要熟悉單片機(jī)的內(nèi)部存儲空間分布情 況,以便在程序設(shè)計(jì)過程中如何給各部分分配空間地址從而完成整個系統(tǒng)程序的設(shè)計(jì)。 AT89S52 內(nèi)部存儲空間分布如下所述。 (1) 數(shù)據(jù)存儲器空間(低 128 單元) 數(shù)據(jù)存儲器空間(低 128 單元)按功能劃分為以下幾部分。 (a) 通用寄存器區(qū) 00H~ 1FH 的 32個單元是 4個通用工作寄存器區(qū),每個區(qū)有 8個 8 位寄存器,其編號為 R0~ R7。在任 一 刻, CPU 只能使用其中的一組寄存器,并且把正在使用的那組寄存器稱之為當(dāng)前寄存器 區(qū)。到底選擇哪一個工作組為當(dāng)前工作區(qū),取決于專用寄存器 PSW(程序狀態(tài)字)中的 RS1 和 RS0 位的狀態(tài)。 RS1 和 RS0 的狀態(tài)可通過指令來改變。用戶可以通過設(shè)置 RS1 和 RS0 位的狀態(tài)來選擇 /切換當(dāng)前工作寄存器區(qū),這給用戶保護(hù)寄存器中的內(nèi)容提供了極大的方便。 (b) 尋址區(qū) 基于單片機(jī)的粉塵檢測儀控制程序設(shè)計(jì) 13 RAM中的 20H~ 2FH 的 16個單元除了可作為一般 RAM 單元進(jìn)行字節(jié)尋址外,還可進(jìn)行位尋址 , 作位尋址區(qū)。 位尋址區(qū)共有 16個 RAM 單元,合計(jì) 128 位,位地址為 00H~ 7FH。 89S52單片機(jī)具有位處理機(jī)(又稱布爾處理機(jī))功 能,位處理機(jī)的存儲空間就包括這個位尋址區(qū) 。 (c) 用戶區(qū) 在內(nèi)部 RAM 低 128 單元中,通用寄存器占去 32個單元,位尋址區(qū)占去 16個單元,剩下的 80個單元就是供用戶使用的一般 RAM 區(qū),地址單元為 30H~ 7FH。 對這部分區(qū)域的使用不作任何規(guī)定和限制,但應(yīng)當(dāng)說明的是,堆棧一般開辟在此區(qū)。 關(guān)于堆棧 ,堆棧是一個特殊的存儲區(qū)域 ,它后進(jìn) 先出,而單片機(jī)的堆棧是地址增加型,即壓入數(shù)據(jù)時地址指針增加。堆棧 的操作有壓入: PUSH,彈出: POP。 (2) 特殊功能寄存器 SFR(高 128 單元) 內(nèi)部 RAM 的高 128 單元是給特殊寄存器使用的,因此稱之為專用寄存器區(qū),其單元地址為 80H~ FFH。因?yàn)檫@些寄存器的功能已作專門規(guī)定,所以稱其為專用寄存器或特殊功能寄存器( Special Function Registers)。特殊功能寄存器的總數(shù)為 21個,僅占用了 80H~ FFH 中的很小一部分。 21個特殊功能寄存器是不連續(xù)地分散在內(nèi)部 RAM 的高 128 單元之中,盡管其中還有許多空閑地址,但用戶不能使用。 程序計(jì)數(shù)器 PC是獨(dú)立于 SFR 之外的唯一的一個不可尋址的專用寄存器。 PC不占 RAM 單元,在物理上是獨(dú)立存在的。它不包 括在 21個特殊功能寄存器中。 在 21個特殊功能寄存器中,有 11個寄存器不僅可以字節(jié)尋址,也可以進(jìn)行位尋址。凡是能進(jìn)行位尋址的 SFR,其特征是字節(jié)地址都能被 8 整除(字節(jié)地址的末位是 0 或 8)。 IP中有 3位、 IE 中有 2位、 PSW中有一位對用戶無實(shí)際意義,所以直接尋址位為 82位;再加上數(shù)據(jù)存儲器中的 128 位, 89S52共計(jì)有 210位可尋址位。 (a) 程序計(jì)數(shù)器 PC PC是一個 16位的計(jì)數(shù)器。其內(nèi)容為將要執(zhí)行的指令地址,尋址范圍達(dá) 64KB。 PC 有自動加 1功能,從而實(shí)現(xiàn)程序的順序執(zhí)行。 PC沒有地址,是不可 尋址的(但在物理上是存在的),因此用戶無法對它進(jìn)行讀寫;但可以通過轉(zhuǎn)移、調(diào)用返回等指令改變其內(nèi)容,以實(shí)現(xiàn)程序的轉(zhuǎn)移。 (b) 累加器 A 累加器 A為 8位寄存器,是最常用的專用寄存器,功能較多。它既可用于存放操作數(shù) ,也可用來存放中間結(jié)果。 89S52單片機(jī)中大部分單操作數(shù)指令的操作數(shù)就取自累加器,許多雙操作數(shù)指令中的一個操作數(shù)也取自累
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1