久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 13789|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)+ADC0832數(shù)字電壓表設(shè)計(jì) 0-5v,含有仿真與報(bào)告和代碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:445903 發(fā)表于 2018-12-22 16:28 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
目錄
1 數(shù)字電壓表的簡(jiǎn)介
1.1數(shù)字電壓表簡(jiǎn)介
1.2數(shù)字電壓表的的背景與意義
2 設(shè)計(jì)總體方案
2.1 設(shè)計(jì)要求
2.2 設(shè)計(jì)思路
2.3 設(shè)計(jì)方案
3 硬件電路設(shè)計(jì)              5
3.1 A/D轉(zhuǎn)換模塊              5
3.2 單片機(jī)系統(tǒng)              8
3.3 復(fù)位電路和時(shí)鐘電路              10
3.4 LCD顯示系統(tǒng)設(shè)計(jì)              11
3.5 總體電路設(shè)計(jì)              13
4 程序設(shè)計(jì)              14
4.1 程序設(shè)計(jì)總方案              14
4.2 系統(tǒng)子程序設(shè)計(jì)              14
5 仿 真              16
5.1軟件調(diào)試              16
5.2顯示結(jié)果及誤差分析              16
5.2.1 顯示結(jié)果
5.2.2 誤差分析
結(jié) 論
參考文獻(xiàn)
附 錄            

1 數(shù)字電壓表的簡(jiǎn)介1.1數(shù)字電壓表簡(jiǎn)介
在電量的測(cè)量中,電壓、電流和頻率是最基本的三個(gè)被測(cè)量,其中電壓量的測(cè)量最為經(jīng)常。而且隨著電子技術(shù)的發(fā)展,更是經(jīng)常需要測(cè)量高精度的電壓,所以數(shù)字電壓表就成為一種必不可少的測(cè)量?jī)x器。數(shù)字電壓表簡(jiǎn)稱DVM,它是采用數(shù)字化測(cè)量技術(shù),把連續(xù)的模擬量轉(zhuǎn)換成不連續(xù)、離散的數(shù)字形式并加以顯示的儀表。由于數(shù)字式儀器具有讀數(shù)準(zhǔn)確方便、精度高、誤差小、測(cè)量速度快等特而得到廣泛應(yīng)用。
    傳統(tǒng)的指針式刻度電壓表功能單一,進(jìn)度低,容易引起視差和視覺(jué)疲勞,因而不能滿足數(shù)字化時(shí)代的需要。采用單片機(jī)的數(shù)字電壓表,將連續(xù)的模擬量如直流電壓轉(zhuǎn)換成不連續(xù)的離散的數(shù)字形式并加以顯示,從而精度高、抗干擾能力強(qiáng),可擴(kuò)展性強(qiáng)、集成方便,還可與PC實(shí)時(shí)通信。數(shù)字電壓表是諸多數(shù)字化儀表的核心與基礎(chǔ)。以數(shù)字電壓表為核心,可以擴(kuò)展成各種通用數(shù)字儀表、專用數(shù)字儀表及各種非電量的數(shù)字化儀表。目前,由各種單片機(jī)和A/D轉(zhuǎn)換器構(gòu)成的數(shù)字電壓表作全面深入的了解是很有必要的。
1.2數(shù)字電壓表的的背景與意義
電壓表已經(jīng)有100多年的發(fā)展歷史,雖然不斷改進(jìn)與完善,仍然無(wú)法滿足現(xiàn)代電子測(cè)量的需求,近二十年,微電子技術(shù),計(jì)算機(jī)技術(shù),集成技術(shù),網(wǎng)絡(luò)技術(shù)等高新技術(shù)得到了迅猛發(fā)展。這一背景和形勢(shì),不斷地向儀器儀表提出了更高、更新、更多的要求,如要求速度更快、靈敏度更高、穩(wěn)定性更好、樣品量更少、遙感遙測(cè)更遠(yuǎn)距、使用更方便、成本更低廉、無(wú)污染等。同時(shí)也為儀器儀表科技與產(chǎn)業(yè)的發(fā)展提供了強(qiáng)大的推動(dòng)力,并成了儀器儀表進(jìn)一步發(fā)展的物質(zhì)、知識(shí)和技術(shù)基礎(chǔ)。
數(shù)字電壓表(Digital Voltmeter簡(jiǎn)稱DVM)自1952年問(wèn)世以來(lái),顯示出強(qiáng)大的生命力,現(xiàn)已成為在電子測(cè)量領(lǐng)域中應(yīng)用最廣泛的一種儀器。數(shù)字電壓表可以顯示清晰、直觀,讀數(shù)準(zhǔn)確,準(zhǔn)確度高,分辨力強(qiáng),測(cè)量范圍廣,擴(kuò)展能力強(qiáng),測(cè)量速度快,輸入阻抗高,集成度高,微功耗和抗干擾能力強(qiáng)等優(yōu)點(diǎn),獨(dú)占電壓表產(chǎn)品的熬頭。
    DVM的高速發(fā)展,使它已成為實(shí)現(xiàn)測(cè)量自動(dòng)化、提高工作效率不可缺少的儀表,數(shù)字化是當(dāng)前計(jì)量?jī)x器發(fā)展的主要方向之一,而高準(zhǔn)度的DC-DVC的出現(xiàn),又使DVM進(jìn)入了精密標(biāo)準(zhǔn)測(cè)量領(lǐng)域。隨著現(xiàn)代化技術(shù)的不斷發(fā)展,數(shù)字電壓表的功能和種類將越來(lái)越強(qiáng),越來(lái)越多,其使用范圍也會(huì)越來(lái)越廣泛。采用智能化的數(shù)字儀器也將是必然的趨勢(shì),它們將不僅能提高測(cè)量準(zhǔn)確度,而且能提高電測(cè)量技術(shù)的自動(dòng)化程序,可以擴(kuò)展成各種通用數(shù)字儀表、專用數(shù)字儀表及各種非電量的數(shù)字化儀表(如:溫度計(jì)、濕度計(jì)、酸度計(jì)、重量、厚度儀等),幾乎覆蓋了電子電工測(cè)量、工業(yè)測(cè)量、自動(dòng)化儀表等各個(gè)領(lǐng)域。從而提高計(jì)量檢定人員的工作效。
    目前數(shù)字電壓表的內(nèi)部核心部件是A/D轉(zhuǎn)換器,轉(zhuǎn)換器的精度很大程度上影響著數(shù)字電壓表的準(zhǔn)確度,本課程設(shè)計(jì)A/D轉(zhuǎn)換器采用ADC0832對(duì)輸人模擬信號(hào)進(jìn)行轉(zhuǎn)換,控制核心STC89C52再對(duì)轉(zhuǎn)換的結(jié)果進(jìn)行運(yùn)算和處理,最后驅(qū)動(dòng)輸出裝置顯示數(shù)字電壓信號(hào)。


