《單片機(jī)原理及應(yīng)用 》課件-第7章_第1頁(yè)
《單片機(jī)原理及應(yīng)用 》課件-第7章_第2頁(yè)
《單片機(jī)原理及應(yīng)用 》課件-第7章_第3頁(yè)
《單片機(jī)原理及應(yīng)用 》課件-第7章_第4頁(yè)
《單片機(jī)原理及應(yīng)用 》課件-第7章_第5頁(yè)
已閱讀5頁(yè),還剩111頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第7章單片機(jī)接口技術(shù)7.1LED數(shù)碼管接口技術(shù)

任務(wù)7-1用LED數(shù)碼管顯示數(shù)字“5”

任務(wù)7-24位共陽(yáng)極數(shù)碼管的動(dòng)態(tài)掃描顯示7.2點(diǎn)陣LED接口技術(shù)

任務(wù)7-3使用LED點(diǎn)陣顯示“1”7.3鍵盤(pán)接口技術(shù)

任務(wù)7-4無(wú)軟件消抖的獨(dú)立式鍵盤(pán)輸入

任務(wù)7-5采用軟件消抖的獨(dú)立式鍵盤(pán)輸入第7章單片機(jī)接口技術(shù)7.4字符型LCD液晶接口技術(shù)

任務(wù)7-6用LCD顯示字符“MCU”本章小結(jié)習(xí)題

在工業(yè)控制、智能儀表、家用電器等領(lǐng)域,單片機(jī)應(yīng)用系統(tǒng)需要配接數(shù)碼管、液晶屏、鍵盤(pán)等外接器件。接口技術(shù)用于解決單片機(jī)與外接器件的信息傳輸問(wèn)題,以完成初始設(shè)

置、數(shù)據(jù)輸入,以及控制量輸出、結(jié)果存儲(chǔ)和顯示等功能。本章主要介紹MCS51單片機(jī)與LED數(shù)碼管、鍵盤(pán)、LCD液晶等接口技術(shù)及其應(yīng)用的實(shí)例。

7.1LED數(shù)碼管接口技術(shù)

7.1.1LED數(shù)碼管的原理LED數(shù)碼管顯示數(shù)字和符號(hào)的原理與用火柴棒拼寫(xiě)數(shù)字非常類(lèi)似,用幾個(gè)發(fā)光二極管也可以拼成各種各樣的數(shù)字和圖形,LED數(shù)碼管就是通過(guò)控制對(duì)應(yīng)的發(fā)光二極管來(lái)顯示數(shù)字的。圖7-1所示為常見(jiàn)數(shù)碼管的實(shí)物圖,其結(jié)構(gòu)如圖7-2所示。

數(shù)碼管實(shí)際上是由7個(gè)發(fā)光二極管組成的一個(gè)8字形,還有另外一個(gè)發(fā)光二極管做成圓點(diǎn)形,主要作為顯示數(shù)據(jù)的小數(shù)點(diǎn)使用,這樣一共使用了8個(gè)發(fā)光二極管,所以叫8段LED數(shù)碼管。這些段分別由字母a、b、c、d、e、f、g和

dp來(lái)表示。當(dāng)給這些數(shù)碼管特定的段加上電壓后,這些特定的段就會(huì)發(fā)亮,以顯示出各種數(shù)字和圖形。

圖7-1常見(jiàn)數(shù)碼管的實(shí)物圖圖7-2常見(jiàn)數(shù)碼管結(jié)構(gòu)

在引腳分布中,COM腳為8個(gè)發(fā)光二極管的公共引腳,a~g和dp腳為7個(gè)條形發(fā)光二極管和圓點(diǎn)發(fā)光二極管的另一端引腳。按照公共端的形成方式,數(shù)碼管分共陽(yáng)極數(shù)碼管和共陰極數(shù)碼管兩種,它們的內(nèi)部結(jié)構(gòu)如圖7-3、圖7-4所示。圖7-4共陰極數(shù)碼管內(nèi)部結(jié)構(gòu)圖

共陽(yáng)極數(shù)碼管中,各發(fā)光二極管的陰極引出,分別為數(shù)碼管的a~dp腳,發(fā)光二極管的陽(yáng)極接在一起,由COM引腳引出。

共陰極數(shù)碼管中,各發(fā)光二極管的陽(yáng)極引出,分別為數(shù)碼管的a~dp腳,發(fā)光二極管的陰極接在一起,由COM引腳引出。

所謂共陽(yáng)極數(shù)碼管,就是它們的公共端(也叫做COM端)接正極;反之,公共端接地,則為共陰極數(shù)碼管。

7.1.2接口電路與段碼控制

共陽(yáng)極數(shù)碼管和單片機(jī)的接口電路原理圖如圖7-5所示。三極管的導(dǎo)通狀態(tài)受P2.0引腳的輸出電平控制,其集電極為數(shù)碼管的共陽(yáng)極端。P0.0~P0.7引腳的輸出電平可以控制數(shù)碼管各字段的亮滅狀態(tài),只要讓P0口輸出規(guī)定的控制信號(hào),就可以使這些字段按照要求亮滅,顯示出不同的數(shù)字。圖7-5共陽(yáng)極數(shù)碼管和單片機(jī)的接口電路原理圖

下面以數(shù)字“5”的顯示為例,介紹數(shù)碼管顯示數(shù)字的方法。要顯示數(shù)字“5”,數(shù)碼管中亮的字段應(yīng)當(dāng)是a、f、g、c和d,即數(shù)碼管的輸入端a、f、g、c和d需要通低電平;而字段b、e和dp不亮,即數(shù)碼管的輸入端b、e和dp

通高電平。如果將字段a、b、c、d、e、f、g和dp分別接在P0.0、P0.1、P0.2、P0.3、P0.4、P0.5、P0.6和P0.7這8個(gè)單片機(jī)引腳上,則各引腳輸出的電平信號(hào)見(jiàn)表7-1。根據(jù)表7-1,可得P0=l00l0010B=92H,即只要讓單片機(jī)P0口輸出“0x92”,就可以讓數(shù)碼管顯示數(shù)字“5”。同樣,可得出所有數(shù)字的段碼,結(jié)果見(jiàn)表7-2。

