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

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

QQ登錄

只需一步,快速開(kāi)始

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

基于51單片機(jī)的萬(wàn)年歷設(shè)計(jì)

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主



電子萬(wàn)年歷是一種非常廣泛日常計(jì)時(shí)工具,給人們的帶來(lái)了很大的方便,在社會(huì)上越來(lái)越流行。 它可以對(duì)年、月、日、時(shí)、分、秒進(jìn)行計(jì)時(shí),采用直觀的數(shù)字顯示,可以同時(shí)顯示年月日時(shí)分秒和溫度等信息,還有時(shí)間校準(zhǔn)、鬧鐘等功能。該電子萬(wàn)年歷主要采用STC89C52單片機(jī)作為主控核心,用DS1302時(shí)鐘芯片作為時(shí)鐘、液晶12864顯示屏顯示。STC89C52單片機(jī)是由宏晶公司推出的,功耗小,電壓可選用46V電壓供電;DS1302時(shí)鐘芯片是美國(guó)DALLAS公司推出的具有細(xì)電流充電功能的低功耗實(shí)時(shí)時(shí)鐘芯片,它可以對(duì)年、月、日、星期、時(shí)、分、秒進(jìn)行計(jì)時(shí),還具有閏年補(bǔ)償?shù)榷喾N功能,而且DS1302的使用壽命長(zhǎng),誤差小;數(shù)字顯示是采用的12864液晶顯示屏來(lái)顯示,可以同時(shí)顯示年、月、日、星期、時(shí)、分、秒和溫度等信息。此外,該電子萬(wàn)年歷還具有時(shí)間校準(zhǔn)等功能。

2.1 功能要求


本萬(wàn)年歷能動(dòng)態(tài)顯示年、月、日、星期、小時(shí)、分鐘、秒、溫度

2.2 方案論證
2.2.1技術(shù)可行性
方案一:采用傳統(tǒng)的51單片機(jī)作為整個(gè)電路的控制核心。單片機(jī)算術(shù)運(yùn)算功能強(qiáng),軟件編程靈活、自由度大,可用軟件編程實(shí)現(xiàn)各種算法和邏輯控制,并且由于其功耗低、體積小、技術(shù)成熟和成本低等優(yōu)點(diǎn),使其在各個(gè)領(lǐng)域應(yīng)用廣泛。

方案二:采用FTC10F04單片機(jī),還帶有非易失性Flash程序存儲(chǔ)器。它是一種高性能、低功耗的8CMOS微處理芯片,市場(chǎng)應(yīng)用最多。其主要特點(diǎn)如下:8KB Flash ROM,可以擦除1000次以上,數(shù)據(jù)保存10年。

由于方案一已能滿足設(shè)計(jì)要求,故選用方案一。

2.2.3顯示模塊的選擇                       
方案一:使用液晶顯示屏顯示時(shí)間數(shù)字。液晶顯示屏(LCD)具有輕薄短小、低耗電量、無(wú)輻射危險(xiǎn),平面直角顯示以及影象穩(wěn)定不閃爍等優(yōu)勢(shì),可視面積大,畫(huà)面效果好,分辨率高,抗干擾能力強(qiáng)等特點(diǎn)。液晶顯示屏分兩種,一種是以點(diǎn)陣的模式顯示各種符號(hào),需要利用控制芯片創(chuàng)建字符庫(kù),編程工作量大,控制器的資源占用較多,其成本也偏高。在使用時(shí),不能有靜電干擾,否則易燒壞液晶的顯示芯片,不易維護(hù),另外一種是帶字庫(kù)版本,省去了編程字符庫(kù)的過(guò)程操作簡(jiǎn)單便捷便于使用。

方案二:使用傳統(tǒng)的LED數(shù)碼管顯示。 數(shù)碼管具有:低能耗、低損耗、低壓、壽命長(zhǎng)、耐老化、防曬、防潮、防火、防高(低)溫,對(duì)外界環(huán)境要求低,易于維護(hù),同時(shí)其精度比較高,稱(chēng)重輕,精確可靠,操作簡(jiǎn)單。數(shù)碼管采用BCD編碼顯示數(shù)字,程序編譯容易,資源占用較少。  

根據(jù)以上的論述,雖然LED的各方面性能比較好,但是目前在已有的原件中有一塊帶字庫(kù)的LCD,省去了創(chuàng)建字庫(kù)符的編程且控制相對(duì)簡(jiǎn)單,故采用方案

2.2.4鍵盤(pán)模塊的選擇
在對(duì)日期和時(shí)間進(jìn)行切換,對(duì)日期和時(shí)間進(jìn)行調(diào)節(jié)校準(zhǔn)過(guò)程中,系統(tǒng)需要,產(chǎn)生激勵(lì)電流,因此需要用按鍵。   

方案一:使用獨(dú)立式鍵盤(pán)。獨(dú)立式鍵盤(pán)是指直接用I/O口線構(gòu)成的單個(gè)按鍵電路。獨(dú)立式按鍵電路配置靈活,軟件結(jié)構(gòu)簡(jiǎn)單。  

方案二:使用矩陣式鍵盤(pán)。矩陣式鍵盤(pán)是由行線和列線組成,按鍵位于行、列的交叉點(diǎn)上,行線、列線分別連接到按鍵開(kāi)關(guān)的兩端。其特點(diǎn)是簡(jiǎn)單且不增加成本,這種鍵盤(pán)適合按鍵數(shù)量較多的場(chǎng)合。  

根據(jù)以上的論述,因本系統(tǒng)需要的按鍵不多,上下左右調(diào)節(jié)四個(gè)按鍵、功能控制兩個(gè)按鍵,要求簡(jiǎn)單。所以采用方案一獨(dú)立式鍵盤(pán)。

2.2.5 總體方案論證與選擇


