久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

杭電單片機實驗報告六(優秀范文5篇)

時間:2020-11-08 12:23:23下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《杭電單片機實驗報告六》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《杭電單片機實驗報告六》。

第一篇:杭電單片機實驗報告六

單片機原理與應用技術 實驗報告

實驗題目: :

A D/A 轉換器得接口與應用

姓名: :

* *

*

學號: :

*** *** * **

實驗日期: :17 7、6 6、6 6

指導教師: :

高惠芳1、實驗 內容、1 波得波齒鋸現實程編請,V01— 為壓電考參,接所上堂課如線接得機片單與2380CAD?形,鋸齒波得周期為 20+作業號,單位就是ms。

我得作業號就是6,所以周期就就是 26ms。經過計算后時間應為 0、102ms左右。

1)

程序代碼:

H0000 GRO? WASAD PMJA? H0020 GRO?DASAW:CLR A LOOP1:MOV P1,A DELAY: 61#,7R VOM?DLY1: MOV R6,#1 DLY2: DJNZ R6,DLY2

PON? DJNZ R7,DLY1

INC A

1POOL PMJS? END 2)

軟件程序截圖

3)

編譯通過截圖

4)

調試截圖

時間滿足 0 0、s 102ms 左右

5)

仿真電路圖

6)

仿真波形圖

2、DAC0832 與單片機得接線如課堂上所接,參考電壓為 —10V,請編程實現三角波得波形,三角波得周期為 20+作業號,單位就是ms。

我得作業號就是6,所以周期就就是 26ms。經過計算后時間應為0、102ms 左右。

1)程序代碼:

ORG 0000H

WASAD PMJA? ORG 0200H DASAW:CLR A LOOP1:MOV P1,A; DELAY: 61#,7R VOM?DLY1:

1#,6R VOM?DLY2: DJNZ R6,DLY2

PON? 1YLD,7R ZNJD? A CNI? CJNE A,#00H,LOOP1 LOOP2:MOV P1,A;

DEC A

2POOL,H00#,A ENJC? SJMP DASAW

END 2)代碼程序截圖

3)編譯通過截圖

4)仿真電路圖

5)仿真結果

3、實驗 心得

通過以上得實驗,對 DAC 得轉換原理有了比較深刻得了解,也對 D/A 轉換器有了一定得了解,DAC得基本原理就是把數字量得每一位按照權重轉換成相應得模擬分量,然后根據疊加定理將每一位對應得模擬分量相加,輸出對應得電流或電壓。根據 DAC內部結構得不同,DAC 可以分成權電阻網絡與 T 型網絡等結構;根據輸出結構得不同,DAC 也可以分成電壓輸出與電流輸出兩類。

第二篇:杭電單片機實驗報告一

單片機原理與應用技術實驗報告

實驗題目:

Keil軟件使用及匯編語言編程

姓名:

*

*

*

學號:

********

實驗日期:

2017

指導教師:

1.Keil軟件的簡介和使用

1.1

Keil

uVision4的簡介

最新的Keil

uVision4

IDE,旨在提高開發人員的生產力,實現更快,更有效的程序開發。

uVision4引入了靈活的窗口管理系統,能夠拖放到視圖內的任何地方,包括支持多顯示器窗口。

uVision4在μVision3

IDE的基礎上,增加了更多大眾化的功能:

·

多顯示器和靈活的窗口管理系統

·

系統瀏覽器窗口的顯示設備外設寄存器信息

·

調試還原視圖創建并保存多個調試窗口布局

·

多項目工作區簡化與眾多的項目

1.2

Keil

uVision4的使用

①,打開Keil

4應用軟件,其初始界面如下:

②、點擊菜單項“Project”下的“New

uVisionProject”,如下圖所示。

③、選擇文件夾,并輸入工程名。

④、輸入工程名并保存后會彈出選擇芯片界面

⑤、這里我們選擇Atmel公司的AT89S51單片機,選擇后,點擊“OK”,即創建完工程。

⑥、單擊點擊下圖所示圓圈圈起的部分建立一個文件。也可以點擊菜單“File”下面的“NEW”來新建一個文件。

⑦、之后輸入程序的代碼后,單擊File—Save

as,根據代碼語言的格類型,可保存為后綴為.asm(匯編語言)和.c(C語言)的文件。

⑧、單擊“Target1”前面的“+”號,并用鼠標右鍵點擊“SourceGroup1”,界面如圖10所示。在用鼠標左鍵點擊“Add

Files

to

Group

Source

Group1...”即可把剛剛的代碼文件添加到工程。最后點擊左上角的編譯按鈕即可完成編譯。之后即可進行程序的調試了。

2.實驗內容

使用匯編語言完成課本P95的(2)、(5)、(8)三道題以及一個跑馬燈程序。

2.1

P95-(2)

設內部RAM

5AH單元中有一個變量X,請編寫計算下述函數式的程序,結果存入5BH。

設計思路:顯然本題要使用分支語句,不妨使用JZ,JNB等,并通過X-10,X-15綜合判斷X處于哪個區間。

代碼如下:

ORG

0000H

JMP

START

ORG

1000H

START:

MOV

A,5AH

;直接尋址,將5AH地址上的數據X存入寄存器A

MOV

B,5AH

;直接尋址,將5AH地址上的數據X再一次存入寄存器B

SUBB

A,#0FH

;將A中數據X先減去15,初步判斷X所屬區間

JNB

ACC.7,DO3

;若A的第7位不為1(X>=15)則程序跳到DO3,否則順序執行

MOV

A,5AH

;若X比15小,再次將X存入累加器A中

CLR

C

;清零進位C

SUBB

A,#0AH

;將X減去10

JNB

ACC.7,DO1

;若A的第7位不為1,(X>=10),跳到DO1

JMP

DO2

;剩下的情況就是:X<10,跳到DO2

DO1:MOV

A,5AH

;10<=X<=15

MUL

AB

;相當于X*X,結果的低八位存入A

ADD

A,#08H

;即X*X+8→A

MOV

5BH,A

;即X*X+8→B

JMP

DONE

;跳到程序結束段

DO2:MOV

A,5AH

;X<10

MUL

AB

;X*X→A

CLR

C

;進位C清零

SUBB

A,#01H

;

X*X-1→A

MOV

5BH,A

;

X*X-1→B

JMP

DONE

;跳到程序結束段

DO3:MOV

A,#29H

;41→A

MOV

