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

正文內(nèi)容

工學(xué)]基于單片機(jī)的粉塵檢測儀控制程序設(shè)計(jì)(參考版)

2024-11-12 01:15本頁面
  

【正文】 key_scan1(key3,num3)。 //設(shè)定比較值 // while(1) { key_scan1(key1,num1)。 sbit noise=P3^3。 sbit key2=P2^6。 //先給 P2口寫 1 sbit key0=P2^4。 顯示 轉(zhuǎn)換程序 主要代碼 如下所示。 按鍵控制顯示轉(zhuǎn)換部分和蜂鳴器報(bào)警 部分程序設(shè)計(jì) 按鍵控制顯示轉(zhuǎn)換 程序設(shè)計(jì) 按鍵控制顯示轉(zhuǎn)換 部分 是用一個(gè) 獨(dú)立按鍵控制 顯示值 ,當(dāng)按鍵按下時(shí),顯示粉塵濃度參考值, 當(dāng) 鍵盤處于釋放狀態(tài)時(shí),顯示當(dāng)前采集到的粉塵濃度值。 delay(100)。 P2=table2[2]。 P1=table1[m]。 delay(100)。 while(1) { P2=table2[0]。 m=l/10。 } //********************************************** //顯示函數(shù) //********************************************** void display(uchar value) { uchar l,m,s。//段選 uchar table2[]={0xf7,0xfb,0xfd,0xfe}。 開 始初 始 化設(shè) 置 顯 示 模 式字 段 碼輸 出 到 數(shù) 碼 管顯 示 數(shù) 據(jù)輸 出 到 數(shù) 碼 管 圖 35 數(shù)碼管顯示流程圖 陜西科技大學(xué)畢業(yè)論文(設(shè)計(jì)說明書) 26 顯示 程序設(shè)計(jì) 本系統(tǒng)采用 C語言編程, 所設(shè)計(jì)的 主要代碼 如下所示 。 表 34列出了數(shù)碼管顯示數(shù)字與 P1口輸出段 碼之間的對應(yīng)關(guān)系。 本模塊采用“單片機(jī)軟件譯碼”來實(shí)現(xiàn)數(shù)碼管的動(dòng)態(tài)顯示,因?yàn)楸驹O(shè)計(jì)采集的粉塵濃度經(jīng)模數(shù)轉(zhuǎn)換 和單片機(jī)處理是以 三位的十進(jìn)制數(shù) 表示的 ,所以 四個(gè) LED數(shù)碼管足以顯示粉塵濃度,本模塊采用的 4個(gè)共陽 LED數(shù)碼管 ,因?yàn)?I/O口輸出驅(qū)動(dòng)電流過小,所以每個(gè)數(shù)碼管的控制端接一個(gè)三極管對電流進(jìn)行放大而使 LED工作,而控制各個(gè)數(shù)碼管的位選轉(zhuǎn)為控制 4個(gè)三極管的基極 使三極管導(dǎo)通時(shí)數(shù)碼管工作。 基于單片機(jī)的粉塵檢測儀控制程序設(shè)計(jì) 25 顯示接口 的程序 設(shè)計(jì) 由 LED的結(jié)構(gòu)及工作原理可知,要想在 LED上顯示數(shù)據(jù)或者字母,則首先必須要把待顯示的數(shù) 據(jù)或者字母轉(zhuǎn)換成 LED的 7位顯示代碼,方可顯示相應(yīng)的數(shù)字或者字母。通過為 LED的公共引腳賦電平值 ,從而選擇某個(gè) LED顯示。其中一個(gè)并口作為 LED數(shù)碼管的控制引腳 (位選) ,另一個(gè)并口作為公共的數(shù)據(jù)總線 (段選) 。本模塊 使用了 4個(gè) LED數(shù)碼管,將所有 LED的 8段引腳并聯(lián)在一起,連接到 8位的 I/O數(shù)據(jù)總線上。根據(jù)人眼的視覺暫留效應(yīng),當(dāng)循環(huán)點(diǎn)亮的速度很快的時(shí)候,可以認(rèn)為各個(gè) LED是穩(wěn)定顯示的。而對于一些多引腳的型號(hào),通常也不夠?yàn)槊總€(gè) LED分配一個(gè) I/O并口用于顯示。 對于使用單個(gè) LED數(shù)碼管的場合,直接用單片機(jī)的一個(gè)并行口便可以控制顯示。這 4個(gè)數(shù)碼管可以顯示 999~9999之間的任何數(shù)字,也可以同時(shí)顯示 4個(gè)字符構(gòu)成的字符串。 陜西科技大學(xué)畢業(yè)論文(設(shè)計(jì)說明書) 24 圖 34 共陽 7段 LED引腳配置及內(nèi)部結(jié)構(gòu)圖 顯示方式 的選擇 在實(shí)際的單片機(jī)應(yīng)用系統(tǒng)中,使用單個(gè) LED數(shù)碼管的情況比較少,經(jīng)常需要同時(shí)使用多個(gè) LED數(shù)碼管來顯示大于 1位的數(shù)據(jù)或字符串。從圖中可以看出,其中 7個(gè)發(fā)光二極管構(gòu)成字形“ 8”,可以用來顯示數(shù)字,另一個(gè)發(fā)光二極管構(gòu)成小數(shù)點(diǎn)。 7段 LED顯 示模塊可以分為共陰極和共陽極兩種。LED數(shù)碼管可以根據(jù)控制不同組合的二極管導(dǎo)通,來顯示各種數(shù)據(jù)和字符。 LED 數(shù)碼管的選擇 LED數(shù)碼管是由若干個(gè)發(fā)光二極管組成的顯示字段的顯示器件,一般簡稱為數(shù)碼管。目前,在單片機(jī)中最常用的是 LED數(shù)碼管顯示。 數(shù)碼管顯示部分的程序設(shè)計(jì) 對于人機(jī)交互式單片機(jī)系統(tǒng)來說,不僅需要響應(yīng)用戶輸入,同時(shí)也需要將一些測控信息輸出顯示。 delay(200)。 value=P0。 while(EOC==0)。 ST=1。 //************************************************ //自己設(shè)定短時(shí)間延時(shí) //************************************************ void delay(uint a) { while (a)。 unsigned char channel=0xbc。 //模數(shù)轉(zhuǎn)換控制 位 設(shè)置 sbit OE=P3^1。 陜西科技大學(xué)畢業(yè)論文(設(shè)計(jì)說明書) 22 開 始設(shè) 置 模 擬 通 道 地 址輸 出 啟 動(dòng) 信 號(hào)等 待讀 轉(zhuǎn) 換 結(jié) 果是 否 讀 取 完 數(shù) 據(jù)結(jié) 束Y修 改 模 擬 通 道 地 址N 圖 33 數(shù)據(jù)采集流程圖 信號(hào)采集 的程序 設(shè)計(jì) 本系統(tǒng)軟件設(shè)計(jì)采用 C語言編程, 所設(shè)計(jì)的 主要代碼 如下。 ADC0809 數(shù)據(jù)采集 時(shí)序圖 ADC0809數(shù)據(jù)采集及輸出控制信號(hào)時(shí)序如下圖 32所示 。 ( 5)是否轉(zhuǎn)換完畢,我們根據(jù) EOC信號(hào)來判斷。 ( 3)送要轉(zhuǎn)換的哪一通道的地址到 A, B, C端口上 。 ( 1) ADC0809內(nèi)部帶有輸出鎖存器,可以與 AT89S52單片機(jī)直接相連。因 ADC0809的內(nèi)部沒有時(shí)鐘電路,所需時(shí)鐘信號(hào)必須由外界提供,通常使用頻率為 500KHZ, VREF(+), VREF(-)為參考電壓輸入。 D7- D0為數(shù)字量輸出線。 OE為輸出允許信號(hào),用于控制三條輸出鎖存器向單片機(jī)輸出轉(zhuǎn)換得到的數(shù)據(jù)。 EOC為轉(zhuǎn)換結(jié)束信號(hào)。 表 33 模擬信號(hào)輸入信道選擇 C B A 選擇的通道 0 0 0 IN0 0 0 1 IN1 0 1 0 IN2 0 1 1 IN3 1 0 0 IN4 1 0 1 IN5 1 1 0 IN6 1 1 1 IN7 數(shù)字量輸出及控制線 :11條 ST為轉(zhuǎn)換啟動(dòng)信號(hào)。 A, B和 C為地址輸入線,用于選通 IN0- IN7上的一路模擬量輸入。 (4) 引線功能: 地址輸入和控制線 :4條 ALE為地址鎖存允許輸入線,高電平有效。 A、 B、 C:地址輸入線。 OE:輸出允許控制端,用以打開三態(tài)數(shù)據(jù)輸出鎖存器。 ALE:地址鎖存允許信號(hào)輸入端。 REF( ):參考電壓負(fù)端。 GND:地。 IN0IN7: 8位模擬量輸 入引腳。三態(tài)輸出鎖器用于鎖存 A/D轉(zhuǎn)換完的數(shù)字量,當(dāng) OE端為高電平時(shí),才可以從三態(tài)輸出鎖存器取走轉(zhuǎn)換完的數(shù)據(jù)。 (1) 內(nèi)部結(jié)構(gòu): ADC0809由一個(gè) 8路模擬開關(guān)、一個(gè)地址鎖存與譯碼器、一個(gè) A/D轉(zhuǎn)換器 和一個(gè)三態(tài)輸出鎖存器組成。 A/D 轉(zhuǎn)換器的選擇 ADC0809是帶有 8位 A/D轉(zhuǎn)換器、 8路多路開關(guān)以及微處理機(jī)兼容的控制邏輯的 CMOS組件。當(dāng)三個(gè)獨(dú)立按鍵全部設(shè)置完畢后,將三個(gè)獨(dú)立按鍵所對應(yīng)的寄存器里面的數(shù)據(jù)做十進(jìn)制的累加處理得 num,從而確定了濃度參考值。 num=num1*100+num2*10+num3。 key_scan1(key2,num2)。 } } void main() { 基于單片機(jī)的粉塵檢測儀控制程序設(shè)計(jì) 19 uchar num1,num2,num3,num。 while(!key)。 while(!key)。 if(key==0) { num++。 //***************************************** //自己設(shè)定短時(shí)間延時(shí) //***************************************** void delay(uint a) { while (a)。 陜西科技大學(xué)畢業(yè)論文(設(shè)計(jì)說明書) 18 sbit key2=P2^6。 include define uchar unsigned char define uint unsigned int uchar xieyi=0xff。 注 :百位,十位,個(gè)位的獨(dú)立輸入按鍵分別接單片機(jī)的 P2^ P2^ P2^7,且分別由key key key3 表示。 基于單片機(jī)的粉塵檢測儀控制程序設(shè)計(jì) 17 開 始鍵 盤 掃 描有 鍵 閉 合延 時(shí) 去 抖掃 描 鍵 盤找 到 閉 合 鍵計(jì) 算 鍵 值閉 合 鍵 釋 放建 立 有 效 標(biāo) 志返 回建 立 無 效 標(biāo) 志YYYNNN 圖 31 鍵盤掃描流程圖 濃度參考值 設(shè)定 的 設(shè)計(jì) 因?yàn)?A/D轉(zhuǎn)換器是將模擬的 0~ 5V電壓轉(zhuǎn)換成 8個(gè)二進(jìn)制位通過 I/O口輸入單片機(jī)內(nèi),八個(gè)二進(jìn)制轉(zhuǎn)換成十進(jìn)制的范圍為 0~ 255,所以只需設(shè)置三個(gè)獨(dú)立按鍵分別獨(dú)立輸入?yún)⒖贾档陌傥?,十位,個(gè)位。 (c) 求按鍵位置,對各鍵進(jìn)行逐個(gè)掃描,最后卻定按下的鍵號(hào)。其方法為判斷到有鍵按下后,軟件延時(shí)一段時(shí)間(一般為十 ms 左右)后,再判斷鍵盤狀態(tài),如果仍為按下狀態(tài),則認(rèn)為有一個(gè)確定的鍵按下,否則按鍵抖動(dòng)處理。其方法為掃描鍵盤接入口,若全為“ 1”,則鍵盤無鍵按下,若 不全為“ 1”,則有鍵按下。在實(shí)際應(yīng)用中要想做到既能及時(shí)響應(yīng)鍵操作,又不過多的占用 CPU 的工作時(shí)間,就要根據(jù)應(yīng)用系統(tǒng)中的 CPU的忙閑情況,選擇好鍵盤的工作方式,本次設(shè)計(jì)主要是設(shè)計(jì)的小型系統(tǒng) CPU 工作比較空閑,所以用編程掃 描方式。同時(shí)可以通過獨(dú)立按鍵來進(jìn)行參考值和當(dāng)前濃度值的顯示切換。 濃度參考值 的鍵盤設(shè)定 程序設(shè)計(jì) 因?yàn)椴煌h(huán)境中粉塵濃度不同, 粉塵流動(dòng)量也不一樣, 人在不同環(huán)境中工作所承受的最大 粉塵量 也不一樣,所以在更換環(huán)境時(shí)要設(shè)置不同的粉塵濃度參考值(該環(huán)境中能接受粉塵濃度最大值),當(dāng)濃度超過所設(shè)定值時(shí),粉塵檢測儀報(bào)警, 我們根據(jù)報(bào)警就可以采取相應(yīng)措施或使人員撤離工作現(xiàn)場或動(dòng)力降低粉塵濃度。對內(nèi) ROM 和外 ROM,單片機(jī)是通過 EA 引腳來控制的,內(nèi)外統(tǒng)一,不會(huì)出錯(cuò);對內(nèi)外 RAM 而言,通過指令 MOV 和 MOVX 加以區(qū)分。 R0、 R1 和 DPTR 都可作為間接尋址寄存器使用,前者尋址范圍僅為 256B,后者為 64KB。 (3) 外部數(shù)據(jù)存儲(chǔ)器 當(dāng)用戶需處理的數(shù)據(jù)量較大而 89S52 的內(nèi)部 RAM 不夠用時(shí),單片機(jī)需要在芯片外部陜西科技大學(xué)畢業(yè)論文(設(shè)計(jì)說明書) 16 連接數(shù)據(jù)存儲(chǔ)器( RAM)和 I/O 接口。 (i) 定時(shí)器 /計(jì)數(shù)器 : 89S52 單片機(jī)有兩個(gè) 16 位定時(shí)器 /計(jì)數(shù)器 T0 和 T1,它們分別由兩個(gè)獨(dú)立的 8 位寄存器組成,共有 4個(gè)獨(dú)立的寄存器: TH0, TL0, TH1, TL1,可對這 4個(gè)寄存器尋址,但不能把 T0 和 T1 當(dāng)成 16 位寄存器來訪問。 (h) 串行數(shù)據(jù)緩沖器 SBUF: 串行數(shù)據(jù)緩沖器 SBUF 用于存放欲發(fā)送或接收的數(shù)據(jù),它實(shí)際上由兩個(gè)獨(dú)立的寄存器組成,一個(gè)是發(fā)送緩沖器,另一個(gè)是接收緩沖器。 (g) 端口 P0~ P3: 專用寄存器 P0、 P P2 和 P3 分別是 I/O 口 P0~ P3 的鎖存器。 DPTR通常用來存放 16 位地址。 (f) 數(shù)據(jù)指針 DPTR 數(shù)據(jù)指針 DPTR 是唯一 1個(gè) 16 位的可尋址的專用寄存器;由兩個(gè) 8 位寄存器 DPH 和DPL 拼裝而成,其中 DPH為 DPTR 的高 8 位, DPL 為 DPTR的低 8位??紤]到 08H~ 1FH 單元屬于工作寄存器區(qū),若程序設(shè)計(jì)中要用到這些區(qū),最好把 SP 的值置為 1FH 或更大一些,一般將堆棧開辟在 30H~ 7FH 區(qū)域中。它指示出堆棧頂部在內(nèi)部數(shù)據(jù)存儲(chǔ)器中的位置。P=1,則累加器A中 1的個(gè)數(shù)為奇數(shù);若 P=0,則累加器A中 1 的個(gè)數(shù)為偶數(shù)。 3) 在除法運(yùn)行中, OV= 1,表示除數(shù)為 0,除法不能進(jìn)行;否則, OV= 0,除數(shù)不為 0,除法可正常進(jìn)行。溢出標(biāo)志 OV 在硬件上是通過一個(gè)異或門來實(shí)現(xiàn)的, 即: OV= C6⊕ C7 其中, C6 為 D6 位向 D7 位的進(jìn)位或借位, C7 為 D7向 C 的進(jìn)位或借位。 RS RS0 與寄存器區(qū)的關(guān)系如表 32 所示。 F0():用戶標(biāo)志位 ; 它是用戶定義的一個(gè)狀態(tài)標(biāo)記,可以用軟件來使它置位或清除,也可用軟件測試 F0 以 控制程序的流向。 表 31 程序狀態(tài)字 PSW 位序 PSW7 PSW6 PSW5 PSW4 PSW3 PSW2 PSW1 PSW0 位含義 CY AC F0 RS1 RS0 OV / P 表 31中 : AC():輔助進(jìn)位位 ;
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1