任務(wù)7-1用LED數(shù)碼管顯示數(shù)字“5”

任務(wù)目的用LED數(shù)碼管顯示數(shù)字“5”,接口電路及運(yùn)行效果如圖71所示(采用7SEGCOMANGRN型數(shù)碼管)。任務(wù)準(zhǔn)備設(shè)備及軟件:萬(wàn)用表、計(jì)算機(jī)、KeilμVision4軟件、Proteus軟件。

任務(wù)實(shí)施

1.任務(wù)分析

圖7-6中數(shù)碼管的電源由三極管Q1提供,當(dāng)P2.0引腳輸出低電平“0”時(shí),Q1導(dǎo)通,數(shù)碼管通電。然后只要讓P0口輸出數(shù)字“5”的段碼,并將該段碼送到數(shù)碼管相應(yīng)接口,即可顯示出數(shù)字“5”。整個(gè)過(guò)程可分兩個(gè)步驟來(lái)完成。圖7-6

(1)由P2.0引腳輸出低電平點(diǎn)亮數(shù)碼管。

P2=0xfe;//P2=11111110B,P2.0引腳輸出低電平,點(diǎn)亮數(shù)碼管

(2)P0口輸出數(shù)字的段碼。

P0=0x92;//0x92是數(shù)字″5″的段碼

2.程序設(shè)計(jì)

先建立一個(gè)文件夾,然后建立“

LEDSegmentDisplays”工程項(xiàng)目,最后建立源程序文

件“LEDSegmentDisplays.c”。輸入如下源程序:

3.用Proteus軟件仿真

經(jīng)Keil軟件編譯通過(guò)后,可利用Proteus軟件進(jìn)行仿真。在ProteusISIS編輯環(huán)境中繪制仿真電路圖,將編譯好的hex文件載入AT89C51。啟動(dòng)仿真,即可看到圖7-6中的數(shù)碼管顯示出數(shù)字“5”。

任務(wù)7-24位共陽(yáng)極數(shù)碼管的動(dòng)態(tài)掃描顯示

任務(wù)目的使用4位數(shù)碼管動(dòng)態(tài)掃描顯示數(shù)字“1234”,接口電路及運(yùn)行效果如圖7-7所示。任務(wù)準(zhǔn)備設(shè)備及軟件:萬(wàn)用表、計(jì)算機(jī)、KeilμVision4軟件、Proteus軟件。

任務(wù)實(shí)施

1.任務(wù)分析

要用數(shù)碼管顯示多位數(shù)字,可采用如圖7-7所示的接口電路。圖中電壓表不能去掉,否則仿真結(jié)果不正確,這是由于仿真軟件某些特性與實(shí)物不一致所致,因此仿真軟件的仿真結(jié)果僅作學(xué)習(xí)參考。圖中數(shù)碼管的字段控制端口都接在P0口,而位選(電源)控制端口則分別接在P2口的不同引腳。圖7-74位共陽(yáng)極數(shù)碼管的動(dòng)態(tài)掃描顯示

2.程序設(shè)計(jì)

先建立一個(gè)文件夾,然后建立“DigitalTubeDynamicScanning”工程項(xiàng)目,最后建立

源程序文件“DigitalTubeDynamicScanning.c”。

3.用Proteus軟件仿真

經(jīng)Keil軟件編譯通過(guò)后,可利用Proteus軟件進(jìn)行仿真。在ProteusISIS編輯環(huán)境中繪制仿真電路圖,將編譯好的hex文件載入AT89C51。啟動(dòng)仿真,即可看到圖7-7中的數(shù)碼管顯示出數(shù)字“1234”。

7.2點(diǎn)陣LED接口技術(shù)

7.2.1點(diǎn)陣的初步認(rèn)識(shí)點(diǎn)陣LED顯示屏作為一種現(xiàn)代電子媒體,具有靈活的顯示面積(可任意分割和拼裝)、高亮度、長(zhǎng)壽命、數(shù)字化、實(shí)時(shí)性等特點(diǎn),應(yīng)用非常廣泛。一個(gè)8×8的點(diǎn)陣LED如圖7-8所示,它由64個(gè)LED組成,它的內(nèi)部結(jié)構(gòu)原理圖如圖7-9所示。圖7-88×8的點(diǎn)陣LED實(shí)物圖圖7-98×8點(diǎn)陣結(jié)構(gòu)原理圖

7.2.2點(diǎn)陣的圖形顯示概述

在顯示數(shù)字、字母或圖形的時(shí)候,需要由單片機(jī)送出數(shù)據(jù)給LED點(diǎn)陣的各共陽(yáng)極,這些數(shù)據(jù)通過(guò)專(zhuān)用取模軟件來(lái)提取,非常方便。下面介紹一款簡(jiǎn)單的字模提取軟件“字模精

靈V1.0”。其他取模軟件原理類(lèi)同,讀者可以上網(wǎng)搜索。

如圖7-10所示,首先設(shè)置字體,字體設(shè)置為“宋體”、字形設(shè)置為“常規(guī)”、大小設(shè)置為“小五”。在輸入字符中輸入要提取字模的字符“1”,在參數(shù)中分別選擇“C51格式”、“字節(jié)正序”、“橫向取?!?然后單擊“取?!卑粹o,即可生成如圖7-10所示的顯示數(shù)據(jù)。在生成的12個(gè)字節(jié)數(shù)據(jù)中,我們選取中間的8個(gè)字節(jié)數(shù)據(jù)。圖7-10“字模精靈”軟件界面

對(duì)于8×8的點(diǎn)陣來(lái)說(shuō),我們可以顯示一些簡(jiǎn)單的圖形、字符等。但大部分漢字通常要用到16×16個(gè)點(diǎn),8×8的點(diǎn)陣只能顯示一些簡(jiǎn)單筆畫(huà)的漢字,讀者可以自己取模做出來(lái)

試試看。使用大屏顯示漢字的方法和小屏的方法是類(lèi)似的,所需要做的只是按照相同的原理來(lái)擴(kuò)展行數(shù)和列數(shù)而已。

任務(wù)7-3使用LED點(diǎn)陣顯示“1”