3 硬件電路設(shè)計(jì)及概述
3.1 系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)
本設(shè)計(jì)采用的是宏晶公司的STC89C52單片機(jī)為核心,通過(guò)單片機(jī)與時(shí)鐘芯片DS1302通信來(lái)對(duì)時(shí)間的讀寫(xiě),保證時(shí)鐘時(shí)間的穩(wěn)定性,并帶有內(nèi)部電源模塊,使系統(tǒng)斷電時(shí)時(shí)鐘數(shù)據(jù)不會(huì)丟失,以DS18B20溫度感應(yīng)芯片作為溫度電路的核心,向單片機(jī)發(fā)出獲取到的溫度數(shù)據(jù),并通過(guò)LCD12864將時(shí)間、顯示出來(lái),并可以通過(guò)按鍵調(diào)整時(shí)間日期和鬧鐘時(shí)間。



3.1

3.2 單片機(jī)的系統(tǒng)結(jié)構(gòu)
3.2.1 單片機(jī)的內(nèi)部結(jié)構(gòu)
一個(gè)基本的MCS-51單片機(jī)通常包括:中央處理器、ROM

RAM、定時(shí)/計(jì)數(shù)器和I/O口等各功能部件,各個(gè)功能由內(nèi)部的總線連接起來(lái),從而實(shí)現(xiàn)數(shù)據(jù)通信。其內(nèi)部框圖如圖3.2所示



3.2

3.2.2 單片機(jī)的引腳
常見(jiàn)的51單片機(jī)中一般采用雙列直插(DIP)封裝,共40個(gè)引腳。圖3.3為引腳排列圖。其中的40個(gè)引腳大致可以分為4類(lèi):電源、時(shí)鐘、控制和I/O引腳。






3.2.3 最小系統(tǒng)的介紹
單片機(jī)最小系統(tǒng)主要由電源、復(fù)位、振蕩電路以及擴(kuò)展部分等部分組成。最小系統(tǒng)原理圖如圖3.4所示。




3.4

3.3 按鍵開(kāi)關(guān)去抖動(dòng)
鍵盤(pán)在單片機(jī)系統(tǒng)中是一個(gè)很重要的部件。為了輸入數(shù)據(jù)、查詢和控制系統(tǒng)的工作狀態(tài),都要用到鍵盤(pán),鍵盤(pán)是人工干預(yù)計(jì)算機(jī)的主要手段。

鍵盤(pán)可分為編碼和非編碼鍵盤(pán)兩種。編碼鍵盤(pán)采用硬件線線路來(lái)實(shí)現(xiàn)鍵盤(pán)編碼,每按下一個(gè)鍵,鍵盤(pán)能自動(dòng)生成按鍵代碼,鍵數(shù)較多,而且還具有去抖動(dòng)功能。這種鍵盤(pán)使用方便,但硬件較復(fù)雜,PC機(jī)所用的鍵盤(pán)就屬于這種。非編碼鍵盤(pán)僅提供按鍵開(kāi)關(guān)工作狀態(tài),其他工作由軟件完成,這種鍵盤(pán)鍵數(shù)較少,硬件簡(jiǎn)單,一般在單片機(jī)應(yīng)用系統(tǒng)中廣泛使用。此處主要介紹該類(lèi)非編碼鍵盤(pán)及其與單片機(jī)的接口。

按鍵開(kāi)關(guān)在電路中的連接如圖3.5a)所示。按鍵未按下時(shí),A點(diǎn)電位為高電平5V;按鍵按下時(shí),A點(diǎn)電位為低電平。A點(diǎn)電位就用于向CPU傳遞按鍵的開(kāi)關(guān)狀態(tài)。但是由于按鍵的結(jié)構(gòu)為機(jī)械彈性開(kāi)關(guān),在按鍵按下和斷開(kāi)時(shí),觸點(diǎn)在閉合和斷開(kāi)瞬間還會(huì)接觸不穩(wěn)定,引起A點(diǎn)電平不穩(wěn)定,如圖3.5b)所示,鍵盤(pán)的抖動(dòng)時(shí)間一般為510ms,抖動(dòng)現(xiàn)象會(huì)引起CPU對(duì)一次鍵操作進(jìn)行多次處理,從而可能產(chǎn)生錯(cuò)誤。因此必須設(shè)法消除抖動(dòng)的不良后果。




消除抖動(dòng)的不良后果的方法有硬、軟件兩種。

為了節(jié)省硬件,通常在單片機(jī)系統(tǒng)中,一般不采用硬件方法消除鍵的抖動(dòng),而是用軟件消除抖動(dòng)的方法。根據(jù)抖動(dòng)特性,在第一次檢測(cè)到按鍵按下后,執(zhí)行一段延時(shí)5~10ms讓前延抖動(dòng)消失后再一次檢測(cè)鍵的狀態(tài),如果仍保持閉合狀態(tài)電平,則確認(rèn)真正有鍵按下。當(dāng)檢測(cè)到按鍵釋放后,也要給5~10ms的延時(shí),待后延抖動(dòng)消失后才轉(zhuǎn)入該鍵處理程序。

3.4 鍵盤(pán)掃描控制方式
在單片機(jī)應(yīng)用系統(tǒng)中,對(duì)鍵盤(pán)的處理工作僅是CPU工作內(nèi)容的一部分,CPU還要進(jìn)行數(shù)據(jù)處理、顯示和其他輸入輸出操作,因此鍵盤(pán)處理工作既不能占用CPU太多時(shí)間,又需要CPU對(duì)鍵盤(pán)操作及時(shí)作出響應(yīng)。CPU對(duì)鍵盤(pán)處理控制的工作方式有以下幾種:

  • 程序控制掃描方式


程序控制掃描方式是在CPU工作空余,調(diào)用鍵盤(pán)掃描子程序,響應(yīng)鍵輸入信號(hào)要求。

2 定時(shí)控制掃描方式

定時(shí)控制掃描方式是利用定時(shí)/計(jì)數(shù)器每隔一段時(shí)間產(chǎn)生定時(shí)中斷,CPU響應(yīng)中斷后對(duì)鍵盤(pán)進(jìn)行掃描,并在有鍵閉合時(shí)轉(zhuǎn)入該鍵的功能子程序。

3)中斷控制掃描方式