5BH,A

;41→B

JMP

DONE

;跳到程序結束段

DONE:SJMP

$

END

程序截圖:

程序結果:

①、當X=12時,Y=12*12+8=152

②、當X=8時,Y=8*8-1=63

③、當X=18時,Y=41

2.2

P95-(5)

設有兩個長度均為15的數組,分別存放在以2000H和2100H為首的存儲區中,試編程求其對應項之和,結果存放到以2200H為首的存儲區中。

設計思路:本題需要用到LOOP進行15次的求和及存放。并且由于地址過高,應采用DPTR進行訪問。

代碼如下:

ORG

0000H

JMP

START

ORG

1000H

START:

MOV

R1,#00H

;求和寄存器,初始清零

MOV

R2,#0FH

;循環次數為15次

MOV

DPL,#00H

;類似段內偏移地址地址

LOOP:

MOV

DPH,#20H

;DPTR的高八位,可理解為段地址,這里先指向第一個數組的首

;地址2000H

MOVX

A,@DPTR

;A←((DPTR))

MOV

R1,A

;R1←(A)

INC

DPH

;DPH改成指向高8位是21H的存儲區

MOVX

A,@DPTR

;A←((DPTR))

ADD

A,R1

;兩數組對應項求和

INC

DPH

;DPH改成指向高8位是22H的存儲區

MOVX

@DPTR,A

;求和結果送入上述地址區

INC

DPL

;低8位地址自增

DJNZ

R2,LOOP

;若循環次數-1后不為0,則跳轉到LOOP處進行循環

END

程序截圖:

程序結果:

首先分別在2000H和2100H存入15數,這里我都存入了1,2,3,…,14,15。

結果得到:

2.3

P95-(8)

將片外數據存儲器地址為1000H~1030H的數據塊,全部搬遷到片內RAM

30H~60H中,并將原數據塊區域全部清零。

設計思路:顯然還是得用LOOP進行搬遷,且每搬完一個就得清零原地址數據,并用DPTR訪問片外存儲器。

代碼如下:

ORG

0000H

JMP

START

ORG

1000H

START:

MOV

R1,#30

;用R1保存循環次數

30次

MOV

R0,#30H

;將地址30H存入R0中

MOV

DPTR,#1000H

;將1000H這個地址存入DPTR中

LOOP:

MOVX

A,@DPTR

;寄存器間接尋址。A←((DPTR))

MOV

@R0,A

;(R0)←A

CLR

A

;A←0

MOVX

@DPTR,A

;原地址數據清零

INC

R0

;數據的寫入地址

自增

INC

DPTR

;數據的讀取地址

自增

DJNZ

R1,LOOP

;若循環次數-1不為0,則跳轉到LOOP處進行循環

END

程序截圖:

程序結果:

先在片外存儲器1000H開始存入數據

接下來開始將數據搬遷到片內30H開始的區域中

且原地址數據依次被清零

2.4

P95-(8)

題目:設計一個6+50=56ms跑馬燈,并在P1端口顯示。

設計思路:首先我得設計一個56ms的延遲。這里已知當單片機系統的振蕩頻率為fosc=12MHz時,一個機器周期為1T=1us;執行一條DJNZ指令需要2個機器周期,執行一條NOP需要一個機器周期,執行一條MOV也是一個機器周期。

接著,再通過循環左移指令RL

A實現跑馬等效果。

代碼如下:

ORG

0000H

JMP

START

ORG

0800H

START:MOV

A,#01H

;即將0000

0001存入A,后面會將最右邊1循環左移。

SJMP

DELAY

;進入延時段起點

LOOP:

RL

A

;從此處開始跑馬燈模塊。先將A循環左移

MOV

P1,A

;將A的值賦給端口P1的8位

SJMP

DELAY

;從56ms的延遲程序段再跑一遍

DELAY:

MOV

R7,#224

;設置外循環次數224次

DLY1:

MOV

R6,#123

;設置內循環次數123次

DLY2:

DJNZ

R6,DLY2

NOP

DJNZ

R7,DLY1

;延時程序段結束,總用時(123*2+2+1+1)T*224T+2T+1T=56ms

SJMP

LOOP

SJMP

END

程序截圖:

程序結果:

初始狀態

執行一次56ms延遲后左移

再一次56ms延遲后左移

Proteus仿真截圖:

3.實驗心得

通過以上4個實驗,我學會了KEIL軟件的使用,即創建工程,創建并添加項目,編譯與調試等等。更重要的是學習了很多單片機編程方面的只是。比如用匯編語言實現數據的傳送、運算、移位等,同時還有一些簡單的程序設計,如分支程序、循環程序等等。

這些實驗使我更好的從底層了解單片機系統的運行機制,尤其的匯編語言的使用更是提高了我對各類端口、存儲器的運用水平。另一方面我也感受到匯編語言雖然十分直接,但面對大型的程序項目就顯得力不從心,所以這就體現了后期實驗使用C語言編寫的簡便性。

我想,通過更多的運用各類指令及對更多端口、元件的綜合使用,我會對變得越來越熟練,且能不斷地提升自己的邏輯思維。

第三篇:單片機實驗報告

目錄

第一章單片機簡介....................................................2 第二章

實驗要求..................................................3 第三章實驗設備......................................................3 第四章實驗安排......................................................4 第五章實驗內容......................................................4

LED燈實驗.......................................................4 步進馬達試驗....................................................5 獨立按鍵控制LED實驗............................................7 矩陣鍵盤實驗....................................................9 靜態數碼管實驗.................................................12 動態數碼管實驗.................................................14 NE555脈沖發生器實驗(定時/計數器).............................16 RS232串口通信實驗(接收與發送)..................................21 第六章收獲體會.....................................................25

單片機實驗報告

第一章單片機簡介

單片機也被稱為微控制器(Microcontroller),是因為它最早被用在工業控制領域。單片機由芯片內僅有CPU的專用處理器發展而來。最早的設計理念是通過將大量外圍設備和CPU集成在一個芯片中,使計算機系統更小,更容易集成進復雜的而對體積要求嚴格的控制設備當中。INTEL的Z80是最早按照這種思想設計出的處理器,從此以后,單片機和專用處理器的發展便分道揚鑣。單片機是靠程序運行的,并且可以修改。通過不同的程序實現不同的功能,尤其是特殊的獨特的一些功能,這是別的器件需要費很大力氣才能做到的,有些則是花大力氣也很難做到的。一個不是很復雜的功能要是用美國50年代開發的74系列,或者60年代的CD4000系列這些純硬件來搞定的話,電路一定是一塊大PCB板!但是如果要是用美國70年代成功投放市場的系列單片機,結果就會有天壤之別!只因為單片機的通過你編寫的程序可以實現高智能,高效率,以及高可靠性!