任務(wù)目的使用8×8的LED點(diǎn)陣顯示數(shù)字“1”,接口電路及運(yùn)行效果如圖7-11所示。任務(wù)準(zhǔn)備設(shè)備及軟件:萬(wàn)用表、計(jì)算機(jī)、KeilμVision4軟件、Proteus軟件。圖7-11使用8×8的LED點(diǎn)陣顯示“1”

任務(wù)實(shí)施

1.任務(wù)分析

在Proteus中,8×8的LED點(diǎn)陣取出后,上、下的8個(gè)引腳究竟哪個(gè)是行線,哪個(gè)是列線,并無(wú)標(biāo)示,需要通過(guò)測(cè)試來(lái)確定。方法很簡(jiǎn)單,陽(yáng)極加高電平,陰極加低電平。如果行列判斷正確,總會(huì)有二極管被點(diǎn)亮,如果不正確,則交換高、低電平的位置即可。元件取出后,先不對(duì)元件進(jìn)行旋轉(zhuǎn)或鏡像操作,按圖7-12接線,即假定上面引腳為陰極,下面引腳為陽(yáng)極。運(yùn)行仿真,如果出現(xiàn)如圖7-12所示的仿真結(jié)果,說(shuō)明元件在初始狀態(tài)時(shí),上面8個(gè)引腳為陰極,下面8個(gè)引腳為陽(yáng)極。

圖7-12

2.程序設(shè)計(jì)

先建立一個(gè)文件夾,然后建立“LEDMatrixModule”工程項(xiàng)目,最后建立源程序文件“LEDMatrixModule.c”。

3.用Proteus軟件仿真

經(jīng)Keil軟件編譯通過(guò)后,可利用Proteus軟件進(jìn)行仿真。在ProteusISIS編輯環(huán)境中繪制仿真電路圖,將編譯好的hex文件載入AT89C51。啟動(dòng)仿真,即可看到圖7-11中的

LED點(diǎn)陣顯示出數(shù)字“1”。

7.3鍵盤(pán)接口技術(shù)

在單片機(jī)應(yīng)用系統(tǒng)中,需要通過(guò)輸入裝置對(duì)系統(tǒng)進(jìn)行初始設(shè)置和輸入數(shù)據(jù)等操作,這些任務(wù)通常采用鍵盤(pán)來(lái)完成。鍵盤(pán)是單片機(jī)應(yīng)用系統(tǒng)中最常用的輸入設(shè)備之一,它是由若干按鍵按照一定規(guī)則組成的。每一個(gè)按鍵實(shí)際上是一個(gè)開(kāi)關(guān)元件,按構(gòu)造可分為有觸點(diǎn)開(kāi)關(guān)按鈕和無(wú)觸點(diǎn)開(kāi)關(guān)按鍵兩類(lèi)。有觸點(diǎn)開(kāi)關(guān)按鍵有機(jī)械開(kāi)關(guān)、彈片式微動(dòng)開(kāi)關(guān)、導(dǎo)電橡膠等;無(wú)觸點(diǎn)開(kāi)關(guān)按鍵有電容式按鍵、光電式按鍵和磁感應(yīng)按鍵等。目前單片機(jī)應(yīng)用系統(tǒng)中使用最多的鍵盤(pán)可分為編碼鍵盤(pán)和非編碼鍵盤(pán)。

編碼鍵盤(pán)能夠由硬件邏輯自動(dòng)提供與被按鍵對(duì)應(yīng)的編碼,通常還有去抖動(dòng)、多鍵識(shí)別等功能。這種鍵盤(pán)使用方便,但價(jià)格較貴,一般的單片機(jī)應(yīng)用系統(tǒng)很少采用。非編碼鍵盤(pán)只提供簡(jiǎn)單的行和列的矩陣,應(yīng)用時(shí)由軟件來(lái)識(shí)別鍵盤(pán)上的閉合鍵。它具有結(jié)構(gòu)簡(jiǎn)單,使用靈活等特點(diǎn),因此被廣泛應(yīng)用于單片機(jī)控制系統(tǒng)。在應(yīng)用中,非編碼鍵盤(pán)常用的類(lèi)型有獨(dú)立式(線性)鍵盤(pán)和矩陣(行列式)鍵盤(pán)。獨(dú)立式鍵盤(pán)通常用于按鍵數(shù)目較少的場(chǎng)合,而后者適用于按鍵數(shù)目較多的場(chǎng)合。

7.3.1獨(dú)立式鍵盤(pán)的工作原理

1.接口電路

所謂的獨(dú)立式鍵盤(pán),是指每一個(gè)I/O端口上只接一個(gè)按鍵,按鍵的另一端接電源或接地(通常接地),其實(shí)現(xiàn)原理是利用I/O端口讀取端口的電平高低來(lái)判斷是否有鍵按下。

獨(dú)立式鍵盤(pán)接口電路如圖7-13所示,每一個(gè)按鍵對(duì)應(yīng)P1口的一根線,各鍵是相互獨(dú)立的。應(yīng)用時(shí),由軟件來(lái)識(shí)別鍵盤(pán)上的鍵是否被按下。當(dāng)某個(gè)鍵被按下時(shí),該鍵對(duì)應(yīng)的端口將由高電平變?yōu)榈碗娖健7催^(guò)來(lái),如果檢測(cè)到某端口為低電平,則可判斷出該端口對(duì)應(yīng)的按鍵被按下。所以,通過(guò)軟件可判斷出各按鍵是否被按下。圖7-13獨(dú)立式鍵盤(pán)接口電路

2.按鍵抖動(dòng)的消除

單片機(jī)中應(yīng)用的鍵盤(pán)一般是由機(jī)械觸點(diǎn)構(gòu)成的。在圖7-13中,當(dāng)開(kāi)關(guān)S1未被按下時(shí),P1.4引腳輸入信號(hào)為高電平;

