基于AT89C51的液晶顯示頻率計的設(shè)計_圖文_第1頁
基于AT89C51的液晶顯示頻率計的設(shè)計_圖文_第2頁
基于AT89C51的液晶顯示頻率計的設(shè)計_圖文_第3頁
基于AT89C51的液晶顯示頻率計的設(shè)計_圖文_第4頁
基于AT89C51的液晶顯示頻率計的設(shè)計_圖文_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、引言在設(shè)計單片機(jī)和數(shù)字電路時經(jīng)常需要測量脈沖個數(shù)、脈沖寬度、脈沖周期、脈沖頻率等參數(shù), 雖然使用邏輯分析儀可以很好地測量這些參數(shù), 但其價格昂貴。且實(shí)現(xiàn)測量的數(shù)字化、自動化、智能化已成為各類儀器儀表設(shè)計的方向, 這里介紹一種用單片機(jī)控制的、全自動、數(shù)字顯示的測量頻率的方法。頻率計是我們在電子電路試驗中經(jīng)常會用到的測量儀器之一,它能將頻率用數(shù)碼管或液晶顯示器直接顯示出來,給測試帶來很大的方便,使結(jié)果更加直接;且頻率計還能對其它多種物理量進(jìn)行測量,如機(jī)械振動的頻率、聲音的頻率等,都可以先轉(zhuǎn)變成電信號,然后用頻率計來測量,研究頻率計的設(shè)計與制作將會對我們的生活有很大意義?,F(xiàn)代的頻率計多是用數(shù)碼管顯示

2、的,其結(jié)果不明確,表示也不直接,研究液晶顯示的頻率計對頻率計的發(fā)展很有意義。數(shù)字頻率計是一種用十進(jìn)制數(shù)字顯示被測信號頻率的數(shù)字測量儀器,被測信號可以是正弦波,方波或其它周期性變化的信號。如配以適當(dāng)?shù)膫鞲衅?,可以對多種物理量進(jìn)行測試,比如機(jī)械振動的頻率,轉(zhuǎn)速,聲音的頻率以及產(chǎn)品的計件等等。 因此,數(shù)字頻率計是一種應(yīng)用很廣泛的儀器。它的基本功能是測量正弦信號、方波信號、尖脈沖信號及其他各種單位時間內(nèi)變化的物理量。 它被廣泛應(yīng)用于航天、電子、測控等領(lǐng)域。數(shù)字式頻率計是基于時間或頻率的A/D轉(zhuǎn)換原理,并依賴于數(shù)字電路技術(shù)發(fā)展起來的一種新型的數(shù)字測量儀器。由于數(shù)字電路的飛速發(fā)展,數(shù)字頻率計的發(fā)展也很快。

3、在電子系統(tǒng)非常廣泛的應(yīng)用領(lǐng)域內(nèi),到處可見到處理離散信息的數(shù)字電路。數(shù)字電路制造工業(yè)的進(jìn)步,使得系統(tǒng)設(shè)計人員能在更小的空間內(nèi)實(shí)現(xiàn)更多的功能,從而提高了系統(tǒng)的可靠性和速度??v觀現(xiàn)在的數(shù)字頻率計,其基本原理都是相同的,頻率是單位時間(1S )內(nèi)信號發(fā)生周期變化的次數(shù)。如果我們能在給定的 1S 時間內(nèi)對信號波形計數(shù),并將計數(shù)結(jié)果顯示出來,就能讀取被測信號的頻率。數(shù)字頻率計首先必須獲得相對穩(wěn)定與準(zhǔn)確的時間,同時將被測信號轉(zhuǎn)換成幅度與波形均能被數(shù)字電路識別的脈沖信號,然后通過計數(shù)器計算這一段時間間隔內(nèi)的脈沖個數(shù),將其換算后顯示出來。這就是數(shù)字頻率計的基本原理。但現(xiàn)在的頻率計其顯示部分都是通過LED 數(shù)碼管

4、顯示的,顯示內(nèi)容是BCD 碼,不直觀,若用LCD 液晶來顯示,會使輸出結(jié)果更直接,便于觀察。正因為如此,所以未來數(shù)字頻率計的發(fā)展必定會向用液晶顯示的方向發(fā)展。1 緒論1.1 研究背景在電子系統(tǒng)非常廣泛的應(yīng)用領(lǐng)域內(nèi),到處可見到處理離散信息的數(shù)字電路。數(shù)字電路制造工業(yè)的進(jìn)步,使得系統(tǒng)設(shè)計人員能在更小的空間內(nèi)實(shí)現(xiàn)更多的功能,從而提高了系統(tǒng)的可靠性和速度。集成電路的類型很多,從大的方面可以分為模擬電路和數(shù)字集成電路兩大類。數(shù)字集成電路廣泛用于計算機(jī)、控制與測量系統(tǒng),以及其它電子設(shè)備中。一般說來,數(shù)字系統(tǒng)中運(yùn)行的電信號,其大小往往并不改變,但在實(shí)踐分布上卻有著嚴(yán)格的要求,這是數(shù)字電路的一個特點(diǎn)。數(shù)字集成

5、電路作為電子技術(shù)最重要的基礎(chǔ)產(chǎn)品之一,已廣泛地深入到各個應(yīng)用領(lǐng)域。測量頻率是電子測量技術(shù)中最常見的測量之一,不少物理量的測量, 如時間、速度等都涉及到或本身可轉(zhuǎn)化為頻率的測量。數(shù)字頻率計是用數(shù)字顯示被測信號頻率的儀器,被測信號可以是正弦波、方波或其它周期性變化的信號,如配以適當(dāng)?shù)膫鞲衅?,可以對多種物理量進(jìn)行測試,比如機(jī)械振動的頻率,轉(zhuǎn)速,聲音的頻率以及產(chǎn)品的計件等等。 因此,數(shù)字頻率計是一種應(yīng)用很廣泛的儀器。 1.2 發(fā)展現(xiàn)狀數(shù)字頻率計發(fā)展到現(xiàn)在,有基于CPLD 的數(shù)字頻率計的設(shè)計,基于VHDL 語言的數(shù)字頻率計的設(shè)計,還有基于單片機(jī)的簡易數(shù)字頻率計等。CPLD 是一種新興的高密度大規(guī)??删幊?/p>