單片機誕生于20世紀70年代末,經歷了SCM、MCU、SoC三大階段。

1.SCM即單片微型計算機(Single Chip Microcomputer)階段,主要是尋求最佳的單片形態嵌入式系統的最佳體系結構。“創新模式”獲得成功,奠定了SCM與通用計算機完全不同的發展道路。在開創嵌入式系統獨立發展道路上,Intel公司功不可沒。

2.MCU即微控制器(Micro Controller Unit)階段,主要的技術發展方向是:不斷擴展滿足嵌入式應用時,對象系統要求的各種外圍電路與接口電路,突顯其對象的智能化控制能力。它所涉及的領域都與對象系統相關,因此,發展MCU的重任不可避免地落在電氣、電子技術廠家。從這一角度來看,Intel逐漸淡出MCU的發展也有其客觀因素。在發展MCU方面,最著名的廠家當數Philips公司。

Philips公司以其在嵌入式應用方面的巨大優勢,將MCS-51從單片微型計算機迅速發展到微控制器。因此,當我們回顧嵌入式系統發展道路時,不要忘記Intel和Philips的歷史功績。

3.單片機是嵌入式系統的獨立發展之路,向MCU階段發展的重要因素,就是尋求

單片機實驗報告

應用系統在芯片上的最大化解決;因此,專用單片機的發展自然形成了SoC化趨勢。隨著微電子技術、IC設計、EDA工具的發展,基于SoC的單片機應用系統設計會有較大的發展。因此,對單片機的理解可以從單片微型計算機、單片微控制器延伸到單片應用系統。

MCS51系列微控制器應用廣泛,在家電、汽車甚至航空等領域都有其活躍的身影。然而,普通51系列微控制器內部資源有限,像我用Proteus構建微控制器虛擬實驗室選用的AT89C52只有三個定時器、一個全雙工的串行口和中斷控制,并且其數據處理能力有限,不適合對大量數據進行復雜分析和運算。

因此,在不重新選型(可選用SoC)的前提下,為實現我們所需要的功能,就需要進行外圍擴展。針對微控制器的特點,我們首先考慮串行擴展,因為微控制器的I/O引腳有限,并行擴展一則外圍芯片面積比較大,二則對抑制EMI不利。

第二章 實驗要求

1.學習Keil C51集成開發工具的操作及調試程序的方法,包括:仿真調試與脫機運行間的切換方法

2.熟悉TD-51單片機系統板及實驗系統的結構及使用

3.進行MCS51單片機指令系統軟件編程設計與硬件接口功能設

4. 學習并掌握Keil C51軟件聯機進行單片機接口電路的設計與編程調試

5.完成指定MCS51單片機綜合設計題

第三章實驗設備

1.HC600S-51單片機開發板 2.Keil C51 3.普中自動下載軟件

第四章 實驗安排

1.LED燈實驗

單片機實驗報告

2.步進馬達試驗

3.獨立按鍵控制LED實驗 4.矩陣鍵盤實驗 5.靜態數碼管實驗 6.動態數碼管實驗

7.NE555脈沖發生器實驗(定時/計數器)8.RS232串口通信實驗(接收與發送)

第五章 實驗內容

一、LED燈實驗

1.基本要求

利用位移循環指令實現LED燈的閃爍 2.實驗內容

在Keil C51中進行程序的編寫設計并生成.HEX文件,按照下圖連接電路后將HC600S-51單片機開發板接通電源,按下開關,錄入。打開普中錄入生成.HEX文件,加載程序,觀察實驗結果,如果不正確對程序進行改進后重復此操作。實驗結束后先斷電源再拆線,將元器件歸位后離開。3.接線圖

4.電路原理圖

單片機實驗報告

5.程序

#include #define uint unsigned int void d(uint x){uint n;for(;x>0;x--){for(n=0;n<123;n++){;} }}

main(){unsigned int i;while(1)

{for(i=0,P0=1;i<4;i++){d(500);P0=(P0<<2);}}}

二、步進馬達試驗

1.基本要求

編程實現馬達的正反轉,調速等功能 2.實驗內容

在Keil C51中進行程序的編寫設計并生成.HEX文件,按照下圖連接電路后將HC600S-51單片機開發板接通電源,按下開關,錄入。打開普中錄入生成.HEX文件,加載程序,觀察實驗結果,如果不正確對程序進行改進后重復此操作。實驗結束后先斷電源再拆線,將元器件歸位后離開。3.接線圖(圖一)

單片機實驗報告

圖一 圖二

4.電路原理圖

上圖圖二 5.程序

#include “reg52.h” #define speed 2 sbit PH1 = P1^0;

//定義管腳 sbit PH2 = P1^1;sbit I01 = P1^2;sbit I11 = P1^3;sbit I02 = P1^4;sbit I12 = P1^5;

void delay(int time);

void Go(){ //A

PH1 = 0;//PH1為0 則A線圈為反向電流

I01 = 0;I11 = 0;

//以最大電流輸出

PH2 = 0;//PH2為0 則B線圈為反向電流

I02 = 1;I12 = 1;

//輸出0 delay(speed);//圈為反向電流

I01 = 1;//輸出0 I11 = 1;

PH2 = 1;//PH2為1 則B線圈為正向電流

I02 = 0;//以最大電流輸出

I12 = 0;

delay(speed);//B PH1 = 1;

//PH1為1 則A線圈為

正向電流

I01 = 0;

//以最大電流輸出

I11 = 0;

PH2 = 1;//PH2為1 則B線圈為正

向電流

I02 = 1;//輸出0 I12 = 1;

delay(speed);

PH1 = 1;

//PH1為1 則A線圈為正向電流

I01 = 1;I11 = 1;

PH2 = 0;

//PH2為0 則B線圈為反向電流

I02 = 0;I12 = 0;delay(speed);}

void delay(int time){

int i,j;

for(j=0;j <= time;j++)

for(i =0;i <= 120;i++);}

void main(){

while(1)

{

Go();//步進電機運行

} }

單片機實驗報告

三、獨立按鍵控制LED實驗

