【正文】
電流放大,然后接顯示器公共端,同時(shí)起著開(kāi)關(guān)控制的作用;經(jīng)過(guò) IO的擴(kuò)展 8155芯片的 B口作為段數(shù)據(jù)口。 鍵盤(pán)實(shí)際上是有排練成矩陣形成的一系列按鍵開(kāi)關(guān)組成的,它是單片機(jī)系統(tǒng)中最常見(jiàn)的人機(jī)聯(lián)系的一種輸入設(shè)備。用戶可以通過(guò)鍵盤(pán)向 CPU 輸入數(shù)據(jù)、地址和命令。 矩陣式鍵盤(pán)模式以 N個(gè)端口連接控制 N*N 個(gè)按鍵 實(shí)時(shí)在 LED 數(shù)碼管上顯示按鍵信息。顯示按鍵信息 省下了很多的 I/O 端口為他用 相反 獨(dú)立式按鍵雖編程簡(jiǎn)單 但占用 I/O 口資源較多 不適合在按鍵較多的場(chǎng)合應(yīng)用。并且在實(shí)際 應(yīng)用中經(jīng)常要用到輸入數(shù)字、字母、符號(hào)等操作功能 如電子密碼鎖、電話機(jī)鍵盤(pán)、計(jì)算器按鍵等 至少都需要 12 到 16 個(gè)按鍵。 矩陣式鍵盤(pán)又稱行列鍵盤(pán) 它是用 N 條 I/O 線作為行線 N 條 I/O 線作為列線組成的鍵盤(pán)。在行線和列線的每個(gè)交叉點(diǎn)上設(shè)置一個(gè)按鍵。這樣鍵盤(pán)上按鍵的個(gè)數(shù)就為 N*N 個(gè)。這種行列式鍵盤(pán)結(jié)構(gòu)能有效地提高單片機(jī)系統(tǒng)中 I/O 口的利用率。 最常見(jiàn)的鍵盤(pán)布局如圖 般由 16個(gè)按鍵組成 在單片機(jī)中正好可以用一個(gè) P 口實(shí)現(xiàn) 16個(gè)按鍵功能 這也是在單片機(jī)系統(tǒng)中最常用的形式 本設(shè)計(jì)就采用這個(gè)鍵盤(pán)模式。 安徽理工大學(xué)畢業(yè)設(shè)計(jì) 22 硬件電路設(shè) 計(jì)圖 示。把單片機(jī)的 擴(kuò)展芯片 8155 的 A口 連接到“ 4*4行列式鍵盤(pán) ”其中 PA0PA3 作為行 線 , PC0PC3 作為列 線 , 把 8155 的 PB 端口連接到共陰極“靜態(tài)數(shù)碼顯示模塊”區(qū)域中對(duì)應(yīng)的 a 到 g 端口上 系統(tǒng)首先通過(guò) CPU 對(duì)全部鍵盤(pán)進(jìn)行掃描 , 即把第一根行線置為“ 0”狀態(tài) 其余行線置于“ 1”狀態(tài) 讀入輸入緩沖器的狀態(tài) , 若其狀態(tài)全為“ 1”表明該行無(wú)鍵按下 , 再將第二根行線置為“ 0”狀態(tài) 同樣讀入輸入緩沖器的狀態(tài)如其狀態(tài)也全為“ 1” 則置第一根行線置為“ 0”狀態(tài) 以此類(lèi)推 。如讀入輸入緩沖器的狀態(tài)不全為“ 1” , 確定哪一根列線為 “ 0”狀態(tài) , 當(dāng)某個(gè)鍵的行線和列線都為“ 0”狀態(tài)時(shí) 表明該鍵按下, 最后通過(guò)顯示程序?qū)⒃撴I的序號(hào)顯示出 。 圖 鍵盤(pán)布局 P A 0P A 1P A 2P A 3P A 4P A 5P A 6P A 7P B 0P B 1P B 2P B 3P B 4P B 5P B 6P B 7P C 0P C 1P C 2P C 3P C 4P C 5A D 0A D 1A D 2A D 3A D 4A D 5A D 6A D 7CERDWRI O / MA L ET M R O U TT M R I NR E S E TV c c Vss8155S0S W P BS2S W P BS5S W P BS1S W P BS3S W P BS7S W P BS9S W P BS4S W P BS8S W P BSCS W P BSAS W P BS6S W P BSBS W P BSDS W P BSES W P BSFS W P BRq5 . 1 kRx5 . 1 kRy5 . 1 kRz5 . 1 k+ 5 V 圖 鍵盤(pán)硬件電路圖 按鍵功能說(shuō)明: 09:數(shù)字鍵; A:設(shè)置; B: 確定; C:容量顯示切換; D:溫度顯示切換; E:電壓顯示切換; 安徽理工大學(xué)畢業(yè)設(shè)計(jì) 23 F:電流顯示切換。 報(bào)警電路及通信模塊 為了能夠準(zhǔn)確把握達(dá)到放電電壓的時(shí)間,電路設(shè)計(jì)了報(bào)警電路。當(dāng)蓄電池的的放電電壓達(dá)到 , 如圖 , 單片機(jī)的 ,經(jīng)過(guò)三極管 9015驅(qū)動(dòng)蜂鳴器經(jīng)行報(bào)警。 Ry1KQ19 0 1 5S P E A KG N DV C CP 1 .3 圖 報(bào)警電路 通信模塊的設(shè)計(jì) 在實(shí)際應(yīng)用中,不但要求計(jì)算機(jī)與外部的設(shè)備之間要經(jīng)行信息交換,而且計(jì)算機(jī)之間也需要交換信 息,所以這些信息的交換稱之為“通信”。通信的基本方式分為并行通信和串行通信兩種。 串行通信 是指計(jì)算機(jī)主機(jī)與外設(shè)之間以及 主機(jī)系統(tǒng) 與主機(jī)系統(tǒng)之間數(shù)據(jù)的串行傳送。使用一條數(shù)據(jù)線,將數(shù)據(jù)一位一位地依次傳輸,每一位數(shù)據(jù)占據(jù)一個(gè)固定的時(shí)間長(zhǎng)度。其只需要少數(shù)幾條線就可以在系統(tǒng)間交換信息,特別適用于計(jì)算機(jī)與計(jì)算機(jī)、計(jì)算機(jī)與外設(shè)之間的遠(yuǎn)距離通信 。計(jì)算機(jī)和終端 之 間的數(shù)據(jù)傳輸 通常是靠電纜或信道上 的電壓或者電流 變化實(shí)現(xiàn)的。如果一組數(shù)據(jù)的各數(shù)據(jù)位在多條線上同時(shí)被傳輸,這種傳輸方式稱為 并行通信 。 串行通信又可以分為異步通信和同步通信。 同步通信是一種連續(xù)串行傳送數(shù)據(jù)的通信方式,一次通信只傳送一幀信息。這里的 信息幀 與異步通信中的字符幀不同,通常含有若干個(gè)數(shù)據(jù)字符。異步通信中,在異步通信中有兩個(gè)比較重要的指標(biāo):字符幀格式和 波特率, 數(shù)據(jù)通常以字符或者字節(jié)為單位組成字符幀傳送。字符幀由發(fā)送端逐幀發(fā)送,通過(guò)傳輸線被接收設(shè)備逐幀接收。發(fā)送端和接收端可以由各自的時(shí)鐘來(lái)控制數(shù)據(jù)的發(fā)送和接收,這兩個(gè)時(shí)鐘源彼此獨(dú)立,安徽理工大學(xué)畢業(yè)設(shè)計(jì) 24 互不同步。 由于 AT89C51 單片機(jī)的 RXD 和 TXD 引腳為 TTL 電平。為了銜接 RS232 接口。必須實(shí)行電平轉(zhuǎn)換, 232 電平轉(zhuǎn)換采用 MAX232 芯 片把 TTL 電平轉(zhuǎn)換為 RS232 電平格式,可用于單品機(jī)與微機(jī)通信,具體電路原理如圖 所示。 C 1+1V C C16V+2G N D15C 13T 1out14C 2+4R 1i n13C 15R 1out12V6T 1i n11T 2out7T 2i n10R 2i n8R 2out9U2M A X 232162738495J5U A R TC 121uFC 111uFC 131uFC 101uF++++C 14104異步串口RXTXD B 9 3D B 9 2D B 9 3D B 9 2G N DV C C 圖 異步串口通信電路 A/D和 D/A接口電路的設(shè)計(jì) 本設(shè)計(jì)要進(jìn)行電壓采樣和電流采樣,因此涉及到 A/D轉(zhuǎn)換器的應(yīng)用。 AT89C51單片機(jī)內(nèi)無(wú) A/D轉(zhuǎn)換器,要外接 A/D,這里選用 8位的模數(shù)轉(zhuǎn)換器 ADC0809。 另外在基準(zhǔn)電壓的設(shè)置上用到 D/A轉(zhuǎn)換 ,所以選用 8位的轉(zhuǎn)換器 DAC0832。 ADC0809 是采樣頻率為 8 位的、以逐次逼近原理進(jìn)行模 數(shù)轉(zhuǎn)換的器件。其內(nèi)部有一個(gè) 8 通道多路開(kāi)關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號(hào),只選通 8個(gè)單段 模擬輸入信號(hào)中的一個(gè)進(jìn)行 A/D 轉(zhuǎn)換。 : (1)8 路 8 位 A/D轉(zhuǎn)換器,即分辨率 8 位。 (2)具有轉(zhuǎn)換起停控制端。 (3)轉(zhuǎn)換時(shí)間為 100μs 。 (4)單個(gè) + 5V 電源供電 。 (5)模擬輸入電壓范圍 0~+ 5V,不需零點(diǎn)和滿刻度校準(zhǔn)。 (6)工作溫度范圍為 40~+ 85℃ 。 (7)低功耗,約 15mW。 ADC0809 的工作過(guò)程是:首先輸入 3位地址,并使 ALE=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通 8 路 模擬輸入之一到比較器。 START 上升沿將逐次逼近寄存器復(fù)位。下降沿啟動(dòng) A/D 轉(zhuǎn)換,之后 EOC 輸出信號(hào)變低,指示轉(zhuǎn)換安徽理工大學(xué)畢業(yè)設(shè)計(jì) 25 正在進(jìn)行。直到 A/D 轉(zhuǎn)換完成, EOC 變?yōu)楦唠娖?,指?A/D 轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個(gè)信號(hào)可用作中斷申請(qǐng)。當(dāng) OE 輸入高電平時(shí),輸出三態(tài)門(mén)打開(kāi),轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上。 圖 即為單片機(jī)與 A/D 轉(zhuǎn)換器ADC0809 的接線電路圖。 IN0 輸入第一路蓄電池的電壓信號(hào), IN1 輸入第一路蓄電池的電流信號(hào), IN2 輸入第二路蓄電池的電壓信號(hào), IN3 輸入第二路蓄電池的電流信號(hào), IN4 輸入第三 路蓄電池的電壓信號(hào), IN5 輸入第三路蓄電池的電流信號(hào), IN6 輸入第四路蓄電池的電壓信號(hào), IN7 輸入第 ,四路蓄電池的電流信號(hào)。D0~D7 是數(shù)據(jù)輸出線。 I N 2I N 1I N 0A D D AA D D BA D D CA L ED7D6D5D4D0V r e f ( )D2I N 3I N 4I N 5I N 6I N 7S T A R TE O CD3OEC L O C KV c cV r e f ( + )G N DD1A D C 0 8 0 9P 1 . 0P 1 . 1P 1 . 2P 1 . 3P 1 . 4P 1 . 5P 1 . 6P 1 . 7R S T / V p dP 3 . 0 ( R X D )P 3 . 1 ( T X D )P 3 . 2 ( I N T 0 )P 3 . 3 ( I N T 1 )P 3 . 4 ( T 0 )P 3 . 5 ( T 1 )P 3 . 6 ( W R )P 3 . 7 ( R D )X T A L 2X T A L 1V s sV c cP 0 . 0P 0 . 1P 0 . 2P 0 . 3P 0 . 4P 0 . 5P 0 . 6P 0 . 7E A / V p pA L E / P R O GP S E NP 2 . 7P 2 . 6P 2 . 5P 2 . 4P 2 . 3P 2 . 2P 2 . 1P 2 . 0A T 8 9 C 5 1UcN O TUaN O RUbN O R+ 5 VG N DU 1I 1U 2 I 2U 3I 3U 4I 4Q0Q1Q2Q3Q4Q5Q6Q7EGD7D6D5D4D3D2D1D0L S 17 4 L S 3 7 3DC1Ua7 4 L S 7 4 D 圖 ADC0809 與 AT89C51 的接口電路 ADC0809 作為單片機(jī)的一個(gè)外部擴(kuò)展并行 I/O 口,口地址為 BFFFH。 與 WR 相或非,產(chǎn)生啟動(dòng)信號(hào) START 和地址鎖存控制信號(hào) ALE; 與 RD 相或非產(chǎn)生輸出允許控制信 號(hào) OE。 OE為高電平時(shí),打開(kāi)三態(tài)數(shù)據(jù)輸出鎖存器,將轉(zhuǎn)換后的數(shù)據(jù)量輸送到數(shù)據(jù)總線上,同時(shí)啟動(dòng)下一次轉(zhuǎn)換。 DAC0832 是采樣頻率為八位的 D/A 轉(zhuǎn)換器件。芯片內(nèi)有兩級(jí)輸入寄存器,使之具備雙緩沖、單緩沖和直通三種輸入方式,以便適于各種電路的需要 (如要求多路 D/A 異步輸入、同步轉(zhuǎn)換等 ),本設(shè)計(jì)采用 雙緩沖 連接方式,接線圖如圖 所示。 D/A 轉(zhuǎn)換結(jié)果采用 電 流 形式輸出。若需要相應(yīng)的模擬電壓信號(hào),可通過(guò)一個(gè)高輸入阻抗的線性運(yùn)算放大器實(shí)現(xiàn)。運(yùn)放的反饋 電阻 可通過(guò) RFB 端引用片內(nèi)固有電阻,也可外接 .該片邏輯輸入滿足 TTL 電壓電平范圍,可直接 與安徽理工大學(xué)畢業(yè)設(shè)計(jì) 26 TTL 電路或微機(jī)電路相接。 (1)DI7~ DI0 : 8位的數(shù)據(jù)輸入端, DI7 為最高位。 (2)IOUT1 :模擬電流輸出端 1,當(dāng) DAC 寄存器中數(shù)據(jù)全為 1 時(shí),輸出電流最大,當(dāng) DAC 寄存器中數(shù)據(jù)全為 0時(shí),輸出電流為 0。 (3)IOUT2 :模擬電流輸出端 2, IOUT2 與 IOUT1 的和為一個(gè)常數(shù),即 IOUT1+ IOUT2=常數(shù)。 (4)RFB :反饋電阻引出端, DAC0832 內(nèi)部已經(jīng)有反饋電阻,所以 RFB 端可以直接接到外部運(yùn)算放大器的輸出端,這樣相當(dāng)于將一個(gè)反饋電阻接在運(yùn)算放大器的輸出端和輸入端之間。 (5)VREF :參考電壓輸入端,此端可接一個(gè)正電壓,也可接一個(gè)負(fù)電壓,它決定 0 至 255 的數(shù)字量轉(zhuǎn)化出來(lái)的模擬量電壓值的幅度, VREF 范圍為 (+10~10)V。 VREF 端與 D/A 內(nèi)部 T形電阻網(wǎng)絡(luò)相連。 (6)Vcc :芯片供電電壓,范圍為 (+5~ 15)V。 (7)AGND :模擬量地,即模擬電路接地端。 (8)DGND :數(shù)字量地。 P 1 .0P 1 .1P 1 .2P 1 .3P 1 .4P 1 .5P 1 .6P 1 .7R S T / V p dP 3 .0 ( R X D )P 3 .1 ( T X D )P 3 .2 ( I N T 0 )P 3 .3 ( I N T 1 )P 3 .4 ( T 0 )P 3 .5 ( T 1 )P 3 .6 ( W R )