6、邏輯器件,它具有門陣列的高密度和PLD 器件的靈活性和易用性,目前已成為一類主要的可編程器件;可編程器件的最大特點(diǎn)是可通過軟件編程對其器件的結(jié)構(gòu)和工作方式進(jìn)行重構(gòu),能隨時進(jìn)行設(shè)計調(diào)整而滿足產(chǎn)品升級,使得硬件的設(shè)計可以如軟件設(shè)計一樣方便快捷,從而改變了傳統(tǒng)數(shù)字系統(tǒng)及用單片機(jī)構(gòu)成的數(shù)字系統(tǒng)的設(shè)計方法、設(shè)計過程及設(shè)計概念,使電子設(shè)計的技術(shù)操作和系統(tǒng)構(gòu)成在整體上發(fā)生了質(zhì)的飛躍。VHDL (Very High Speed Integrated Circuit Hardware Description Language,超高速集成電路硬件描述語言)誕生于1982年,是由美國國防部開發(fā)的一種快速設(shè)計電路的工

7、具,目前已經(jīng)成為IEEE (The Institute of Electrical and Electronics Engineers)的一種工業(yè)標(biāo)準(zhǔn)硬件描述語言;相比傳統(tǒng)的電路系統(tǒng)的設(shè)計方法,VHDL 具有多層次描述系統(tǒng)硬件功能的能力,支持自頂向下(Top to Down)和基于庫(Library Based )的設(shè)計的特點(diǎn)。單片機(jī)技術(shù)在短短的20余年間已發(fā)展成為計算機(jī)技術(shù)中一個非常有活力的分支,它有自己的技術(shù)特征、規(guī)范、發(fā)展道路和應(yīng)用環(huán)境。1.3 單片機(jī)的發(fā)展目前計算機(jī)硬件技術(shù)向巨型化、微型化和單片化三個方向發(fā)展。自1975年美國德克薩斯儀器公司第一塊單片機(jī)芯片TMS-1000問世以來,在

8、短短的30余年間,單片機(jī)技術(shù)已發(fā)展成為計算機(jī)技術(shù)中一個非常有活力的分支,它有自己的技術(shù)特征、規(guī)范、發(fā)展道路和應(yīng)用環(huán)境。按單片機(jī)的生產(chǎn)技術(shù)和應(yīng)用對象,單片機(jī)先后經(jīng)歷了4位機(jī)、8位機(jī)、16位機(jī)、32位機(jī)幾個有代表性的發(fā)展階段。單片機(jī)與通用微機(jī)相比較,在結(jié)構(gòu)、指令設(shè)置上均有其獨(dú)特之處,其主要特點(diǎn)有:1) 單片機(jī)的存儲器ROM 和RAM 是嚴(yán)格區(qū)分的,ROM 稱為程序存儲器,只存放固定常數(shù)及數(shù)據(jù)。RAM 則為數(shù)據(jù)存儲器,用于工作區(qū)及存放用戶數(shù)據(jù)。 2) 采用面向控制的指令系統(tǒng)。3) 單片機(jī)的輸入/輸出引腳通常是多功能的。 4) 單片機(jī)的外部擴(kuò)展能力強(qiáng)。從80年代單片機(jī)被引入我國,單片機(jī)已廣泛地應(yīng)用于電