2 設(shè)計(jì)總體方案
    該設(shè)計(jì)主要由三個(gè)模塊組成:A/D轉(zhuǎn)換模塊,數(shù)據(jù)處理模塊及顯示模塊。A/D轉(zhuǎn)換主要由芯片ADC0832來(lái)完成,它負(fù)責(zé)把采集到的模擬量轉(zhuǎn)換為相應(yīng)的數(shù)字量在傳送到數(shù)據(jù)處理模塊;數(shù)據(jù)處理則由芯片STC89C52來(lái)完成,其負(fù)責(zé)把ADC0832傳送來(lái)的數(shù)字量經(jīng)過(guò)一定的數(shù)據(jù)處理;產(chǎn)生相應(yīng)的顯示碼送到顯示模塊進(jìn)行顯示。
2.1 設(shè)計(jì)要求
1、以MCS-52系列單片機(jī)為核心器件,組成一個(gè)簡(jiǎn)單的直流數(shù)字電壓表。
2、采用1路模擬量輸入,能夠測(cè)量0-5V之間的直流電壓值。
3、電壓顯示采用LCD1602液晶屏顯示,至少能夠顯示兩位小數(shù)。
4、所用的元件較少,成本低,且測(cè)量精度和可靠性較高。
2.2 設(shè)計(jì)思路
1、根據(jù)設(shè)計(jì)要求,選擇STC89C52單片機(jī)為核心控制器件。
2、A/D轉(zhuǎn)換采用ADC0832實(shí)現(xiàn),與單片機(jī)的接口P3的部分口連接。
3、電壓顯示采用LCD1602液晶屏顯示。
4、LCD1602數(shù)據(jù)傳輸接口是單片機(jī)的P0口,單片機(jī)P0需要接上拉電阻。為方便移植,只需將LCD1602三個(gè)控制端口與P2口連接即可。
2.3 設(shè)計(jì)方案
本設(shè)計(jì)硬件電路設(shè)計(jì)由6個(gè)部分組成:A/D轉(zhuǎn)換電路,STC89C52單片機(jī)系統(tǒng),LCD顯示系統(tǒng)、時(shí)鐘電路、復(fù)位電路以及測(cè)量電壓輸入電路。總體硬件電路框圖如圖2.1所示。

圖2.1 系統(tǒng)硬件設(shè)計(jì)框圖


3 硬件電路設(shè)計(jì)
3.1 A/D轉(zhuǎn)換模塊
    現(xiàn)實(shí)世界的物理量都是模擬量,能把模擬量轉(zhuǎn)化成數(shù)字量的器件稱為模/數(shù)轉(zhuǎn)換器(A/D轉(zhuǎn)換器),A/D轉(zhuǎn)換器是單片機(jī)數(shù)據(jù)采集系統(tǒng)的關(guān)鍵接口電路,按照各種A/D芯片的轉(zhuǎn)化原理可分為逐次逼近型,雙重積分型等等。雙積分式A/D轉(zhuǎn)換器具有抗干擾能力強(qiáng)、轉(zhuǎn)換精度高、價(jià)格便宜等優(yōu)點(diǎn)。與雙積分相比,逐次逼近式A/D轉(zhuǎn)換的轉(zhuǎn)換速度更快,而且精度更高,比如ADC0809、ADC0808等,它們通常具有8路模擬選通開關(guān)及地址譯碼、鎖存電路等,它們可以與單片機(jī)系統(tǒng)連接,將數(shù)字量送到單片機(jī)進(jìn)行分析和顯示。一個(gè)n位的逐次逼近型A/D轉(zhuǎn)換器只需要比較n次,轉(zhuǎn)換時(shí)間只取決于位數(shù)和時(shí)鐘周期,逐次逼近型A/D轉(zhuǎn)換器轉(zhuǎn)換速度快,因而在實(shí)際中廣泛使用。
(1) 逐次逼近型A/D轉(zhuǎn)換器原理
逐次逼近型A/D轉(zhuǎn)換器是由一個(gè)比較器、A/D轉(zhuǎn)換器、存儲(chǔ)器及控制電路組成。它利用內(nèi)部的寄存器從高位到低位一次開始逐位試探比較。
轉(zhuǎn)換過(guò)程如下:
開始時(shí),寄存器各位清零,轉(zhuǎn)換時(shí),先將最高位置1,把數(shù)據(jù)送入A/D轉(zhuǎn)換器轉(zhuǎn)換,轉(zhuǎn)換結(jié)果與輸入的模擬量比較,如果轉(zhuǎn)換的模擬量比輸入的模擬量小,則1保留,如果轉(zhuǎn)換的模擬量比輸入的模擬量大,則1不保留,然后從第二位依次重復(fù)上述過(guò)程直至最低位,最后寄存器中的內(nèi)容就是輸入模擬量對(duì)應(yīng)的二進(jìn)制數(shù)字量。其原理框圖如圖3.1所示:

圖3.1 逐次逼近式A/D轉(zhuǎn)換器原理圖