S1閉合后,Pl.4引腳輸入信號(hào)為低電平。由于按鍵是機(jī)械觸點(diǎn),當(dāng)機(jī)械觸點(diǎn)斷開(kāi)、閉合時(shí),觸點(diǎn)將有抖動(dòng),Pl.4引腳輸入端的波形如圖7-14所示。這種抖動(dòng)對(duì)于人來(lái)說(shuō)是感覺(jué)不到的,但對(duì)于單片機(jī)來(lái)說(shuō),則是完全可以感應(yīng)到的。因?yàn)閱纹瑱C(jī)處理的速度為微秒級(jí),而機(jī)械抖動(dòng)的時(shí)間至少是毫秒級(jí),對(duì)單片機(jī)而言,這已是一個(gè)“漫長(zhǎng)”的時(shí)間了。所以雖然只按了一次按鍵,但是單片機(jī)卻檢測(cè)到按了多次鍵,因而往往產(chǎn)生非預(yù)期的結(jié)果。圖7-14按鍵抖動(dòng)產(chǎn)生的輸入波形

為使單片機(jī)能夠正確地讀出鍵盤(pán)所接I/O口的狀態(tài),就必須考慮如何消抖。通常去除抖動(dòng)影響的方法有硬件、軟件兩種,單片機(jī)中常用的消抖方法為軟件消抖法。當(dāng)單片機(jī)第

一次檢測(cè)到某口線為低電平時(shí),不是立即認(rèn)定其對(duì)應(yīng)按鍵被按下,而是延時(shí)幾十毫秒后再次檢測(cè)該口線電平。如果仍為低電平,說(shuō)明該按鍵確實(shí)被按下,這實(shí)際上是避開(kāi)了按鍵按下時(shí)的抖動(dòng)時(shí)間。而在檢測(cè)到按鍵釋放后再延時(shí)幾十毫秒,消除后沿的抖動(dòng),然后再執(zhí)行相應(yīng)任務(wù)。不過(guò)一般情況下,即使不對(duì)按鍵釋放的后沿進(jìn)行處理,也能滿(mǎn)足絕大多數(shù)場(chǎng)合的要求。

3.鍵盤(pán)的工作方式

對(duì)鍵盤(pán)的響應(yīng)取決于鍵盤(pán)的工作方式,鍵盤(pán)的工作方式應(yīng)根據(jù)實(shí)際應(yīng)用系統(tǒng)中CPU的工作狀況而定,其選取的原則是既要保證CPU能及時(shí)響應(yīng)按鍵操作,又不要過(guò)多占用CPU的工作時(shí)間。通常,鍵盤(pán)的工作方式有三種,即編程掃描、定時(shí)掃描和中斷掃描。

1)編程掃描工作方式

編程掃描工作方式是利用CPU在完成其他工作的空余時(shí)間,調(diào)用鍵盤(pán)掃描子程序來(lái)響應(yīng)鍵輸入要求。在執(zhí)行鍵功能程序時(shí),CPU不再響應(yīng)鍵輸入要求。

鍵盤(pán)掃描子程序一般應(yīng)具備下述幾個(gè)功能:

(1)判別有無(wú)鍵按下。

(2)消除鍵的機(jī)械抖動(dòng)。

(3)判斷閉合鍵的鍵號(hào)。

(4)判斷閉合鍵是否釋放,若沒(méi)有釋放則繼續(xù)等待。

(5)將閉合鍵鍵號(hào)保存,同時(shí)轉(zhuǎn)去執(zhí)行該閉合鍵的功能。

2)定時(shí)掃描工作方式

定時(shí)掃描方式就是每隔一段時(shí)間對(duì)鍵盤(pán)掃描一次,它利用單片機(jī)內(nèi)部的定時(shí)器產(chǎn)生一定時(shí)間(如10ms)的定時(shí),定時(shí)時(shí)間到時(shí)就產(chǎn)生定時(shí)器溢出中斷。CPU響應(yīng)中斷后對(duì)鍵盤(pán)

進(jìn)行掃描,并在有鍵按下時(shí)識(shí)別出該鍵,再執(zhí)行該鍵的功能程序。定時(shí)掃描工作方式的硬件電路與編程掃描工作方式的硬件電路相同。

3)中斷掃描工作方式

采用上述兩種鍵盤(pán)掃描方式時(shí),無(wú)論是否按鍵,CPU都要定時(shí)掃描鍵盤(pán),而單片機(jī)應(yīng)用系統(tǒng)工作時(shí),并非經(jīng)常需要鍵盤(pán)輸入,因此,CPU經(jīng)常處于空掃描狀態(tài)。

為了提高CPU的工作效率,可采用中斷掃描工作方式。即無(wú)鍵按下時(shí),CPU處理自己的工作,當(dāng)有鍵按下時(shí),產(chǎn)生中斷請(qǐng)求,CPU轉(zhuǎn)去執(zhí)行鍵盤(pán)掃描子程序,并識(shí)別鍵號(hào)。

中斷掃描工作方式的一種簡(jiǎn)易鍵盤(pán)接口如圖7-15所示。圖中接有一個(gè)四輸入端與門(mén),其輸入端分別與各列線相連,輸出端接單片機(jī)外部中斷輸入INT0。初始化時(shí),使鍵盤(pán)行輸出口全部置零。當(dāng)有鍵按下時(shí),INT0端為低電平,向CPU發(fā)出中斷申請(qǐng),若CPU開(kāi)放外部中斷,則響應(yīng)中斷請(qǐng)求,進(jìn)入中斷服務(wù)程序。在中斷服務(wù)程序中先保護(hù)現(xiàn)場(chǎng),然后執(zhí)行前面討論的掃描式鍵盤(pán)輸入子程序,最后恢復(fù)現(xiàn)場(chǎng)并返回。圖7-15中斷掃描工作方式鍵盤(pán)接口

7.3.2矩陣鍵盤(pán)的工作原理

利用MCS-51單片機(jī)的I/O端口連接獨(dú)立式鍵盤(pán),在按鍵個(gè)數(shù)較少的時(shí)候能夠達(dá)到一定效果,但如果系統(tǒng)需要的按鍵個(gè)數(shù)比較多,則這種方式需要占用大量的I/O端口,如16個(gè)按鍵就要占用16個(gè)I/O端口,非常浪費(fèi)系統(tǒng)資源。當(dāng)系統(tǒng)需要按鍵的個(gè)數(shù)較多時(shí),采用矩陣式鍵盤(pán)更合理,即利用MCS51單片機(jī)的I/O端口相互交叉構(gòu)成鍵盤(pán),這種方式不僅節(jié)省I/O端口,而且按鍵掃描和按鍵識(shí)別程序也比較簡(jiǎn)單。