9、子設(shè)計中。單片機(jī)的應(yīng)用迅速發(fā)展,其性價比高,大量的外圍接口電路,使基于單片機(jī)的電子系統(tǒng)設(shè)計方便,周期縮短,而且不斷發(fā)展。新型單片機(jī)支持高級語言,進(jìn)一步延伸了其發(fā)展空間。2方案論證與選擇2.1 方案一 基于VHDL 語言的頻率計的設(shè)計 設(shè)計的基于VHDL 語言頻率計的系統(tǒng)原理框圖系統(tǒng)原理框圖如圖2.1所示。圖2.1 設(shè)計的基于VHDL 語言頻率計的系統(tǒng)原理框圖各模塊說明如下:(1 標(biāo)準(zhǔn)信號發(fā)生器, 開關(guān)控制電路。標(biāo)準(zhǔn)信號發(fā)生器產(chǎn)生1kHz 基準(zhǔn)信號。開關(guān)控制 電路對鍵盤輸入的啟停信號進(jìn)行處理 (2)分頻器當(dāng)收到使能信號, 分頻器啟動, 將標(biāo)準(zhǔn)1kHz 信號經(jīng)3次10分頻, 得到100Hz, 10

10、Hz, 1Hz 信號。1kHz, 100Hz, 10Hz 信號作為計數(shù)器閘門信號來控制計數(shù), 以實(shí)現(xiàn)不同量程。 (3) 計數(shù)控制器計數(shù)控制模塊將輸入的分頻信號處理, 產(chǎn)生計數(shù)閘門信號、計數(shù)清零信號和鎖存信號。 (4) 計數(shù)器采用3個十進(jìn)制計數(shù)器級聯(lián)作為計數(shù)模塊。閘門信號與待測信號相與作為計數(shù)輸入。計數(shù)結(jié)果直接輸出給鎖存器。 (5)鎖存器每當(dāng)鎖存使能信號來臨, 鎖存器便將鎖存結(jié)果讀入、鎖存。鎖存器還完成量程選擇功能。鎖存器還根據(jù)當(dāng)前量程, 選擇合適的小數(shù)點(diǎn)位置輸出。 (6)譯碼顯示電路由于小數(shù)點(diǎn)由鎖存器輸出, 故在此僅考慮數(shù)碼管的7段驅(qū)動,7段譯碼器將計數(shù)值譯成相應(yīng)的7 段數(shù)碼驅(qū)動值。2.2 方

11、案二 基于單片機(jī)的頻率計的設(shè)計設(shè)計的基于單片機(jī)頻率計的原理框圖如圖2.2所示。 圖2.2 設(shè)計的基于單片機(jī)頻率計的原理框圖復(fù)位電路采用上電復(fù)位方式,每次單片機(jī)上電工作時使單片機(jī)處于復(fù)位狀態(tài),即初始狀態(tài),為測量頻率作好準(zhǔn)備。時鐘電路中片內(nèi)高增益反相放大器通過XTAL1、XTAL2外接作為反饋元件的晶振(呈感性)與電容組成的并聯(lián)諧振回路構(gòu)成一個自激振蕩器向內(nèi)部時鐘電路提供振蕩時鐘,由此向單片機(jī)提供振蕩脈沖。AT89C51單片機(jī)內(nèi)部具有2個16位的定時器/計數(shù)器,并可以在定時或計數(shù)溢出時產(chǎn)生中斷。將被測信號通過P3.5口送入單片機(jī),將T0設(shè)置為定時方式,每50ms 產(chǎn)生一次中斷,產(chǎn)生20次中斷所用時

12、間正好為1S ,將T1設(shè)置為計數(shù)方式,T1的初值設(shè)置為0,計65535個脈沖后產(chǎn)生一次溢出中斷,在T1中斷溢出時對溢出次數(shù)進(jìn)行計數(shù)(計數(shù)值為N )。1S 內(nèi)T1計的總的脈沖數(shù)為65535N TH1256TL1,這個數(shù)值就是被測信號的頻率值。單片機(jī)計的脈沖數(shù)值經(jīng)過轉(zhuǎn)換送到液晶顯示模塊1602,從而顯示被測信號的頻率,測量結(jié)果用十進(jìn)制表示,很直接。2.3 方案的選擇基于VHDL 語言的頻率計設(shè)計的優(yōu)點(diǎn):VHDL 語言, 對設(shè)計的描述具有相對獨(dú)立性, 設(shè)計者可以不懂硬件結(jié)構(gòu), 降低了硬件電路設(shè)計難度。利用EDA 工具maxplus II 對源程序進(jìn)行編譯、選配、優(yōu)化、邏輯綜合, 自動地把VHDL 描

13、述轉(zhuǎn)變成門級電路, 進(jìn)而完成電路分析、糾錯、驗證、自動布局布線、仿真等各種測試工作。最后通過編程電纜下載數(shù)據(jù)流, 將所設(shè)計內(nèi)容下載到所選中的FPGA 器件中, 即完成設(shè)計工作。這種設(shè)計方法減少了電路設(shè)計的時間和可能發(fā)生的錯誤, 降低了開發(fā)成本?;赩HDL 語言的頻率計設(shè)計的缺點(diǎn):FPGA 大部分是基于SRAM 編程, 編程數(shù)據(jù)信息在系統(tǒng)斷電時會丟失, 每次上電時需從器件的外部存儲器或計算機(jī)中將編程數(shù)據(jù)寫入,布線結(jié)構(gòu)和邏輯實(shí)現(xiàn)復(fù)雜,其編程信息需存放在外部存儲器上,需外部存儲器芯片,且使用方法復(fù)雜,保密性差?;趩纹瑱C(jī)的頻率計的設(shè)計的優(yōu)點(diǎn):單片機(jī)在控制領(lǐng)域中有很多優(yōu)點(diǎn),如體積小、成本低、運(yùn)用靈活

14、、抗干擾能力強(qiáng),可以方便地實(shí)現(xiàn)多機(jī)和分布式控制。并且利用單片機(jī)設(shè)計的頻率計原理框圖簡單,所用元器件少,電路不易出錯,其程序存放在內(nèi)部存儲器上,不需要外部存儲器芯片,使用方法簡單。且單片機(jī)便宜、穩(wěn)定、開發(fā)簡單、通用性好?;趩纹瑱C(jī)的頻率計的設(shè)計的缺點(diǎn):所測信號的頻率范圍窄,若要擴(kuò)大頻率范圍需外加分頻器。 綜合比較上述兩種方案,選擇用單片機(jī)來設(shè)計頻率計,顯示部分用液晶顯示模塊,以使測量結(jié)果更加直接、明確。3基于單片機(jī)的液晶顯示頻率計的設(shè)計3.1系統(tǒng)硬件電路的設(shè)計 3.1.1 單片機(jī)的管腳AT89C51單片機(jī)的管腳排部如圖3.1所示。 圖3.1 A T89C51單片機(jī)的管腳排布主電源引腳V CC (

15、40腳):接+5V電源正端。 V SS (20腳):接+5V電源地端。 外接晶體引腳XTAL1(19腳):接外部石英晶體的一端。在單片機(jī)內(nèi)部,它是一個反相放大器的輸入端,這個放大器構(gòu)成了片內(nèi)振蕩器。XTAL2(18腳):接外部石英晶體的另一端。在單片機(jī)內(nèi)部,它是片內(nèi)振蕩器的反相放大器的輸出端。輸入/輸出引腳P0口(3932腳):P0.0P0.7統(tǒng)稱為P0口,在不接片外存儲器與不擴(kuò)展I/O口時,可作為準(zhǔn)雙向輸入/輸出口。P1口(18腳):P1.0P1.7統(tǒng)稱為P1口,可作為準(zhǔn)雙向輸入/輸出口使用。P2口(2128腳):P2.0P2.7統(tǒng)稱為P2口,一般可作為準(zhǔn)雙向輸入/輸出口使用;在接有片外存儲

16、器或擴(kuò)展I/O口且尋址范圍超過256字節(jié)時,P2口用作高8位地址總線。P3口(1017腳):P3.0P3.7統(tǒng)稱為P3口,除作為準(zhǔn)雙向輸入/輸出口使用,還可以將每一位用于第二功能??刂凭€ALE/ PROG (30腳):地址鎖存有效信號輸出端。PSEN (29腳):片外程序存儲器讀選通信號輸出端,低電平有效。 RST/VPD (9腳):RST 即為RESET ,V PD 為備用電源。該引腳為單片機(jī)的上電復(fù)位或掉電保護(hù)端。 EA /VPP (31腳):EA 為片外存儲器選用端。該引腳有效(低電平)時,只選用片外程序存儲器,否則單片機(jī)上電或復(fù)位后選用片內(nèi)程序存儲器。 3.1.2 單片機(jī)的外圍電路1)