(2) ADC0832 主要特性
ADC0832為8位分辨率A/D轉(zhuǎn)換芯片,其最高分辨可達(dá)256級(jí),可以適應(yīng)一般的模擬量轉(zhuǎn)換要求。其內(nèi)部電源輸入與參考電壓的復(fù)用,使得芯片的模擬電壓輸入在0~5V之間。芯片轉(zhuǎn)換時(shí)間僅為32μS,據(jù)有雙數(shù)據(jù)輸出可作為數(shù)據(jù)校驗(yàn),以減少數(shù)據(jù)誤差,轉(zhuǎn)換速度快且穩(wěn)定性能強(qiáng)。獨(dú)立的芯片使能輸入,使多器件掛接和處理器控制變的更加方便。通過(guò)DI數(shù)據(jù)輸入端,可以輕易的實(shí)現(xiàn)通道功能的選擇。
(3) ADC0832的外部引腳特征
ADC0832有DIP和SOIC兩種封裝,DIP封裝的ADC0832引腳排列如圖3.2所示。各引腳說(shuō)明如下:

      圖3.2ADC0832的引腳圖

● CS——片選端,低電平有效。
● CH0,CH1——兩路模擬信號(hào)輸入端。
● DI——兩路模擬輸入選擇輸入端。
● DO——模數(shù)轉(zhuǎn)換結(jié)果串行輸出端。
● CLK——串行時(shí)鐘輸入端。
● Vcc/REF——正電源端和基準(zhǔn)電壓輸入端。
● GND——電源地。
(4) 單片機(jī)對(duì)ADC0832的控制原理
    一般情況下ADC0832與單片機(jī)的接口應(yīng)為4條數(shù)據(jù)線,分別是CS、CLK、DO、DI。但由于DO端與DI端在通信時(shí)并未同時(shí)有效并與單片機(jī)的接口是雙向的,所以電路設(shè)計(jì)時(shí)可以將DO和DI 并聯(lián)在一根數(shù)據(jù)線上使用。當(dāng)ADC0832未工作時(shí)其CS輸入端應(yīng)為高電平,此時(shí)芯片禁用,CLK 和DO/DI 的電平可任意。當(dāng)要進(jìn)行A/D轉(zhuǎn)換時(shí),須先將CS端置于低電平并且保持低電平直到轉(zhuǎn)換完全結(jié)束。此時(shí)芯片開始轉(zhuǎn)換工作,同時(shí)由處理器向芯片時(shí)鐘輸入端CLK提供時(shí)鐘脈沖,DO/DI端則使用DI端輸入通道功能選擇的數(shù)據(jù)信號(hào)。在第1個(gè)時(shí)鐘脈沖到來(lái)之前DI端必須是高電平,表示啟動(dòng)位。在第2、3個(gè)時(shí)鐘脈沖到來(lái)之前DI端應(yīng)輸入2位數(shù)據(jù)用于選擇通道功能,其功能項(xiàng)見表3.1所示。

表3.1 功能表

    如表3.1所示,當(dāng)配置位2位數(shù)據(jù)為1、0時(shí),只對(duì)CH0 進(jìn)行單通道轉(zhuǎn)換。當(dāng)配置2位數(shù)據(jù)為1、1時(shí),只對(duì)CH1進(jìn)行單通道轉(zhuǎn)換。當(dāng)配置2位數(shù)據(jù)為0、0時(shí),將CH0作為正輸入端IN+,CH1作為負(fù)輸入端IN-進(jìn)行輸入。當(dāng)配置2位數(shù)據(jù)為0、1時(shí),將CH0作為負(fù)輸入端IN-,CH1作為正輸入端IN+進(jìn)行輸入。到第3個(gè)時(shí)鐘脈沖到來(lái)之后DI端的輸入電平就失去輸入作用,此后DO/DI端則開始利用數(shù)據(jù)輸出DO進(jìn)行轉(zhuǎn)換數(shù)據(jù)的讀取。從第4個(gè)時(shí)鐘脈沖開始由DO端輸出轉(zhuǎn)換數(shù)據(jù)最高位D7,隨后每一個(gè)脈沖DO端輸出下一位數(shù)據(jù)。直到第11個(gè)脈沖時(shí)發(fā)出最低位數(shù)據(jù)D0,一個(gè)字節(jié)的數(shù)據(jù)輸出完成。也正是從此位開始輸出下一個(gè)相反字節(jié)的數(shù)據(jù),即從第11個(gè)時(shí)鐘脈沖輸出D0。隨后輸出8位數(shù)據(jù),到第19個(gè)脈沖時(shí)數(shù)據(jù)輸出完成,也標(biāo)志著一次A/D轉(zhuǎn)換的結(jié)束。最后將CS置高電平禁用芯片,直接將轉(zhuǎn)換后的數(shù)據(jù)進(jìn)行處理就可以了,圖3.3為ADC0832時(shí)序圖。

圖3.3 ADC0832時(shí)序圖

3.2 單片機(jī)系統(tǒng)
(1) STC89C52性能
STC89C52是美國(guó)ATMEL公司生產(chǎn)的低電壓,高性能CMOS8位單片機(jī),片內(nèi)含有4KB的可反復(fù)擦寫的只讀程序存儲(chǔ)器和128字節(jié)的隨機(jī)存儲(chǔ)器。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容,由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的STC89C52是一種高效微控制器,它為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。
    STC89C52功能性能:與MCS-51成品指令系統(tǒng)完全兼容;4KB可編程閃速存儲(chǔ)器;壽命:1000次寫/擦循環(huán)數(shù)據(jù)保留時(shí)間:10年;全靜態(tài)工作:0-24MHz;三級(jí)程序存儲(chǔ)器鎖定;128*8B內(nèi)部RAM;32個(gè)可編程I/O口線;2個(gè)16位定時(shí)/計(jì)數(shù)器;5個(gè)中斷源;可編程串行UART通道;片內(nèi)震蕩器和掉電模式。
(2) STC89C52各引腳功能
STC89C52提供以下標(biāo)準(zhǔn)功能:4KB的Flash閃速存儲(chǔ)器,128B內(nèi)部RAM,32個(gè)I/O口線,兩個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)5向量?jī)杉?jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)震蕩器及時(shí)鐘電路,同時(shí),AT89C52可降至0Hz靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式。空閑方式停止CPU的工作,但允許RAM,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作,掉電方式保存RAM中的內(nèi)容,但震蕩器停止工作并禁止其他所有工作直到下一個(gè)硬件復(fù)位。STC89C52采用PDIP封裝形式,引腳配置如圖3.4所示。