中斷控制掃描方式是利用外部中斷源,響應(yīng)輸入信號(hào)。當(dāng)無(wú)按鍵按下時(shí),CPU執(zhí)行正常工作程序。當(dāng)有按鍵按下時(shí),CPU立即產(chǎn)生中斷。在中斷服務(wù)子程序中掃描鍵盤(pán),判斷是哪一個(gè)鍵被按下,然后執(zhí)行該鍵的功能子程序。這種控制方式克服了前兩種控制方式可能產(chǎn)生的空掃描和不能及時(shí)響應(yīng)鍵輸入的缺點(diǎn),既能及時(shí)處理鍵輸入,又能提高CPU運(yùn)行效率,但要占用一個(gè)寶貴的中斷資源。

因?yàn)闀r(shí)間的走時(shí)需要不斷的進(jìn)行掃描,并且在任何時(shí)刻都可能進(jìn)行時(shí)間調(diào)整,所以需要按鍵在任何時(shí)候都能控制整個(gè)系統(tǒng),故采用中斷掃描方式。

3.5  DS1302工作方式簡(jiǎn)介及數(shù)據(jù)操作原理
DS1302可以對(duì)年、月、日、星期、時(shí)、分、秒進(jìn)行計(jì)時(shí), 且具有閏年補(bǔ)償功能, 工作電壓寬達(dá)2.5~5.5V。采用三線接口與CPU進(jìn)行同步通信, 并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。DS1302內(nèi)部有一個(gè)33x8的用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器。DS1302是的DS1202升級(jí)產(chǎn)品, DS1202兼容, 但增加了主電源/后背電源雙電源引腳, 同時(shí)提供了對(duì)后背電源進(jìn)行涓細(xì)電流充電的能力。

file:///C:/Users/13909/AppData/Local/Temp/msohtmlclip1/01/clip_image014.jpg

3.6


DS1302在任何數(shù)據(jù)傳送時(shí)必須先初始化,把RST腳置為高電平,然后把8位地址和命令字裝入移位寄存器,數(shù)據(jù)在SCLK的上升沿被訪問(wèn)到。在開(kāi)始8個(gè)時(shí)鐘周期,把命令字節(jié)裝入移位寄存器后,另外的時(shí)鐘周期在讀操作時(shí)輸出數(shù)據(jù),在寫(xiě)操作時(shí)寫(xiě)入數(shù)據(jù)。時(shí)鐘脈沖的個(gè)數(shù)在單字節(jié)方式下為8+8,在多字節(jié)方式下為8+字節(jié)數(shù),最大可達(dá)248字節(jié)數(shù)。如果在傳送過(guò)程中置RST腳為低電平,則會(huì)終止本次數(shù)據(jù)傳送,并且I/O引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在Vcc2.5V之前,RST腳必須保持低電平。只有在SCLK為低電平時(shí),才能將RST置為高電平。

DS1302的控制字如圖所示。控制字節(jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫(xiě)入到DS1302中。位6如果為0,則表示存取日歷時(shí)鐘數(shù)據(jù);為1則表示存取RAM數(shù)據(jù)。位51A4A0)指示操作單元的地址。最低有效位(位0)如果為0,則表示藥進(jìn)行寫(xiě)操作;為1表示進(jìn)行讀操作。控制字節(jié)總是從最低位開(kāi)始輸入/輸出。

為了提高對(duì)32個(gè)地址尋址能力(地址/命令位15=邏輯1,可以把時(shí)鐘/日歷或RAM寄存器規(guī)定為多字節(jié)(burst)方式。位6規(guī)定時(shí)鐘或RAM,而位0規(guī)定讀或?qū)憽T跁r(shí)鐘/日歷寄存器中的地址931RAM寄存器中的地址31不能存儲(chǔ)數(shù)據(jù)。在多字節(jié)方式下,讀或?qū)憦牡刂?/font>0的位0開(kāi)始。必須按數(shù)據(jù)傳送的次序?qū)懽钕鹊?/font>8個(gè)寄存器。但是,當(dāng)以多字節(jié)方式寫(xiě)RAM時(shí),為了傳送數(shù)據(jù)不必寫(xiě)所有的31字節(jié),不管是否寫(xiě)了全部31字節(jié),所寫(xiě)的每一字節(jié)都將傳送至RAM

DS1302共有12個(gè)寄存器,其中有7個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式。其日歷、時(shí)間寄存器及其控制字如下表所示,其中奇數(shù)為讀操作,偶數(shù)為寫(xiě)操作。


3.7


時(shí)鐘暫停:秒寄存器的位7定義位時(shí)鐘暫停位。當(dāng)它為1時(shí),DS1302停止振蕩,進(jìn)入低功耗的備份方式,通常在對(duì)DS1302進(jìn)行寫(xiě)操作時(shí)(如進(jìn)入時(shí)鐘調(diào)整程序),停止振蕩。當(dāng)它為0時(shí),時(shí)鐘將開(kāi)始啟動(dòng)。

AM-PM/12-24小時(shí)方式:小時(shí)寄存器的位7定義為1224小時(shí)方式選擇位。它為高電平時(shí),選擇12小時(shí)方式。在此方式下,位5為第二個(gè)10小時(shí)位(2023h)。

DS1302的晶振選用32768Hz,電容推薦值為6pF。因?yàn)檎袷庮l率較低,也可以不接電容,對(duì)計(jì)時(shí)精度影響不大

3.6 DS18B20數(shù)據(jù)原理


3.8


DS18B20測(cè)溫原理如圖3.8所示。圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給計(jì)數(shù)器1。高溫度系數(shù)晶振隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號(hào)作為計(jì)數(shù)器2的脈沖輸入。計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55℃所對(duì)應(yīng)的一個(gè)基數(shù)值。計(jì)數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)計(jì)數(shù)器1的預(yù)置值減到0時(shí),溫度寄存器的值將加1,計(jì)數(shù)器1的預(yù)置將重新被裝入,計(jì)數(shù)器1重新開(kāi)始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測(cè)溫度。斜率累加器用于補(bǔ)償和修正測(cè)溫過(guò)程中的非線性,其輸出用于修正計(jì)數(shù)器1的預(yù)置值。



  
        
預(yù)置
   
   
  

3.9

3.7 系統(tǒng)模塊介紹


4.1.1 主程序流程



4.1.2 DS1302與按鍵控制流程
4.2