17、時鐘電路 單片機(jī)的定時控制功能是用片內(nèi)的時鐘電路和定時電路來完成的,而片內(nèi)的時鐘產(chǎn)生有兩種方式:內(nèi)部時鐘方式和外部時鐘方式,實(shí)際中常應(yīng)用內(nèi)部時鐘方式。設(shè)計的內(nèi)部時鐘方式圖如圖3.2所示。圖3.2 設(shè)計的內(nèi)部時鐘方式圖電容在22PF 33PF 之間選擇,起微調(diào)作用,在此采用30PF 。晶振可采用6MHz 或12MHz ,但是若用6MHz 的晶振,所測頻率范圍太窄,最高只能測到250KHz ,用12MHz 的晶振,最高頻率可測到500KHz ,故在此選用12MHz 的晶振。2)復(fù)位電路單片機(jī)的復(fù)位電路可采用上電復(fù)位或按扭復(fù)位,實(shí)際中常應(yīng)用上電復(fù)位的方式,設(shè)計的上電復(fù)位方式圖如圖3.3 圖3.3 上

18、電復(fù)位方式圖3.1.3 液晶顯示模塊1602液晶顯示器(LCD )具有顯示信息豐富、功耗低、體積小、重量輕、超薄等許多其他顯示器無法比擬的優(yōu)點(diǎn),近幾年來被廣泛用于單片機(jī)控制的智能儀器、儀表和低功耗電子產(chǎn)品中。LCD 型顯示器的構(gòu)成原理很簡單,在兩片透明絕緣的有機(jī)薄膜或者玻璃之間均勻充填著液晶流體,底層透明薄膜上鍍有一層導(dǎo)電體,而頂層透明薄膜上則按需要的形狀敷有透明的導(dǎo)電電極,當(dāng)電極通電后,就與下層導(dǎo)電體之間(約10m )形成一個電場,由于這個電場的作用,其間的液晶體的透光狀況就發(fā)生了變化,從而對外來光線產(chǎn)生了吸收作用,使人們看見了與電極形狀相同的字形顯示。1602采用標(biāo)準(zhǔn)的16腳接口,從該模塊

19、的正面看,引腳排列從左向右為:116腳,1602的管腳排部如圖3.4所示。 圖3.4 1602的管腳排部其中:第1腳:VSS 為地電源。 第2腳:VDD 接5V 正電源。第3腳:VL 為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K 的電位器調(diào)整對比度。第4腳:RS 為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。第5腳:RW 為讀寫信號線,高電平時進(jìn)行讀操作,低電平時進(jìn)行寫操作。當(dāng)RS 和RW 共同為低電平時可以寫入指令或者顯示地址,當(dāng)RS 為低電平RW 為高電平時可以讀忙信號,當(dāng)RS 為高電平RW 為低

20、電平時可以寫入數(shù)據(jù)。第6腳:E 端為使能端,當(dāng)E 端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。第714腳:D0D7為8位雙向數(shù)據(jù)線。 第1516腳:空腳。3.1.4 硬件電路原理圖設(shè)計的系統(tǒng)硬件電路原理圖如圖3.5所示。 圖3.5 系統(tǒng)硬件電路原理圖硬件電路圖中,單片機(jī)的EA 管腳必須接高電平,因為接低電平時只選用片外程序存儲器,而試驗所用的是片內(nèi)程序存儲器。液晶顯示器1602的VL 管腳必須接一個電位器來調(diào)節(jié),因為VL 為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高,對比度過高時會產(chǎn)生“鬼影”,對比度過弱時,看不到屏幕上顯示的數(shù)據(jù)。硬件電路中所選用的元器件的規(guī)格/型號見

21、附錄B 。3.2 系統(tǒng)軟件的設(shè)計3.2.1 定時器/計數(shù)器工作方式的設(shè)置定時器/計數(shù)器T0、T1都有四種工作方式,可通過程序?qū)MOD 設(shè)置選擇。TMOD 的低四位用于定時器/計數(shù)器0,高四位用于定時器/計數(shù)器1。TMOD 的位定義如圖1.1所示。 圖3.6 TMOD 的位定義C/T:定時或計數(shù)功能選擇位,當(dāng)C/T1時為計數(shù)方式;當(dāng)C/T0時為定時方式。 M1、M0:定時器/計數(shù)器工作方式選擇位。GATE :門控位,用于控制定時器/計數(shù)器的啟動是否受外部中斷請求信號的影響。一般情況下GATE 0。當(dāng)M1M0=00時,定時器/計數(shù)器設(shè)定為工作方式0,構(gòu)成13位定時器/計數(shù)器。計數(shù)值由下式確定:N