圖3.4 STC89C52的引腳圖

STC89C52芯片的各引腳功能為:
P0口:這組引腳共有8條,P0.0為最低位。這8個(gè)引腳有兩種不同的功能,分別適用于不同的情況,第一種情況是89C52不帶外存儲(chǔ)器,P0口可以為通用I/O口使用,P0.0-P0.7用于傳送CPU的輸入/輸出數(shù)據(jù),這時(shí)輸出數(shù)據(jù)可以得到鎖存,不需要外接專用鎖存器,輸入數(shù)據(jù)可以得到緩沖,增加了數(shù)據(jù)輸入的可靠性;第二種情況是89C52帶片外存儲(chǔ)器,P0.0-P0.7在CPU訪問(wèn)片外存儲(chǔ)器時(shí)先傳送片外存儲(chǔ)器的低8位地址,然后傳送CPU對(duì)片外存儲(chǔ)器的讀/寫數(shù)據(jù)。P0口為開漏輸出,在作為通用I/O使用時(shí),需要在外部用電阻上拉。
P1口:這8個(gè)引腳和P0口的8個(gè)引腳類似,P1.7為最高位,P1.0為最低位,當(dāng)P1口作為通用I/O口使用時(shí),P1.0-P1.7的功能和P0口的第一功能相同,也用于傳送用戶的輸入和輸出數(shù)據(jù)。
P2口:這組引腳的第一功能與上述兩組引腳的第一功能相同即它可以作為通用I/O口使用,它的第一功能和P0口引腳的第二功能相配合,用于輸出片外存儲(chǔ)器的高8位地址,共同選中片外存儲(chǔ)器單元,但并不是像P0口那樣傳送存儲(chǔ)器的讀/寫數(shù)據(jù)。
P3口:這組引腳的第一功能和其余三個(gè)端口的第一功能相同,第二功能為控制功能,每個(gè)引腳并不完全相同,如下表3.2所示:

表3.2 P3口各位的第二功能

P3口各位
第二功能
P3.0  
RXT(串行口輸入)
P3.1  
TXD(串行口輸出)
P3.2
/INT0(外部中斷0輸入)
P3.3
/INT1(外部中斷1輸入)
P3.4
T0(定時(shí)器/計(jì)數(shù)器0的外部輸入)
P3.5
T1(定時(shí)器/計(jì)數(shù)器1的外部輸入)
P3.6
/WR(片外數(shù)據(jù)存儲(chǔ)器寫允許)
      P3.7
/RD(片外數(shù)據(jù)存儲(chǔ)器讀允許)


Vcc為+5V電源線,Vss接地。
ALE:地址鎖存允許線,配合P0口的第二功能使用,在訪問(wèn)外部存儲(chǔ)器時(shí),89C52的CPU在P0.0-P0.7引腳線去傳送隨后而來(lái)的片外存儲(chǔ)器讀/寫數(shù)據(jù)。在不訪問(wèn)片外存儲(chǔ)器時(shí),89C52自動(dòng)在ALE線上輸出頻率為1/6震蕩器頻率的脈沖序列。該脈沖序列可以作為外部時(shí)鐘源或定時(shí)脈沖使用。
/EA:片外存儲(chǔ)器訪問(wèn)選擇線,可以控制89C52使用片內(nèi)ROM或使用片外ROM,
若/EA=1,則允許使用片內(nèi)ROM, 若/EA=0,則只使用片外ROM。
/PSEN:片外ROM的選通線,在訪問(wèn)片外ROM時(shí),89C52自動(dòng)在/PSEN線上產(chǎn)生一個(gè)負(fù)脈沖,作為片外ROM芯片的讀選通信號(hào)。
RST:復(fù)位線,可以使89C52處于復(fù)位(即初始化)工作狀態(tài)。通常89C52復(fù)位有自動(dòng)上電復(fù)位和人工按鍵復(fù)位兩種。
XTAL1和XTAL2:片內(nèi)震蕩電路輸入線,這兩個(gè)端子用來(lái)外接石英晶體和微調(diào)電容,即用來(lái)連接89C52片內(nèi)OSC(震蕩器)的定時(shí)反饋回路。
3.3 復(fù)位電路和時(shí)鐘電路
(1) 復(fù)位電路設(shè)計(jì)
單片機(jī)在啟動(dòng)運(yùn)行時(shí)都需要復(fù)位,使CPU和系統(tǒng)中的其他部件都處于一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開始工作。MCS-51單片機(jī)有一個(gè)復(fù)位引腳RST,采用施密特觸發(fā)輸入。當(dāng)震蕩器起振后,只要該引腳上出現(xiàn)2個(gè)機(jī)器周期以上的高電平即可確保時(shí)器件復(fù)位。復(fù)位完成后,如果RST端繼續(xù)保持高電平,MCS-51就一直處于復(fù)位狀態(tài),只要RST恢復(fù)低電平后,單片機(jī)才能進(jìn)入其他工作狀態(tài)。單片機(jī)的復(fù)位方式有上電自動(dòng)復(fù)位和手動(dòng)復(fù)位兩種,圖3.5是51系列單片機(jī)統(tǒng)常用的上電復(fù)位和手動(dòng)復(fù)位組合電路,只要Vcc上升時(shí)間不超過(guò)1ms,它們都能很好的工作。

圖3-5  復(fù)位電路



圖3.5 復(fù)位電路