1.基本要求

通過編程控制8個獨立按鍵分別控制8個LED燈的開關 2.實驗內容

在Keil C51中進行程序的編寫設計并生成.HEX文件,按照下圖連接電路后將HC600S-51單片機開發板接通電源,按下開關,錄入。打開普中錄入生成.HEX文件,加載程序,觀察實驗結果,如果不正確對程序進行改進后重復此操作。實驗結束后先斷電源再拆線,將元器件歸位后離開。3.接線圖(圖一)

圖一 圖二

4.電路原理圖 上圖圖二 5.程序

#include #include #define GPIO_KEY P1 //獨立鍵盤用

P1口

#define uchar unsigned char #define uint unsigned int

void Delayms(unsigned int c);

//延時10ms uchar Key_Scan();void main(void){

unsigned char ledValue, keyNum;

ledValue = 0x01;

while(1)

{

keyNum = Key_Scan();//掃描鍵

switch(keyNum)

{

case(0xFE):

//返回按

鍵K1的數據

ledValue = 0x01;

break;

單片機實驗報告

case(0xFD):

ledValue = 0x02;

break;case(0xFB):

ledValue = 0x04;

break;case(0xF7):

ledValue = 0x08;

break;case(0xEF):

ledValue = 0x10;

break;case(0xDF):

ledValue = 0x20;

break;case(0xBF):

ledValue = 0x40;

break;case(0x7F):

ledValue = 0x80;

//返回按鍵K2的數據

//返回按鍵K3的數據

//返回按鍵K4的數據

//返回按鍵K5的數據

//返回按鍵K6的數據

//返回按鍵K7的數據

//返回按鍵K8的數據

break;default:

break;

}

GPIO_LED = ledValue;//點亮LED燈

}

}

uchar Key_Scan(void)//鍵盤掃描函數 { uchar i,n=0xff;

if(P1==0xff)goto Scan_r;//無鍵按

下,返回

goto Scan_r;Scan_1:

while(P1!=0xff);//等待鍵釋放

Delayms(10);Scan_r:

return n;}

void Delayms(uint x){

uint n;

for(;x>0;x--)

{

for(n=0;n<123;n++)

{;}

} }

四、矩陣鍵盤實驗

1.基本要求

編程由16個矩陣按鍵控制數碼管顯示相應的數值 2.實驗內容

在Keil C51中進行程序的編寫設計并生成.HEX文件,按照下圖連接電路后將HC600S-51單片機開發板接通電源,按下開關,錄入。打開普中錄入生成.HEX文件,加載程序,觀察實驗結果,如果不正確對程序進行改進后重復此操作。實驗結束后先斷電源再拆線,將元器件歸位后離開。

3.接線圖

單片機實驗報告

見下圖圖一

圖一 圖二

4.電路原理圖

見上圖圖二 5.程序

#include #define uchar unsigned char #define uint unsigned int #define uint unsigned int #define GPIO_LED P0

uchar ScanKey(void);void Delayms(uint x);main(){ unsigned char ledValue;uchar i;ledValue = 0x01;loop: i = ScanKey();

switch(i)

{ case 0xee:

ledValue = ~0x3F;

break;

case 0xde:

ledValue = ~0x06;

break;

case 0xbe:

ledValue = ~0x5B;

break;

case 0x7e:

ledValue = ~0x4F;

break;

case 0xed:

ledValue = ~0x66;

break;

case 0xdd:

ledValue = ~0x6D;

break;

單片機實驗報告

case 0xbd:

ledValue = ~0x7D;

break;

case 0x7d:

ledValue = ~0x07;

break;

case 0xeb:

ledValue = ~0x7F;

break;

case 0xdb:

ledValue = ~0x6F;

break;

case 0xbb:

ledValue = ~0x77;

break;

case 0x7b:

ledValue = ~0x7C;

break;

case 0xe7:

ledValue = ~0x39;

break;

case 0xd7:

ledValue = ~0x5E;

break;

case 0xb7:

ledValue = ~0x79;

break;

case 0x77:

ledValue = ~0x71;

break;

}

GPIO_LED = ledValue;i=0;goto loop;}

void Delayms(uint x){uint n;for(;x > 0;x--)

{ for(n=0;n<123;n++)

{;}

} }

uchar ScanKey(void)//鍵盤掃描函數 { uchar i,n=0xff;

P1=0xf0;

if(P1==0xf0)goto Scan_r;//無鍵按下,返回

for(i=0,P1=0xfe;i<4;i++)

{ if((P1&0xf0)!=0xf0)

{ Delayms(10);

if((P1&0xf0)!=0xf0)

{ n=

P1;

goto

Scan_1;}

}

P1=(P1<<1)+1;

//掃描下

一行

} goto Scan_r;Scan_1:

單片機實驗報告

P1=0xf0;while((P1&0xf0)!=0xf0);//等待鍵

釋放

Delayms(10);

Scan_r:

P1=0xff;return n;} }

五、靜態數碼管實驗

1.基本要求

編程使數碼管顯示字符0-F 2.實驗內容

在Keil C51中進行程序的編寫設計并生成.HEX文件,按照下圖連接電路后將HC600S-51單片機開發板接通電源,按下開關,錄入。打開普中錄入生成.HEX文件,加載程序,觀察實驗結果,如果不正確對程序進行改進后重復此操作。實驗結束后先斷電源再拆線,將元器件歸位后離開。3.接線框圖(圖一)

圖一

單片機實驗報告

圖二

4.電路原理圖

見上圖圖二 5.程序

#include #define uchar unsigned char #define uint unsigned int void Delayms(uint x);uchar code LED7Code[]=

{~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D, ~0x7D,~0x07,~0x7F,~0x6F,~0x77,~0x7C,~0x39,~0x5E,~0x79,~0x71};main(){

unsigned int LedNumVal;//定義變量 while(1)

{

// 將字模送到P0口顯示

LedNumVal++;

P0 = LED7Code[LedNumVal%16];

Delayms(1000);

//調用延時程序

}

}

單片機實驗報告

void Delayms(uint x){uint n;for(;x > 0;x--)

{ for(n=0;n<123;n++)

{;}

} }

六、動態數碼管實驗

1.基本要求

編程實現8個數碼管的動態掃描。通過P22、P23、P24控制3-8譯碼器來對數碼管進行位選,通過P0口經過573的驅動控制數碼管的段選,通過P13控制573的使能端,為低電平時573才會有輸出。2.實驗內容