22、=8192-X,式中N 為計數(shù)值,X 是THX 、TLX 的初值。計數(shù)范圍為18192。定時時間由下式確定:T=N Tcy =(8192-XTcy,式中Tcy 為單片機(jī)的機(jī)器周期。如果振蕩頻率為12MHZ ,則Tcy=1us,定時范圍為18192us 。當(dāng)M1M0=01時,定時器/計數(shù)器設(shè)定為工作方式1,構(gòu)成16位定時器/計數(shù)器。在方式1時,計數(shù)器的計數(shù)值由下式確定:N=65536-X,計數(shù)范圍為165536。定時器的定時時間由下式確定:T=N Tcy =(65536-XTcy,如果振蕩頻率為12MHZ ,則Tcy=1us,定時范圍為165536 us。當(dāng)M1M0=10時,定時器/計數(shù)器設(shè)定為

23、工作方式2。方式2是自動重裝初值的8位定時器/計數(shù)器。在方式2時,計數(shù)器的計數(shù)值由下式確定:N=256-X,計數(shù)范圍為1256。定時器的定時時間由下式確定:T=N Tcy =(256-XTcy,如果振蕩頻率為12MHZ ,則Tcy=1us,定時范圍為1256 us.當(dāng)M1M0=11時,定時器/計數(shù)器設(shè)定為工作方式3。方式3只適用于定時器/計數(shù)器T0。當(dāng)T0工作在方式3時,TH0和TL0被分成兩個獨(dú)立的8位計數(shù)器。方式3下定時器/計數(shù)器的定時、計數(shù)的范圍和定時、計數(shù)值的確定同方式2。在試驗中需將T0設(shè)置為定時方式, 將T1設(shè)置為計數(shù)方式; 定時器T0定時50ms, 即50000us, 需選用工作

24、方式1, 即M1M0=01,因此, 在編制程序時, 將TMOD 的高四位設(shè)為0101, 低四位設(shè)為0001。3.2.2 定時器/計數(shù)器開啟/關(guān)閉的設(shè)置定時器/計數(shù)器的開啟和關(guān)閉可通過控制寄存器TCON 來設(shè)置, TCON的位定義如圖3.7所示。 圖3.7 TCON的位定義TF0(TF1):T0(T1)定時器/計數(shù)器溢出中斷標(biāo)志位。當(dāng)T0(T1)計數(shù)溢出時,由硬件置位,并在允許中斷的情況下,向CPU 發(fā)出中斷請求信號,CPU 響應(yīng)中斷轉(zhuǎn)向中斷服務(wù)程序時,由硬件自動將該位清零。TR0(TR1):T0(T1)運(yùn)行控制位。當(dāng)TR0(TR1)1時啟動T0(T1);TR0(TR1)0時關(guān)閉T0(T1)。該

25、位由軟件進(jìn)行設(shè)置。TCON 的低四位與外部中斷有關(guān)。編寫程序時, 若需啟動T0(T1),通過指令SETB TR0 或SETB TR1將TR0(TR1)設(shè)為1, 需關(guān)閉T0(T1), 通過指令CLR TR0 或CLR TR1將TR0(TR1)設(shè)為0。 3.2.3 中斷的設(shè)置所謂中斷是指CPU 對系統(tǒng)中或系統(tǒng)外發(fā)生的某個事件的一種響應(yīng)過程,即CPU 暫時停止現(xiàn)行程序的執(zhí)行,而自動轉(zhuǎn)去執(zhí)行預(yù)先安排好的處理該事件的服務(wù)子程序。當(dāng)處理結(jié)束后,再返回到被暫停程序的斷點(diǎn)處,繼續(xù)執(zhí)行原來的程序。實(shí)現(xiàn)這種中斷功能的硬件系統(tǒng)和軟件系統(tǒng)統(tǒng)稱為中斷系統(tǒng)。試驗中涉及到的T0或T1的中斷, 中斷的控制可通過中斷允許寄存器

26、IE 來設(shè)置。IE 的位定義如圖3.8所示。 圖3.8 IE的位定義EA :中斷允許總控位。EA 0,屏蔽所有的中斷請求;EA=1,開放中斷。EA 的作用是使中斷允許形成兩級控制。即各中斷源首先受EA 位的控制;其次還要受各中斷源自己的中斷允許總控位控制。ET2:定時器/計數(shù)器T2的溢出中斷允許位,只用于52子系列。ES : 串行口中斷允許位。ES 0,禁止串行口中斷;ES 1允許串行口中斷。ET1:定時器/計數(shù)器T1的溢出中斷允許位。ET10,禁止T1中斷;ET11,允許T1中斷。 EX1:外部中斷1的中斷允許位。EX10,禁止外部中斷1中斷;EX11,允許外部中斷1中斷。ET0:定時器/計

27、數(shù)器T0的溢出中斷允許位。ET00,禁止T0中斷;ET01,允許T0中斷。 EX0:外部中斷0的中斷允許位。EX00,禁止外部中斷0中斷;ET01,允許外部中斷0中斷。 試驗中需開中斷允許總控位, 需允許定時器T0和T1中斷, 因此在編程時使EA=1,使ET01且ET11。中斷源有多種, 每個中斷源的優(yōu)先級可通過中斷優(yōu)先級寄存器IP 進(jìn)行設(shè)置并管理。IP 的位定義如圖3.9所示。 圖3.9 IP 的位定義PT2: 定時器/計數(shù)器T2的中斷優(yōu)先級控制位。 PS : 串行口的中斷優(yōu)先級控制位。PT1:定時器/計數(shù)器T1的中斷優(yōu)先級控制位。 PX1:外部中斷INT1的中斷優(yōu)先級控制位。 PT0:定時

28、器/計數(shù)器T0的中斷優(yōu)先級控制位 PX0:外部中斷INT0的中斷優(yōu)先級控制位。試驗中為提高測量結(jié)果的準(zhǔn)確度, 需要將T1的中斷設(shè)置為優(yōu)先, 通過指令SETB PT1來實(shí)現(xiàn)。 3.2.4 液晶顯示模塊1602內(nèi)部的控制指令1602液晶模塊內(nèi)部的控制器共有11條指令,控制指令表如表3.1所示:表3.1 控制指令表它的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實(shí)現(xiàn)的。(說明:1為高電平、0為低電平)指 令 RS R/W E D7 D6 D5 D4 D3 D2 D1 D0 清顯示 0 0 1 0 0 0 0 0 0 0 1 光標(biāo)返回 0 0 1 0 0 0 0 0 0 1 * 置輸入模式 0 0 1

29、 0 0 0 0 0 1 I/D S 顯示開/關(guān)控制 0 0 1 0 0 0 0 1 D C B 光標(biāo)或字符移位 0 0 1 0 0 0 1 S/C R/L * * 置功能0 0 1 0 0 1DLNF*置字符發(fā)生存儲器地址 0 0 1 0 1字符發(fā)生存儲器地址(AGG置數(shù)據(jù)存儲器地址 0 0 1 1顯示數(shù)據(jù)存儲器地址(ADD讀忙標(biāo)志或地址0 1 1 BF 計數(shù)器地址(AC寫數(shù)到CGRAM 或DDRAM 1 0 1 要寫的數(shù) 從CGRAM 或DDRAM 讀數(shù)111讀出的數(shù)據(jù)指令1:清顯示,指令碼01H, 光標(biāo)復(fù)位到地址00H 位置。 指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H 。指令3:光標(biāo)和顯示

30、模式設(shè)置 I/D:光標(biāo)移動方向,高電平右移,低電平左移 S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效。指令4:顯示開關(guān)控制。 D:控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示 C:控制光標(biāo)的開與關(guān),高電平表示有光標(biāo),低電平表示無光標(biāo) B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍。指令5:光標(biāo)或顯示移位 S/C:高電平時移動顯示的文字,低電平時移動光標(biāo) 。指令6:功能設(shè)置命令 DL:高電平時為4位總線,低電平時為8位總線 N:低電平時為單行顯示,高電平時雙行顯示 F: 低電平時顯示5x7的點(diǎn)陣字符,高電平時顯示5x10的點(diǎn)陣字符 (有些模塊是 DL:高電平時為8

31、位總線,低電平時為4位總線)。指令7:字符發(fā)生器RAM 地址設(shè)置 。 指令8:DDRAM 地址設(shè)置 。指令9:讀忙信號和光標(biāo)地址 BF:為忙標(biāo)志位,高電平表示忙,此時模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。指令10:寫數(shù)據(jù) 。 指令11:讀數(shù)據(jù) 。在對液晶顯示模塊1602寫入指令或?qū)懭霐?shù)據(jù)前, 需要進(jìn)行初始化, 如清屏幕, 光標(biāo)返回到00H 位置, 開顯示, 將液晶模塊設(shè)置為雙行顯示等。編程時, 要根據(jù)表3.1來編制程序, 通過對RS 、RW 、D0-D7設(shè)置不同的高低電平來實(shí)現(xiàn)不同的功能。 3.3 系統(tǒng)軟件設(shè)計中的主要流程圖設(shè)計的主程序和T0中斷服務(wù)子程序的流程圖如圖3.10所示。

32、設(shè)計的數(shù)據(jù)處理子程序和T1中斷子程序的流程圖如圖3.11所示。T0中斷服務(wù)子程序主程序 圖3.10 設(shè)計的主程序和T0數(shù)據(jù)處理子程序 T1中斷服務(wù)子程序 圖3.11 設(shè)計的數(shù)據(jù)處理子程序和T1中斷服務(wù)子程序的流程圖3.4 系統(tǒng)軟件設(shè)計中的主要子程序 3.4.1 T1計數(shù)器中斷服務(wù)子程序根據(jù)圖3.11中的T1中斷服務(wù)子程序流程圖設(shè)計的T1計數(shù)器中斷服務(wù)子程序如下。TIMER1:INC 2AH RETI3.4.2 T0定時器中斷服務(wù)子程序根據(jù)圖3.10中的T0中斷服務(wù)子程序流程圖設(shè)計的T0定時器中斷服務(wù)子程序如下。 TIMER_INT: CLR TR0 MOV TL0, TIMER_L MOV T

33、H0, TIMER_H INC TIMCOUNT MOV A , TIMCOUNT CPL P1.4CJNE A, #20H,T_END CLR TR1MOV TIMCOUNT ,#00H; MOV INT_L, TL1 MOV INT_H, TH1 MOV INT_G, 2AH MOV TH1, #00H MOV TL1, #00H MOV 2AH, #00H SETB TR1 SETB TR0 RETI3.4.3 數(shù)據(jù)處理子程序根據(jù)圖3.11中的數(shù)據(jù)處理子程序流程圖設(shè)計的數(shù)據(jù)處理子程序如下。 SBIN_SBCD: CLR A MOV T_G, A MOV T_H, A MOV T_M, A

34、 MOV T_S, A MOV R5, INT_G MOV R7, INT_L MOV R6, INT_H MOV R2, #24 CLR C SBIN_SBCD1: MOV A, R7 RLC A MOV R7, A MOV A, R6 RLC A MOV R6, A MOV A, R5 RLC A MOV R5, A MOV A, T_S ADDC A, T_S DA A MOV T_S, A MOV A, T_M ADDC A, T_M DA A MOV T_M, A MOV A, T_H ADDC A, T_H DA AMOV T_H, A MOV A, T_H ADDDC A, T_

35、H DA A MOV T_G, A MOV A, T_G DA AMOV T_G, A DJNZ R2, SBIN_SBCD1 POP PSW RET總的源程序見附錄A 3.5程序的編譯、仿真3.5.1在Keil 環(huán)境下的程序編寫 1)建立一個新工程單擊 Project 菜單,在彈出的下拉菜單中選中 New Project選項,然后選擇你要保存的路徑, 輸入工程文件的名字, 比如保存到 C51 目錄里, 工程文件的名字為 C51 如下圖所示, 然后點(diǎn)擊保存. 保存新工程的界面圖如圖3.12所示。 圖3.12保存新工程的界面圖完成上述步驟后會出現(xiàn)一對話框,選擇需要的單片機(jī)型號,然后點(diǎn)擊確定。 2

36、)建立一個新的文件單擊“File ”菜單,再在下拉菜單中單擊“New ”選項,此時光標(biāo)在編輯窗口里閃爍,這時可以鍵入應(yīng)用程序了,但應(yīng)首先保存空白的文件,單擊菜單上的“File ”,在下拉菜單中選中“Save As”選項單擊,屏幕如下圖所示,在“文件名”欄右側(cè)的編輯框中,鍵入欲使用的文件名,同時,必須鍵入正確的擴(kuò)展名。注意,如果用語言編寫程序,則擴(kuò)展名為(.c;如果用匯編語言編寫程序,則擴(kuò)展名為(.asm ),然后單擊“保存”按扭。回到編輯界面后,單擊“Target 1”前面的“”號,然后在“Source Group 1”上擊右鍵,添加文件的界面圖如圖3.13所示。 圖3.13 添加文件的界面圖

37、然后單擊“Add File to Group Source Group 1”, 選中要添加的文件,然后單擊“Add ” 3)輸入源程序,進(jìn)行編譯、仿真輸入源程序后,單擊“project ”按鈕下的“Build project, translate ”按鈕,程序無錯誤時界面圖如圖3.14所示。 圖3.14 程序無錯誤時的界面圖4)單擊“Project ”菜單,再在下拉菜單中單擊options for target target1, 出現(xiàn)選擇晶振頻率的界面圖如圖3.15所示。 圖3.15 選擇晶振頻率的界面圖把晶振頻率改為12.0,且選中“Use On-chip ROM ”, 然后單擊“outpu

38、t 選項,出現(xiàn)可選擇生成HEX 文件的界面圖如圖3.16所示: 圖3.16 選擇生成HEX 文件的界面圖單擊圖3.7中的“Create HEX File” 選項,使程序編譯后產(chǎn)生 HEX 代碼。3.5.2在PROTEUS 環(huán)境下的仿真結(jié)果 當(dāng)輸入信號頻率為1Hz 時的顯示結(jié)果 當(dāng)輸入信號頻率為500KHz 時的顯示結(jié)果3.6電路的調(diào)試把程序燒錄到單片機(jī)后,在面包板上按原理圖連接好,卻沒有出現(xiàn)想要的功能,按順序檢查:1)電路圖的連接,經(jīng)檢查發(fā)現(xiàn)單片機(jī)的31管腳沒有接高電平,這在軟件實(shí)現(xiàn)時也沒有接,被默認(rèn)為是高電平,但在硬件中,若不接高電平,該管腳為片外程序存儲器選用端,就無法讀取單片機(jī)內(nèi)的程序,

