wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

標題: 基于單片機的頻率計畢業設計論文(Word格式) [打印本頁]

作者: zz青草zz    時間: 2018-1-17 18:54
標題: 基于單片機的頻率計畢業設計論文(Word格式)
目錄
1 引言
1.1 目的和意義
1.2 研究概況與發展趨勢
1.3 本系統主要功能
2. 總體方案論證與設計
2.1主控模塊的選型和論證
2.2顯示模塊的選型和論證
2.3放大電路的選型和論證
2.4系統整體設計概述
3.系統硬件電路設計
3.1主控模塊
3.1.1 STC89C52單片機主要特性
3.1.2 STC89C52單片機的中斷系統
3.1.3 單片機最小系統設計
3.2 LCD液晶顯示器簡介
3.2.1 液晶原理介紹
3.2.2液晶模塊簡介
3.2.3液晶顯示部分與STC89C52的接口
3.3三極管放大電路設計
3.4整形模塊設計
3.4.1施密特觸發器芯片介紹
3.4.2 74HC14電路設計
3.5分頻模塊設計
3.5.1 74HC390芯片介紹
3.5.2 74HC390分頻電路設計
4.系統軟件設計
4.1系統軟件總體設計
4.2程序設計原理
5.系統調試
5.1硬件調試
5.2軟件調試
6.結論
附錄
系統整體原理圖
系統仿真圖
元件清單
系統源程序
基于單片機的頻率計
摘要:數字頻率計是一種基本的測量儀器。它被廣泛應用于航天、電子、測控等領域,還被應用在計算機及各種數學儀表中。一般采用的是十進制數字,顯示被測信號頻率。基本功能是測量正弦信號,方波信號以及其他各種單位時間內變壞的物理量。由于其使用十進制數顯示,測量迅速精確,顯示直觀,所以經常被用來使用。
本文主要介紹數字頻率計的設計和調試,本作品是基于STC89C52單片機作為平臺,基本原理是通過STC89C52單片機進行頻率的采集和分析工作,在通過程序使其顯示在LCD1602的液晶顯示屏上,通過液晶顯示屏,讓使用者能夠直觀的看到當前的輸入頻率是多少。
由于STC89C52單片機只能處理數字信號因此系統需要先把信號放大成方波信號,再通過施密特觸發器整形方波,又由于單片機能處理的頻率有限,所以這次我們先用74HC390芯片對輸入的信號進行了分頻,使其降低了100倍,才送去給單片機處理,如果頻率高于200KHZ的時候就計算分頻后的頻率,得到數據再換算成真實的頻率。

1 引言
1.1 目的和意義
在電子測量領域中,頻率測量的精確度是最高的。因此,在生產過程中許多物理量,例如溫度、壓力、流量、液位、PH值、振動、位移、速度、加速度,乃至各種氣體的百分比成分等均用傳感器轉換成信號頻率,然后用數字頻率計來測量,以提高精確度。
國際上數字頻率計的分類很多。按功能分類,因計數式頻率計的測量功能很多,用途很廣。所以根據儀器具有的功能,電子計數器有通用和專用之分。一、通用型計數器:通用型計數器是一種具有多種測量功能、多種用途的萬能計數器。它可測量頻率、周期、多周期平均值、時間間隔、累加計數、計時等;若配上相應插件,就可測相位、電壓、電流、功率、電阻等電量;配上適當的傳感器,還可進行長度、重量、壓力、溫度、速度等非電量的測量。二、專用計數器:專用計數器指專門用來測量某種單一功能的計數器。如頻率計數器,只能專門用來測量高頻和微波頻率;時間計數器,是以測量時間為基礎的計數器,其測時分辨力和準確度很高,可達ns數量級;特種計數器,它具有特種功能,如可逆計數器、閾值計數器、差值計數器、倒數計數器等,用于工業和自控技術等方面。數字頻率計按頻段分類:①低速計數器:最高計數頻率<10MHz;②中速計數器:最高計數頻率10—100MHz;③高速計數器:最高計數頻率>100MHz;④微波頻率計數器:測頻范圍1—80GHz或更高。
由于大規模和超大規模數字集成電路技術、數據通信技術與單片機技術的結合,數字頻率計發展進入了智能化和微型化的新階段。其功能進一步擴大,除了測量頻率、頻率比、周期、時間、相位、相位差等基本功能外,還具有自撿、自校、自診斷、數理統計、計算方均根值、數據存儲和數據通信等功能?梢,頻率計是很有工業價值的。本作品即為一個基于單片機的數字頻率計,它通74HC390芯片進行分頻,克服了單片機難以處理高頻信號的困難,并使用LCD1602液晶顯示進行顯示。
1.2 研究概況與發展趨勢
由于當今社會的需要,對信息傳輸和處理的要求不斷提高,對頻率的測量的精度也需要更高更準確的時頻基準和更精密的測量技術。而頻率測量所能達到的精度,主要取決于作為標準頻率源的精度以及所使用的測量設備和測量方法。目前,測量頻頻的方法有直接測頻法、內插法、游標法、頻差倍增法等等。直接測頻的方法較簡單,但精度不高。頻差倍增多法和周期法是一種頻差倍增法和差拍法相結合的測量方法,這種方法是將被測信號和參考信號經頻差倍增使被測信號
的相位起伏擴大,再通過混頻器獲得差拍信號,用電子計數器在低頻下進行多周期測量,能在較少的倍增次數和同樣的取樣時間情況下,得到比測頻法更高的系統分辨率和測量精度,但是仍然存在著時標不穩而引入的誤差和一定的觸發誤差。
在電子系統廣泛的應用領域中,到處看見處理離散信息的數字電路。供消費用的冰箱和電視、航空通訊系統、交通控制雷達系統、醫院急救系統等在設計過程中都用到數字技術。 數字頻率計是現代通信測量設備系統中必不可少的測量儀器,不但要求電路產生頻率的準確度和穩定度都高的信號,也要能方便的改變頻率。
數字頻率計的實現方法主要有:直接式、鎖相式、直接數字式和混合式
(1)直接式
優點:速度快、相位噪聲低,但結構復雜、雜散多,一般只應用在地面雷達中。
(2)鎖相式
優點:相位同步的自動控制,制作頻率高,功耗低,容易實現系列化、小型化、模塊化和工程化。
(3)直接數字式
優點:電路穩定、精度高、容易實現系列化、小型化、模塊化和工程化。
1.3 本系統主要功能
本系統設計制作一個基于單片機的頻率計。能實現以下幾種功能:
(1)能夠對1HZ對10MHZ正弦波、三角波、方波信號等周期信號的頻率進行測量
(2)系統能夠把測量信號的頻率和周期顯示在液晶屏幕上。

2. 總體方案論證與設計
              根據所要實現的功能劃分,系統一共需要以下幾個模塊:主控模塊、顯示模塊、時鐘模塊、溫度檢測模塊,以下就針對這幾個模塊的選型和論證進行討論。