(2) 時(shí)鐘電路設(shè)計(jì)
單片機(jī)中CPU每執(zhí)行一條指令,都必須在統(tǒng)一的時(shí)鐘脈沖的控制下嚴(yán)格按時(shí)間節(jié)拍進(jìn)行,而這個(gè)時(shí)鐘脈沖是單片機(jī)控制中的時(shí)序電路發(fā)出的。CPU執(zhí)行一條指令的各個(gè)微操作所對(duì)應(yīng)時(shí)間順序稱為單片機(jī)的時(shí)序。MCS-51單片機(jī)芯片內(nèi)部有一個(gè)高增益反相放大器,用于構(gòu)成震蕩器,XTAL1為該放大器的輸入端,XTAL2為該放大器輸出端,但形成時(shí)鐘電路還需附加其他電路。
    本設(shè)計(jì)系統(tǒng)采用內(nèi)部時(shí)鐘方式,利用單片機(jī)內(nèi)部的高增益反相放大器,外部電路簡(jiǎn),只需要一個(gè)晶振和2個(gè)電容即可,如圖3.6所示。

圖3.6  時(shí)鐘電路

電路中的器件選擇可以通過(guò)計(jì)算和實(shí)驗(yàn)確定,也可以參考一些典型電路的參數(shù),電路中,電容器C1和C2對(duì)震蕩頻率有微調(diào)作用,通常的取值范圍是30±10pF,在這個(gè)系統(tǒng)中選擇了33pF;石英晶振選擇范圍最高可選24MHz,它決定了單片機(jī)電路產(chǎn)生的時(shí)鐘信號(hào)震蕩頻率,在本系統(tǒng)中選擇的是12MHz,因而時(shí)鐘信號(hào)的震蕩頻率為12MHz。
3.4 LCD顯示系統(tǒng)設(shè)計(jì)
(1) LCD的選擇
    在應(yīng)用系統(tǒng)中,設(shè)計(jì)要求不同,使用的LCD顯示器的位數(shù)也不同,因此就生產(chǎn)了位數(shù),尺寸,型號(hào)不同的LCD顯示器供選擇,在本設(shè)計(jì)中,選擇采用LCD1602液晶屏顯示。LCD1602是字符型液晶,顯示字母和數(shù)字比較方便,控制簡(jiǎn)單,成本較低。
(2) LCD1602顯示器的管腳功能
1602LCD采用標(biāo)準(zhǔn)的14腳(無(wú)背光)或16腳(帶背光)接口,各引腳接口說(shuō)明如表3.3所示。

表3.3 引腳接口說(shuō)明表

編號(hào)
符號(hào)
引腳說(shuō)明
編號(hào)
符號(hào)
引腳說(shuō)明
1
VSS
電源地
9
D2
數(shù)據(jù)
2
VDD
電源正極
10
D3
數(shù)據(jù)
3
VL
液晶顯示偏壓
11
D4
數(shù)據(jù)
4
RS
數(shù)據(jù)/命令選擇
12
D5
數(shù)據(jù)
5
R/W
讀/寫選擇
13
D6
數(shù)據(jù)
6
E
使能信號(hào)
14
D7
數(shù)據(jù)
7
D0
數(shù)據(jù)
15
BLA
背光源正極
8
D1
數(shù)據(jù)
16
BLK
背光源負(fù)極
    第1腳:VSS為地電源。第2腳:VDD接5V正電源。第3腳:VL為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比度最高,對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整對(duì)比度。第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。第5腳:R/W為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)RS和R/W共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平R/W為低電平時(shí)可以寫入數(shù)據(jù)。第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。第15腳:背光源正極。第16腳:背光源負(fù)極。
(3) LCD顯示器與單片機(jī)接口設(shè)計(jì)
由于單片機(jī)的并行口不能直接驅(qū)動(dòng)LCD顯示器,所以在一般情況下,必須采用專用的驅(qū)動(dòng)電路芯片,使之產(chǎn)生足夠大的電流,顯示器才能正常工作[7]。如果驅(qū)動(dòng)電路能力差,即負(fù)載能力不夠時(shí),顯示器亮度就低,而且驅(qū)動(dòng)電路長(zhǎng)期在超負(fù)荷下運(yùn)行容易損壞,因此,LCD顯示器的驅(qū)動(dòng)電路設(shè)計(jì)是一個(gè)非常重要的問(wèn)題。
為了簡(jiǎn)化數(shù)字式直流電壓表的電路設(shè)計(jì),在LCD驅(qū)動(dòng)電路的設(shè)計(jì)上,可以利用單片機(jī)P0口上外接的上拉電阻來(lái)實(shí)現(xiàn),即將LCD的D0-D7段顯示引腳與P0口并聯(lián)到上拉電阻之間,這樣,就可以加大P0口作為輸出口德驅(qū)動(dòng)能力,使得LCD能按照正常的亮度顯示出數(shù)字。
3.5 總體電路設(shè)計(jì)
經(jīng)過(guò)以上的設(shè)計(jì)過(guò)程,可設(shè)計(jì)出基于單片機(jī)的簡(jiǎn)易數(shù)字直流電壓表硬件電路原理圖如圖3.7所示。

圖3.7 簡(jiǎn)易數(shù)字電壓表電路圖

此電路的工作原理是:+5V模擬電壓信號(hào)通過(guò)變阻器VR1分壓后由ADC0832的IN0通道進(jìn)入(由于使用的IN0通道,所以ADDA,ADDB,ADDC均接低電平),經(jīng)過(guò)模/數(shù)轉(zhuǎn)換后,產(chǎn)生相應(yīng)的數(shù)字量經(jīng)過(guò)其輸出通道D0-D7傳送給STC89C52芯片的P1口,并且此時(shí)單片機(jī)STC89C52負(fù)責(zé)把接收到的數(shù)字量經(jīng)過(guò)數(shù)據(jù)處理,產(chǎn)生正確的信號(hào)傳給LCD1602,LCD1602經(jīng)過(guò)正確的線段顯示。此外,STC89C52還控制ADC0832的工作。其中,單片機(jī)STC89C52通過(guò)定時(shí)器中斷從P3.3輸出方波,接到ADC0832的CLOCK,P3.4發(fā)正脈沖啟動(dòng)A/D轉(zhuǎn)換,并檢測(cè)A/D轉(zhuǎn)換是否完成,轉(zhuǎn)換完成后,P3.5置高從P1口讀取轉(zhuǎn)換結(jié)果送給LCD顯示出來(lái)。
數(shù)字直流電壓表的硬件電路設(shè)計(jì)完成,就可以選取相應(yīng)的芯片和元器件,Proteus軟件繪制出硬件的原理,并仔細(xì)地檢查,直至形成完善的硬件原理圖。但要真正實(shí)現(xiàn)電路對(duì)電壓的測(cè)量和顯示的功能,還需要有相應(yīng)的軟件配合,才能達(dá)到設(shè)計(jì)要求。
4 程序設(shè)計(jì)
    系統(tǒng)的軟件程序中主函數(shù)含有初始化程序,同時(shí)分別調(diào)用AD0832轉(zhuǎn)換程序、數(shù)據(jù)轉(zhuǎn)換程序、顯示函數(shù),在顯示程序中包含LCD1602驅(qū)動(dòng)程序。以此完成整個(gè)系統(tǒng)的運(yùn)行。
