【正文】
DPTR ;指向 PC 口 MOVX A, DPTR ;讀 PC 口 CPL A ANL A, 0FH ;屏蔽高 4 位 RET ;返回 熄滅顯示器子程序,以防掃描鍵盤時(shí),影響顯示器的顯示,因?yàn)轱@示器的位掃描線與鍵盤列掃描線共用。 圖 16 程序流程圖 在掃描鍵盤的過程中應(yīng)兼顧顯示器的顯示。程序如下: MOV DPTR, 0FF7FH ;控制口地址 →DPTR MOV A, 0AH ;控制字 →A 內(nèi)江師范學(xué)院本科畢業(yè)設(shè)計(jì) 13 MOVX DPTR, A ;控制字送到控制口 ; PC5=0 鍵盤和顯示接口電路程序設(shè) 計(jì) (1) 鍵盤和顯示器的程序設(shè)計(jì) 8255 在 MCS51 單片機(jī)應(yīng)用系統(tǒng)中廣泛用于連接外部設(shè)備,如打印機(jī)、鍵盤、顯示器以及作為控制信息的輸入、輸出口。 按鍵處理 按鍵按下? 溫度達(dá)到 值? 開始加熱? 溫度采樣 開始 初始化 結(jié)束 加熱 停止加熱 Y Y Y N N 內(nèi)江師范學(xué)院本科畢業(yè)設(shè)計(jì) 12 8255 的程序設(shè)計(jì) (1) 8255 的程序的初始化 8255 的編程如下:由第四章可得 8255 各端口地址是: A 口地址: FF7CH B 口地址: FF7DH C 口地址: FF7EH 控制 口地址: FF7FH 假設(shè)要求 8255 工作方式 0,且 A 口作為輸出, B 口作為輸出, C 口作為輸入,則工作程序如下: MOV A, 81 H ; 方式 0, A 口、 B 口輸出, C 口輸入 MOV DPTR, 0FF7FH ; 控制寄存器地址 →DPTR MOVX DPTR, A ; 方式控制字 → 控制寄存器 MOV DPTR, 0FF7CH ; A 口地址 →DPTR MOVX A, DPTR ; 從 A 口讀數(shù)據(jù) MOV DPTR, 0FF7DH ; B 口地址 →DPTR MOV A, DATA1 ; 要輸出的數(shù)據(jù) DATA1→A MOVX DPTR, A ; 將 DATA1 送 B 口輸出 MOV DPTR, 0FF7EH ; C 口地址 →DPTR MOV A, DATA2 ; DATA2→A MOVX DPTR, A ; 將 DATA2 送 C 口輸出 (2) 對(duì)端口 C 的置位 /復(fù)位 8255 的 C 口 8 位中的任一位,均可用指令來置位或復(fù)位。單片機(jī)的 I/O 口方向是可編程的,在程序中應(yīng)正確設(shè)置其方向,保證單片機(jī)的正常工作。 報(bào)警裝置 首先通過按鍵對(duì)要達(dá)到的溫度進(jìn)行設(shè)定,通過加熱裝置對(duì)水進(jìn)行加熱,當(dāng)加熱溫度達(dá)到或超過設(shè)定值時(shí),將加熱信號(hào)送到 8051 中,通過微處理器處理后,輸出到 1P 口報(bào)警,并通過三極管驅(qū)動(dòng)揚(yáng)聲器或蜂鳴器報(bào)警。對(duì)于電阻率隨溫度變化的電熱器件,通常使用降壓?jiǎn)?dòng)方式,即開始通電時(shí),電壓逐漸上升,使電熱器的工作電流在 KS 允許的范圍以內(nèi)。 選用不同的電熱器件,啟動(dòng)的過程也不一樣。 INT0 是過零檢測(cè)端,它可對(duì)過零的上升信號(hào)檢測(cè)而產(chǎn)生中斷; INT1 也是過零檢測(cè)端,它可對(duì)過零的下降信號(hào)檢測(cè)而產(chǎn)生中斷。 C 100. 1u f1234D6B R I D G E 112U 16 A74 07Q3T R I A CQ290 13U 154N 25T2T R A N S 5R810 0KR 1710 0KR 1510 0KR 16R E S 1 5 VP20I N T12J2C O N 2C 1233 00 ufR?R E S 2vc c 圖 12 加熱電路圖 過零檢測(cè)電路由變壓器 B 的其中一個(gè)繞組 3L 和電容器 2C 組成。當(dāng) 端輸出低電平時(shí), 7407 輸出低電平, 4N25 的輸入電流約為 18mА,輸出端的電流大 ,經(jīng)晶體管 9013 放大后,雙向可控硅門極的電流可達(dá) 200 mА,雙向可控硅導(dǎo)通,電熱器加熱。 單片機(jī) 8051 的 端輸出的觸發(fā)信號(hào),經(jīng) 7407 后,送到光電耦合器 4N25。初始時(shí),將列選擇線置為高電平,當(dāng)有按鍵按下時(shí),列選擇線的電位取決于 行 選擇線,通過相 應(yīng)行的電平狀態(tài)判斷有無按鍵按下,可以通過鍵盤的配合來調(diào)節(jié)溫度的設(shè)定值。通過 8255 的掃描輸出經(jīng) ULN2020 來實(shí)現(xiàn)位選,用來顯示設(shè)定的溫度值和當(dāng)前的溫度值,以便進(jìn)行調(diào)節(jié)。如此輪流,使每位顯示該位應(yīng)顯示字符,并保持延時(shí) 一段時(shí)間,以保存視覺暫留效果。即在每一瞬間只使某一位顯示相應(yīng)字符。由于所有位的段選碼皆由一個(gè) I/O 控制,因此,在每個(gè)瞬間, 8 位 LED 只可能顯示相同的字幅。 LED 顯示 電路的 原理 8 位 LED 動(dòng)態(tài)顯示電路只需要兩個(gè) 8 位 I/O 口。 由圖 254 可見鍵盤采用編程掃描方式工作, PB 口輸出逐行掃描信號(hào), PA 口輸入 8位列信號(hào),均為低電平有效。 識(shí)別具體按鍵的方法是(亦稱為掃描法):逐行置零電平,其余各列置為高電平,檢查各行線電平的變化,如果某行電平由高電平變?yōu)榱汶娖?,則可確定此行此列交叉點(diǎn)處的按鍵被按下。 內(nèi)江師范學(xué)院本科畢業(yè)設(shè)計(jì) 7 圖 10 雙穩(wěn)態(tài)消抖電路原理圖 ( 2) 陣鍵盤按鍵的識(shí)別方法分兩步進(jìn)行:第一步,識(shí)別鍵盤有無鍵被按下;第二步,如果有鍵被按下,識(shí)別出具體的按鍵。此時(shí)即使由于按鍵的機(jī)械性能使按鍵因彈性抖動(dòng)而產(chǎn)生瞬間不閉合,只要按鍵不返回原始狀態(tài),雙穩(wěn)態(tài)電路的狀態(tài)不會(huì)發(fā)生改變,輸出保持為 0,不會(huì)產(chǎn)生抖動(dòng)的波形。本論文采用雙穩(wěn)態(tài)消 抖的硬件消抖方法。因而,在閉合和斷開的瞬間均伴隨著一連串的抖動(dòng),抖動(dòng)時(shí)間的長(zhǎng)短由按鍵的機(jī)械特性決定,一般為 5~10ms,為了確保按鍵的狀態(tài),必須消除按鍵抖動(dòng)的影響,這也是按鍵抗干擾的主要的一個(gè)方面。電流 1μA/K其輸出電壓為 100mV/℃ ,經(jīng)運(yùn)算放大器 LM358進(jìn)行 I/V 轉(zhuǎn)化后,再送入 A/D 轉(zhuǎn)換電路中進(jìn)行模數(shù)轉(zhuǎn)換,經(jīng)過微處理器處理即可送到 LED顯示器顯示溫度 。 AD590 的輸出電流 ? ?uATI ?? 273 ( T 為攝氏溫度 ) 因此量測(cè)的電壓 V 為 ? ? ? ?VTKuAT 1 0 7 3 ???? 。 內(nèi)江師范學(xué)院本科畢業(yè)設(shè)計(jì) 5 12D S 7D P Y _7 S E G _D P 32184U 17AL M 3 58R610 0KR 1310 0KR910 0KR 1110 0KR 10R E S 4R 12R E S 4R 14R E S 4V C CI N T 0 圖 8 溫度檢測(cè)電路 當(dāng)傳感器 AD590 所處溫區(qū)發(fā)生 1℃的溫度變化時(shí),流過其所在回路的電流即產(chǎn)生 1μA 的變化,則其輸出電壓的變化為: CmVCuAV oo 10010010 ?????? AD590 的輸出電流值說明如下: 其輸出電流是以絕對(duì)溫度零度 (273℃ )為基準(zhǔn) ,每增加 1℃ , 它會(huì)增加 1μA輸出電流 ,因此在室溫 25℃ 時(shí) ,其輸出電流 ? ? uAI o 2 9 8252 7 3 ??? Vo 的值為 Io 乘上 10K, 以室溫 25℃ 而言 , 輸出值為 ? ?uAV ? 。由于 AD590 是一種電流型的溫度傳感器,因此具有較 強(qiáng)的抗干擾能力,適用于計(jì)算機(jī)進(jìn)行遠(yuǎn)距離溫度測(cè)量和控制 。 即溫度每變化 1℃ ,其輸出電流變化 1μA;它以熱力學(xué)溫標(biāo)零點(diǎn)作為零輸出點(diǎn),因此在 25℃ 時(shí),其輸出電流為 。 圖 7 AD590引腳 圖 其主要技術(shù)參數(shù)有: 測(cè)溫范圍為 55~+150℃ 。 A, B, C 地址線上的信息由 ALE 上升沿打入地址鎖存器74LS373。在由于 A/D0809 具有鎖存的 TTL 三態(tài)輸出,它的八條數(shù)據(jù)線和 8051的八條數(shù)據(jù)線相連,采用線性選址法,其口地址為 DFFFH。 0809 啟動(dòng)條件為 START=WR+ 因此啟動(dòng)時(shí),應(yīng)用寫指令(使 WR=1),并且要保證地址線 =0,其端口地址為DFFFH。用地址線低 8 位 A0、 A A2( ~)接 0809 的 A、 B、 C 三端用來對(duì) 8 路模擬通道進(jìn)行選擇。此時(shí), D/A轉(zhuǎn)換器的數(shù)字輸入即為對(duì)應(yīng)模擬輸入信號(hào)的數(shù)字量, 將此數(shù)字輸入就完成了 A/D 轉(zhuǎn)換過程。若模擬輸入信號(hào) U1n 小于推測(cè)信號(hào) U1,則比較器輸出為零,并使該位清零;若模擬輸入信號(hào) U1n 大于推測(cè)信號(hào) U1,比較器輸出為 1,并使該位保持位 1。其主要原理為:將一待轉(zhuǎn)換的模擬輸入信號(hào) U1n 與一個(gè)推測(cè)信號(hào) Ur 相比較,根據(jù)推測(cè)信號(hào)大于還是小于輸入信號(hào)來決定增大還是減少該推測(cè)信號(hào)相等時(shí),向 D/A 轉(zhuǎn)換器輸入的數(shù)字就是對(duì)應(yīng)模擬輸入量的數(shù)字量。在前向通道必須配置 A/D 轉(zhuǎn)換電路時(shí),首先考慮的是能否選用帶有內(nèi)江師范學(xué)院本科畢業(yè)設(shè)計(jì) 3 A/D 的單片機(jī),本論文中無法選擇單片機(jī)片內(nèi)有 A/D 部件,則必須在前向通道中配置 A/D接口。其主要功能是把 PC 初始化為 0000H,是單片機(jī)從 0000H 單元開始執(zhí)行程序,除了進(jìn)入 系統(tǒng)的初始化之外,當(dāng)由于程序出錯(cuò)或者操作錯(cuò)誤使系統(tǒng)處于死鎖狀態(tài)時(shí),為了擺脫困境,也需要按復(fù)位鍵重新啟動(dòng),因此,復(fù)位電路是單片機(jī)系統(tǒng)中不可缺少的一部分。 S1C230 P FR110KY111 .05 96 M H ZC330 P FV C CV C C98 5 0_ D 098 5 0_ D 198 5 0_ D 298 5 0_ D 398 5 0_ D 498 5 0_ D 598 5 0_ D 698 5 0_ D 7S W _1W _ C L KS W _3S W _2L C D _0L C D _1L C D _2L C D _3L C D _4L C D _5L C D _6L C D _7D / IR / WEC S AC S B17FQR E S E TE A / V P31X119X218R E S E T9RD17WR16I N T 012I N T 113T014T115P 10 / T1P 11 / T2P 123P 134P 145P 156P 167P 178P 0039P 0138P 0237P 0336P 0435P 0534P 0633P 0732P 2021P 2122P 2223P 2324P 2425P 2526P 2627P 2728P S E N29A L E / P30T X D11R X D10U189 C 52C110 u f / 16 v 圖 5 單片機(jī)最小系統(tǒng) 在外部振蕩電路中,單片機(jī)的 XTAL1 和 XTAL2 管腳分別接至由 晶振和兩個(gè) 30PF 電容構(gòu)成的振蕩電路兩側(cè),為電路提供正常的時(shí)鐘脈沖。51 型片內(nèi)有 4K 的 ROM/EPROM,因此,只需要外接晶體振蕩器和復(fù)位電路就可構(gòu)成最小系統(tǒng)。 內(nèi)江師范學(xué)院本科畢業(yè)設(shè)計(jì) 2 (3)