【正文】
盤的輸入值和液體點(diǎn)滴速度的實(shí)際值。由前面是系統(tǒng)方案設(shè)計(jì)所述,本設(shè)計(jì)采用 LED 顯示器。 LED 顯示器簡介 LED 顯示器是由發(fā)光二極管顯示 字段的顯示器件,也可以稱為數(shù)碼管。其外形結(jié)構(gòu)如圖38(a)所示。它由 8 個(gè)發(fā)光二極管組成,通過不同的組合可以顯示 0 A F 及小數(shù)點(diǎn)“ .”等字符。 1 0 9 8 7 6g f G N D a b1 2 3 4 5dp.e d G N D c d pabcdefgD D+ 5V 1 0 9 8 7 6g f G N D a b1 2 3 4 5dp.e d G N D c d pabcdefgD D+ 5V 1 9 8 7 6 f G ND a b 2 3 4 5dp.e d GND c dpabcdefgD D+5V (a) (b) (c) 圖 38 “ 8”字形數(shù)碼管 數(shù)碼管通常有共陰極 圖 38(b)和共陽極 圖 38(c)兩種接法, 一般共陽極數(shù)碼管必須外接電阻,共陰極 不 一定需要外接電阻。共陰極數(shù)碼管的發(fā)光二極管陰極必須接低電平,當(dāng)某發(fā)光二極管的陽極為高電平時(shí),此二極管被點(diǎn)亮; 共陽極數(shù)碼管的發(fā)光二極管是陽極接到高電平,對于需要點(diǎn)亮的發(fā)光二極管使陰極接低電平即可。顯然,要顯示某字形就應(yīng)該使此字形的相應(yīng)字段電亮,實(shí)際就是送一個(gè)用不同電平組合代表的數(shù)據(jù)至數(shù)碼管。這種裝入數(shù)碼管中 顯示字形的數(shù)據(jù)稱字形碼。 動(dòng)態(tài)顯示接口 顯示接口有靜態(tài)顯示接口和動(dòng)態(tài)顯示接口兩種。數(shù)碼管工作在靜態(tài)顯示方式下,共 貴州大學(xué) 本科畢業(yè)論文(設(shè)計(jì)) 第 18 頁 陰極或者共陽極點(diǎn)連接在一起接地或者接高電平。 每位的段選線與一個(gè) 8位并行口相連。只要在該位的段選線上保持段選碼電平,該位就能保持相應(yīng)的顯示字符。因?yàn)椴捎渺o態(tài)顯示時(shí),若 段選線直接用并行 I/O 口端,占用的 I/O 的資源過多,若采用串行口,速度又比較慢。所以本設(shè)計(jì)采用采用動(dòng)態(tài)顯示接口。 圖 39 是單片機(jī)應(yīng)用系統(tǒng)中的一種動(dòng)態(tài)顯示示意圖。 1 2 3 4 5 6ABCD654321DCBAT i t l eN u m be r R e v i s i o nS i z eBD a t e : 1 7 J u n 2 0 08 S he e t o f F i l e : E : \ 電路圖 2\ 電路圖 .d db D r a w n B y:D034D133D232D331D430D529D628D727P A 04P A 13P A 22P A 31P A 440P A 539P A 638P A 737P B 018P B 119P B 220P B 321P B 422P B 523P B 624P B 725P C 014P C 115P C 216P C 317P C 413P C 512P C 611P C 710RD5WR36A09A18R E S E T35CS6Vcc26GND78 25 51 A 121 A 241 A 361 A 482 A 1112 A 2132 A 3152 A 4171 Y 1181 Y 2161 Y 3141 Y 4122 Y 192 Y 272 Y 352 Y 431G12G19GND10V c c207 4L S 2 41A11A23A35A49A511A613GND7Y12Y24Y36Y48Y510Y612V c c147 40 6abfcgdeD P Y1234567abcdefg8dpdpabfcgdeD P Y1234567abcdefg8dpdpabfcgdeD P Y1234567abcdefg8dpdp 圖 39 掃描式顯示電路 圖 39 中 , 8255 是單片機(jī)應(yīng) 用系統(tǒng)擴(kuò)展的 I/O 口,其中 A 口用做字形驅(qū)動(dòng), B 口用做位選掃描輸出,其余口用做其他用途。 74LS241 是 8 路正相驅(qū)動(dòng)芯片做字形驅(qū)動(dòng)。 7406 是 6 路反相驅(qū)動(dòng)芯片做位選驅(qū)動(dòng)。數(shù)碼管是 8 段共陰極的數(shù)碼管,所以發(fā)光時(shí)字形驅(qū)動(dòng)輸出“ 1”有效,位選驅(qū)動(dòng)輸出“ 0”有效。對于 8255 來講,字形碼輸出“ 1”有效, 位選掃描電平也是為“ 1”有效。工作時(shí), B 口的 6 路位選信號每次僅有一路輸出是“ 1”電平,同時(shí) A 口輸出與選通的數(shù)碼管相應(yīng)的字形碼信號,即 B 口掃描輸出位選信號, A 口輸出字形信號。 在動(dòng)態(tài)顯示工作方式下,數(shù)碼管的公共段(位選驅(qū)動(dòng)端)是分時(shí)輪流被選通的。使各個(gè)數(shù)碼管輪流被導(dǎo)通,即各數(shù)碼管是由脈沖電流導(dǎo)通的。當(dāng)所有數(shù)碼管依次顯示一便后,軟件控制循環(huán),使每位顯示器分時(shí)點(diǎn)亮。這種方式不但能提高數(shù)碼管的發(fā)光率,并且由于各個(gè)數(shù)碼管的字段線是并聯(lián)使用的,因而大大簡化了硬件線路。 各個(gè)數(shù)碼管雖然是分時(shí)輪流導(dǎo)通,但由于數(shù)碼管具有余輝特性及人眼具有視覺暫留 貴州大學(xué) 本科畢業(yè)論文(設(shè)計(jì)) 第 19 頁 作用,所以適當(dāng)選取循環(huán)掃描頻率時(shí),看上去所有數(shù)碼管是同時(shí)點(diǎn)亮的 ,察覺不出有閃爍現(xiàn)象。不過對于這種方式數(shù)碼管不宜太多,一般在 8 個(gè)以內(nèi),否則每個(gè)數(shù)碼管所分配到的實(shí)際導(dǎo)通時(shí)間太短,使亮度不足。 鍵盤接口 鍵盤工作原理 單片機(jī)應(yīng)用系統(tǒng)中,復(fù)位按鍵有專門的復(fù)位電路以外,其他的按鍵或者鍵盤都是以開關(guān)狀態(tài)來設(shè)置控制功能或者輸入數(shù)據(jù)的。 1. 鍵輸入原理 當(dāng)按下所設(shè)置的功能鍵或者數(shù)字鍵時(shí),計(jì)算機(jī)應(yīng)用系統(tǒng)應(yīng)完成該鍵所設(shè)定的功能。鍵信息輸入是與軟件結(jié)構(gòu)密切相關(guān) 的過程。對于一組鍵或者鍵盤,需要通過接口電路與CPU 相連。 CPU 可以采用查詢方式或者中斷方式了解有無鍵輸入并檢查是哪個(gè)鍵按下。 2. 鍵輸入接口與軟件應(yīng)解決的問題 鍵輸入接口與軟件應(yīng)可靠而快速的實(shí) 現(xiàn)鍵信息輸入與執(zhí)行鍵功能任務(wù)。為此,應(yīng)解決下列問題。 ( 1) 鍵開關(guān)狀態(tài)的可靠輸入 目前,無論是按鍵還是鍵盤大部分都是利用機(jī)械觸點(diǎn)的合、斷作用。由于彈性作用的影響,機(jī)械觸點(diǎn)在閉合及斷開的瞬間均有抖動(dòng)過程,從而使電壓信號也出現(xiàn)抖動(dòng),抖動(dòng)的時(shí)間長短與開關(guān)的機(jī)械特性有關(guān),一般為 5 10ms。 按鍵的穩(wěn)定閉合時(shí)間由操作人員的按鍵動(dòng)作所決定,一般為十分之幾秒至幾秒時(shí)間。為了保證 CPU 對鍵的一次閉合僅作一次鍵輸入處理,必須去除抖動(dòng)影響。 通常去除抖動(dòng)影響的方法有硬件和軟 件兩種。 硬件上是采用在鍵輸出端加 RS 觸發(fā)器或者單穩(wěn)態(tài)電路構(gòu)成去抖電路。軟件上采取的措施是:在檢測到有鍵按下時(shí),執(zhí)行一個(gè) 10ms 左右的延時(shí)程序,再確認(rèn)該鍵電平是否仍保持閉合狀態(tài)電平,若仍然保持閉合狀態(tài)電平,則確認(rèn)為該鍵處于閉合狀態(tài),從而去除了抖動(dòng)的影響。 ( 2) 對按鍵進(jìn)行編碼以給定鍵值或者直接給出鍵號 任何一組按鍵或者鍵盤都要通過 I/O 口線查詢按鍵的開關(guān)狀態(tài)。根據(jù)不同的鍵盤結(jié)構(gòu),采用不同的編碼方法。 但最后都要轉(zhuǎn)化成為與累加器中數(shù)值相對應(yīng)的鍵值,以實(shí)現(xiàn) 貴州大學(xué) 本科畢業(yè)論文(設(shè)計(jì)) 第 20 頁 按鍵功能程序的執(zhí)行。因此,一個(gè)完善的鍵盤控制程序應(yīng)能完 成以下任務(wù): ① 監(jiān)測有無鍵按下 ② 有鍵按下后,在無硬件去除抖動(dòng)電路的情況下,應(yīng)用軟件延時(shí)的方法除去抖動(dòng)影響。 ③ 有可靠的邏輯處理辦法,如 n 鍵瑣定,即只處理一個(gè)鍵,其間任何按下又松開的鍵不產(chǎn)生影響,不管一次按鍵持續(xù)多長時(shí)間,僅執(zhí)行一次鍵功能程序。 ④ 輸出特定的鍵號,以滿足散轉(zhuǎn)指令的要求。 矩陣式鍵盤 1. 工作原理 矩陣式鍵盤由行線、列線及位于行列線交點(diǎn)上的按鍵等部分組成。當(dāng)應(yīng)用系統(tǒng)需要的按鍵數(shù)量比較多時(shí)可以采用矩陣式鍵盤。 圖 310 為一 4? 4 矩陣式鍵盤的示意圖。該鍵盤需要四根行線和四根列線 工八根 I/O口線,由于采用矩陣結(jié)構(gòu),與獨(dú)立式按鍵不同,一根 I/O 線已經(jīng)不能確定哪 個(gè)鍵被按下,需要通過連接到按鍵上的兩根線的狀態(tài)來確定按鍵的狀態(tài),同時(shí)鍵的兩端均接到 I/O 口線上,不能一端接 I/O 口線一端接地,因此必須采用行線與列線信號狀態(tài)分別處理綜合考慮才能判斷鍵閉合的位置。 圖 310 矩陣式鍵盤的示意圖 貴州大學(xué) 本科畢業(yè)論文(設(shè)計(jì)) 第 21 頁 2. 矩陣式鍵盤的工作方式 在實(shí)際應(yīng)用系統(tǒng)中,鍵盤只是系統(tǒng)的一部分,鍵的 識別也只是 CPU 的工作內(nèi)容的一部分。系統(tǒng)在工作中采取何種方式對鍵盤進(jìn)行識別,讀取鍵狀態(tài)就是鍵盤的工作方式。鍵盤的工作方式主要有掃描方式和中斷方式兩種。 ( 1) 掃描方式。鍵盤的掃描方式又可以分為編程掃描和定時(shí)掃描。 編程掃描是指在特定的程序位置段上安排鍵盤掃描程序讀取鍵盤狀態(tài)。定時(shí)掃描是指利用單片機(jī)內(nèi)部或者擴(kuò)展的定時(shí)器產(chǎn)生定時(shí)中斷,在中斷中進(jìn)行鍵盤掃描的工作方式。 ( 2) 中斷方式。中斷方式是指,當(dāng)無鍵按下時(shí), CPU 處理其他工作而不必進(jìn)行鍵的掃描,當(dāng)有鍵按下時(shí),通過硬件電路向 CPU 申請鍵盤中斷,在鍵盤中斷服務(wù)程 序中完成鍵盤處理。該方法可以提高 CPU 的工作效率。 3. 鍵識別的方法 鍵識別方法是指當(dāng)鍵被按下時(shí),如何確定是哪個(gè)鍵被按下。常用的識別方法有掃描法和線反轉(zhuǎn)法。 ( 1) 掃描法。掃描法實(shí)際上是先使鍵盤的列(行)線全輸出低電平,然后判斷行(列)線狀態(tài),若行(列)線全為高電平,表示無鍵被按下;若行線不全為高電平表示有鍵被按下, 然后依次使列線為低電平,再判斷行線狀態(tài),當(dāng)行線全為高電平時(shí),表示被按下的鍵不在本列;當(dāng)行線不全為高電平時(shí),表示被按下的鍵在本列,把此時(shí)的行線狀態(tài)與列線狀態(tài)和在一起即為被按下的鍵的位置。 ( 2)線反轉(zhuǎn)法。掃描法 對鍵的識別采用逐行(列)掃描的方法獲得鍵的位置 ,當(dāng)被按下的鍵在最后一行時(shí)需要掃描 N 次( N 為行數(shù)),當(dāng) N 比較大時(shí)鍵盤的工作速度較慢,而線反轉(zhuǎn)法則不論鍵盤有多少行和多少列只需要經(jīng)過兩步即可獲得鍵的位置。線反轉(zhuǎn)法的第一步是將列線置低電平,行線置高電平,然后讀行線狀態(tài);第二步是將行線置低電平,列線置高電平,然后讀列線狀態(tài),若有鍵按下則兩次所讀狀態(tài)的結(jié)果即為鍵所在的位置。 4. 本系統(tǒng)鍵盤的工作方式為中斷方式,鍵識別方法為線反轉(zhuǎn)法。 具體鍵盤形式如圖311 所示。 PC1 PC7 為鍵盤線接到 8255 芯片上的引腳名稱, 1INT 為 8031 的中斷 1引腳。 按鈕 S1 為 “ 開始 ” 按鈕與 8031 的外部中斷 1 引腳相連, 0 到 9 為 10 個(gè)阿拉伯?dāng)?shù)字, 10 號鍵為 “ 確定 ” 鍵。工作時(shí), 先按一下開始按鈕 S1,向單片機(jī)發(fā)出中斷信號,時(shí)單片機(jī)調(diào)用鍵盤掃描程序,然后依次輸入液體點(diǎn)滴速度的百位值、十位值和個(gè)位值, 貴州大學(xué) 本科畢業(yè)論文(設(shè)計(jì)) 第 22 頁 最后按下“確定”鍵,表示輸入完成中斷返回。 1 2 3 4 5 6 7 8ABCD87654321DCBAT i t l eN u m be r R e v i s i o nS i z eA2D a t e : 1 7 J u n 2 0 08 S he e t o f F i l e : E : \電路圖 2\ 電路圖 .d db D r a w n B y:1 0K1 0K1 0K1 23 4 56 7 89 1001 2A7 40 7R85 00R990R 1 02K線圈R71KC22 2u F+5+5 + 27GNDGNDGND+51 0KS1GNDR61KGNDGND+5+5D2I N 4 1