1.接口電路

在鍵盤(pán)中按鍵數(shù)量較多時(shí),為了減少I(mǎi)/O口的占用,通常將按鍵排列成矩陣形式。例如,對(duì)于l6個(gè)按鍵的鍵盤(pán),可以按照?qǐng)D7-16所示的4×4矩陣方式連接,即4根行線和4根列線,每個(gè)行線和列線交叉點(diǎn)處即為一個(gè)鍵位。4根行線接Pl口的低4位I/O口線,4根列線接P1口的高4位I/O口線,共需8根I/O口線。

2.工作原理

使用矩陣鍵盤(pán)的關(guān)鍵是如何判斷按鍵值。根據(jù)圖7-16所示,如果已知Pl.0引腳被置為低電平“0”,那么當(dāng)按鍵S1被按下時(shí),可以肯定Pl.4引腳的信號(hào)必定變成低電平“0”;

反之,如果已知P1.0引腳被置為低電平“O”,P1.1引腳、P1.2引腳和P1.3引腳被置為高電平,而單片機(jī)掃描到P1.4引腳為低電平“0”,則可以肯定S1鍵被按下。圖7-16矩陣鍵盤(pán)的接口電路

識(shí)別按鍵的基本過(guò)程如下:

(1)首先判斷是否有鍵被按下。將全部行線(P1.0引腳、P1.1引腳、P1.2引腳和P1.3引腳)置低電平“0”,全部列線置高電平“1”,然后檢測(cè)列線的狀態(tài)。只要有一列的電

平為低,則表示鍵盤(pán)中有鍵被按下;若檢測(cè)到所有列線均為高電平,則鍵盤(pán)中無(wú)鍵被按下。

(2)按鍵消抖。當(dāng)判別到有鍵被按下后,調(diào)用延時(shí)子程序,執(zhí)行后再次進(jìn)行判別。若確認(rèn)有鍵被按下,則開(kāi)始第(3)步的按鍵識(shí)別,否則重新開(kāi)始。

(3)按鍵識(shí)別。當(dāng)有鍵被按下時(shí),轉(zhuǎn)入逐行掃描的方法來(lái)確定是哪一個(gè)鍵被按下。先掃描第一行,即先將第一行輸出低電平“0”,然后讀入列值,哪一列出現(xiàn)低電平“0”,則說(shuō)明該列與第一行跨接的鍵被按下。若讀入的列值全為“1”,則說(shuō)明與第一行跨接的按鍵(S1~S4)均沒(méi)有被按下。接著開(kāi)始掃描第二行,依次類(lèi)推,逐行掃描,直到找到被按下的鍵。

任務(wù)7-4無(wú)軟件消抖的獨(dú)立式鍵盤(pán)輸入

任務(wù)目的用按鍵S1控制發(fā)光二極管D1的工作狀態(tài)(亮、滅)。每按下一次按鍵S1后,發(fā)光二極管D1的工作狀態(tài)發(fā)生翻轉(zhuǎn),電路原理圖如圖7-17所示。任務(wù)準(zhǔn)備設(shè)備及軟件:萬(wàn)用表、計(jì)算機(jī)、KeilμVision4軟件、Proteus軟件。圖7-17獨(dú)立式鍵盤(pán)輸入實(shí)驗(yàn)電路

任務(wù)實(shí)施

1.實(shí)現(xiàn)方法

將P1.0引腳電平初始化為低電平(D1點(diǎn)亮),將P3.5引腳電平初始化為高電平,以后每按下一次按鍵S1,讓P1.0引腳輸出電平翻轉(zhuǎn)即可。

2.程序設(shè)計(jì)

先建立一個(gè)文件夾,然后新建一個(gè)名稱(chēng)為“KEY1”的工程項(xiàng)目,最后建立源程序文件“KEY1.c”。

3.用Proteus軟件仿真

經(jīng)Keil軟件編譯通過(guò)后,可利用Proteus軟件進(jìn)行仿真。在ProteusISIS編輯環(huán)境中繪制仿真電路圖,將編譯好的“KEY1.hex”文件載入AT89C51。啟動(dòng)仿真,可以看到,當(dāng)

用鼠標(biāo)按下S1鍵時(shí),發(fā)光二極管D1亮滅狀態(tài)的控制不能達(dá)到預(yù)期效果,常常需按多次按鍵,才能實(shí)現(xiàn)D1最終的工作狀態(tài)發(fā)生翻轉(zhuǎn)。

出現(xiàn)這種現(xiàn)象的原因是:程序沒(méi)有進(jìn)行按鍵消抖,從而使單片機(jī)實(shí)際檢測(cè)到的按鍵次數(shù)不確定。

任務(wù)7-5采用軟件消抖的獨(dú)立式鍵盤(pán)輸入

任務(wù)目的用按鍵S1控制發(fā)光二極管D1的工作狀態(tài)(亮、滅)。每按下一次按鍵S1后,發(fā)光二極管D1的工作狀態(tài)發(fā)生翻轉(zhuǎn),電路原理圖如圖7-17所示。設(shè)計(jì)一段采用軟件消抖的按鍵識(shí)別程序?qū)崿F(xiàn)上述功能。任務(wù)準(zhǔn)備設(shè)備及軟件:萬(wàn)用表、計(jì)算機(jī)、KeilμVision4軟件、Proteus軟件。

任務(wù)實(shí)施

1.實(shí)現(xiàn)方法

將P1.0引腳電平初始化為低電平(D1點(diǎn)亮),將P3.5引腳電平初始化為高電平,之后檢測(cè)按鍵S1是否閉合,若閉合則延時(shí)20ms左右后再次檢測(cè)按鍵的狀態(tài),若仍為閉合狀態(tài),則說(shuō)明按鍵為有效閉合狀態(tài),讓P1.0引腳輸出電平翻轉(zhuǎn)即可;否則說(shuō)明為按鍵抖動(dòng)引起的干擾,應(yīng)不做處理,這樣便有效消除了按鍵的抖動(dòng)帶來(lái)的誤操作。