39、所以未能實(shí)現(xiàn)所需功能。2)31管腳接上高電平時,液晶顯示器1602仍未能顯示所測頻率,推測可能是電位器的調(diào)節(jié)問題,在適當(dāng)?shù)恼{(diào)節(jié)接入電阻值后,1602顯示了所測的頻率。3)把1602所顯示的頻率與實(shí)際的頻率相比較,發(fā)現(xiàn)誤差較大,經(jīng)思考發(fā)現(xiàn)在編寫程序時對定時器的定時50ms 有誤差,沒有考慮到定時器與計數(shù)器的關(guān)閉不是同時的,而有一定的時間差,這個時間差是因執(zhí)行每一條指令時引起的。然后在程序中把定時時間適當(dāng)?shù)目s小到49.985ms ,發(fā)現(xiàn)誤差會變小,能達(dá)到要求。檢查無誤后,接通電源,LCD 能顯示頻率,顯示范圍是1500KHz, 用信號發(fā)生器檢測,誤差不超過2Hz 。組裝的頻率計實(shí)物圖如圖3.17所

40、示。 圖3.17 組裝的頻率計實(shí)物圖基于AT89C51單片機(jī)的液晶顯示頻率計包括單片機(jī)控制模塊和液晶顯示模塊,調(diào)試后的頻率計可測量方波、正弦波、脈沖信號等波形,測量最高頻率為500KHz ,誤差為2Hz 。本設(shè)計的創(chuàng)新點(diǎn)是:顯示部分采用液晶顯示模塊1602,顯示結(jié)果直接且能顯示多行多位,功耗小,使用壽命長。本設(shè)計的不足之處是:測量頻率范圍窄,需要進(jìn)一步擴(kuò)展。從選擇課題到課程設(shè)計的順利結(jié)束,老師和同學(xué)給予了我熱心的幫助,在這里請接受我誠摯的謝意。首先,要特別感謝我的指導(dǎo)教師聶翔副主任,從查找資料到設(shè)計結(jié)束,聶老師都給予了我悉心的指導(dǎo)和幫助。在設(shè)計與調(diào)試過程中,聶老師淵博的理論知識和豐富的實(shí)際經(jīng)驗