4.2 程序編寫(xiě)
采用Keil uVision4編譯軟件,具體程序編寫(xiě)說(shuō)明參照附錄1



附錄1:程序代碼
#include<reg51.h>

#include<intrins.h>

#include<LCD1602.h>

#include<DS18b20.h>

#include<DS1302.h>

#ifndef __DS1302_H__

#define __DS1302_H__


#include<reg51.h>

#include<intrins.h>  //包含_nop_()函數(shù)定義的頭文件

#define uchar unsignedchar

#define uint unsignedint

#ifndef __LCD1602_H__

#define __LCD1602_H__


#include<reg51.H>

#include<intrins.h>  //包含_nop_()函數(shù)定義的頭文件

#define uint unsignedint

#define uchar unsignedchar

#define OUT P0   

#define yh 0x80                              

#define er0x80+0x40                          

//液晶屏的與C51之間的引腳連接定義


#ifndef __DS18b20_H__

#define __DS18b20_H__


#include<reg51.h>

#include<intrins.h>

#define uchar unsignedchar

#define uint unsignedint

uint tvalue;

uchar tflag;

sbit DQ=P3^3;

sbit rs=P2^0;

sbit en=P2^2;

sbit rw=P2^1;                               //如果硬件上rw接地,就不用寫(xiě)這句和后面的rw=0

sbit BF=P0^7;



void delay_18B20(unsigned int i)

{

    while(i--);

}


void ds1820rst()