2.程序設(shè)計(jì)

先建立一個(gè)文件夾,然后新建一個(gè)名稱(chēng)為“KEY2”的工程項(xiàng)目,最后建立源程序文件“KEY2.c”。

3.用Proteus軟件仿真

經(jīng)Keil軟件編譯通過(guò)后,可利用Proteus軟件進(jìn)行仿真。在ProteusISIS編輯環(huán)境中繪制仿真電路圖,將編譯好的“KEY2.hex”文件載入AT89C51。啟動(dòng)仿真,可以看到,當(dāng)

用鼠標(biāo)點(diǎn)動(dòng)按下S1鍵時(shí),發(fā)光二極管D1亮滅狀態(tài)的控制較好地達(dá)到了預(yù)期效果。

當(dāng)長(zhǎng)時(shí)間按下S1鍵時(shí),發(fā)光二極管D1的工作狀態(tài)不斷翻轉(zhuǎn),若想避免這樣的現(xiàn)象,可在程序中按鍵檢測(cè)的部分,增加等待按鍵釋放的語(yǔ)句。

7.4字符型LCD液晶接口技術(shù)

普通的LED數(shù)碼管只能用來(lái)顯示數(shù)字,如果要顯示英文、漢字或圖像,則需要使用液晶顯示器。液晶顯示器的英文名稱(chēng)是LiquidCrystalDisplay,簡(jiǎn)稱(chēng)LCD。液晶顯示器作為顯示器件具有體積小、重量輕、功耗低等優(yōu)點(diǎn),所以LCD日漸成為各種便攜式電子產(chǎn)品的理想顯示器,如電子表、計(jì)算器上的顯示器等。

目前常用的有16字×1行、16字×2行、20字×2行和40字×2行等字符模塊。這些LCD雖然顯示的字?jǐn)?shù)各不相同,但都具有相同的輸入/輸出界面。型號(hào)通常用XXX1602、XXX1604、XXX2002、XXX2004等表示。對(duì)于XXX1602,XXX為商標(biāo)名稱(chēng);16代表液晶每行可顯示16個(gè)字符;02表示共有2行,即這種顯示器一共可顯示32個(gè)字符。圖7-18所示是某1602字符型LCD的外形圖。圖7-18某1602字符型LCD的正反面照片

1.LCD顯示的原理

液晶顯示的原理是利用液晶的物理特性,通過(guò)電壓對(duì)顯示區(qū)域進(jìn)行控制,只要輸入所需的控制電壓,就可以顯示出字符。LCD能夠顯示字符的關(guān)鍵在于其控制器,目前大部分點(diǎn)陣型LCD都使用日立公司的HD44780集成電路作為控制器。

2.1602型LCD的特性

(1)5V電壓,反視度(明暗對(duì)比度)可調(diào)整。

(2)內(nèi)含振蕩電路,系統(tǒng)內(nèi)含重置電路。

(3)提供各種控制命令,如清除顯示器、字符閃爍、光標(biāo)閃爍、顯示移位等多種功能。

(4)顯示用數(shù)據(jù)DDRAM共用80B。

(5)字符發(fā)生器CGROM有160個(gè)5×7點(diǎn)陣字符。

(6)字符發(fā)生器CGRAM可由使用者自行定義8個(gè)5×7的點(diǎn)陣字符。

3.1602型LCD的引腳及功能

1腳(VDD/VSS):電源5V或接地。

2腳(VSS/VDD):接地或電源5V。

3腳(VEE):對(duì)比度調(diào)整。使用可變電阻調(diào)整,通常接地。

4腳(RS):寄存器選擇。高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。

5腳(R/W):讀/寫(xiě)選擇。高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫(xiě)操作。當(dāng)RS和R/W共同為低電平時(shí)可以寫(xiě)入指令或者顯示地址;當(dāng)RS為低電平、R/W為高電平時(shí)可以讀忙信號(hào);當(dāng)RS為高電平、R/W為低電平時(shí)可以寫(xiě)入數(shù)據(jù)。

6腳(E):使能操作。高電平時(shí)LCM可做讀寫(xiě)操作;低電平時(shí)LCM不能做讀寫(xiě)操作。

7腳(DB0):雙向數(shù)據(jù)總線的第0位。

8腳(DB1):雙向數(shù)據(jù)總線的第1位。

9腳(DB2):雙向數(shù)據(jù)總線的第2位。

10腳(DB3):雙向數(shù)據(jù)總線的第3位。

11腳(DB4):雙向數(shù)據(jù)總線的第4位。

12腳(DB5):雙向數(shù)據(jù)總線的第5位。

13腳(DB6):雙向數(shù)據(jù)總線的第6位。

14腳(DB7):雙向數(shù)據(jù)總線的第7位。

15腳(VDD):背光顯示器電源+5V。

16腳(VSS):背光顯示器接地。

說(shuō)明:由于生產(chǎn)LCD的廠商眾多,使用時(shí)應(yīng)注意電源引腳1、2的不同。LCD數(shù)據(jù)讀寫(xiě)方式可以分為8位及4位兩種,以8位數(shù)據(jù)進(jìn)行讀寫(xiě)則DB7~DB0都有效,若以4位方

式進(jìn)行讀寫(xiě)則只用到DB7~DB4。

4.LCD的控制器HD44780的特點(diǎn)

HD44780的內(nèi)部組成結(jié)構(gòu)如圖7-19所示。HD44780的特點(diǎn)總結(jié)如下:

(1)HD44780不僅可作為控制器,而且還具有驅(qū)動(dòng)40×16點(diǎn)陣液晶像素的能力,并且HD44780的驅(qū)動(dòng)能力可通過(guò)外接驅(qū)動(dòng)器擴(kuò)展360列驅(qū)動(dòng)。

(2)HD44780的顯示緩沖區(qū)及用戶(hù)自定義的字符發(fā)生器CGRAM全部?jī)?nèi)藏在芯片內(nèi)。