在Keil C51中進行程序的編寫設計并生成.HEX文件,按照下圖連電路后將HC600S-51單片機開發板接通電源,按下開關,錄入。打開普中錄入生成.HEX文件,加載程序,觀察實驗結果,如果不正確對程序進行改進后重復此操作。實驗結束后先斷電源再拆線,將元器件歸位后離開。3.接線圖(圖一)

圖一 圖二

單片機實驗報告

圖三

4.電路原理圖

見上圖圖

二、圖三 5.程序

#define uint unsigned int void Dsplay();void Delayms(uint x);uchar mDS[6];uchar code cDsCode[]=

{0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xf8,0x80,0x90};

void main(){ uchar i;

for(i=0;i<6;i++)mDS[i]=i+1;

loop:

Dsplay();

goto loop;}

void Dsplay()//動態掃描顯示

{uchar i;

for(i=0,P2=0x01;i<6;i++)

{ P1=cDsCode[mDS[i]];//輸出段

Delayms(1000);

P2=P2<<1;

//選通下一位

}

P2=0x00;

//關閉位選通 }

void Delayms(uint x){uint n;for(;x > 0;x--)

{ for(n=0;n<123;n++)

{;}

} }

七、NE555脈沖發生器實驗(定時/計數器)

1.基本要求

2.實驗內容

在Keil C51中進行程序的編寫設計并生成.HEX文件,按照下圖連接電路后將HC600S-51單片機開發板接通電源,按下開關,錄入。打開普中錄入生成.HEX文件,加載程序,觀察實驗結果,如果不正確對程序進行改進后重復此操作。實驗結束后先斷電源再拆線,將元器件歸位后離開。3.接線圖

4.電路原理圖

5.程序

#include #include“lcd.h” #define uchar unsigned char #define uint unsigned int #define ulong unsigned long uchar code EN_CHAR1[16]={“

CYMOMETER

”};uchar code EN_CHAR2[16]={“FREQ:

HZ”};

單片機實驗報告

void TIMER_Configuration();//初始化定時器 ulong Freq;

//用來存放要顯示的頻率值 ulong TimeCount;//用于計算1S鐘的

void main(){ uchar i, freqValue[6];

LcdInit();TIMER_Configuration();for(i=0;i<16;i++){

LcdWriteData(EN_CHAR1[i]);}

LcdWriteCom(0xc0);//第二行顯示

for(i=0;i<16;i++){

LcdWriteData(EN_CHAR2[i]);}

while(1){

if(TR0==0)

//當計數器停下的時候,表明計數完畢

{

Freq = Freq + TL1;

//讀取TL的值

Freq = Freq +(TH1 * 256);//讀取TH的值

LcdWriteCom(0xc8);

//--求頻率的個十百千萬十萬位--//

freqValue[0]='0'+Freq%1000000/100000;

freqValue[1]='0'+Freq%100000/10000;

freqValue[2]='0'+Freq%10000/1000;

freqValue[3]='0'+Freq%1000/100;

freqValue[4]='0'+Freq%100/10;

freqValue[5]='0'+Freq%10;

for(i=0;i<5;i++)//從最高位開始查找不為0的數開始顯示(最低位為0顯示0)

{

if(freqValue[i]==0x30)

{

freqValue[i]=0x20;//若為0則賦值空格鍵

}

else

單片機實驗報告

{

break;

}

}

for(i=0;i<6;i++)

{

LcdWriteData(freqValue[i]);

}

Freq=0;//將計算的頻率清零

TH1=0;//將計數器的值清零

TL1=0;

TR0=1;//開啟定時器

TR1=1;//開啟計數器

} } }

void TIMER_Configuration(){ TMOD=0x51;TH0=0x3C;TL0=0xB0;ET0=1;ET1=1;EA=1;TR0=1;TR1=1;} void Timer0()interrupt 1 { TimeCount++;if(TimeCount==20)//計時到1S {

TR0=0;

TR1=0;

TimeCount=0;

}

//--12MHZ設置定時50ms的初值--// TH0=0x3C;TL0=0xB0;} void Timer1()interrupt 3 {

單片機實驗報告

//--進入一次中斷,表明計數到了65536--// Freq=Freq+65536;

}

#include“lcd.h”

void Lcd1602_Delay1ms(uint c)

//誤差 0us {

uchar a,b;for(;c>0;c--){

for(b=199;b>0;b--)

{

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

}

}

} #ifndef LCD1602_4PINS //當沒有定義這個LCD1602_4PINS時 void LcdWriteCom(uchar com)

//寫入命令 { LCD1602_E = 0;

//使能

LCD1602_RS = 0;

//選擇發送命令

LCD1602_RW = 0;

//選擇寫入

LCD1602_DATAPINS = com;

//放入命令

Lcd1602_Delay1ms(1);//等待數據穩定

LCD1602_E = 1;

//寫入時序

Lcd1602_Delay1ms(5);

//保持時間

LCD1602_E = 0;} #else

void LcdWriteCom(uchar com)

//寫入命令 { LCD1602_E = 0;//使能清零

LCD1602_RS = 0;//選擇寫入命令

LCD1602_RW = 0;//選擇寫入

LCD1602_DATAPINS = com;// Lcd1602_Delay1ms(1);LCD1602_E = 1;//寫入時序

Lcd1602_Delay1ms(5);LCD1602_E = 0;Lcd1602_Delay1ms(1);

單片機實驗報告

LCD1602_DATAPINS = com << 4;//發送低四位

Lcd1602_Delay1ms(1);

LCD1602_E = 1;//寫入時序

Lcd1602_Delay1ms(5);LCD1602_E = 0;} #endif #ifndef LCD1602_4PINS

void LcdWriteData(uchar dat)

//寫入數據 { LCD1602_E = 0;//使能清零

LCD1602_RS = 1;//選擇輸入數據

LCD1602_RW = 0;//選擇寫入

LCD1602_DATAPINS = dat;//寫入數據

Lcd1602_Delay1ms(1);

LCD1602_E = 1;

//寫入時序

Lcd1602_Delay1ms(5);

//保持時間

LCD1602_E = 0;} #else void LcdWriteData(uchar dat)

//寫入數據 { LCD1602_E = 0;//使能清零

LCD1602_RS = 1;

//選擇寫入數據

LCD1602_RW = 0;

//選擇寫入