41、給了我許多啟發(fā)式的指點(diǎn),還有他嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度和認(rèn)真的工作精神,也使我受益匪淺。其次,還要感謝我們這個小組的其他兩位同學(xué),他們在資料的查閱、整理和設(shè)計的過程中給予了我極大的幫助,正因為有了他們的參與,我們這個團(tuán)隊才能順利地完成課程設(shè)計的各項任務(wù)。除此之外,還要感謝班上其他幫助過我的同學(xué),感謝他們在整個過程中給予我們的鼓勵與幫助。最后,要感謝電信工程系電子教研室的老師,他們?yōu)槲覀兊恼n程設(shè)計提供了良好的實(shí)驗環(huán)境,全天時的實(shí)驗室開放方便了大家的硬件和軟件調(diào)試。電信系和實(shí)驗室的指導(dǎo)老師對我們進(jìn)行的不厭其煩的輔導(dǎo)修改以及必要的批評指正,對設(shè)計的成功給予了很大的幫助。再次衷心的感謝每一位指導(dǎo)并幫助過我的老師

42、和同學(xué)。參考文獻(xiàn)1貴國慶.1602液晶顯示頻率計J.電子制作,2006,149(8):26-27.2陸容. 液晶顯示器(LCD )顯示驅(qū)動原理及其應(yīng)用J.電子制作,2005,134(5):58-59.3李建忠. 單片機(jī)原理及應(yīng)用 M.西安電子科技大學(xué)出版社,2002,3-40.5何立民.MCS-51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計M.北京航空航天大學(xué)出版社,1995,30-34.6吳海州,王文理. 基于VHDL 語言的數(shù)字頻率計設(shè)計J.現(xiàn)代電子技術(shù),2002,138(7):19-21.7 Song Pan ,Guodong Wang. VHDL Application Course M . Chengd

43、u :University of Elect ronic Science and TechnologyPress ,2000,15-20.8 Wanjie Song ,Ping Luo ,Shunjun Wu. CPLD Technology and Application M . Xipan :Xipan University of Elect ronic Science and Technology Press ,2000,27-30.附錄A源程序:BEEP BIT P3.7LCD_RS BIT P2.0LCD_RW BIT P2.1LCD_EN BIT P2.2LCD_X EQU 3FH