(3)HD44780具有適用于M6800系列MCU的接口,并且接口數(shù)據(jù)傳輸可為8位數(shù)據(jù)傳輸和4位數(shù)據(jù)傳輸兩種方式。

(4)HD44780具有簡(jiǎn)單而功能較強(qiáng)的指令集,可實(shí)現(xiàn)字符移動(dòng)、閃爍等顯示功能。

由于HD44780的DDRAM容量有限,HD44780可控制的字符為每行80個(gè)字,也就是5×80=400點(diǎn)。HD44780內(nèi)藏有16路行驅(qū)動(dòng)器和40路列驅(qū)動(dòng)器,所以HD44780本身

就具有驅(qū)動(dòng)16×40點(diǎn)陣LCD的能力(即單行16個(gè)字符或兩行8個(gè)字符)。

圖7-19HD44780的內(nèi)部組成結(jié)構(gòu)

5.LCD的控制器HD44780的工作原理

1)DDRAM———數(shù)據(jù)顯示用RAM

DDRAM是數(shù)據(jù)顯示用RAM(DataDisplayRAM)。DDRAM用來(lái)存放我們要LCD顯示的數(shù)據(jù),只要將標(biāo)準(zhǔn)的ASCII碼送入DDRAM,內(nèi)部控制電路就會(huì)自動(dòng)將數(shù)據(jù)傳送到顯示器上,如要LCD顯示字符A,則我們只需將ASCII碼41H存入DDRAM即可。DDRAM有80B(字節(jié))空間,共可顯示80個(gè)字(每個(gè)字為1個(gè)字節(jié)),其存儲(chǔ)器地址與實(shí)際

顯示位置的排列順序與LCD的型號(hào)有關(guān)。1602液晶屏的RAM地址映射圖如圖7-20所示。圖7-201602液晶屏的RAM地址映射圖

2)CGROM———字符產(chǎn)生器ROM

CGROM是字符產(chǎn)生器ROM(CharacterGeneratorROM)。CGROM儲(chǔ)存了192個(gè)

5×7的點(diǎn)陣字符。CGROM的字符要經(jīng)過(guò)內(nèi)部電路的轉(zhuǎn)換才會(huì)傳到顯示器上,僅能讀出不可寫(xiě)入。字符的排列方式與標(biāo)準(zhǔn)的ASCII碼相同,如字符碼31H為1字符,字符碼41H

為A字符。如我們要在LCD中顯示A,就是將A的ASCII代碼41H寫(xiě)入DDRAM中,同時(shí)電路到CGROM中將A的字符點(diǎn)陣數(shù)據(jù)找出來(lái)顯示在LCD上。字符與字符碼對(duì)照表

如表7-3所示。

3)CGRAM———字符產(chǎn)生器RAM

CGRAM即字符產(chǎn)生器RAMCharacterGeneratorRAM)。CGRAM是供使用者儲(chǔ)存自行設(shè)計(jì)的特殊造型的造型碼RAM的。CGRAM共有512b(64字節(jié))。一個(gè)5×7點(diǎn)陣字

符占用8×8b,所以CGRAM最多可存8個(gè)造型。

4)IR———指令寄存器

IR是指令寄存器(InstructionRegister)。IR負(fù)責(zé)儲(chǔ)存MCU要寫(xiě)給LCD的指令碼。當(dāng)MCU要發(fā)送一個(gè)命令到IR時(shí),必須要控制LCD的RS、R/W及E這三個(gè)引腳,當(dāng)

RS及R/W引腳信號(hào)為0,E引腳信號(hào)由1變?yōu)?時(shí),就會(huì)把在DB0~DB7引腳上的數(shù)據(jù)送入IR。

5)DR———數(shù)據(jù)寄存器

DR是數(shù)據(jù)寄存器(DataRegister)。DR負(fù)責(zé)儲(chǔ)存MCU要寫(xiě)到CGRAM或DDRAM的數(shù)據(jù),或儲(chǔ)存MCU要從CGRAM或DDRAM讀出的數(shù)據(jù),因此DR可視為一個(gè)數(shù)據(jù)緩沖區(qū),它也是由LCD的RS、R/W及E等三個(gè)引腳來(lái)控制的。當(dāng)RS及R/W引腳信號(hào)為1,E接腳信號(hào)由1變?yōu)?時(shí),LCD會(huì)將DR內(nèi)的數(shù)據(jù)由DB0~DB7輸出以供MCU讀取;當(dāng)RS引腳信號(hào)為1,R/W引腳信號(hào)為0,E引腳信號(hào)由1變?yōu)?時(shí),就會(huì)把在DB0~DB7引腳上的數(shù)據(jù)存入DR。

6)BF———忙碌標(biāo)志信號(hào)

BF是忙碌標(biāo)志信號(hào)(BusyFlag)。BF的功能是告訴MCU,LCD內(nèi)部是否正忙著處理數(shù)據(jù)。當(dāng)BF=1時(shí),表示LCD內(nèi)部正在處理數(shù)據(jù),不能接受MCU送來(lái)的指令或數(shù)據(jù)。

LCD設(shè)置BF的原因?yàn)?MCU處理一個(gè)指令的時(shí)間很短,只需幾微秒左右,而LCD得花上40μs~1.64ms的時(shí)間,所以MCU要寫(xiě)數(shù)據(jù)或指令到LCD之前,必須先查看BF是否為0。

7)AC———地址計(jì)數(shù)器

AC是地址計(jì)數(shù)器(AddressCounter)。AC的工作是負(fù)責(zé)計(jì)數(shù)寫(xiě)到CGRAM、DDRAM數(shù)據(jù)的地址,或從DDRAM、CGRAM讀出數(shù)據(jù)的地址。使用地址設(shè)定指令寫(xiě)到IR后,則地址數(shù)據(jù)會(huì)經(jīng)過(guò)指令解碼器ID(InstructionDecoder)再存入AC。當(dāng)MCU從DDRAM或CGRAM存取資料時(shí),AC依照MCU對(duì)LCD的操作而自動(dòng)地修改它的地址計(jì)數(shù)值。

6.LCD控制器的指令