LCD1602_DATAPINS = dat;

Lcd1602_Delay1ms(1);LCD1602_E = 1;//寫入時序

Lcd1602_Delay1ms(5);LCD1602_E = 0;LCD1602_DATAPINS = dat << 4;//寫入低四位

Lcd1602_Delay1ms(1);LCD1602_E = 1;//寫入時序

Lcd1602_Delay1ms(5);LCD1602_E = 0;} #endif #ifndef LCD1602_4PINS void LcdInit()

//LCD初始化子程序 { LcdWriteCom(0x38);//開顯示

單片機實驗報告

LcdWriteCom(0x0c);//開顯示不顯示光標

LcdWriteCom(0x06);//寫一個指針加1 LcdWriteCom(0x01);//清屏

LcdWriteCom(0x80);//設置數據指針起點 } #else void LcdInit()

//LCD初始化子程序 { LcdWriteCom(0x32);//將8位總線轉為4位總線

LcdWriteCom(0x28);//在四位線下的初始化

LcdWriteCom(0x0c);//開顯示不顯示光標

LcdWriteCom(0x06);//寫一個指針加1 LcdWriteCom(0x01);//清屏

LcdWriteCom(0x80);//設置數據指針起點 } #endif

八、RS232串口通信實驗(接收與發送)

1.基本要求

a.通過實驗了解串口的基本原理及使用,理解并掌握對串口進行初始化; b.使用串口調試助手(Baud 9600、數據位

8、停止位

1、效驗位無)做為上位機來做收發試驗;

c.利用串口調試助手中字符串輸入進行數據發送,接受窗口顯示收到的數據。2.實驗內容

在Keil C51中進行程序的編寫設計并生成.HEX文件,按照下圖連接電路后將HC600S-51單片機開發板接通電源,按下開關,錄入。打開普中錄入生成.HEX文件,加載程序,觀察實驗結果,如果不正確對程序進行改進后重復此操作。實驗結束后先斷電源再拆線,將元器件歸位后離開。3.接線圖

單片機實驗報告

4.電路原理圖

5.程序

#include #include“lcd.h” unsigned char ChCode[14] = “Received data:”;void UsartConfiguration();void main(){ unsigned char i, receiveData;LcdInit();for(i=0;i<14;i++){

LcdWriteData(ChCode[i]);} UsartConfiguration();while(1){

if(RI == 1)

//查看是否接收到數據

{

receiveData = SBUF;//讀取數據

單片機實驗報告

RI = 0;

//清除標志位

LcdWriteCom(0xC0);

LcdWriteData('0' +(receiveData / 100));

// 百位

LcdWriteData('0' +(receiveData % 100 / 10));// 十位

LcdWriteData('0' +(receiveData % 10));

// 個位

} } } void UsartConfiguration(){ SCON=0X50;

//設置為工作方式1 TMOD=0X20;//設置計數器工作方式2 PCON=0X80;

//波特率加倍

TH1=0XF3;

//計數器初始值設置,注意波特率是4800的TL1=0XF3;TR1=1;

//打開計數器 }

#include“lcd.h”

void Lcd1602_Delay1ms(uint c)

//誤差 0us {

uchar a,b;for(;c>0;c--){

for(b=199;b>0;b--)

{

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

}

}

} #ifndef LCD1602_4PINS //當沒有定義這個LCD1602_4PINS時 void LcdWriteCom(uchar com)

//寫入命令 { LCD1602_E = 0;

//使能

LCD1602_RS = 0;

//選擇發送命令

LCD1602_RW = 0;

//選擇寫入

LCD1602_DATAPINS = com;

//放入命令

Lcd1602_Delay1ms(1);//等待數據穩定

LCD1602_E = 1;

//寫入時序

單片機實驗報告

Lcd1602_Delay1ms(5);

//保持時間

LCD1602_E = 0;} #else

void LcdWriteCom(uchar com)

//寫入命令 { LCD1602_E = 0;//使能清零

LCD1602_RS = 0;//選擇寫入命令

LCD1602_RW = 0;//選擇寫入

LCD1602_DATAPINS = com;Lcd1602_Delay1ms(1);LCD1602_E = 1;//寫入時序

Lcd1602_Delay1ms(5);LCD1602_E = 0;Lcd1602_Delay1ms(1);LCD1602_DATAPINS = com << 4;//發送低四位

Lcd1602_Delay1ms(1);LCD1602_E = 1;//寫入時序

Lcd1602_Delay1ms(5);LCD1602_E = 0;} #endif

#ifndef LCD1602_4PINS

void LcdWriteData(uchar dat)

//寫入數據 { LCD1602_E = 0;//使能清零

LCD1602_RS = 1;//選擇輸入數據

LCD1602_RW = 0;//選擇寫入

LCD1602_DATAPINS = dat;//寫入數據

Lcd1602_Delay1ms(1);LCD1602_E = 1;

//寫入時序

Lcd1602_Delay1ms(5);

//保持時間

LCD1602_E = 0;} #else void LcdWriteData(uchar dat)

//寫入數據 { LCD1602_E = 0;

//使能清零

LCD1602_RS = 1;

//選擇寫入數據

LCD1602_RW = 0;//選擇寫入

LCD1602_DATAPINS = dat;

Lcd1602_Delay1ms(1);LCD1602_E = 1;

//寫入時序

Lcd1602_Delay1ms(5);

單片機實驗報告

LCD1602_E = 0;LCD1602_DATAPINS = dat << 4;//寫入低四位

Lcd1602_Delay1ms(1);LCD1602_E = 1;

//寫入時序

Lcd1602_Delay1ms(5);LCD1602_E = 0;} #endif

#ifndef LCD1602_4PINS void LcdInit()

//LCD初始化子程序 { LcdWriteCom(0x38);//開顯示

LcdWriteCom(0x0c);//開顯示不顯示光標

LcdWriteCom(0x06);//寫一個指針加1 LcdWriteCom(0x01);//清屏

LcdWriteCom(0x80);//設置數據指針起點 } #else void LcdInit()

//LCD初始化子程序 { LcdWriteCom(0x32);//將8位總線轉為4位總線

LcdWriteCom(0x28);//在四位線下的初始化

LcdWriteCom(0x0c);//開顯示不顯示光標

LcdWriteCom(0x06);//寫一個指針加1 LcdWriteCom(0x01);//清屏

LcdWriteCom(0x80);//設置數據指針起點 } #endif