4.1 程序設(shè)計(jì)總方案
根據(jù)模塊的劃分原則,將該程序劃分初始化模塊,A/D轉(zhuǎn)換子程序和顯示子程序,這三個(gè)程序模塊構(gòu)成了整個(gè)系統(tǒng)軟件的主程序,如圖4.1所示。

圖4.1 數(shù)字式直流電壓表主程序框圖

4.2 系統(tǒng)子程序設(shè)計(jì)
(1)初始化程序
所謂初始化,是對(duì)將要用到的MCS_51系列單片機(jī)內(nèi)部部件或擴(kuò)展芯片進(jìn)行初始工作狀態(tài)設(shè)定,初始化子程序的主要工作是設(shè)置定時(shí)器的工作模式,初值預(yù)置,開中斷和打開定時(shí)器等。
(2)顯示子程序
顯示子程序采用字符型液晶顯示,此模塊模塊是一種專門用于顯示字母、數(shù)字、符號(hào)等點(diǎn)陣式LCD,目前常用16*1,16*2,20*2和40*2行等的模塊。
在本設(shè)計(jì)中,為了簡(jiǎn)化硬件設(shè)計(jì),主要采用軟件定時(shí)的方式,即用定時(shí)器0溢出中斷功能實(shí)現(xiàn)11μs定時(shí),通過(guò)軟件延時(shí)程序來(lái)實(shí)現(xiàn)5ms的延時(shí)。
(3)A/D轉(zhuǎn)換子程序
A/D轉(zhuǎn)換子程序用來(lái)控制對(duì)輸入的模塊電壓信號(hào)的采集測(cè)量,并將對(duì)應(yīng)的數(shù)值存入相應(yīng)的內(nèi)存單元,其轉(zhuǎn)換流程圖如圖4.2所示。

圖4.2 A/D轉(zhuǎn)換流程圖


5 仿 真5.1軟件調(diào)試
    軟件調(diào)試的主要任務(wù)是排查錯(cuò)誤,錯(cuò)誤主要包括邏輯和功能錯(cuò)誤,這些錯(cuò)誤有些是顯性的,而有些是隱形的,可以通過(guò)仿真開發(fā)系統(tǒng)發(fā)現(xiàn)逐步改正。Proteus軟件可以對(duì)基于微控制器的設(shè)計(jì)連同所有的周圍電子器件一起仿真,用戶甚至可以實(shí)時(shí)采用諸如LED/LCD、鍵盤、RS232終端等動(dòng)態(tài)外設(shè)模型來(lái)對(duì)設(shè)計(jì)進(jìn)行交互仿真。Proteus支持的微處理芯片包括8051系列、AVR系列、PIC系列、HC11系列及Z80等等。Proteus可以完成單片機(jī)系統(tǒng)原理圖電路繪制、PCB設(shè)計(jì),更為顯著點(diǎn)的特點(diǎn)是可以與u Visions3 IDE工具軟件結(jié)合進(jìn)行編程仿真調(diào)試。
   本系統(tǒng)的調(diào)試主要以軟件為主,其中系統(tǒng)電路圖的繪制和仿真我采用的是Proteus軟件,而程序方面,采用的是C語(yǔ)言,用Keil軟件將程序?qū)懭雴纹瑱C(jī)。
5.2顯示結(jié)果及誤差分析5.2.1 顯示結(jié)果
  • 當(dāng)IN0口輸入電壓值為0V時(shí),顯示結(jié)果如圖5.1所示,測(cè)量誤差為0.01V。

圖5.1 輸入電壓為0V時(shí),LCD的顯示結(jié)果


2.當(dāng)IN0輸入電壓值為2.10V時(shí),顯示結(jié)果如圖5.2所示。測(cè)量誤差為0.01V。

圖5.2輸入電壓為2.10V時(shí),LCD的顯示結(jié)果

3. 當(dāng)IN0口輸入電壓值為5.00V時(shí),顯示結(jié)果如圖5.3。測(cè)量誤差為0V。

圖5.3 輸入電壓為5.00V時(shí),LCD的顯示結(jié)果

5.2.2 誤差分析
通過(guò)以上仿真測(cè)量結(jié)果可得到簡(jiǎn)易數(shù)字電壓表與“標(biāo)準(zhǔn)”數(shù)字電壓表對(duì)比測(cè)試表,如下表5.1所示:

表5.1 簡(jiǎn)易數(shù)字電壓表與“標(biāo)準(zhǔn)”數(shù)字電壓表對(duì)比測(cè)試表