2.1主控模塊的選型和論證
方案一:
              采用MSP430系列單片機,該單片機是TI公司1996年開始推向市場的一種16位超低功耗的混合信號處理器。其內部集成了很多模擬電路、數字電路和微處理器,提供強大的功能。不過該芯片昂貴不適合一般的設計開發。
方案二
              采用51系列的單片機,該單片機是一個高可靠性,超低價,無法解密,高性能的8位單片機,32個IO口,且STC系列的單片機可以在線編程、調試,方便地實現程序的下載與整機的調試。
因此選用方案二中的51系列單片機作為主控芯片。
2.2顯示模塊的選型和論證
方案一:
              采用點陣式數碼管顯示,點陣式數碼管是由八行八列的發光二極管組成,對于顯示文字比較合適,如采用在顯示數字顯得太浪費,且價格也相對較高,所以不用此種作為顯示。
方案二:
              采用LED數碼管動態掃描,LED數碼管價格雖適中,對于顯示數字也最合適,而且采用動態掃描法與單片機連接時,占用單片機口線少。但是由于數碼管動態掃描需要借助74LS164移位寄存器進行移位,該芯片在電路調試時往往有很多障礙,所以不采用LED數碼管作為顯示。
方案三:
              采用LCD液晶顯示屏,液晶顯示屏的顯示功能強大,可顯示大量文字,圖形,顯示多樣,清晰可見,對于本設計而言一個LCD1602的液晶屏即可,價格也還能接受,需要的借口線較多,但會給調試帶來諸多方便。
所以本設計中方案三中的LCD1602液顯示屏作為顯示模塊。
2.3放大電路的選型和論證
方案一:
              采用集成運放作為放大電路,該電路只需要在外部配置少量電阻電容則能完成放大功能,十分方便設計,但是本設計需要放大1HZ到10MHZ的信號,通頻帶比較寬,因此對集成運放的要求較高,一般能處理寬帶信號的集成運放成本比較高。
方案二:
              采用三極管或者場效應管作為放大電路,三極管放大電路所需要原件較為簡單容易購置,而且電路較為成熟,三極管的價格也十分低廉,而且三極管電路性能優越,是作為一個低成本的放大電路的不二之選。
              所以本設計中選用三極管為放大電路中使用。
2.4系統整體設計概述
本系統以單片機為控制核心,對系統進行初始化,主要完成液晶顯示、頻率測量、放大整形濾波等功能的控制,起到總控和協調各模塊之間工作的作用。
圖2-1系統結構框圖
本系統結構如圖2-1所示,本設計可分為以下模塊:三極管放大電路、整形電路、分頻電路、液晶模塊。下面對各個模塊的設計方案逐一進行論證分析。