單片機實驗報告

第六章 收獲體會

本次微控制器綜合設計基本上使用了所選微控制器的所有資源,進一步熟悉和加深了對中斷、定時器和串行通信的理解和使用。我覺得軟件實驗就是讓我們初學者熟悉keil的使用,然后復習下匯編的思想和掌握程序的流程,所以軟件實驗可以很快的完成,并且慢慢熟悉調試的強大功能。硬件設計中,仿真讓我很有感觸,感覺蠻好玩的,可以摒棄麻煩的實驗硬件自己在寢室玩而且不受硬件狀態的限制,即便出錯了也不會損壞。當然更重要的是這種好習慣,仿真完后再去在實驗板上驗證會比直接要來的確切而且便捷,至少不要老是去插拔線。在做實驗中在同學指導下我試用C語言來編寫程序,確實發現比匯編語言容易編寫也容易理解,以前的實驗還是有參考資料的習慣,現在什么都開始自己寫感覺還是很有成就感的,當然這是基于程序本身就那么幾行很容易編寫,也不是說參考不好。總而言之,這學期的單片機實驗還是收獲頗豐的。相信在以后的實驗學習實踐工作中都會有個潛移默化的作用的。

第四篇:單片機實驗報告

單片機實驗報告

一、實驗目的

1.熟練使用Keil、Protues兩款軟件 2.通過上機操作,增強個人動手實踐能力 3.加深對理論知識的理解

4.培養運用匯編語言進行初步編寫程序的能力

二、實驗內容

1.將片外RAM3050-306FH中數據轉移至片內70-8FH中。

要求:可以從Keil或Protues上看到RAM的數據轉移結果。2.設計一個外部中斷觸發流水燈系統:當外部中斷來臨時,啟動流水燈,即令P2口的LED輪流循環點亮。

要求:開發板或Prrotues演示

3.將片內存儲器80H中存放的BCD碼轉換為ASCII碼,要求使用表格查詢技術。

要求:在Keil或Protues上看到數據轉換結果。

4.各使用中斷方式和查詢方式設計一個方波發生器,頻率為50HZ。

要求:Protues使軟件間示波器顯示方波。

三、實驗程序

1.將片外RAM3050-306FH中數據轉移至片內70-8FH中

ORG 0000H AJMP MAIN 上電,轉向主程序

ORG 0030H 主程序入口

MAIN: MOV DPTR,#3050H 數據指針指向地址3050H MOV A,#04H 將立即數04H送A寄存器

MOV R0,#20H NEXT: MOVX @DPTR,A INC DPTR 數據指針DPTR自加一

DJNZ R0,NEXT 判斷是否跳轉到NEXT或繼續向下執行

MOV DPTR,#3050H MOV R0,#70H MOV R2,#20H NEXT1: MOVX A,@DPTR MOV @R0,A INC DPTR INC R0 DJNZ R2,NEXT1

SJMP $ 等待

END 2.設計一個外部中斷觸發流水燈系統:當外部中斷來臨時,啟動流水燈,即令P2口的LED輪流循環點亮 ORG 0000H SJMP MAIN 上電,轉向主程序

ORG 0003H 外部中斷0向量入口

AJMP INSER ORG 0030H 主程序入口

MAIN: SETB EX0 SETB IT0

SETB EA CPUHERE: SJMP HERE ORG 0200H INSER: MOV R2,#08H MOV A,#01H NEXT: MOV P2,A LCALL DELAY RL A DJNZ R2,NEXT NEXT或繼續向下執行

RETI DELAY: MOV R3,#0FFH DEL2: MOV R4,#0FFH DEL1: NOP

允許外部中斷0中斷 選擇邊沿觸發方式 開中斷 等待中斷 設置循環次數 賦初值,設置高電平亮 將初值送往P2口 延時 左移一位

判斷循環次數,是否跳轉到中斷返回 延時程序 DJNZ R4,DEL1 DJNZ R3,DEL2 RET END 3.將片內存儲器80H中存放的BCD碼轉換為ASCII碼,要求使用表格查詢技術 ORG 0000H LJMP MAIN ORG 0030H主程序起始地址 MAIN: MOV 80H,#05H 將立即數50H轉送內存單元80H MOV A,80H 將內存單元80H中的內容送寄存器A MOV DPTR,#TAB MOVC A,@A+DPTR A寄存器內容加指針偏移量后送A寄存器 MOV 80H,A RET TAB: DB 30H,31H,32H,33H,34H DB 35H,36H,37H,38H,39H 4.1中斷方式產生50HZ方波

ORG 0000H

AJMP MAIN

ORG 0030H 主程序入口 MAIN: MOV TMOD,#10H 設置定時器工作模式為模式1 MOV TH1,#0D8H 裝入T1計數初值

MOV TL1,#0F0H

SETB ET1 開中斷

SETB EA CPU開中斷

SETB TR1 啟動定時器T1 HERE: SJMP HERE 等待中斷 ORG 001BH T1中斷向量地址

CLR TF1 將TF1清零

CPL P2.0 P2.0取反輸出

MOV TH1,#0D8H 重裝初值

MOV TH0,#0F0H

RETI;中斷返回

END 4.2 查詢方式產生50HZ方波

ORG 0000H

AJMP MAIN

ORG 0030H 主程序入口

MAIN: MOV TMOD,#10H 設置定時器的工作模式為模式1 SETB TR1 啟動定時器T1 LOOP: MOV TH1,#0D8H 裝入T1計數初值

MOV TH0,#0F0H JNB TF1,$ T1沒有溢出則等待

CLR TF1

產生溢出,清標志位

CPL P2.0 P2.0取反輸出

SJMP LOOP 循環

END

四、實驗結果截圖

1.2

3.4.1

4.2

第五篇:單片機實驗報告

實驗

四、中斷交通燈實驗

林立強

1000850116

一、實驗目的

1、了解MCS-51單片機的組成、中斷原理,中斷處理過程、外部中斷的中斷方式。

2、掌握中斷響應及處理的編程方法。

二、實驗原理

MCS-51的中斷系統中有5個中斷源:外部中斷INTO,INT1,定時器/計數器TO、T1中斷和串口UART中斷,它們對應不同的中斷矢量。如表:

IE是中斷允許寄存器,其中EXO,ETO,EX1,ET1,ES分別是上述5個中斷的允許控制位,EA位是中斷總允許位,每個中斷只有在相應中斷允許且總中斷也允許的情況下,才能得到中斷響應。80XX51的5個中斷都可以設為高低2個優先級,IP是中斷優先級寄存器,其中PXO,PTO,PX1,PT1,PS位分別對應5個中斷的優先級設置,置“1”時設為高優先級中斷,為“0”時是低優先級中斷。在有中斷嵌套要求時,低優先級中斷可被高優先級所中斷。當同一級的中斷同時到來時,先響應中斷矢量排在前面的中斷。

三、實驗電路

電路原理圖如下,所需元件為:AT89C51、SW-SPDT、LED-RED、LED-GREEN、LED-YELLOW、RES、TRAFFICLIGHTS

四、實驗內容

參照實驗電路,設計交通燈控制系統。模擬交通信號燈控制:一般情況下正常顯示,東西-南北交替放行,各方向通行時間為30秒。有救護車或警車到達時,兩個方向交通信號燈全為紅色,以便讓急救車或警車通過,設通行時間為10秒,之后交通恢復正常。用單次脈沖模擬急救車或警車申請外部中斷。

1、在生成HEX文件后,用Proteus軟件對電路圖進行計算機仿真;

2、程序下載到單片機實驗板上驗證;(實驗板數碼管的驅動程序見附件)。

五、程序流程圖

仿真圖:

緊急情況:

源程序:

ORG 0000H

AJMP START

ORG 0023H //串口中斷地址

AJMP SBR1

START:MOV TMOD,#00100000B

//定時器方式2

MOV TL1,#0FDH //9600bps/11.0592MHz

MOV TH1,#0FDH

SETB TR1

MOV SCON,#01100000B //方式1

MOV R0,#20H

MOV R1,#40H

ACALL SOUT

SJMP $

SBR1: JNB RI,SEND

ACALL SIN

SJMP NEXT SEND: ACALL SOUT NEXT: RETI

SOUT: MOV A,@R0

MOV C,P

CPL C

MOV ACC.7,C

INC R0

MOV SBUF,A

CLR TI

RET

SIN: MOV A,SBUF

MOV C,P

CPL C

ANL A,#7FH

MOV @R1,A

INC R1

CLR RI

RET

PLAY: MOV A,R7

MOV B,#10

RET

TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H

// 0

A B C D E F

END

下載杭電單片機實驗報告六(優秀范文5篇)word格式文檔
下載杭電單片機實驗報告六(優秀范文5篇).doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    單片機實驗報告

    單片機實驗一 實驗報告 課程名稱: 姓名: 系別: 專業: 年級: 學號: 指導教師: 單片機原理及應用實驗 陳璐 信息系 電氣工程及其自動化 2012級 120712041 李莉 2015 年6 月 25 日......

    單片機實驗報告

    51單片機控制流水燈 目錄 (1)51精簡開發板簡介 (2)實驗目的 (3)實驗內容 (4)元件 (5)原理圖 (6)實驗步驟 (7)主要功能介紹(8)實驗錯誤及分析 (9)調試及程序 (10)系統測試 (11)實驗心得 一、51精簡......

    單片機實驗報告

    實驗一 uVision2 集成開發環境的使用 一、 實驗目的和要求二、實驗設備與儀器三、實驗內容四、實驗原理、方法與步驟 五、實驗小結:1.簡述生成應用程序的過程。2.記錄程序調試......

    單片機實驗報告

    《單片機原理及應用》 實 驗 報 告 2017—2018學年第一學期 班級: 152 專業: 電子科學與技術 姓名: 子路 學號: 教師: 實驗一:Keil C51 一、實驗目的 1、熟悉Keil C51單片機應用......

    單片機實驗報告4

    單片機實驗報告(實驗一) 一、實驗目的: 1. 掌握stm8的時鐘切換。 2. 熟悉匯編語言的指令系統。 3. 加深對stm8功能的理解,掌握去其使用方法。 二、實驗儀器: stm8s105c6單片機......

    單片機實驗報告(三)

    實驗報告書 信息工程系 電氣自動化11班姓名:張青日期:2014.10.14 實驗一:完成AT89S51單片機與PC機的RS232串行通信接口電路實物制作。該部分電路可在實物電路板Ⅰ上進行搭建。......

    單片機實驗報告大全

    單片機原理與應用實學校:合肥工業大學 班級:計算機科學與技術 學號: 姓名:驗報告 第一章MC51 單片機原理及應用軟件實驗 實驗1:系統認識實驗 1. 實驗目的 (1)了解ZY15MCU12BC2單片......

    單片機課程實驗報告

    《單片機原理及應用》課程實驗報告 實驗名稱:步進電機綜合控制實驗一、摘要:本實驗利用 8051 單片機達到控制步進電機的啟動、停止、正轉、 反轉、點動、轉過指定角度、狀態顯......

主站蜘蛛池模板: 成年女人黄小视频| 欧美 国产 日产 韩国 在线| 婷婷色婷婷开心五月四房播播久久| 国产老熟女狂叫对白| 熟妇女人妻丰满少妇中文字幕| www无套内射高清免费| 天天日夜夜爽| 最近中文字幕在线mv视频在线| 欧美亚洲日韩国产人成在线播放| 久久99精品久久只有精品| 国产精品无码专区av在线播放| 久久久老熟女一区二区三区| 成人嫩草研究院久久久精品| 97久久精品亚洲中文字幕无码| 一本一道人人妻人人妻αv| 国产精品怡红院在线观看| 无码少妇一区二区三区免费| 久久久久久久曰本精品免费看| 日本二区三区欧美亚洲国| 国产成人亚洲精品无码电影不卡| 无码人妻精品一区二区三区蜜桃| 青青国产揄拍视频| 国产在线无码精品电影网| 婷婷开心激情综合五月天| 日韩精品无码一本二本三本色| 免费看国产曰批40分钟| 97亚洲色欲色欲综合网| 97精品国产一区二区三区| 亚洲欧美国产精品久久久久久久| 国产免费无遮挡吸乳视频在线观看| 麻豆精品一区综合av在线| 无码人妻精品一区二区蜜桃网站| 无码国内精品久久人妻| 久久99青青精品免费观看| 色综合天天无码网站| 久久综合九色综合欧美98| 99久久精品午夜一区二区| 日本日本熟妇中文在线视频| 少妇人妻互换不带套| 秋霞最新高清无码鲁丝片| 无码午夜人妻一区二区三区不卡视频|