標(biāo)準(zhǔn)電壓值/V
簡(jiǎn)易電壓表測(cè)量值/V
絕對(duì)誤差/V
0.00
0.00
0.01
0.50
0.51
0.01
1.00
1.00
0.00
1.50
1.51
0.01
2.10
2.11
0.01
2.50
2.50
0.00
3.00
3.00
0.00
3.56
3.56
0.00
4.00
4.00
0.00
5.00
5.00
0.00

    由于單片機(jī)STC89C52為8位處理器,當(dāng)輸入電壓為5.00V時(shí),ADC0832輸出數(shù)據(jù)值為255(FFH),因此單片機(jī)最高的數(shù)值分辨率為0.0196V(5/255)。這就決定了電壓表的最高分辨率只能到0.0196V,從上表可看到,測(cè)試電壓一般以0.02V的幅度變化。
    從上表可以看出,簡(jiǎn)易數(shù)字電壓表測(cè)得的值基本上比標(biāo)準(zhǔn)電壓值偏大0-0.01V,這可以通過(guò)校正ADC0832的基準(zhǔn)電壓來(lái)解決。因?yàn)樵撾妷罕碓O(shè)計(jì)時(shí)直接用5V的供電電源作為電壓,所以電壓可能有偏差。當(dāng)要測(cè)量大于5V的電壓時(shí),可在輸入口使用分壓電阻,而程序中只要將計(jì)算程序的除數(shù)進(jìn)行調(diào)整就可以了。



結(jié) 論
經(jīng)過(guò)一段時(shí)間的努力,課程設(shè)計(jì)-基于單片機(jī)的簡(jiǎn)易數(shù)字電壓表基本完成。但設(shè)計(jì)中的不足之處仍然存在。這次設(shè)計(jì)是我第一次設(shè)計(jì)電路,并用Proteus實(shí)現(xiàn)了仿真。在這過(guò)程中,我對(duì)電路設(shè)計(jì),單片機(jī)的使用等都有了新的認(rèn)識(shí)。通過(guò)這次設(shè)計(jì)學(xué)會(huì)了Proteus和Keilc軟件的使用方法,掌握了從系統(tǒng)的需要、方案的設(shè)計(jì)、功能模塊的劃分、原理圖的設(shè)計(jì)和電路圖的仿真的設(shè)計(jì)流程,積累了不少經(jīng)驗(yàn)。
基于單片機(jī)的數(shù)字電壓表使用性強(qiáng)、結(jié)構(gòu)簡(jiǎn)單、成本低、外接元件少。在實(shí)際應(yīng)用工作應(yīng)能好,測(cè)量電壓準(zhǔn)確,精度高。系統(tǒng)功能、指標(biāo)達(dá)到了課題的預(yù)期要求、系統(tǒng)在硬件設(shè)計(jì)上充分考慮了可擴(kuò)展性,經(jīng)過(guò)一定的改造,可以增加功能。本文設(shè)計(jì)主要實(shí)現(xiàn)了簡(jiǎn)易數(shù)字電壓表測(cè)量一路電壓的功能,詳細(xì)說(shuō)明了從原理圖的設(shè)計(jì)、電路圖的仿真再到軟件的調(diào)試。
通過(guò)本次設(shè)計(jì),我對(duì)電子測(cè)量有了進(jìn)一步的了解。無(wú)論是在硬件連接方面還是在軟件編程方面。本次設(shè)計(jì)采用了STC89C52單片機(jī)芯片,與以往的單片機(jī)相比增加了許多新的功能,使其功能更為完善,應(yīng)用領(lǐng)域也更為廣泛。設(shè)計(jì)中還用到了模/數(shù)轉(zhuǎn)換芯片ADC0832,以前在學(xué)單片機(jī)課程時(shí)只是對(duì)其理論知識(shí)有了初步的理解。通過(guò)這次設(shè)計(jì),對(duì)它的工作原理有了更深的理解。在調(diào)試過(guò)程中遇到很多問(wèn)題,硬件上的理論知識(shí)學(xué)得不夠扎實(shí),對(duì)電路的仿真方面也不夠熟練。
總之這次電路的設(shè)計(jì)和仿真,基本上達(dá)到了設(shè)計(jì)的功能要求。在以后的實(shí)踐中,我將繼續(xù)努力學(xué)習(xí)電路設(shè)計(jì)方面的理論知識(shí),并理論聯(lián)系實(shí)際,爭(zhēng)取在電路設(shè)計(jì)方面能有所提升。

  1. #include <reg52.h>
  2. #include <intrins.h>
  3. #define uint unsigned int
  4. #define uchar unsigned char
  5. sbit lcdrs=P2^4;
  6. sbit lcdrw=P2^5;
  7. sbit lcden=P2^6; //1602控制端口
  8. sbit DI=P3^4;
  9. sbit DO=P3^4;  //DI和DO與單片機(jī)共接口
  10. sbit Clk=P3^3;
  11. sbit CS=P3^5;//ADC0832控制端口
  12. uchar  dis[3]={0x00,0x00,0x00}; //顯示緩沖區(qū)
  13. uchar date=0; //AD值
  14. uchar CH;    //ADC0832通道值
  15. /*****************************************
  16. AD0832轉(zhuǎn)換程序
  17. ******************************************/
  18. uchar ADC0832(uchar CH)

  19. {
  20.     uchar i,dis0,dis1;
  21.                
  22.               Clk=0;    //拉低時(shí)鐘
  23.    DI=1;   //初始化
  24.    _nop_();
  25.               CS=0;    //芯片選定
  26.     _nop_();
  27.     Clk=1;   //拉高時(shí)鐘
  28.     _nop_();

  29.               if(CH==0)      //通道選擇
  30.     {
  31.       Clk=0;      //第一次拉低時(shí)鐘
  32.       DI=1;     //通道0的第一位
  33.       _nop_();
  34.       Clk=1;    //拉高時(shí)鐘
  35.                 _nop_();
  36.       Clk=0;    //第二次拉低時(shí)鐘,ADC0832 DI接受數(shù)據(jù)
  37.       DI=0;   //通道0的第二位
  38.       _nop_();
  39.       Clk=1;
  40.       _nop_();
  41.     }
  42.     else
  43.     {
  44.       Clk=0;
  45.       DI=1;      //通道1的第一位
  46.       _nop_();
  47.       Clk=1;
  48.       _nop_();
  49.       Clk=0;
  50.       DI=1;      //通道1的第二位
  51.       _nop_();
  52.       Clk=1;
  53.       _nop_();
  54.     }
  55.               Clk=0;  //第三次拉低時(shí)鐘,此前DI兩次賦值決定通道
  56.     DI=1;   //DI開始失效,拉高電平,便于DO數(shù)據(jù)傳輸

  57.     for(i= 0;i<8;i++)      //讀取前8位的值
  58.     {
  59.        _nop_();
  60.        dis0<<= 1;
  61.        Clk=1;   
  62.        _nop_();
  63.        Clk=0;
  64.        if (DO)
  65.           dis0|=0x01;  
  66.       else
  67.          dis0|=0x00;
  68.     }
  69.     for (i=0;i<8;i++)      //讀取后8位的值
  70.     {
  71.        dis1>>= 1;
  72.        if (DO)
  73.         dis1|= 0x80;
  74.        else
  75.         dis1|= 0x00;
  76.        _nop_();
  77.        Clk=1;
  78.        _nop_();
  79.        Clk=0;
  80.     }
  81.               if(dis0==dis1) //兩次結(jié)束數(shù)據(jù)比較,若相等
  82.                 date=dis0;    //則賦值給dat  
  83.     _nop_();
  84.     CS=1;  //釋放ADC0832
  85.     DO=1;  //拉高輸出端,方便下次通道選擇DI端有效
  86.     Clk=1;  //拉高時(shí)鐘
  87. return date;
  88. }
  89. /***********************************************
  90. 數(shù)據(jù)轉(zhuǎn)換程序
  91. 功能:將0-255級(jí)換算成0.00-5.00的電壓數(shù)
  92. ***********************************************/
  93. void convert(uchar a)
  94. {            
  95.     uint temp;       //特別注意這里需定義int型(余數(shù)將大于255)
  96.               dis[0]=a/51;     //取個(gè)位
  97.               temp=a%51;
  98.               temp=temp*10;
  99.               dis[1]=temp/51;  //取小數(shù)點(diǎn)后第一位
  100.               temp=temp%51;
  101.               temp=temp*10;
  102.               dis[2]=temp/51;  //取小數(shù)點(diǎn)后第二位
  103. }
  104. /*****************************************
  105. LCD1602驅(qū)動(dòng)程序
  106. ******************************************/
  107. void delay(uchar z)
  108. {
  109.               uint x,y;
  110.               for(x=z;x>0;x--)
  111.                             for(y=122;y>0;y--);            
  112. }
  113. void write_cmd(uchar cmd)//lcd1602寫命令函數(shù)
  114. {
  115.               lcdrs=0;
  116.               lcdrw=0;    //選擇指令寄存器
  117.               lcden=1;
  118.               P0=cmd;     //寫數(shù)據(jù)
  119.               delay(5);
  120.               lcden=0;    //使能拉低
  121.               lcden=1;
  122. }
  123. void write_date(uchar date)//lcd1602寫數(shù)據(jù)函數(shù)
  124. {
  125.               lcdrs=1;
  126.               lcdrw=0;    //選擇數(shù)據(jù)寄存器
  127.               lcden=1;
  128.               P0=date;     //寫數(shù)據(jù)
  129.               delay(5);
  130.               lcden=0;    //使能拉低
  131.               lcden=1;
  132. }
  133. void init_lcd1602()//lcd1602初始化
  134. {
  135.               write_cmd(0x01);  //清屏
  136.               write_cmd(0x38);  //功能設(shè)置
  137.               write_cmd(0x0c);  //顯示設(shè)置
  138.               write_cmd(0x06);  //輸入方式從左到右
  139.               delay(1);
  140. }
  141. /*****************************************
  142. 顯示函數(shù)
  143. *****************************************/
  144. void display(void)
  145. {
  146.               uchar i;
  147.               write_cmd(0x80);
  148.               for(i=0;i<3;i++)
  149.               {
  150.                             if(i==1) write_date('.'); //第二位顯示小數(shù)點(diǎn)
  151.                             write_date (0x30+dis[i]);
  152.                             delay(5);
  153.               }
  154.               write_date('V');  //最后一位后顯示字符'V'
  155.             
  156. }
  157. /************************************************
  158.       主函數(shù)
  159. ***************************************************/

  160. void main(void)

  161. {
  162.    CH=0;       //選擇通道0或1
  163.   init_lcd1602();//液晶1602顯示初始化
  164.    while(1)       //主循環(huán)                             
  165.    {
  166.                             date=ADC0832(CH);//啟動(dòng)ADC0832轉(zhuǎn)換并接受數(shù)據(jù)
  167.                             delay(1);
  168.                             convert(date);  //數(shù)據(jù)轉(zhuǎn)換成BCD碼
  169.                      display();      //顯示數(shù)值
  170.     }
  171. }