3.系統硬件電路設計
3.1主控模塊
主控模塊模塊在整個系統中起著統籌的作用,需要檢測鍵盤,溫度傳感器等各種參數,同時驅動液晶顯示相關參數,在這里我們選用了51系列單片機中的STC89C52單片機作為系統的主控芯片。
51系列單片機最初是由Intel 公司開發設計的,但后來Intel 公司把51 核的設計方案賣給了幾家大的電子設計生產商,譬如 SST、Philip、Atmel 等大公司。因此市面上出現了各式各樣的均以51 為內核的單片機。這些各大電子生產商推出的單片機都兼容51 指令、并在51 的基礎上擴展一些功能而內部結構是與51一致的。
STC89C52有40個引腳,4個8位并行I/O口,1個全雙工異步串行口,同時內含5個中斷源,2個優先級,2個16位定時/計數器。STC89C52的存儲器系統由4K的程序存儲器(掩膜ROM),和128B的數據存儲器(RAM)組成。
STC89C52單片機的基本組成框圖見圖3-1。
圖3-1 STC89C52單片機結構圖
3.1.1 STC89C52單片機主要特性
1. 一個8 位的微處理器(CPU)。
2. 片內數據存儲器RAM(128B),用以存放可以讀/寫的數據,如運算的中間結果、最終結果以及欲顯示的數據等,SST89 系列單片機最多提供1K 的RAM。
3. 片內程序存儲器ROM(4KB),用以存放程序、一些原始數據和表格。但也有一些單片機內部不帶ROM/EPROM,如8031,8032,80C31 等。目前單片機的發展趨勢是將RAM 和ROM 都集成在單片機里面,這樣既方便了用戶進行設計又提高了系統的抗干擾性。SST 公司推出的89 系列單片機分別集成了16K、32K、64K Flash 存儲器,可供用戶根據需要選用。
4. 四個8 位并行I/O 接口P0~P3,每個口既可以用作輸入,也可以用作輸出。
5. 兩個定時器/計數器,每個定時器/計數器都可以設置成計數方式,用以對外部事件進行計數,也可以設置成定時方式,并可以根據計數或定時的結果實現計算機控制。為方便設計串行通信,目前的52 系列單片機都會提供3 個16 位定時器/計數器。
6. 五個中斷源的中斷控制系統。現在新推出的單片機都不只5 個中斷源,例如SST89E58RD 就有9 個中斷源。
7. 一個全雙工UART(通用異步接收發送器)的串行I/O 口,用于實現單片機之間或單機與微機之間的串行通信。
8. 片內振蕩器和時鐘產生電路,但石英晶體和微調電容需要外接。最高允許振蕩頻率為12MHz。SST89V58RD 最高允許振蕩頻率達40MHz,因而大大的提高了指令的執行速度。
圖3-2 STC89C52單片機管腳圖
部分引腳說明:
1.時鐘電路引腳XTAL1 和XTAL2:
XTAL2(18 腳):接外部晶體和微調電容的一端;片內它是振蕩電路反相放大器的輸出端,振蕩電路的頻率就是晶體固有頻率。若需采用外部時鐘電路時,該引腳輸入外部時鐘脈沖。
要檢查振蕩電路是否正常工作,可用示波器查看XTAL2 端是否有脈沖信號輸出。
XTAL1(19 腳):接外部晶體和微調電容的另一端;在片內它是振蕩電路反相放大器的輸入端。在采用外部時鐘時,該引腳必須接地。
2.控制信號引腳RST,ALE,PSEN 和EA:
RST/VPD(9 腳):RST 是復位信號輸入端,高電平有效。當此輸入端保持備用電源的輸入端。當主電源Vcc 發生故障,降低到低電平規定值時,將+5V 電源自動兩個機器周期(24個時鐘振蕩周期)的高電平時,就可以完成復位操作。RST 引腳的第二功能是VPD,即接入RST 端,為RAM 提供備用電源,以保證存儲在RAM 中的信息不丟失,從而合復位后能繼續正常運行。
ALE/PROG(30 腳):地址鎖存允許信號端。當8051 上電正常工作后,ALE 引腳不斷向外輸出正脈沖信號,此頻率為振蕩器頻率fOSC 的1/6。CPU 訪問片外存儲器時,ALE 輸出信號作為鎖存低8 位地址的控制信號。
平時不訪問片外存儲器時,ALE 端也以振蕩頻率的1/6 固定輸出正脈沖,因而ALE 信號可以用作對外輸出時鐘或定時信號。如果想確定8051/8031 芯片的好壞,可用示波器查看ALE端是否有脈沖信號輸出。如有脈沖信號輸出,則8051/8031 基本上是好的。
ALE 端的負載驅動能力為8 個LS 型TTL(低功耗甚高速TTL)負載。
此引腳的第二功能PROG 在對片內帶有4KB EPROM 的8751 編程寫入(固化程序)時,作為編程脈沖輸入端。
PSEN(29 腳):程序存儲允許輸出信號端。在訪問片外程序存儲器時,此端定時輸出負脈沖作為讀片外存儲器的選通信號。此引肢接EPROM 的OE 端(見后面幾章任何一個小系統硬件圖)。PSEN 端有效,即允許讀出EPROM/ROM 中的指令碼。PSEN 端同樣可驅動8 個LS 型TTL 負載。要檢查一個8051/8031 小系統上電后CPU 能否正常到EPROM/ROM 中讀取指令碼,也可用示波器看PSEN 端有無脈沖輸出。如有則說明基本上工作正常。
EA/Vpp(31 腳):外部程序存儲器地址允許輸入端/固化編程電壓輸入端。當EA 引腳接高電平時,CPU只訪問片內EPROM/ROM并執行內部程序存儲器中的指令,但當PC(程序計數器)的值超過0FFFH(對8751/8051 為4K)時,將自動轉去執行片外程序存儲器內的程序。輸入信號EA 引腳接低電平(接地)時,CPU 只訪問外部EPROM/ROM 并執行外部程序存儲器中的指令,而不管是否有片內程序存儲器。對于無片內ROM 的8031 或8032,需外擴EPROM,此時必須將EA 引腳接地。此引腳的第二功能是Vpp 是對8751 片內EPROM固化編程時,作為施加較高編程電壓(一般12V~21V)的輸入端。
3.輸入/輸出端口P0/P1/P2/P3:
P0口(P0.0~P0.7,39~32 腳):P0口是一個漏極開路的8 位準雙向I/O口。作為漏極開路的輸出端口,每位能驅動8 個LS 型TTL 負載。當P0 口作為輸入口使用時,應先向口鎖存器(地址80H)寫入全1,此時P0 口的全部引腳浮空,可作為高阻抗輸入。作輸入口使用時要先寫1,這就是準雙向口的含義。在CPU 訪問片外存儲器時,P0口分時提供低8 位地址和8 位數據的復用總線。在此期間,P0口內部上拉電阻有效。
P1口(P1.0~P1.7,1~8 腳):P1口是一個帶內部上拉電阻的8 位準雙向I/O口。P1口每位能驅動4 個LS 型TTL 負載。在P1口作為輸入口使用時,應先向P1口鎖存地址(90H)寫入全1,此時P1口引腳由內部上拉電阻拉成高電平。
P2口(P2.0~P2.7,21~28 腳):P2口是一個帶內部上拉電阻的8 位準雙向I/O口。P口每位能驅動4個LS 型TTL 負載。在訪問片外EPROM/RAM 時,它輸出高8 位地址。
P3口(P3.0~P3.7,10~17 腳):P3口是一個帶內部上拉電阻的8 位準雙向I/O口。P3口每位能驅動4個LS型TTL負載。P3口與其它I/O 端口有很大的區別,它的每個引腳都有第二功能,如下:
P3.0:(RXD)串行數據接收。
P3.1:(RXD)串行數據發送。
P3.2:(INT0#)外部中斷0輸入。
P3.3:(INT1#)外部中斷1輸入。
P3.4:(T0)定時/計數器0的外部計數輸入。
P3.5:(T1)定時/計數器1的外部計數輸入。
P3.6:(WR#)外部數據存儲器寫選通。
P3.7:(RD#)外部數據存儲器讀選通。
3.1.2 STC89C52單片機的中斷系統
STC89C52系列單片機的中斷系統有5個中斷源,2個優先級,可以實現二級中斷服務嵌套。由片內特殊功能寄存器中的中斷允許寄存器IE控制CPU是否響應中斷請求;由中斷優先級寄存器IP安排各中斷源的優先級;同一優先級內各中斷同時提出中斷請求時,由內部的查詢邏輯確定其響應次序。
在單片機應用系統中,常常會有定時控制需求,如定時輸出、定時檢測、定時掃描等;也經常要對外部事件進行計數。STC89C52單片機內集成有兩個可編程的定時/計數器:T0和T1,它們既可以工作于定時模式,也可以工作于外部事件計數模式,此外,T1還可以作為串行口的波特率發生器。
3.1.3 單片機最小系統設計
圖3-3 單片機最小系統電路圖
              圖3-3為單片機最小系統電路圖,單片機最小系統有單片機、時鐘電路、復位電路組成,時鐘電路選用了12MHZ的晶振提供時鐘,作用為給單片機提供一個時間基準,其中執行一條基本指令需要的時間為一個機器周期,單片機的復位電路,按下復位按鍵之后可以使單片機進入剛上電的起始狀態。圖中10K排阻為P0口的上拉電阻,由于P0口跟其他IO結構不一樣為漏極開路的結構,因此要加上拉電阻才能正常使用。
3.2 LCD液晶顯示器簡介
由于本設計中要求顯示界面顯示一些參數,因此這里選用了LCD1602作為界面顯示,可以把一些相關的參數進行顯示。
3.2.1 液晶原理介紹
液晶顯示器(LCD)英文全稱為Liquid Crystal Display,它一種是采用了液晶控制透光度技術來實現色彩的顯示器。和CRT顯示器相比,LCD的優點是很明顯的。由于通過控制是否透光來控制亮和暗,當色彩不變時,液晶也保持不變,這樣就無須考慮刷新率的問題。
顯示接口用來顯示系統的狀態,命令或采集的電壓數據。本系統顯示部分用的是LCD液晶模塊,采用一個16×2的字符型液晶顯示模塊。
點陣圖形式液晶由 M 行×N 列個顯示單元組成,假設 LCD 顯示屏有64行,每行有 128列,每 8列對應 1 個字節的 8 個位,即每行由 16 字節,共 16×8=128個點組成,屏上 64×16 個顯示單元和顯示 RAM 區 1024 個字節相對應,每一字節的內容和屏上相應位置的亮暗對應。一個字符由 6×8 或 8×8點陣組成,即要找到和屏上某幾個位置對應的顯示 RAM區的 8 個字節,并且要使每個字節的不同的位為‘1’,其它的為‘0’,為‘1’的點亮,為‘0’的點暗,這樣一來就組成某個字符。但對于內帶字符發生器的控制器來說,顯示字符就比較簡單了,可讓控制器工作在文本方式,根據在LCD 上開始顯示的行列號及每行的列數找出顯示 RAM對應的地址,設立光標,在此送上該字符對應的代碼即可。
3.2.2液晶模塊簡介
LCD1602液晶模塊采用HD44780控制器,hd44780具有簡單而功能較強的指令集,可以實現字符移動,閃爍等功能,LM016L與單片機MCU通訊可采用8位或4位并行傳輸兩種方式,hd44780控制器由兩個8位寄存器,指令寄存器(IR)和數據寄存器(DR)忙標志(BF),顯示數RAM(DDRAM),字符發生器ROMA(CGOROM)字符發生器RAM(CGRAM),地址計數器RAM(AC)。IR用于寄存指令碼,只能寫入不能讀出,DR用于寄存數據,數據由內部操作自動寫入DDRAM和CGRAM,或者暫存從DDRAM和CGRAM讀出的數據,BF為1時,液晶模塊處于內部模式,不響應外部操作指令和接受數據,DDTAM用來存儲顯示的字符,能存儲80個字符碼,CGROM由8位字符碼生成5*7點陣字符160中和5*10點陣字符32種.8位字符編碼和字符的對應關系, CGRAM是為用戶編寫特殊字符留用的,它的容量僅64字節,可以自定義8個5*7點陣字符或者4個5*10點陣字符,AC可以存儲DDRAM和CGRAM的地址,如果地址碼隨指令寫入IR,則IR自動把地址碼裝入AC,同時選擇DDRAM或CGRAM,LCD1602液晶模塊的引腳圖如圖3-4所示。
圖3-4 LCD1602引腳圖
液晶寄存器選擇控制如表3-1。
表3-1寄存器選擇控制
RS
R/W
操作說明
0
0
寫入指令寄存器(清除屏等)
0
1
讀busy flag(DB7),以及讀取位址計數器(DB0~DB6)值
1
0
寫入數據寄存器(顯示各字型等)
1
1
從數據寄存器讀取數據
3.2.3液晶顯示部分與STC89C52的接口
如圖3-5所示。用STC89C52的P0口作為數據線,用P1.2、P1.1、P1.0分別作為LCD的EN、R/W、RS。其中EN是下降沿觸發的片選信號,R/W是讀寫信號,RS是寄存器選擇信號本模塊設計要點如下:顯示模塊初始化:首先清屏,再設置接口數據位為8位,顯示行數為1行,字型為5×7點陣,然后設置為整體顯示,取消光標和字體閃爍,最后設置為正向增量方式且不移位。向LCD的顯示緩沖區中送字符,程序中采用2個字符數組,一個顯示字符,另一個顯示電壓數據,要顯示的字符或數據被送到相應的數組中,完成后再統一顯示.首先取一個要顯示的字符或數據送到LCD的顯示緩沖區,程序延時2.5ms,判斷是否夠顯示的個數,不夠則地址加一取下一個要顯示的字符或數據。
圖3-5 LCD1602與STC89C52的接口
3.3三極管放大電路設計
圖3-6 三極管放大電路
              由于單片機只能讀取數字信號,當輸入的信號比較小的時候單片機不能直接讀取,因此這里使用了一級三極管放大電路對輸入的信號進行放大,其中電路中的R4和R5給三極管的基極提供和合適偏置。基極電壓可以由以下公式求得。
              由于三極管的基極和發射極之間的壓降為0.65V,因此發射機的電壓可以由以下公式求得:
              由于IC≈IE,IE=Ve/R6≈0.88ma,因此Vc=VCC-Ie*R3=2.64V。因此三極管放大電路的集電極輸出端的直流靜態工作點為2.64V。
              因為本設計只處理信號,因此三極管放大電路的輸入端采用的大電容進行交流耦合進而隔絕交流成分,為了使整個頻率計能測量更小幅值的周期信號,這個電路用旁路電容對發射極電阻進行旁路從而提高其交流放大倍數,放大倍數A可以由以下公式求得。
A≈R3/(R6//RC4//RC5)
              其中RC4為C4交流等效阻抗,RC5為C4交流等效阻抗。但是放大倍數最終會受限于三極管的β(三極管的電流放大系數)。因此最終放大倍數會限制在數百倍,由于這里只需要把輸入的周期信號放大到足夠大就可以通過整形電路整形成方波,因此這里放大倍數不需要很精確,放大后的波形出現截止失真也不會對測量結果造成。
3.4整形模塊設計
3.4.1施密特觸發器芯片介紹
施密特觸發器也有兩個穩定狀態,但與一般觸發器不同的是,施密特觸發器采用電位觸發方式,其狀態由輸入信號電位維持;對于負向遞減和正向遞增兩種不同變化方向的輸入信號,施密特觸發器有不同的閾值電壓。
門電路有一個閾值電壓,當輸入電壓從低電平上升到閾值電壓或從高電平下降到閾值電壓時電路的狀態將發生變化。施密特觸發器是一種特殊的門電路,與普通的門電路不同,施密特觸發器有兩個閾值電壓,分別稱為正向閾值電壓和負向閾值電壓。在輸入信號從低電平上升到高電平的過程中使電路狀態發生變化的輸入電壓稱為正向閾值電壓,在輸入信號從高電平下降到低電平的過程中使電路狀態發生變化的輸入電壓稱為負向閾值電壓。正向閾值電壓與負向閾值電壓之差稱為回差電壓。原理示意圖如圖3-7所示。
圖3-7 施密特觸發器原理示意圖
74HC14是一款高速CMOS器件,74HC14引腳兼容低功耗肖特基TTL(LSTTL)系列。74HC14遵循JEDEC標準no.7A。74HC14實現了6路施密特觸發反相器,可將緩慢變化的輸入信號轉換成清晰、無抖動的輸出信號。其芯片引腳圖如圖3-8所示,芯片真值表如圖3-9所示。
圖3-8 74HC14芯片引腳圖
Input輸入
output輸出
A
Y
L
H
H
L

圖3-9 74HC14真值表
3.4.2 74HC14電路設計
              由于三極管放大電路輸出的信號不是標準的方波信號,存在著上升沿不夠陡峭,波形類似于正弦波等問題,為了使單片機對信號更好的采集,這里使用了施密特觸發器74HC14對三極管放大電路輸出的信號進行整形。電路圖如圖3-10所示。
圖3-10施密特觸發器電路原理圖
              其中輸入信號從芯片的1號腳輸入,74HC14本身是一個芯片內部帶有6個施密特觸發器,我這里為了充分利用芯片使用了其中三個,實際上可以只使用一個。整形后的信號從芯片的6號腳輸出。
3.5分頻模塊設計
3.5.1 74HC390芯片介紹
分頻電路一般采用十進制計數器如74HC290、74HC390等來實現時間計數單元的計數功能。本次設計中選擇74HC390。由其內部邏輯框圖(如圖3)可知,其為雙2-5-10異步計數器,并每一計數器均有一個異步清零端(高電平有效)。由于我們要設計的是100分頻電路,因此74HC390內部兩個計數器都用上,分別都設置成10計數器。
圖3-11 74HC390內部邏輯框圖
3.5.2 74HC390分頻電路設計
由于單片機運行速度有限,單片機運行一條基礎指令需要1個機器周期即12個是時鐘周期,換算成時間為1us。因此當頻率過高的時候單片機就不能很精確的換算出頻率。為了解決這個問題,這設計加入了一個100分頻的計數器。當頻率高于200KHZ的時候單片機計算分頻后的信號,當頻率低于200KHZ的時候計算分頻前的信號。這樣高低搭配可以擴大單片機的測量頻率。最終換算出其真實對應的頻率并在液晶上顯示。其中電路圖如圖3-12所示。
圖3-12 74HC390分頻電路原理圖

4.系統軟件設計
4.1系統軟件總體設計
4-1系統主流程圖
              單片機上電后會先進行一個初始化把設置的變量的值清0,然后開啟定時器首先對100分頻后的輸入信號進行1S內計數,當測量到頻率大于200KHZ的時候,單片機會顯示出當前測量的頻率和周期,然后進行下一次計數,當測量到的頻率少于200KHZ的時候,單片機會重新采集分頻前的數據,把測量到的數據顯示出來,然后再進入到下一次的計數。
圖4-2 LCD1602初始化子函數流程圖
首先先調用液晶自定義的字庫,設置好DDRAM地址后在第一行顯示,根據程序中的數據設置顯示數據的首地址并設置循環量,在循環過程中不斷的取字符代碼直到終止,第二行的顯示過程同一行的顯示過程一樣,兩行顯示完畢后便結束子程序。
4.2程序設計原理            
軟件任務分析和硬件電路設計結合進行,哪些功能由硬件完成,哪些任務由軟件完成,在硬件電路設計基本定型后,也就基本上決定下來了。
軟件任務分析環節是為軟件設計做一個總體規劃。從軟件的功能來看可分為兩大類:一類是執行軟件,它能完成各種實質性的功能,如測量,計算,顯示,打印,輸出控制和通信等,另一類是監控軟件,它是專門用來協調各執行模塊和操作者的關系,在系統軟件中充當組織調度角色的軟件。這兩類軟件的設計方法各有特色,執行軟件的設計偏重算法效率,與硬件關系密切,千變萬化。
軟件任務分析時,應將各執行模塊一一列出,并為每一個執行模塊進行功能定義和接口定義(輸入輸出定義)。在各執行模塊進行定義時,將要牽扯到的數據結構和數據類型問題也一并規劃好。
各執行模塊規劃好后,就可以監控程序了。首先根據系統功能和鍵盤設置選擇一種最適合的監控程序結構。相對來講,執行模塊任務明確單純,比較容易編程,而監控程序較易出問題。這如同當一名操作工人比較容易,而當一個廠長就比較難了。
軟件任務分析的另一個內容是如何安排監控軟件和各執行模塊。整個系統軟件可分為后臺程序(背景程序)和前臺程序。后臺程序指主程序及其調用的子程序,這類程序對實時性要求不是太高,延誤幾十ms甚至幾百ms也沒關系,故通常將監控程序(鍵盤解釋程序),顯示程序和打印程序等與操作者打交道的程序放在后臺程序中執行;而前臺程序安排一些實時性要求較高的內容,如定時系統和外部中斷(如掉電中斷)。也可以將全部程序均安排在前臺,后臺程序為“使系統進入睡眠狀態”,以利于系統節電和抗干擾。

5.系統調試
5.1硬件調試
頻率計的電路較為復雜,涉及的模塊比較多,其中包含三極管放大模塊,整形模塊,單片機最小系統模塊,液晶模塊和分頻模塊,因此對于焊接方面更是不可輕視,龐大的電路系統中只要出于一處的錯誤,則會對檢測造成很大的不便,而且電路的交線較多,對于各種鋒利的引腳要注意處理,否則會刺破帶有包皮的導線,則會對電路造成短路現象。
在制作硬件電路之前,我們先根據實際需要的功能劃分硬件模塊,并且在PROTEL里面畫出其硬件原理圖和PCB圖,檢查無誤后開始在萬用板上焊接。
在本頻率計的硬件調試中遇到了很多的問題。回想這些問題只要認真多思考都是可以避免的,以下為主要的問題:
問題1:一開始三極管放大電路總是不能放大交流信號,輸出總是一個直流電壓
解決:經過查找相關資料,發現三極管的1腳和3腳焊接反了剛好轉了180度,改正后便可正常工作。
問題2:開始的時候液晶屏幕總是顯示方格,不能正常顯示內容
              解決: 經過查找芯片手冊,知道LCD1602有一個管腳是專門負責調解對比度的,一開始的時候直接接高電平因此不能正常顯示,后來因引腳連接到一個電位計的中間抽頭,通過電位器就可以改變液晶的對比度。
5.2軟件調試
頻率計系統是一個比較復雜的數字型系統,所以對于它的程序也較為復雜,所以在編寫程序和調試時出現了相對較多的問題。首先為了更好的測試效果,我最開始是直接在PROTUES軟件下進行仿真,在確定無誤后,再把程序燒錄到實物中運行。最后經過多次的模塊子程序的修改,一步一步的完成,最終解決了軟件上的各種問題。在軟件的調試過程中主要遇到的問題如下:
問題:燒入程序后,LCD液晶顯示閃動,而且亮度不均勻。
解決:首先對調用的延時進行逐漸修改,可以解決顯示閃動問題。其次,由于本作品使作動態掃描方式顯示的數字,動態掃描很快,人的肉眼是無法看出,但是調用的顯示程序時,如果不在反回時屏蔽掉最后的附值,則會出現很亮的現象,所以在顯示的后面加了屏蔽子令,最后解決了此問題。


6.結論
通過這次畢業設計,我學到了不少課本上沒有的知識,也鍛煉了自己的動手能力,將以前學過的零散的知識串到一起。經過我長時間的設計及調試,本系統基本能實現頻率計系統的所有功能。不足之處有:1.硬件的穩定性有待進一步提高2.系統界面人性化還不足。
我的綜合設計主要涉及硬件和軟件兩方面的內容,通過這些我的硬件和軟件開發能力都獲得了提高。首先硬件方面,基本了解了電子產品的開發流程和所要做的工作。基本掌握了Protel99SE原理圖的方法,并設計了一個單片機最小系統。通過開發板的設計和硬件搭建的過程,使我對51系單片機的接口有了更深層次的理解,熟悉了一些單片機常用的外圍電路引腳和連接方法,如LCD液晶等。并且我學會了分析問題解決問題的能力,加深了對所學理論知識的理解和運用。我的動手能力得到了很大的提高,創新意識得到了鍛煉。
參考文獻
[1] 彭偉.單片機C語言程序設計實訓100例.電子工業出版社.2009年
[2] 吳運昌.模擬電子線路基礎.廣州:華南理工大學出版社,2004年
[3] 閻石.數字電子技術基礎.北京:高等教育出版社,1997年
[4] 張曉麗等.數據結構與算法.北京:機械工業出版社,2002年
[5] 馬忠梅等. ARM&Linux嵌入式系統教程.北京:北京航空航天大學出版社,2004年
[6] 李建忠.單片機原理及應用.西安:西安電子科技大學,2002年
[7] 韓志軍等.單片機應用系統設計[M].機械工業出版社,2004
[8] 周潤景等. Proteus在MCS-51&ARM7系統中的應用百例[M].電子工業出版社,2006
[9] 馬忠梅等.單片機的C語言應用程序設計[M].北京航空航天大學出版社,2006
[10]劉樹中,孫書膺,王春平.單片機和液晶顯示驅動器串行接口的實現[J].微計算機信息,2007
1



附錄
系統整體原理圖
系統仿真圖

元件清單
名字
數量
STC89C52
1
30PF電容
2
10K電阻
1
1K電阻
1
0.1uf電容
3
10K排阻
1
DIP40插座
1
DIP14插座
1
DIP16插座
1
排針
1排
9018三極管
1
300歐姆電阻
1
68歐姆電阻
1
3K電阻
1
74HC14
1
輕觸按鍵
1
12M晶振
1
USB供電座子
1
1000UF電容
1
銅柱及螺帽
4
板子
1
LCD1602
1
74hc390
1
10K電位器
1




單片機源程序如下:
  1. //******************************************************************************************
  2. //連接框圖:       ___________________
  3. //                |              P1.0 |->RS
  4. //                |              P1.1 |->RW
  5. //                |              P1.2 |->E
  6. //                |              P0   |->DB
  7. //                |                        P3.4 |->1~9999hz的輸入
  8. //                |              P3.5 |->1~9999KHZ輸入 (分頻后)
  9. //******************************************************************************************
  10. #include <reg52.h>
  11. unsigned long int fre;
  12. unsigned char time;
  13. unsigned int count;
  14. unsigned int count1;

  15. //端口及函數說明----------------------------------------------------------------------------

  16. sbit   LCD_RS=P1^0;                //片選信號
  17. sbit   LCD_RW=P1^1;                //讀寫信號
  18. sbit   LCD_E=P1^2;                 //使能信號

  19. #define LCD_DB     P0              //數據信號
  20. unsigned char character[10]={0};//在屏幕上顯示的字符串
  21. unsigned char character_1[]={"fre= Hz"};
  22. unsigned char FLAG = 0;

  23. void LCD_init(void);//初始化函數  
  24. void LCD_write_command(unsigned char command);//寫指令函數            
  25. void LCD_write_data(unsigned char dat);//寫數據函數               
  26. void LCD_disp_char(unsigned char x,unsigned char y,unsigned char dat);//在某個屏幕位置上顯示一個字符,X(0-15),y(1-2)
  27. void delay_n40us(unsigned int n);//延時函數

  28. void timer_init();            //中斷初始化函數


  29. //-------------------------------------------------------------------------------

  30. void delay_n40us(unsigned int n)                              //延時函數
  31. {
  32.               unsigned int i;
  33.               unsigned char j;           
  34.               for(i=n;i>0;i--)
  35.               for(j=0;j<2;j++);         
  36. }

  37. void delay_1s()
  38. {
  39.               unsigned int i,j;
  40.               for(i = 0;i<100;i++)
  41.                             for(j = 0;j<1000;j++);
  42. }                                    

  43. void LCD_init(void)              //液晶初始化函數
  44. {
  45.               LCD_write_command(0x38);//設置8位格式,2行,5x7
  46.               LCD_write_command(0x38);//設置8位格式,2行,5x7
  47.               LCD_write_command(0x38);//設置8位格式,2行,5x7              切記要寫三遍!。!
  48.               LCD_write_command(0x0c);//整體顯示,關光標,不閃爍
  49.               LCD_write_command(0x06);//設定輸入方式,增量不移位
  50.               LCD_write_command(0x01);//清除屏幕顯示               
  51.               delay_n40us(100);//清屏延時
  52. }

  53. void LCD_write_command(unsigned char dat)  //寫命令函數
  54. {
  55.               LCD_DB=dat;
  56.               LCD_RS=0;//指令            
  57.               LCD_RW=0;//寫入            
  58.               LCD_E=1; //使能              
  59.               LCD_E=0;
  60.               delay_n40us(1);//寫命令延時  
  61. }            

  62. void LCD_write_data(unsigned char dat)                //寫數據函數
  63. {
  64.               LCD_DB=dat;
  65.               LCD_RS=1;//數據               
  66.               LCD_RW=0;//寫入               
  67.               LCD_E=1;//使能
  68.               LCD_E=0;
  69.               delay_n40us(1);              //寫數據延時
  70. }

  71. void LCD_disp_char(unsigned char x,unsigned char y,unsigned char dat)//顯示一個字符
  72. {
  73.               unsigned char address;
  74.               if(y==1)
  75.                        address=0x80+x;              //顯示在第一排的時候的x的地址
  76.               else
  77.                        address=0xc0+x;              //顯示在第二排的時候的x的地址
  78.               LCD_write_command(address);              //輸入地址
  79.               LCD_write_data(dat);                            //輸入數據
  80. }
  81. void LCD_disp_num(unsigned char x,unsigned char y,unsigned char dat)//顯示一個數字
  82. {
  83.               unsigned char address;
  84.               if(y==1)
  85.                        address=0x80+x;              //顯示在第一排的時候的x的地址
  86.               else
  87.                        address=0xc0+x;              //顯示在第二排的時候的x的地址
  88.               LCD_write_command(address);              //輸入地址
  89.               LCD_write_data(dat+48);                            //輸入數據
  90. }

  91. void dis_num(void)
  92. {
  93.               unsigned char i=0,j=0,k=0;
  94.               LCD_write_command(0x01);//清除屏幕顯示
  95.             
  96.               character[0] = fre/1000000;
  97.               character[1] = fre/100000%10;
  98.               character[2] = fre/10000%10;
  99.               character[3] = fre/1000%10;
  100.               character[4] = fre/100%10;
  101.               character[5] = fre/10%10;
  102.               character[6] = fre%10;
  103.     character[7] = 'H';
  104.               character[8] = 'z';
  105.             
  106.               for(i = 0;i<4;i++)                            //顯示fre
  107.               {
  108.                             LCD_disp_char(i+0,1,character_1[i]);
  109.               }
  110.               for(i = 0;i<10;i++)              //判斷第一個不為0的數
  111.               {
  112.                             if(character[i]!=0)
  113.                                           break;
  114.               }
  115.               k = 10-i-2;
  116.               for(j = 0;j<k;j++)              //顯示所有的數字
  117.               {
  118.                                           LCD_disp_num(4+j,1,character[i++]);            
  119.               }
  120.             
  121.     for(i = 5;i<7;i++)              //顯示Hz
  122.               {
  123.                             LCD_disp_char(j+4,1,character_1[i]);
  124.                             j++;
  125.               }
  126. }



  127. void main()
  128. {
  129.               unsigned char i;
  130.               LCD_init();
  131.               timer_init();             //定時/計數器初始化

  132.               for(i = 0;i<4;i++)
  133.               {
  134.                             LCD_disp_char(i+0,1,character_1[i]);
  135.               }
  136.               while(1)
  137.               {
  138.                             dis_num();         //顯示
  139.                             delay_1s();
  140.                                          
  141.               }                                                                                   
  142. }

  143. void timer_init(void)         //定時/計數器初始化
  144. {
  145.               TMOD=0x66;                //計數器0工作工作方式2,自動重裝初值
  146.               TH0=0;                    //計數器初值為0
  147.               TL0=0;
  148.               TR0=1;                    //計數器開始計數                 
  149.               ET0=1;                    //打開計數器0中斷  

  150.               TH1=0;                    //計數器初值為0
  151.               TL1=0;
  152.               TR1=1;                    //計數器開始計數                 
  153.               ET1=1;                    //打開計數器0中斷  

  154.               RCAP2H=(65536-62500)/256; //在程序初始化的時候給RCAP2L和RCAP2H賦值,
  155.               RCAP2L=(65536-62500)%256; //TH2和TL2將會在中斷產生時自動使TH2=RCAP2H,TL2=RCAP2L。
  156.               TH2=RCAP2H;               //12M晶振下每次中斷62.5ms
  157.               TL2=RCAP2L;
  158.               ET2=1;                    //打開定時器2中斷            
  159.               TR2=1;                    //定時器2開始計時
  160.               EA=1;                     //開總中斷  
  161. }
  162. //----------------------------------------------------------------
  163. void timer2(void) interrupt 5 //定時器2中斷(62.5ms)
  164. {
  165.               double temp;
  166.               time++;
  167.               TF2=0;                    //定時器2的中斷標志位TF2不能夠由硬件清零,所以要在中斷服務程序中將其清零
  168.               if (time==16)             //定時1s時間到
  169.               {
  170.                  time=0;                //計時清0                           
  171. ……………………

  172. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

完整的Word格式文檔51黑下載地址:
頻率計.docx (538.27 KB, 下載次數: 40)



作者: Jonathon2    時間: 2025-11-22 11:27
用到頻率計的地方有很多,比如測量儀器等等




歡迎光臨 (http://www.izizhuan.cn/bbs/) Powered by Discuz! X3.1
成人99免费视频| 欧美综合激情网| 欧美国产精品一区二区| 99成人超碰| 国产福利91精品一区二区| 黄页网站在线观看| 青青草av专区| 成人午夜视频在线播放| 少妇精品无码一区二区| 400部精品国偷自产在线观看| 国产精品激情av在线播放| 国产视频久久网| 一区二区毛片| 亚洲视频一起| 菠萝菠萝蜜在线观看| 可以看av的网址| 9.1人成人免费视频网站| 精品无码免费视频| 好男人香蕉影院| 男人操女人免费| 日本精品一区二区三区视频 | 亚洲一二三区精品| 国产精品视频自在线| 少妇av一区二区三区| 日韩视频不卡中文| 精品久久久久久久大神国产| 久久久精品tv| 国产一区二区影院| 亚洲色诱最新| 欧美激情777| 欧美xxxx性xxxxx高清视频| 伊人成年综合网| 九九视频免费观看| 欧美黄色激情视频| 91福利视频免费观看| 欧美日韩在线中文| 亚洲免费视频播放| 免费h精品视频在线播放| 成人久久精品视频| 日本在线观看天堂男亚洲| 欧美另类交人妖| 最新中文字幕亚洲| 国产亚洲精品高潮| 国产视频精品一区二区三区| 精品对白一区国产伦| 欧美视频在线观看一区二区| 亚洲韩国一区二区三区| 国产精品欧美综合在线| hitomi一区二区三区精品| 免费不卡在线视频| 日韩成人午夜电影| 欧美中文日韩| 性色av一区二区怡红| 在线成人超碰| 欧美粗暴jizz性欧美20| 99视频精品全国免费| 欧美综合久久| 国产精品99在线观看| 日韩欧美网站| 国产精品久久久久久麻豆一区软件 | 欧美乱妇视频| 中文字幕av中文字幕| 四虎永久在线精品免费网址| 亚洲AV无码一区二区三区少妇| 久久精品五月天| 国产一级片av| 一卡二卡三卡在线| 99久久亚洲精品日本无码| 91久久精品国产91性色69| 伊人成年综合网| 国产精品玖玖玖| 精品国产伦一区二区三区| 国产情侣一区二区| 国产高中女学生第一次| www夜片内射视频日韩精品成人| 国产偷拍一区二区| 亚洲精品国产一区二| 色婷婷视频在线| 神马久久久久久久久| 婷婷国产成人久久精品激情| 国产女人伦码一区二区三区不卡| 99高清免费国产自产拍| 伊人伊人av电影| 日本1区2区3区中文字幕| 动漫h在线观看| 都市激情在线视频| 四虎影院观看视频在线观看 | 欧日韩一区二区三区| 日本精品一区二区| 男女裸体影院高潮| 日日碰狠狠躁久久躁婷婷| 亚洲a级黄色片| 91丨porny丨对白| 手机看片国产日韩| 久久久99精品| 伊人网综合在线| 污污网站免费在线观看| 欧美性猛交ⅹxxx乱大交免费| 97久精品国产片一区二区三区 | 99热在线成人| 日韩电影在线免费| 不卡的av网站| 亚洲狠狠爱一区二区三区| 555www色欧美视频| 色系列之999| 国产成人黄色av| 日韩三级视频在线看| 日韩av一区在线| 在线午夜精品自拍| 亚洲国产精品区| 中文字幕久久久| 欧美日韩精品一区视频| 日韩成人av在线播放| 色综合色综合久久综合频道88| 4p变态网欧美系列| 国产一级二级三级精品| 男人c女人视频| 亚洲一区二区图片| 亚洲波多野结衣| 这里只有精品6| 欧美人善交videosg| 米奇.777.com| 国产偷倩在线播放| 风间由美性色一区二区三区四区 | 欧美高清精品一区二区| 天天色影综合网| 国产伦理吴梦梦伦理| 国产你懂的在线观看| 有色激情视频免费在线| av资源中文在线| 天堂日韩电影| 日本在线播放一区二区三区| 亚洲国产精品精华液2区45| 欧美在线观看视频一区二区三区| 一区二区三区在线播放欧美| 国产日产久久高清欧美一区| 欧美性受xxxx黑人猛交88| 国产在线观看中文字幕| 福利一区二区三区四区| 4hu四虎永久网址| 国产在线传媒| 成人影院大全| 日韩欧美高清在线播放| 成人美女视频在线看| 日韩欧美在线观看| 欧美成人第一页| 欧美激情视频一区二区三区| 亚洲天堂网2018| 91国产丝袜播放在线| 欧美亚洲另类在线观看| 九色蝌蚪在线| 国产色噜噜噜91在线精品| 日本三级亚洲精品| 亚洲一级二级三级在线免费观看| 国产视频在线一区二区| 成人国产精品一区| 欧美黄色一级片视频| 久草免费在线观看视频| 老少交欧美另类| 国产系列在线观看| 91精品入口| 久久精品国产秦先生| 欧美视频免费在线观看| 欧美大片在线看| 在线视频91| 国产精品情侣呻吟对白视频| 亚洲人成色777777老人头| 又黄又爽的视频在线观看| 欧美高清一级片| 久久福利视频一区二区| 在线观看国产日韩| 国产精品mp4| 国产成人精品视频ⅴa片软件竹菊| 久久久久久久国产视频| 91www成人久久| 九色porny视频在线观看| 亚洲成人原创| 精品久久久久久久久久久久久| 欧美富婆性猛交| www.欧美黄色| 久久草视频在线| 麻豆入口视频在线观看| 日韩成人一区| 国产精品综合视频| 欧美α欧美αv大片| 国产精品我不卡| 好吊日免费视频| 性欧美xxx极品另类| 美女网站视频在线| 久久久久国产精品午夜一区| 欧洲一区二区av| 91在线短视频| 一区二区黄色片| 国产三级做爰在线观看| 亚洲精品mv| 精品在线免费视频| 精品国产凹凸成av人网站| 精品乱子伦一区二区三区| 波多野结衣a v在线| 国产伦精品一区二区三区高清版禁| 国产在线观看www| 免费精品99久久国产综合精品| 制服丝袜一区二区三区| 国产精品一区在线观看| 国产视频三区四区| 两个人看的无遮挡免费视频| 九色精品蝌蚪| 久久久综合视频| 九九热精品视频| 亚洲高清在线免费观看| 日日躁夜夜躁白天躁晚上躁91| 2021国产在线| 麻豆91在线观看| 亚洲开心激情网| 一本—道久久a久久精品蜜桃| 日本视频www| 在线视频尤物| 欧美不卡高清| 717成人午夜免费福利电影| 精品网站在线看| 国产第一页第二页| 亚洲人成77777男人| 欧美日本不卡高清| 91精品在线麻豆| 中文字幕一区二区三区四区五区六区| 天天操天天操天天操天天| 中国动漫在线观看完整版免费| 99精品在线免费在线观看| 色婷婷综合中文久久一本| 国产精品免费区二区三区观看 | 国产主播自拍av| 国产成人三级在线播放| 中文在线观看免费| 久久精品av麻豆的观看方式| 亚洲小视频在线| caoporn超碰97| 久久精品国产屋| 99re8这里有精品热视频免费| 亚洲欧美激情一区二区| 91在线色戒在线| 久草成人在线视频| 95在线视频| 国产麻豆精品一区二区| 久久久久国产一区二区三区| 在线播放第一页| 天天综合天天| 欧美日韩成人| 亚洲精品视频中文字幕| 日韩中文字幕二区| 国产综合图区| 蜜桃一区二区三区| 制服视频三区第一页精品| 国产av熟女一区二区三区| 狠狠综合久久av一区二区| 超级碰碰久久| 一色桃子久久精品亚洲| 春色成人在线视频| 久久中文字幕免费| 美女航空一级毛片在线播放| 91麻豆精品视频| 国产日本欧美一区二区三区在线| 免费一级片在线观看| 亚洲搞黄视频| 99久久精品免费精品国产| 国产精品久久久91| 久久亚洲av午夜福利精品一区| 秋霞a级毛片在线看| 99久久免费视频.com| 91在线观看免费| 久久永久免费视频| 国产精品久久亚洲不卡| 亚洲精品国产一区二区精华液| 欧美理论一区二区| 成人午夜免费在线观看| 永久免费精品视频| 欧美理论片在线| 亚洲成人福利在线观看| jizzjizz视频| 性欧美xxxx大乳国产app| 久久99热精品这里久久精品| 中文字幕91视频| 老司机精品影院| 国产精品美女久久久久久久久久久| 国产麻豆乱码精品一区二区三区 | 欧美一级一级性生活免费录像| 99re在线视频免费观看| 夜夜骑日日操| 国产欧美一级| 韩国三级日本三级少妇99| 国产大片免费看| 9999热视频在线观看| 亚洲免费毛片网站| 91视频成人免费| 自拍小视频在线观看| 黄色成人av网站| 国产做受高潮69| 日韩av片在线播放| jizzjizz少妇亚洲水多| 欧美日韩中文一区| 九色porny自拍| 91在线最新| 北条麻妃国产九九精品视频| 国产一区二区三区奇米久涩| 亚洲 欧美 自拍偷拍| 91麻豆国产自产在线观看亚洲| 中文字幕国产日韩| 美女福利视频网| 一区二区三区短视频| 在线视频综合导航| 日韩欧美理论片| 在线播放毛片| 亚洲国产日韩a在线播放性色| 少妇人妻在线视频| 国产美女玉足交| 99国产欧美久久久精品| 日韩av不卡在线播放| 91在线资源站| 麻豆精品一区二区| 成人欧美一区二区三区视频| 性xxxx搡xxxxx搡欧美| 欧美黄色精品| 国产精品国产三级国产aⅴ浪潮| 国产又粗又猛又色又| 国产精品一区二区99| 九九精品视频在线| 91丝袜一区二区三区| 欧美一级全黄| 久久国产天堂福利天堂| 人人草在线观看| 精品国产乱码久久久久久1区2匹| 久久精品国产一区| 日本午夜视频在线观看| 国产精伦一区二区三区| 日韩中文字幕免费看| 在线观看亚洲天堂| 久久99视频| 欧美尤物巨大精品爽| 亚洲第一黄色片| 好看的日韩av电影| 91香蕉国产在线观看| 久草国产视频| 国产成人亚洲综合a∨婷婷| 伊人色综合影院| 日本我和搜子同居的日子高清在线| 国产视频一区二区在线观看| 日日碰狠狠添天天爽超碰97| 日韩精品视频在线观看一区二区三区| 亚洲图片你懂的| 黄大色黄女片18第一次| av毛片在线看| 精品久久久久久无| 精品无码一区二区三区电影桃花| 日韩08精品| 欧美黑人xxxx| 日韩一区二区三区在线观看视频| 久久av在线| 日韩精品第一页| 日本欧美亚洲| 黄色成人在线免费| 少妇饥渴放荡91麻豆| 高清亚洲高清| 久久久国产精品亚洲一区| 97成人免费视频| 麻豆成人在线| 亚洲激情一区二区| 香蕉视频在线网站| 日韩欧美国产免费播放| 欧美成人久久久免费播放| 午夜精品在线| 欧美在线亚洲在线| 欧美高清videosex极品| 9色porny自拍视频一区二区| 欧美综合在线观看视频| 1区2区3区在线| 尤物九九久久国产精品的特点 | 国产乱码在线| 亚洲美女av电影| 国产精品怡红院| 日韩av网站免费在线| 99精品视频网站| www 日韩| 亚洲精品久久久久中文字幕二区 | 午夜在线观看一区| 巨人精品**| 成人中文字幕+乱码+中文字幕| 九九视频九九热| 亚洲一区二区三区国产| 在线观看免费黄色网址| 精品久久久久久久| 国产在线一区二| 在线视频专区| 欧美va亚洲va在线观看蝴蝶网| 亚洲 小说区 图片区| 丝袜美腿高跟呻吟高潮一区| 日韩精品视频在线观看视频| 少妇视频在线| 久久成年人免费电影| 欧美性猛交一区二区三区| 中文字幕亚洲精品在线观看| 国产成人精品无码免费看夜聊软件|