44、 ;LCD 地址變量TIMER_H EQU 30H ;定時器高位字節(jié)單元TIMER_L EQU 31H ;定時器低位字節(jié)單元TIMCOUNT EQU 32H ;時間中斷數(shù)INT_G EQU 35H ;中斷計數(shù)緩沖單元高地址INT_H EQU 34H ;中斷計數(shù)緩沖單元中地址INT_L EQU 33H ;中斷計數(shù)緩沖單元低地址T_S EQU 36H ;數(shù)據(jù)顯示低位T_M EQU 37H ;數(shù)據(jù)顯示中位T_H EQU 38H ;數(shù)據(jù)顯示高位T_G EQU 39H ;數(shù)據(jù)顯示最高位;-ORG 0000HJMP MAIN ;主程序開始ORG 000BHJMP TIMER_INT ;定時器T0中斷服務(wù)程

45、序ORG 001BH ;定時器T1中斷服務(wù)程序JMP TIMER1ORG 0030H;-MAIN:MOV SP,#60H ;設(shè)置SP 指針LCALL PRO_SET ;初始化CALL SET_LCDLCALL TIM_T0;-;LCD1602是慢速顯示器件,故100MS 顯示一次。;-MAIN1:MOV R5,40MAIN2:ACALL DELAY1 ;3msDJNZ R5,MAIN2ACALL SBIN_SBCDCALL CONVJMP MAIN1;-;T1計數(shù)器中斷服務(wù)子程序; 計T1計數(shù)器溢出次數(shù);-TIMER1:INC 2AHRETI;-; 初始化程序;-PRO_SET: MOV A,

46、#00HMOV B,#00HMOV 2AH,AMOV P0,#0FFHMOV P1,#0FFHMOV P2,#0FFHMOV INT_H,#00HMOV INT_L,#00HMOV INT_G,#00HMOV T_S,#00HMOV T_H,#00HMOV T_M,#00HMOV T_G,#00HMOV TIMCOUNT,#00HMOV TIMER_H,#3CH ; 理論上定時50MS(3CB0H,實(shí)際定時49.985MS(3CBFH較合適 MOV TIMER_L,#0BFH ;SETB P3.5 ;P3.5端口置輸入狀態(tài)RET ;T1(TIMER1的外部輸入腳) ;-;LCD 初始化設(shè)置;-

47、SET_LCD:CLR LCD_ENCALL INIT_LCD ;初始化 LCDCALL DELAY1MOV DPTR,#INFO1 ;指針指到顯示信息1MOV A,#1 ;顯示在第一行CALL LCD_SHOWMOV DPTR,#INFO2 ;指針指到顯示信息2MOV A,#2 ;顯示在第二行CALL LCD_SHOWRET;-INFO1: DB 072 cairuigang ,0 ;LCD 第一行顯示信息INFO2: DB Freq: HZ,0 ;LCD 第二行顯示信息;-;LCD 接口初始化;8位I/O控制;-INIT_LCD:MOV A,#38H ;雙列顯示,字形5*7點(diǎn)陣CALL W

48、COMCALL DELAY1MOV A,#38H ;雙列顯示,字形5*7點(diǎn)陣CALL WCOMCALL DELAY1MOV A,#38H ;雙列顯示,字形5*7點(diǎn)陣CALL WCOMCALL DELAY1MOV A,#0CH ;開顯示,關(guān)光標(biāo),CALL DELAY1MOV A,#01H ;清除 LCD 顯示屏CALL WCOMCALL DELAY1RET;-LCD_SHOW: ;在LCD 的第一行或第二行顯示信息字符CJNE A,#1,LINE2 ;判斷是否為第一行LINE1: MOV A,#80H ;設(shè)置 LCD 的第一行地址CALL WCOM ;寫入命令CALL CLR_LINE ;清除該

49、行字符數(shù)據(jù)MOV A,#80H ;設(shè)置 LCD 的第一行地址CALL WCOM ;寫入命令JMP FILLLINE2: MOV A,#0C0H ;設(shè)置 LCD 的第二行地址CALL WCOM ;寫入命令CALL CLR_LINE ;清除該行字符數(shù)據(jù)MOV A,#0C0H ;設(shè)置 LCD 的第二行地址CALL WCOMFILL: CLR A ;填入字符MOVC A,A+DPTR ;由消息區(qū)取出字符CJNE A,#0,LC1 ;判斷是否為結(jié)束碼RETLC1: CALL WDATA ;寫入數(shù)據(jù)INC DPTR ;指針加1JMP FILL ;繼續(xù)填入字符RET;-CLR_LINE: ;清除該行 LCD

50、 的字符MOV R0,#24CL1: MOV A,# CALL WDATADJNZ R0,CL1RET;-; 寫指令、數(shù)據(jù)使能子程序;-ENABLE: ;寫指令使能CLR LCD_RS ;RS=L,LCD_RW=L,D0-D7=指令碼,E=高脈沖 CLR LCD_RWSETB LCD_ENCALL DELAY0CLR LCD_ENRETENABLE1: ;寫數(shù)據(jù)使能SETB LCD_RS ;RS=H,RW=L,D0-D7=數(shù)據(jù),E=高脈沖 CLR LCD_RWSETB LCD_ENCALL DELAY0CLR LCD_ENRETDELAY0: MOV R7,#250 ;延時500微秒DJNZ

51、R7,$RET;-; 寫入命令子程序;-WCOM: ;以8位控制方式將命令寫至LCDMOV P0,A ;寫入命令CALL ENABLERET;-; 寫入數(shù)據(jù)子程序;-WDATA: ;以8位控制方式將數(shù)據(jù)寫至LCDMOV P0,A ;寫入數(shù)據(jù)CALL ENABLE1RET;-; 在 LCD 第二行顯示字符;A=ASC DATA, B=LINE X POS;-LCDP2: ;在LCD 的第二行顯示字符PUSH ACC ;MOV A,B ;設(shè)置顯示地址ADD A,#0C0H ;設(shè)置LCD 的第二行地址CALL WCOM ;寫入命令POP ACC ;由堆棧取出ACALL WDATA ;寫入數(shù)據(jù)RET;- ;ASCII

溫馨提示

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

評論

0/150

提交評論