復(fù)制代碼

全部資料51hei下載地址:
zhc仿真與報(bào)告.rar (298.21 KB, 下載次數(shù): 201)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:552840 發(fā)表于 2019-6-26 09:43 | 只看該作者
有沒(méi)有仿真圖的程序文件
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美成人a∨高清免费观看 色999日韩 | 亚洲二区视频 | 久久av影院 | 国产电影一区二区在线观看 | 国产一区二区三区视频免费观看 | 日韩中文字幕一区 | 精品伊人 | 国产免费观看一级国产 | 亚洲三区在线观看 | 欧美一区二区三区在线播放 | 玖玖国产精品视频 | 国产精品亚洲一区 | 精品免费av| 亚洲精品一级 | 国产精品成人一区二区三区夜夜夜 | 亚洲欧洲中文 | 亚洲国产精久久久久久久 | 成人乱人乱一区二区三区软件 | 视频在线观看亚洲 | 日韩精品一区二区三区在线观看 | 狠狠操天天操 | 99精品免费视频 | 在线看亚洲 | 中文字幕久久久 | 第一区在线观看免费国语入口 | 亚洲小视频在线观看 | 久久免费视频1 | 日本午夜精品 | 中文在线视频观看 | 日本特黄a级高清免费大片 成年人黄色小视频 | 五月婷亚洲 | 久久精彩视频 | 亚洲视频在线一区 | 成人影院一区二区三区 | 色婷婷久久久久swag精品 | 日韩一| 综合久久av | 国产精品无码久久久久 | 91精品国产91久久久久久最新 | 99久久婷婷国产综合精品电影 | 99在线资源 |