{ unsigned char x=0;

       DQ = 1;         

       delay_18B20(4);  

       DQ = 0;         

       delay_18B20(100);

       DQ = 1;         

       delay_18B20(40);   

   }  

  

   uchar ds1820rd()

  { unsigned char i=0;

       unsigned char dat = 0;

       for (i=8;i>0;i--)

       {   DQ = 0;

               dat>>=1;

    可調(diào)用**************/

uchar BusyTest(void)

  {

    bit result;

      rs=0;       //根據(jù)規(guī)定,RS為低電平,RW為高電平時(shí),可以讀狀態(tài)

    rw=1;

    en=1;       //E=1,才允許讀寫(xiě)

    _nop_();  //空操作

    _nop_();

    _nop_();

    _nop_();  //空操作四個(gè)機(jī)器周期,給硬件反應(yīng)時(shí)間      

    result=BF; //將忙碌標(biāo)志電平賦給result

      en=0;

    return result;

  }

/********液晶寫(xiě)入指令函數(shù)與寫(xiě)入數(shù)據(jù)函數(shù),以后可調(diào)用**************/


write_1602com(uchar com)                      //****液晶寫(xiě)入指令函數(shù)****

{

      while(BusyTest()==1);

      rs=0;                                    //數(shù)據(jù)/指令選擇置為指令

      rw=0;                                   //讀寫(xiě)選擇置為寫(xiě)

      OUT=com;                                 //送入數(shù)據(jù)

      delay(1);

      en=1;                                   //拉高使能端,為制造有效的下降沿做準(zhǔn)備

      delay(1);

      en=0;                                    //en由高變低,產(chǎn)生下降沿,液晶執(zhí)行命令

}



voidwrite_1602dat(uchar dat)                       //***液晶寫(xiě)入數(shù)據(jù)函數(shù)****

{

      while(BusyTest()==1);

      rs=1;                                    //數(shù)據(jù)/指令選擇置為數(shù)據(jù)

      rw=0;                                   //讀寫(xiě)選擇置為寫(xiě)

      OUT=dat;                                  //送入數(shù)據(jù)

      delay(1);

      en=1;                                    //en置高電平,為制造下降沿做準(zhǔn)備

      delay(1);

      en=0;                                    //en由高變低,產(chǎn)生下降沿,液晶執(zhí)行命令

}


void lcd_init()                                     //***液晶初始化函數(shù)****

{

      write_1602com(0x38);                      //設(shè)置液晶工作模式,意思:16*2行顯示,5*7點(diǎn)陣,8位數(shù)據(jù)

      write_1602com(0x0c);                      //開(kāi)顯示不顯示光標(biāo)

      write_1602com(0x06);                      //整屏不移動(dòng),光標(biāo)自動(dòng)右移

      write_1602com(0x01);                      //清顯示


}



#endif


//DS1302時(shí)鐘芯片與C51之間的引腳連接定義

sbit IO=P1^7;

sbit SCLK=P1^6;

sbit RST=P1^5;

sbit ACC0=ACC^0;

sbit ACC7=ACC^7;


/***************DS1302有關(guān)子函數(shù)********************/


void write_byte(uchardat)//寫(xiě)一個(gè)字節(jié)

{    uchar a;

      ACC=dat;

      RST=1;

      for(a=8;a>0;a--)

      {

             IO=ACC0;

             SCLK=0;

             SCLK=1;

             ACC=ACC>>1;

      }

}

uchar read_byte()                                   //讀一個(gè)字節(jié)

{    uchar a;

      RST=1;

      for(a=8;a>0;a--)

      {

             ACC7=IO;

             SCLK=1;

             SCLK=0;

             ACC=ACC>>1;


      }

      return (ACC);

}

//----------------------------------------

void write_1302(ucharadd,uchar dat)                   //1302芯片寫(xiě)函數(shù),指定寫(xiě)入地址,數(shù)據(jù)

{


      RST=0;

      SCLK=0;

      RST=1;

      write_byte(add);

      write_byte(dat);

      SCLK=1;

      RST=0;

}

uchar read_1302(ucharadd)                          //1302讀數(shù)據(jù)函數(shù),指定讀取數(shù)據(jù)來(lái)源地址

{

      uchar temp;

      RST=0;

      SCLK=0;

      RST=1;

      write_byte(add);

      temp=read_byte();

      SCLK=1;

      RST=0;

      return(temp);

}

uchar BCD_Decimal(ucharbcd)                //BCD碼轉(zhuǎn)十進(jìn)制函數(shù),輸入BCD,返回十進(jìn)制

{

       uchar Decimal;

       Decimal=bcd>>4;

       return(Decimal=Decimal*10+(bcd&=0x0F));

}

//--------------------------------------

void ds1302_init()                           //1302芯片初始化子函數(shù)(2010-01-07,12:00:00,week4)

{

      RST=0;

      SCLK=0;

      

      write_1302(0x8e,0x00);                      //允許寫(xiě),禁止寫(xiě)保護(hù)

      write_1302(0x80,0x00);                     //DS1302內(nèi)寫(xiě)秒寄存器80H寫(xiě)入初始秒數(shù)據(jù)00

      write_1302(0x82,0x00);                     //DS1302內(nèi)寫(xiě)分寄存器82H寫(xiě)入初始分?jǐn)?shù)據(jù)00

      write_1302(0x84,0x12);                     //DS1302內(nèi)寫(xiě)小時(shí)寄存器84H寫(xiě)入初始小時(shí)數(shù)據(jù)12

      write_1302(0x8a,0x05);                     //DS1302內(nèi)寫(xiě)周寄存器8aH寫(xiě)入初始周數(shù)據(jù)4

      write_1302(0x86,0x18);                     //DS1302內(nèi)寫(xiě)日期寄存器86H寫(xiě)入初始日期數(shù)據(jù)07

      write_1302(0x88,0x03);                     //DS1302內(nèi)寫(xiě)月份寄存器88H寫(xiě)入初始月份數(shù)據(jù)01

      write_1302(0x8c,0x16);                     //DS1302內(nèi)寫(xiě)年份寄存器8cH寫(xiě)入初始年份數(shù)據(jù)10

      write_1302(0x8e,0x80);                      //打開(kāi)寫(xiě)保護(hù)


}


#endif




      uchar     a,miao,shi,fen,ri,yue,nian,week,flag,key1n,temp;

void      write_sfm(uchar  add,uchar      dat);

void      write_week(uchar       week);

void      write_nyr(uchar   add,uchar      dat);


sbit key1=P1^1;

sbit key2=P1^2;

sbit key3=P1^3;

sbit buzzer=P1^3;


uchar    code       tab1[]={"20  - -  "};

uchar    code       tab2[]={"  : :  "};


void     write_temp(uchar       add,uchar      dat)

{

      uchar     gw,sw;

      gw=dat%10;

      sw=dat/10;

      write_1602com(er+add);

      if(tflag==0)

      write_1602dat('   ');

      else

      write_1602dat('-');

      if(sw==0)

      {write_1602dat(' ');write_1602dat(0x30+gw);}

      else

      {write_1602dat(0x30+sw);

             write_1602dat(0x30+gw);}


         write_1602dat(0xdf);

         write_1602dat(0x43);

}


void      write_sfm(uchar  add,uchar      dat)

{

      uchar     gw,sw;

      gw=dat%10;

      sw=dat/10;

      write_1602com(er+add);

      write_1602dat(0x30+sw);

      write_1602dat(0x30+gw);


}


void      write_nyr(uchar   add,uchar      dat)

{

      uchar     gw,sw;

      gw=dat%10;

      sw=dat/10;

      write_1602com(yh+add);

      write_1602dat(0x30+sw);

      write_1602dat(0x30+gw);        

}


void      write_week(uchar       week)

{

      write_1602com(yh+0x0c);

      switch(week)

      {

             case 1:write_1602dat('M');

                      write_1602dat('O');

                      write_1602dat('N');

                       break;


             case 2:write_1602dat('T');

                      write_1602dat('U');

                      write_1602dat('E');

                       break;


             case 3:write_1602dat('W');

                      write_1602dat('E');

                      write_1602dat('D');

                       break;


             case 4:write_1602dat('T');

                      write_1602dat('H');

                      write_1602dat('U');

                       break;


             case 5:write_1602dat('F');

                      write_1602dat('R');

                      write_1602dat('I');

                       break;


             case 6:write_1602dat('S');

                      write_1602dat('T');

                      write_1602dat('R');

                       break;


             case 7:write_1602dat('S');

                      write_1602dat('U');

                      write_1602dat('N');

                       break;



      }


}


void      keyscan()

{

      if(key1==0)

      {

             delay(9);

             if(key1==0)

             {

                    buzzer=0;

                    delay(20);

                    buzzer=1;

                    while(!key1);

                    key1n++;

                    if(key1n==9)

                           key1n=1;

                    switch(key1n)

                    {

             case 1:    TR0=0;

                           write_1602com(er+0x09);

                           write_1602com(0x0f);

                           temp=(miao)/10*16+(miao)%10;

                           write_1302(0x8e,0x00);

                           write_1302(0x80,0x80|temp);

                           write_1302(0x8e,0x80);

                           break;

             case 2:    write_1602com(er+6);

                           break;

             case 3:write_1602com(er+3);

                           break;

             case 4:write_1602com(yh+0x0e);

                           break;

             case 5:write_1602com(yh+0x0a);

                           break;

             case 6:write_1602com(yh+0x07);

                           break;

             case 7:write_1602com(yh+0x04);

                           break;

             case 8:

                            write_1602com(0x0c);

                            TR0=1;

                            temp=(miao)/10*16+(miao)%10;

                            write_1302(0x8e,0x00);

                            write_1302(0x80,0x00|temp);

                            write_1302(0x8e,0x80);

                            break;

                    }

             }

      }



if(key1n!=0)

{

      if(key2==0)

        {

             delay(10);

             if(key2==0)

             {

                    buzzer=0;

                    delay(20);

                    buzzer=1;

                    while(!key2);


                    switch(key1n)

                    {

                    case 1:miao++;

                                  if(miao==60)

                                         miao=0;

                                         write_sfm(0x08,miao);

                                         temp=(miao)/10*16+(miao)%10;

                                         write_1302(0x8e,0x00);

                                         write_1302(0x80,temp);

                                         write_1302(0x8e,0x80);

                                         write_1602com(er+0x09);

                                         break;

                    case 2:fen++;

                                  if(fen==60)

                                         fen=0;

                                         write_sfm(0x05,fen);

                                         temp=(fen)/10*16+(fen)%10;

                                         write_1302(0x8e,0x00);

                                         write_1302(0x80,temp);

                                         write_1302(0x8e,0x80);

                                         write_1602com(er+6);

                                         break;

                    case 3:shi++;

                                  if(shi==24)

                                         shi=0;

                                         write_sfm(2,shi);

                                         temp=(shi)/10*16+(shi)%10;

                                         write_1302(0x8e,0x00);

                                         write_1302(0x80,temp);

                                         write_1302(0x8e,0x80);

                                         write_1602com(yh+0x0e);

                                         break;

                    case 4:week++;

                                  if(week==8)

                                         week=1;

                                         write_1602com(yh+0x0C);

                                         write_week(week);

                                         temp=(week)/10*16+(week)%10;

                                         write_1302(0x8e,0x00);

                                         write_1302(0x80,temp);

                                         write_1302(0x8e,0x80);

                                         write_1602com(yh+0x0e);

                                         break;

                    case 5:ri++;

                                  if(ri==32)

                                         ri=1;

                                         write_nyr(9,ri);

                                         temp=(ri)/10*16+(ri)%10;

                                         write_1302(0x8e,0x00);

                                         write_1302(0x80,temp);

                                         write_1302(0x8e,0x80);

                                         write_1602com(yh+10);

                                         break;

                    case 6:yue++;

                                  if(yue==13)

                                         yue=1;

                                         write_nyr(6,yue);

                                         temp=(yue)/10*16+(yue)%10;

                                         write_1302(0x8e,0x00);

                                         write_1302(0x80,temp);

                                         write_1302(0x8e,0x80);

                                         write_1602com(yh+7);

                                         break;

                    case 7:nian++;

                                  if(nian==100)

                                         nian=0;

                                         write_nyr(3,nian);

                                         temp=(nian)/10*16+(nian)%10;

                                         write_1302(0x8e,0x00);

                                         write_1302(0x80,temp);

                                         write_1302(0x8e,0x80);

                                         write_1602com(yh+4);

                                         break;

                    }


        }

        

  }


}



      if(key3==0)

        {

             delay(10);

             if(key3==0)

             {

                    buzzer=0;

                    delay(20);

                    buzzer=1;

                    while(!key3);

                    switch(key1n)

                    {

                    case 1:miao--;

                                  if(miao==-1)

                                         miao=59;

                                         write_sfm(0x08,miao);

                                         temp=(miao)/10*16+(miao)%10;

                                         write_1302(0x8e,0x00);

                                         write_1302(0x80,temp);

                                         write_1302(0x8e,0x80);

                                         write_1602com(er+0x09);

                                         break;

                    

                 case 2:fen--;

                                  if(fen==-1)

                                         fen=59;

                                         write_sfm(5,fen);

                                         temp=(fen)/10*16+(fen)%10;

                                         write_1302(0x8e,0x00);

                                         write_1302(0x80,temp);

                                         write_1302(0x8e,0x80);

                                         write_1602com(er+6);

                                         break;


                 case 3:shi--;

                                  if(shi==-1)

                                         fen=23;

                                         write_sfm(2,shi);

                                         temp=(shi)/10*16+(shi)%10;

                                         write_1302(0x8e,0x00);

                                         write_1302(0x80,temp);

                                         write_1302(0x8e,0x80);

                                         write_1602com(er+3);

                                         break;


                 case 4:week--;

                                  if(week==0)

                                         week=7;

                                         write_1602com(yh+0x0C);

                                         write_week(week);

                                         temp=(week)/10*16+(week)%10;

                                         write_1302(0x8e,0x00);

                                         write_1302(0x80,temp);

                                         write_1302(0x8e,0x80);

                                         write_1602com(yh+0x0e);

                                         break;


                 case 5:ri--;

                                  if(ri==-1)

                                         ri=31;

                                         write_nyr(9,ri);

                                         temp=(ri)/10*16+(ri)%10;

                                         write_1302(0x8e,0x00);

                                         write_1302(0x80,temp);

                                         write_1302(0x8e,0x80);

                                         write_1602com(yh+10);

                                         break;


                 case 6:ri--;

                                  if(yue==0)

                                         yue=12;

                                         write_nyr(6,yue);

                                         temp=(yue)/10*16+(yue)%10;

                                         write_1302(0x8e,0x00);

                                         write_1302(0x80,temp);

                                         write_1302(0x8e,0x80);

                                         write_1602com(yh+7);

                                         break;                  

                 write_nyr(9,ri);

             write_nyr(6,yue);

          write_nyr(3,nian);

             write_week(week);

}                                                                                       

                                                                                                              
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏8 分享淘帖 頂2 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:352784 發(fā)表于 2018-6-16 19:27 | 只看該作者
編譯出錯(cuò)啊。。。
回復(fù)

使用道具 舉報(bào)

板凳
ID:352784 發(fā)表于 2018-6-17 10:33 | 只看該作者
51真小白 發(fā)表于 2018-6-16 19:27
編譯出錯(cuò)啊。。。

貌似是缺少幾個(gè)庫(kù)文件,樓主能發(fā)下相應(yīng)的那幾個(gè)嗎,我在網(wǎng)上找不到
回復(fù)

使用道具 舉報(bào)

地板
ID:353641 發(fā)表于 2018-6-18 14:01 | 只看該作者
51真小白 發(fā)表于 2018-6-17 10:33
貌似是缺少幾個(gè)庫(kù)文件,樓主能發(fā)下相應(yīng)的那幾個(gè)嗎,我在網(wǎng)上找不到

請(qǐng)問(wèn)你解決了嗎
回復(fù)

使用道具 舉報(bào)

5#
ID:353641 發(fā)表于 2018-6-18 16:03 | 只看該作者
樓主,求發(fā)定義的三個(gè)芯片的頭文件
回復(fù)

使用道具 舉報(bào)

6#
ID:464226 發(fā)表于 2019-1-7 23:41 | 只看該作者
不錯(cuò),值得借鑒
回復(fù)

使用道具 舉報(bào)

7#
ID:902972 發(fā)表于 2021-4-10 08:58 | 只看該作者
不錯(cuò),值得借鑒
回復(fù)

使用道具 舉報(bào)

8#
無(wú)效樓層,該帖已經(jīng)被刪除
9#
ID:667870 發(fā)表于 2021-6-12 22:27 | 只看該作者
有頭文件嗎?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
激情综合自拍| 影院在线观看全集免费观看| 麻豆freexxxx性91精品| 国产精自产拍久久久久久| 黄色片视频免费| 日韩毛片免费看| 在线播放一区二区三区| 又大又长粗又爽又黄少妇视频| 蝌蚪视频在线播放| 中文字幕亚洲成人| 久久亚洲a v| www.99色| 成人免费视频app| 久久久一本精品99久久精品| 欧美日韩亚洲第一页| 一本一本久久| 在线亚洲自拍| 一区二区三区日本久久久| 欧美性生交片4| 91网址在线观看精品| 国外av在线| 伊人性伊人情综合网| 1024av视频| 免费在线观看麻豆视频| 国产欧美日韩亚州综合| a级黄色片免费| 米奇在线777| 欧美激情一区二区在线| 野外做受又硬又粗又大视频√| 九色中文视频| 亚洲国产岛国毛片在线| 狠狠97人人婷婷五月| 香蕉自在线视频| 1区2区3区国产精品| 亚洲精品无码久久久久久| 小水嫩精品福利视频导航| 亚洲欧美日韩久久精品| 午夜在线观看av| 在线免费看a| 91久久精品国产91性色tv| 国产女主播在线播放| 98色花堂精品视频在线观看| 91精品国产综合久久精品性色| 国产精品亚洲无码| 人人鲁人人莫人人爱精品| 精品国产91九色蝌蚪| 天天做夜夜爱爱爱| 日韩亚洲精品在线观看| 久久久国产一区| 国产乡下妇女三片| 91日韩视频| 国产精品爽爽爽爽爽爽在线观看| 狠狠色成人综合网图片区| 日韩精品亚洲专区| 日本一区视频在线观看| 成人黄色免费电影| 日本一二三四高清不卡| 国产一二三四在线视频| a免费在线观看| 欧美一卡二卡三卡四卡| 波多野结衣亚洲色图| 欧美激情15p| 91超碰caoporn97人人| 色窝窝无码一区二区三区| 久久亚洲二区| 日韩亚洲视频在线| 裸体免费网站| 亚洲一区二区三区不卡国产欧美| 免费人成视频在线播放| 秋霞伦理一区| 亚洲免费视频观看| 国产精品尤物视频| 激情综合网址| 精品国产区在线| 三上悠亚在线资源| 亚洲欧美成aⅴ人在线观看| 特黄特黄一级片| 欧美1级2级| 日韩中文字幕在线播放| 国产精品毛片一区视频播 | 日本三级在线播放完整版| 免费看岛国视频在线观看| 2012中文字幕在线视频| 蜜桃91麻豆精品一二三区| 国产7777| 亚洲精品女人| 麻豆成人在线播放| 2019中文字幕视频| 一区二区在线观看免费视频播放| 久久久久99人妻一区二区三区| www.精品| 久久精品欧美视频| 蜜桃视频久久一区免费观看入口| 蜜臀av国产精品久久久久| 国产又粗又爽又黄的视频| 国产中文在线视频| 日韩一区二区免费电影| 国内免费精品视频| 欧美成人精品| 欧美精品一区在线| 国产视频九色蝌蚪| 成人女性文胸| 亚洲一区二区三区四区五区中文 | 国产精品国产亚洲伊人久久| 国产欧美日韩专区| 中文字幕 久热精品 视频在线| 三级av免费看| 欧美成a人片免费观看久久五月天| 久久久精品电影| 亚洲av毛片成人精品| 岛国精品一区二区| 国产99久久精品一区二区永久免费 | 在线观看免费观看在线91| 欧美午夜久久久| 精品国产视频在线观看| 久久一区二区三区电影| 精品国产综合区久久久久久| 360天大佬第二季在线观看| 欧美在线影院一区二区| 欧美成人aaaaⅴ片在线看| 欧美三级视频| 中日韩在线视频| 黄视频网站在线看| 在线观看不卡av| 亚洲视频色图| 久久亚洲一区二区三区四区| 日韩高清一二三区| jizzjizzjizz欧美| 91精品视频免费| 国产理论片免费观看| 欧美伊人精品成人久久综合97 | 亚洲欧美中文字幕| 亚洲精品免费在线观看视频| 国产成人精品亚洲午夜麻豆| 天天影视色综合| 亚洲日本中文| 国产精品美乳一区二区免费| 午夜网站在线观看| 欧美三级电影在线看| 亚洲 欧美 中文字幕| 美国十次了思思久久精品导航 | 国产a级网站| 一本色道亚洲精品aⅴ| 日韩欧美a级片| 天堂一区二区在线| 激情婷婷综合网| 日韩欧美三区| 91精品免费看| 在线免费色视频| 精品电影一区二区| 蜜臀久久久久久999| www国产精品av| 国产肉体xxxx裸体784大胆| 狠狠做六月爱婷婷综合aⅴ| 欧美污视频久久久| 99视频免费在线观看| 久久99精品国产99久久6尤物| 国产卡二和卡三的视频| 亚洲成人动漫一区| 色婷婷在线观看视频| 久久精品国产秦先生| 亚洲一二三不卡| 窝窝社区一区二区| 日韩欧美精品一区二区| 国产丝袜在线观看视频| 91精品国产自产91精品| 伊人狠狠av| 91精品国产91热久久久做人人| 国产农村老头老太视频| 久久综合久久综合亚洲| 一区二区三区久久久久| 国产一区观看| 91猫先生在线| 日本一区影院| 国产伦精品一区二区三| 色的视频在线免费看| 欧美老少配视频| h在线观看网站| 日韩一区二区不卡| 69xxx视频hd| 亚洲综合免费观看高清完整版 | 日韩在线资源网| 色啪免费观看视频| 欧美在线观看禁18| 99国产精品99| 国产精品入口麻豆九色| 欧美三级 欧美一级| 看片一区二区| 99久久精品久久久久久ai换脸| 成人亚洲综合天堂| 九九视频这里只有精品| 婷婷色播视频| 亚洲福利视频网| 无国产精品白浆免费视| 欧美日韩精品中文字幕| 一区二区 亚洲| 亚洲国产精品高清| 一级片免费网址| 懂色av一区二区在线播放| 亚洲色图第四色| 三级一区在线视频先锋 | 亚洲激情另类| 一路向西2在线观看| 久久99国内| 日韩小视频网站| 成人av综合网| 精品一区二区成人免费视频 | 91精品网站| 八戒八戒神马在线电影| 国产精品444| 国产二区视频在线观看| 性欧美办公室18xxxxhd| 中文字幕在线二区| 欧美成人久久久| 国产主播在线资源| 中文字幕在线国产精品| 激情文学综合| 亚洲系列中文字幕| 天天干天天骑| 亚洲人成电影在线| 天天操夜夜摸| 在线观看欧美日韩| 先锋影音av在线资源| 亚洲欧美综合精品久久成人| 九九热这里只有| 亚洲精品国精品久久99热一| 日本老妇乱子| 亚洲精品福利视频| 啪啪导航网站| 国产视频精品免费播放| yellow网站在线观看| 日韩av在线直播| 成年免费视频黄网站在线观看| 日韩精品一区二区三区第95| 黄网在线观看网址入口| 亚洲毛片在线观看.| 三级av网站| 中文字幕在线精品| 制服丝袜中文字幕在线观看| 美乳少妇欧美精品| 在线看片线路1| 91精品国产91| 生活片a∨在线观看| 国产精品在线看| 免费电影网站在线视频观看福利| 91青青草免费在线看| 蜜桃av在线| 蜜桃传媒视频麻豆一区 | 91麻豆精品国产91| 国产7777| 亚洲欧美在线看| 91在线精品| 精品视频9999| 免费在线国产| 国产精品夜色7777狼人| h片视频在线观看| 国内视频一区| 日韩三级成人| 国产片侵犯亲女视频播放| 精品国产一级毛片| 欧美日韩精品区别| 午夜在线a亚洲v天堂网2018| 免费观看av网站| 国产成人一级电影| 中文字幕亚洲精品一区| 日韩久久一区二区| 亚洲国产精品久久久久久久| 欧美亚洲一区三区| 91www在线观看| 国产一区二区三区免费视频| 人成福利视频在线观看| 啪一啪鲁一鲁2019在线视频| 1769免费视频在线观看| 国产精品一区二区三区免费观看| 欧美黄页免费| 久草视频这里只有精品| 久久久五月天| 97se亚洲综合| 涩涩涩久久久成人精品| www.国产在线视频| 正在播放日韩欧美一页| 国产老熟女伦老熟妇露脸| 国产精品自在在线| 中文字幕第15页| 亚洲国产精品综合小说图片区| 久久免费区一区二区三波多野| 精品免费日韩av| 国产国产国产国产国产国产| 欧美一级高清免费播放| 91av久久| 一本色道婷婷久久欧美| 欧美码中文字幕在线| 不许穿内裤随时挨c调教h苏绵 | 91嫩草精品| 天天影视综合色| 久久激情网站| 私库av在线播放| 亚洲日穴在线视频| 亚洲精品久久久成人| 亚洲欧美一区二区三区情侣bbw| 影音先锋另类| 成人亚洲综合色就1024| 欧美91在线|欧美| 欧洲av无码放荡人妇网站| 国产精品综合| 国产一级黄色av| 性欧美疯狂xxxxbbbb| 91香蕉视频在线观看| 欧美xxxx14xxxxx性爽| 污污影院在线观看| 永久久久久久| 中文字幕一区二区三三| 男女男精品视频网站| 国产精品成人在线观看| 久草在线资源网| 中文字幕亚洲色图| av片在线观看免费| 国产又大又长又粗又黄| 欧美一区不卡| 成人免费视频网站入口::| 亚洲在线成人精品| 91丨九色丨蝌蚪丨少妇在线观看| 欧美人成在线视频| 免费h视频在线观看| av免费看网址| 老司机精品视频网站| 国产 日韩 欧美 在线| 在线观看视频一区二区欧美日韩| 天天爽夜夜爽| 国产在线视频91| 国产精品2023| 看全色黄大色黄女片18| 久久久久国产精品免费免费搜索| 手机看片福利在线| 亚洲最新中文字幕| 91香蕉在线观看| 丁香色欲久久久久久综合网| 国产一区二区你懂的| 日本三级黄色大片| 欧美中文字幕一区二区三区亚洲 | av毛片在线免费| 久久最新免费视频| 在线看片成人| 日本一区二区三区四区五区| 色综合中文综合网| 成全视频全集| www.久久久| 欧美日韩精品一区二区视频| 最新中文字幕av| 一区二区三区在线播放| 美女翘臀白浆直流视频| 国产精品欧美日韩| 精品无人区一区二区| 国产夫妻性爱视频| 亚洲三级免费观看| 灌醉mj刚成年的大学平面模特| 国产经典一区二区| 懂色av一区二区| 女尊高h男高潮呻吟| 国产精品久久免费看| freee性欧美| 国产成人精品免高潮在线观看| 精品视频在线播放一区二区三区| 91精产国品一二三| 国产精品久久久久久久久快鸭| 国产精品理人伦一区二区三区 | 免费在线观看一级片| 色噜噜狠狠色综合中国| 亚洲男男gay视频| 欧美极品一区| 亚洲欧洲日本mm| 中文字幕一区二区三区四区视频| 亚洲国产福利在线| 在线中文字幕视频观看| 日韩少妇内射免费播放| 成人性生交大片免费看视频在线| xxxx69hd| 97在线观看免费| 盗摄系列偷拍视频精品tp| 亚洲性猛交xxxx乱大交| 婷婷一区二区三区| 国产传媒在线视频| 亚洲精品电影在线一区| 久久综合九色| 亚洲毛片欧洲毛片国产一品色| 久久精品免费电影| 成人日韩视频| aa一级黄色片| 欧美视频在线观看 亚洲欧| 中国动漫在线观看完整版免费| 亚洲高清视频在线观看| 日韩av午夜在线观看| 成人无码一区二区三区| 久久国产精品电影| 国产精品1区在线| 亚洲第一视频区| 91黄色免费看| 福利视频在线导航| 国产精品自拍片| 91一区二区三区在线观看|