用MCU來(lái)控制LCD模塊,方式十分簡(jiǎn)單。LCD模塊其內(nèi)部可以看成兩組寄存器:一組為指令寄存器;一組為數(shù)據(jù)寄存器,由RS引腳來(lái)控制。所有對(duì)指令寄存器或數(shù)據(jù)寄存器的存取均需檢查L(zhǎng)CD內(nèi)部的忙碌標(biāo)志BF,此標(biāo)志用來(lái)告知LCD目前的工作情況,以及是否允許接收控制命令。而此位的檢查可以令RS=0,用讀取DB7來(lái)加以判斷,當(dāng)此DB7為0時(shí),才可以寫(xiě)入指令或數(shù)據(jù)寄存器。LCD控制器的指令共有11組,分別如下:

(1)清除顯示器,如表7-4所示。

指令代碼為01H,將DDRAM數(shù)據(jù)全部填入“空白”的ASCII代碼為20H,執(zhí)行此指令將清除顯示器的內(nèi)容,同時(shí)光標(biāo)移到左上角。

(2)光標(biāo)歸位設(shè)定,如表7-5所示。

指令代碼為02H,地址計(jì)數(shù)器被清0,DDRAM數(shù)據(jù)不變,光標(biāo)移到左上角。*表示可以為0或1。

(3)設(shè)定字符進(jìn)入模式,如表7-6所示。

(4)顯示屏開(kāi)關(guān),如表7-8所示。

(5)顯示光標(biāo)移位,如表7-9所示。

S/C與R/L值對(duì)應(yīng)的工作情形如表7-10所示。

(6)功能設(shè)定,如表7-11所示。

(7)CGRAM地址設(shè)定,如表7-12所示。

該指令用于設(shè)定下一個(gè)要讀寫(xiě)數(shù)據(jù)的CGRAM地址(A5~A0)。

(8)DDRAM地址設(shè)定,如表7-13所示。

該指令用于設(shè)定下一個(gè)要讀寫(xiě)數(shù)據(jù)的DDRAM地址(A6~A0)。

(9)忙碌標(biāo)志BF或AC地址讀取,如表7-14所示。

LCD的忙碌標(biāo)志BF用以指示LCD目前的工作情況。當(dāng)BF=1時(shí),表示正在做內(nèi)部數(shù)據(jù)的處理,不接受MCU送來(lái)的指令或數(shù)據(jù);當(dāng)BF=0時(shí),表示已準(zhǔn)備接收命令或數(shù)據(jù)。當(dāng)程序讀取此數(shù)據(jù)的內(nèi)容時(shí),DB7表示忙碌標(biāo)志,而DB6~DB0的值表示CGRAM或DDRAM中的地址,至于是指向哪一地址,則根據(jù)最后寫(xiě)入的地址設(shè)定指令而定。

(10)寫(xiě)數(shù)據(jù)到CGRAM或DDRAM中,如表7-15所示。

先設(shè)定CGRAM或DDRAM的地址,再將數(shù)據(jù)寫(xiě)入DB7~DB0中,以使LCD顯示出字形。也可將使用者自創(chuàng)的圖形存入CGRAM。

(11)從CGRAM或DDRAM中讀取數(shù)據(jù),如表7-16所示。

先設(shè)定CGRAM或DDRAM地址,再讀取其中的數(shù)據(jù)。

7.控制器接口時(shí)序說(shuō)明(HD44780及兼容芯片)

控制LCD所使用的芯片HD44780的讀寫(xiě)周期約為1μs左右,這與8051MCU的讀寫(xiě)周期相當(dāng),所以很容易與MCU相互配合使用。讀操作時(shí)序如圖7-21所示。圖7-21控制器接口讀操作時(shí)序

寫(xiě)操作時(shí)序如圖7-22所示。圖7-22控制器接口寫(xiě)操作時(shí)序

時(shí)序參數(shù)如表7-17所示。

8.1602型LCD的讀寫(xiě)操作

LCD是一個(gè)慢顯示器件,所以在寫(xiě)每條指令前一定要先讀LCD的忙碌狀態(tài)。如果LCD正忙于處理其他指令,就等待;如果不忙,則執(zhí)行寫(xiě)指令。為此,1602型LCD專(zhuān)門(mén)設(shè)了一個(gè)忙碌標(biāo)志位BF,該位連接在8位雙向數(shù)據(jù)線的DB7位上。如果BF為低電平“O”,則表示LCD不忙;如果BF為高電平“1”,則表示LCD處于忙碌狀態(tài),需要等待。假定1602型LCD的8位雙向數(shù)據(jù)線(DB0~DB7)是通過(guò)單片機(jī)的P0口進(jìn)行數(shù)據(jù)傳遞的,那么只要檢測(cè)P0口的P0.7引腳電平(DB7連P0.7)就可以知道忙碌標(biāo)志位BF的狀態(tài)。

1)讀狀態(tài)(忙碌檢測(cè))

要將待顯示的字符(實(shí)際上是其標(biāo)準(zhǔn)ASCII碼)寫(xiě)入液晶模塊,首先就要檢測(cè)LCD是否忙碌,這要通過(guò)讀1602型LCD的狀態(tài)來(lái)實(shí)現(xiàn),即“欲寫(xiě)先讀”。

2)寫(xiě)指令

3)寫(xiě)數(shù)據(jù)

寫(xiě)數(shù)據(jù)實(shí)際是將待顯字符的標(biāo)準(zhǔn)ASCII碼寫(xiě)入LCD的數(shù)據(jù)顯示用存儲(chǔ)器(DDRAM)。

4)自動(dòng)顯示

數(shù)據(jù)寫(xiě)入液晶模塊后,字符產(chǎn)生器(CGROM)將自動(dòng)讀出字符的字形點(diǎn)陣數(shù)據(jù),并將字符顯示在液晶屏上。這個(gè)過(guò)程由LCD自動(dòng)完成,無(wú)需人工干預(yù)。

9.通常推薦的初始化過(guò)程

任務(wù)7-6用LCD顯示字符“MCU

任務(wù)目的使用1602字符型LCD顯示字符“MCU”,采用的接口電路原理圖如圖7-23所示,要求在1602字符型LCD的第1行顯示大寫(xiě)英文字母“MCU”。

顯示模式設(shè)置如下:

(1)16

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論