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

標(biāo)題: msp430 G2553自動(dòng)打鈴系統(tǒng)設(shè)計(jì) [打印本頁(yè)]

作者: cuijh    時(shí)間: 2018-6-1 17:26
標(biāo)題: msp430 G2553自動(dòng)打鈴系統(tǒng)設(shè)計(jì)
一、任務(wù)
    采用MSP-EXP430G2553試驗(yàn)板設(shè)計(jì)并制作一臺(tái)自動(dòng)打鈴系統(tǒng)。要求完成的作品必須固化軟件,測(cè)試檢查時(shí)上電即可工作,采用串口與上位機(jī)進(jìn)行通信來(lái)實(shí)現(xiàn)人機(jī)交互。
二、要求
1.基本要求
      1)基本計(jì)時(shí)、溫度測(cè)量和顯示功能(用12小時(shí)制顯示)。
           包括上下午標(biāo)志,時(shí)、分、秒的數(shù)字顯示,秒信號(hào)指示,XX.X℃。
      2)能設(shè)置當(dāng)前時(shí)間(含上、下午,時(shí),分,秒)
      3)能實(shí)現(xiàn)基本打鈴功能,規(guī)定:
          上午630起床鈴;打鈴5秒、停2秒、再打鈴5秒。
          下午11:00熄燈鈴;打鈴5秒、停2秒、再打鈴5秒。
    鈴聲可用LED燈光顯示,LED燈的亮滅以呼吸燈形式體現(xiàn)。
2.發(fā)揮部分
    1)增加整點(diǎn)報(bào)時(shí)功能,整點(diǎn)時(shí)響鈴5秒,要求有控制啟動(dòng)和關(guān)閉功能。
    2)增加調(diào)整起床鈴、熄燈鈴時(shí)間的功能。
    3)增加調(diào)整打鈴時(shí)間長(zhǎng)短和間歇時(shí)間長(zhǎng)短的功能。
    4)增設(shè)上午4節(jié)課的上、下課打鈴功能,規(guī)定:8:00上課,850下課;855上課,945下課;10:00上課,1050下課;1055  上課,1145下課;每次鈴聲5秒。
5)利用板上按鍵做一個(gè)12小時(shí)/24小時(shí)的顯示格式切換。
6)設(shè)置錯(cuò)誤時(shí)間后會(huì)報(bào)錯(cuò)。
7)溫度到達(dá)30℃后報(bào)警。
8)掉電保存上一次的時(shí)間信息,下次上電后自動(dòng)從掉電前開(kāi)始計(jì)時(shí)。

單片機(jī)源程序如下:
  1. /*
  2. automatic alarming system instructions
  3. 1 change time : " a/pm000000#";
  4. 2 change wake/sleep time: "*a/pm000000#";
  5. 3 change alarming/pause time: "&00#";
  6. 4 input "s#"  start o'clock alarm;
  7. 5 input "c#"  cancel o'clock alarm;
  8. 6 input "d#"  am070000/pm113000 alarming
  9. 7 input "e#"  am073000/pm120000 alarming
  10. 8 press P1^3 12/24h transform
  11. */
  12. #include <msp430g2553.h>
  13. #include"Flash.h"
  14. float temp;
  15. long IntDegC;
  16. unsigned int i;
  17. unsigned char time[8]={'a','m','0','0','0','0','0','0'};
  18. unsigned char buf[];
  19. unsigned char array[9];
  20. unsigned char bed[3];
  21. unsigned char Temp[4];
  22. unsigned char data,sum;
  23. unsigned char flag[]={"°C"};
  24. unsigned char flag_1[]={"Temperature:"};
  25. unsigned char flag_2[]={"  Time:"};
  26. unsigned char flag_3,flag_4,flag_5,flag_6,flag_7,flag_8;
  27. unsigned char alarm[]={"  TIME ERROR"};
  28. unsigned char alarm1[]={"  TEMPERATURE ERROR"};
  29. void putchar(unsigned char c)
  30. {
  31.                 while(!(IFG2&UCA0TXIFG));
  32.                 UCA0TXBUF=c;
  33. }
  34. void putstr(unsigned char*s)
  35. {
  36.                 //IE2 &=~UCA0RXIE;
  37.                 while((*s)!='\0')
  38.                 {putchar(*s);s++;}
  39.                 //IE2 &|=UCA0RXIE;
  40. }
  41. void breath_light(void)
  42. {
  43.                 unsigned int static t,m,j;
  44.                 //unsigned int static j;
  45.                 WDTCTL = WDTPW | WDTHOLD;
  46.                 //unsigned const PWMPeriod=300;
  47.                 P1DIR|=BIT6;
  48.                 P1SEL|=BIT6;
  49.                 TA0CCR0=280;//set pwm period
  50.                 TA0CCTL1=OUTMOD_7;//set/reset mode
  51.                 TA0CTL=TASSEL_2+MC_1;//SMCLK/UP mode
  52.                 //TA0CCR0=600;
  53.                 if(flag_6) TA0CCR0=280*(bed[1]-48);
  54.        for(j=0;j<=4;j++)
  55.        {
  56.                 TA0CCR1=0;
  57.                 for(t=0;t<TA0CCR0;t++)
  58.                 {
  59.                         TA0CCR1=t;
  60.                         __delay_cycles(2000);
  61.                 }

  62.                 for(t=TA0CCR0;t>0;t--)
  63.                 {
  64.                         TA0CCR1=t;
  65.                         __delay_cycles(2000);
  66.                 }
  67.                 TA0CCR1=0;
  68.        }
  69.            TA0CCR1=0;
  70.            if(flag_6)
  71.            {m=(bed[2]-48);
  72.                    for(;m>0;m--)
  73.                    __delay_cycles(1000000);}
  74.            else __delay_cycles(2000000);

  75.     for(j=0;j<=4;j++)
  76.          {
  77.                   TA0CCR1=0;
  78.                   for(t=0;t<TA0CCR0;t++)
  79.                   {
  80.                           TA0CCR1=t;
  81.                           __delay_cycles(2000);
  82.                   }

  83.                   for(t=TA0CCR0;t>0;t--)
  84.                   {
  85.                           TA0CCR1=t;
  86.                           __delay_cycles(2000);
  87.                   }
  88.                   TA0CCR1=0;
  89.          }
  90. }
  91. void control_1(void)
  92. {
  93.         unsigned int static t;
  94.         unsigned int static j;
  95.         unsigned const PWMPeriod=280;
  96.         WDTCTL = WDTPW | WDTHOLD;
  97.         P1DIR|=BIT6;
  98.         P1SEL|=BIT6;
  99.         TA0CCR0=PWMPeriod;//set pwm period
  100.         TA0CCTL1=OUTMOD_7;//set/reset mode
  101.         TA0CTL=TASSEL_2+MC_1;//SMCLK/UP mode
  102.    for(j=0;j<=4;j++)
  103.    {
  104.         TA0CCR1=0;
  105.         for(t=0;t<PWMPeriod;t++)
  106.         {
  107.                 TA0CCR1=t;
  108.                 __delay_cycles(2000);
  109.         }

  110.         for(t=PWMPeriod;t>0;t--)
  111.         {
  112.                 TA0CCR1=t;
  113.                 __delay_cycles(2000);
  114.         }
  115.         TA0CCR1=0;
  116.    }
  117. }
  118. void IO_interrupt(void)
  119.         {
  120.          P1REN |= BIT3;           //啟用P1.3內(nèi)部上下拉電阻
  121.          P1OUT |= BIT3;          //將電阻設(shè)置為上拉

  122.          //----配置P1.3中斷參數(shù)----
  123.          P1DIR &= ~BIT3;         //P1.3設(shè)為輸入(可省略)
  124.          P1IES |= BIT3;             //P1.3設(shè)為下降沿中斷
  125.          P1IE  |= BIT3;  //允許P1.3中斷
  126.      P1IFG&=~BIT3;
  127.         }
  128. void TimerA1(void)
  129. {
  130.             TA1CCTL0 = CCIE;                        // CCR0中斷使能
  131.             TA1CCR0 = 65535;
  132.             TA1CTL = TASSEL_2 + MC_3 + TACLR+ID_3;  // ACLK, 增計(jì)數(shù)模式, 清除TAR計(jì)數(shù)器
  133.             _enable_interrupts();
  134.            // __bis_SR_register(LPM0_bits+GIE);
  135. }

  136. void USCI_A0_init(void)
  137. {
  138.             BCSCTL1 = CALBC1_1MHZ;
  139.             DCOCTL = CALDCO_1MHZ;
  140.             P1SEL |=BIT1+BIT2;
  141.             P1SEL2 |=BIT1+BIT2;
  142.             UCA0CTL1 |=UCSSEL_2;
  143.             UCA0MCTL = UCBRS_0;
  144.             UCA0BR0=104;
  145.             UCA0BR1=0;
  146.             UCA0CTL1 &= ~UCSWRST;
  147.             IE2 |=UCA0RXIE;
  148.             //__bis_SR_register(LPM0_bits+GIE);
  149. }
  150. void ADC10_init(void)
  151. {
  152.     ADC10CTL0 &= ~ENC;
  153.     ADC10CTL0 = ADC10ON + REFON + ADC10SHT_3 + SREF_1;
  154.     ADC10CTL1 = CONSEQ_0 + ADC10SSEL_0 + ADC10DIV_3+SHS_0 + INCH_10;
  155.     __delay_cycles(3000);
  156.     ADC10CTL0 |= ENC;
  157. }
  158. void send_temp(void)
  159. {
  160.             static unsigned int z;
  161.             ADC10CTL0|=ENC+ADC10SC;
  162.                 while((ADC10CTL0 & ADC10IFG)==0);
  163.                  temp=ADC10MEM;
  164.            // IntDegC=((temp*(1.5)/1023)-0.986)/0.00355;
  165.                  IntDegC=temp*4225/1024-2777;
  166.             while(!(IFG2 & UCA0TXIFG));
  167.             putstr(flag_1);
  168.                 __delay_cycles(1000);
  169.                 UCA0TXBUF =IntDegC/100+48;
  170.                 __delay_cycles(1000);
  171.                 UCA0TXBUF =(IntDegC%100)/10+48;
  172.                 __delay_cycles(1000);
  173.                 UCA0TXBUF =46;
  174.                 __delay_cycles(1000);
  175.                 UCA0TXBUF =(IntDegC%100)%10+48;
  176.                 __delay_cycles(1000);
  177.                 putstr(flag);
  178.                 if (flag_8) z=((Temp[1]-48)*100)+((Temp[2]-48)*10)+(Temp[3]-48);else z=260;
  179.                 if(IntDegC>=z)    putstr(alarm1);

  180. }

  181. int main(void)
  182. {
  183.         static  int c=0;
  184.         WDTCTL = WDTPW | WDTHOLD;// Stop watchdog timer
  185.     Flash_Init();
  186.     P1DIR|=BIT0;
  187.     IO_interrupt();
  188.     ADC10_init();
  189.     USCI_A0_init();
  190.         TimerA1();
  191.         for(c=0;c<8;c++)
  192.                     {
  193.                             time[c]=FlashRead_Char(SegD+c);

  194.                     }

  195.     while(1)
  196.     {
  197.      if(flag_3){ breath_light();flag_3=0;}//5 2 5
  198.      if(flag_4){ control_1();flag_4=0;}//5
  199.      if(flag_5){ control_1();flag_5=0;}//5
  200.     }

  201.     }

  202. #pragma vector=TIMER1_A0_VECTOR// TA1中斷服務(wù)程序
  203. __interrupt void TIMER1_A0_ISR(void)
  204. {
  205.     static int c=0;
  206.         P1OUT^=BIT0;
  207.         send_temp();
  208.         putstr(flag_2);
  209.         putchar(time[0]);
  210.         putchar(time[1]);
  211.         putchar(time[2]);
  212.         putchar(time[3]);
  213.         putchar(58);
  214.         putchar(time[4]);
  215.         putchar(time[5]);
  216.         putchar(58);
  217.         putchar(time[6]);
  218.         putchar(time[7]++);
  219.         if(flag_7){putstr(alarm);flag_7=0;}        // forecast error
  220.         for(c=0;c<8;c++)
  221.                 {
  222.                         FlashErase_Seg(SegD+c);
  223.                 }
  224.                 for(c=0;c<8;c++)
  225.                 {
  226.                         FlashWrite_Char(SegD+c,time[c]);
  227.                 }
  228.              c=0;
  229.         if(time[7]==':'){time[7]='0';time[6]++;}
  230.         if(time[6]=='6'){time[6]='0';time[5]++;}
  231.         if(time[5]==':'){time[5]='0';time[4]++;}
  232.         if(time[4]=='6'){time[4]='0';time[3]++;}
  233.         if(time[3]==':'){time[3]='0';time[2]++;}
  234.         if((time[2]=='1')&&(time[3]=='2')&&(time[4]=='0')&&(time[5]=='0')&&(time[6]=='0')&&(time[7]=='0'))
  235.         {if( time[0]=='a') time[0]='p';
  236.         else time[0]='a';
  237.         }
  238.         if((time[0]=='p')&&(time[2]=='2')&&(time[3]=='4')&&(time[4]=='0')&&(time[5]=='0')&&(time[6]=='0')&&(time[7]=='0')) {time[2]='0';time[3]='0';time[0]='a';}
  239.         if((time[2]=='1')&&(time[3]=='3')&&(time[4]=='0')&&(time[5]=='0')&&(time[6]=='0')&&(time[7]=='0'))   {        time[2]='0';time[3]='1';}//12 h
  240.         if(sum=='1')//P1^3 12/24h transform
  241.     {
  242.         if((time[0]=='p')&&(time[2]=='2')&&(time[3]=='4')) {time[2]='0';time[3]='0';time[0]='a';}sum=0;
  243.         if((time[0]=='p')&&(time[2]=='2')&&(time[3]=='3')) {time[2]='1';time[3]='1';}sum=0;
  244.         if((time[0]=='p')&&(time[2]=='2')&&(time[3]=='2')) {time[2]='1';time[3]='0';}sum=0;
  245.         if((time[0]=='p')&&(time[2]=='2')&&(time[3]=='1')) {time[2]='0';time[3]='9';}sum=0;
  246.         if((time[0]=='p')&&(time[2]=='2')&&(time[3]=='0')) {time[2]='0';time[3]='8';}sum=0;
  247.         if((time[0]=='p')&&(time[2]=='1')&&(time[3]=='9')) {time[2]='0';time[3]='7';}sum=0;
  248.         if((time[0]=='p')&&(time[2]=='1')&&(time[3]=='8')) {time[2]='0';time[3]='6';}sum=0;
  249.         if((time[0]=='p')&&(time[2]=='1')&&(time[3]=='7')) {time[2]='0';time[3]='5';}sum=0;
  250.         if((time[0]=='p')&&(time[2]=='1')&&(time[3]=='6')) {time[2]='0';time[3]='4';}sum=0;
  251.         if((time[0]=='p')&&(time[2]=='1')&&(time[3]=='5')) {time[2]='0';time[3]='3';}sum=0;
  252.         if((time[0]=='p')&&(time[2]=='1')&&(time[3]=='4')) {time[2]='0';time[3]='2';}sum=0;
  253.         if((time[0]=='p')&&(time[2]=='1')&&(time[3]=='3')) {time[2]='0';time[3]='1';}sum=0;
  254.     }
  255.         if(sum=='2')
  256.         {
  257.         if((time[0]=='p')&&(time[2]=='1')&&(time[3]=='1')) {time[2]='2';time[3]='3';}sum=0;
  258.         if((time[0]=='p')&&(time[2]=='1')&&(time[3]=='0')) {time[2]='2';time[3]='2';}sum=0;
  259.         if((time[0]=='p')&&(time[2]=='0')&&(time[3]=='9')) {time[2]='2';time[3]='1';}sum=0;
  260.         if((time[0]=='p')&&(time[2]=='0')&&(time[3]=='8')) {time[2]='2';time[3]='0';}sum=0;
  261.         if((time[0]=='p')&&(time[2]=='0')&&(time[3]=='7')) {time[2]='1';time[3]='9';}sum=0;
  262.         if((time[0]=='p')&&(time[2]=='0')&&(time[3]=='6')) {time[2]='1';time[3]='8';}sum=0;
  263.         if((time[0]=='p')&&(time[2]=='0')&&(time[3]=='5')) {time[2]='1';time[3]='7';}sum=0;
  264.         if((time[0]=='p')&&(time[2]=='0')&&(time[3]=='4')) {time[2]='1';time[3]='6';}sum=0;
  265.         if((time[0]=='p')&&(time[2]=='0')&&(time[3]=='3')) {time[2]='1';time[3]='5';}sum=0;
  266.         if((time[0]=='p')&&(time[2]=='0')&&(time[3]=='2')) {time[2]='1';time[3]='4';}sum=0;
  267.         if((time[0]=='p')&&(time[2]=='0')&&(time[3]=='1')) {time[2]='1';time[3]='3';}sum=0;
  268.         }
  269.     // begin/end class alarm
  270.         if((time[0]=='a')&&(time[2]=='0')&&(time[3]=='8')&&((time[4]=='0')||(time[4]=='5'))&&(time[5]=='0')&&(time[6]=='0')&&(time[7]=='0')){ flag_5=1;}
  271.         if((time[0]=='a')&&(time[2]=='1')&&(time[3]=='0')&&((time[4]=='0')||(time[4]=='5'))&&(time[5]=='0')&&(time[6]=='0')&&(time[7]=='0')){ flag_5=1;}
  272.         if((time[0]=='a')&&(time[2]=='0')&&(time[3]=='8')&&(time[4]=='5')&&(time[5]=='5')&&(time[6]=='0')&&(time[7]=='0'))flag_5=1;
  273.         if((time[0]=='a')&&(time[2]=='1')&&(time[3]=='0')&&(time[4]=='5')&&(time[5]=='5')&&(time[6]=='0')&&(time[7]=='0'))flag_5=1;
  274.         if((time[0]=='a')&&(time[2]=='0')&&(time[3]=='9')&&(time[4]=='4')&&(time[5]=='5')&&(time[6]=='0')&&(time[7]=='0'))flag_5=1;
  275.         if((time[0]=='a')&&(time[2]=='1')&&(time[3]=='1')&&(time[4]=='4')&&(time[5]=='5')&&(time[6]=='0')&&(time[7]=='0'))flag_5=1;

  276.         if(data=='s')//start o'clock alrm
  277.         {
  278.            if((time[2]<='2')&&(time[3]>='0')&&(time[4]=='0')&&(time[5]=='0')&&(time[6]=='0')&&(time[7]=='0')) flag_4=1;
  279.         }

  280.         if(data=='c') flag_4=0;//cancel o'clock alrm

  281.         if((time[0]==array[1])&&(time[1]==array[2])&&(time[2]==array[3])&&(time[3]==array[4])&&(time[4]==array[5])&&
  282.         (time[5]==array[6])&&(time[6]==array[7])&&(time[7]==array[8])){ flag_3=1;data='z';}

  283.         if((data!='d')&&(data!='e')&&(data!='z'))
  284.         {
  285.         if((time[0]=='a')&&(time[2]=='0')&&(time[3]=='6')&&(time[4]=='3')&&(time[5]=='0')&&(time[6]=='0')&&(time[7]=='0')) flag_3=1;
  286.         if((time[0]=='p')&&(time[2]=='1')&&(time[3]=='1')&&(time[4]=='0')&&(time[5]=='0')&&(time[6]=='0')&&(time[7]=='0'))  flag_3=1;
  287.         }
  288.         if(data=='d')
  289.         {
  290.         if((time[0]=='a')&&(time[2]=='0')&&(time[3]=='7')&&(time[4]=='0')&&(time[5]=='0')&&(time[6]=='0')&&(time[7]=='0')) flag_3=1;
  291.         if((time[0]=='p')&&(time[2]=='1')&&(time[3]=='1')&&(time[4]=='3')&&(time[5]=='0')&&(time[4]=='0')&&(time[5]=='0'))  flag_3=1;
  292.         }
  293.         if(data=='e')
  294.         {
  295.         if((time[0]=='a')&&(time[2]=='0')&&(time[3]=='7')&&(time[4]=='3')&&(time[5]=='0')&&(time[6]=='0')&&(time[7]=='0')) flag_3=1;
  296.         if((time[0]=='p')&&(time[2]=='1')&&(time[3]=='2')&&(time[4]=='0')&&(time[5]=='0')&&(time[4]=='0')&&(time[5]=='0'))  flag_3=1;
  297.         }
  298. }
  299. #pragma vector=USCIAB0RX_VECTOR//uart interrupt
  300. __interrupt void uart()
  301. {
  302.         static int t=0;
  303.         static int j=0;
  304.     while(!(IFG2 & UCA0TXIFG));
  305.     buf[t] = UCA0RXBUF;t++;
  306.     if(buf[t-1]=='#')
  307.     {
  308.     if(t) t=0;
  309.     switch(buf[0])
  310.     {
  311.     case's': data=buf[0];UCA0RXBUF=0;break;//開(kāi)啟整點(diǎn)報(bào)時(shí)功能
  312.     case'c': data=buf[0];UCA0RXBUF=0;break;//取消整點(diǎn)報(bào)時(shí)功能
  313.     case'd': data=buf[0];UCA0RXBUF=0;break;//調(diào)整打鈴,起床時(shí)間
  314.     case'e': data=buf[0];UCA0RXBUF=0;break;
  315.     case'&': j=1;flag_6=1;
  316.             while(buf[j]!='#')//adjust alarm time
  317.         {bed[j] = buf[j] ;j++;}
  318.         if(j==3)
  319.                 j=0;
  320.     break;
  321.     case'*':j=1;//adjust bed time
  322.                 while(buf[j]!='#')
  323.                 {array[j] = buf[j] ;j++;}
  324.                 if(j==9)
  325.                         j=0;
  326.        break;
  327.     case't':j=1;flag_8=1;//adjust temperature
  328.                    while(buf[j]!='#')
  329.                    {Temp[j] = buf[j] ;j++;}
  330.                    if(j==4)
  331.                            j=0;
  332.           break;
  333.     case'a'://adjust time
  334.             if((buf[1]!='m')||(buf[2]>='2')||(buf[4]>='6')||(buf[6]>='6')||((buf[2]=='2')&&(buf[3]>='4'))) flag_7=1;
  335.             else
  336.             {flag_7=0;
  337.             while(buf[j]!='#')
  338.             {time[j] = buf[j] ;j++;}
  339.             if(j==8)
  340.                     j=0;}
  341.     break;
  342.     case'p'://adjust time
  343.                 if((buf[1]!='m')||(buf[2]>='3')||(buf[4]>='6')||(buf[6]>='6')||((buf[2]=='2')&&(buf[3]>='4'))) flag_7=1;
  344.                 else
  345.                 {flag_7=0;
  346.                 while(buf[j]!='#')
  347.                 {time[j] = buf[j] ;j++;}
  348.                 if(j==8)
  349.                         j=0;}
  350.         break;
  351.     default:flag_7=1;break;

  352.     }
  353. }}
  354. #pragma vector = PORT1_VECTOR//P1^3 interrupt
  355. __interrupt void PORT1_ISR(void)
  356. {
  357.         static unsigned char m;
  358.         if(P1IFG&BIT3)
  359.         {
  360.         __delay_cycles(1000000);
  361.         if(P1IFG&BIT3)
  362.         {m++;
  363.         if(m%2==1)
  364.         sum='1';//檢測(cè)通過(guò),則會(huì)調(diào)用事件處理函數(shù)
  365.         else sum='2';        //退出中斷前必須手動(dòng)清除IO口中斷標(biāo)志
  366.         P1IFG = 0;
  367.         }
  368.         while(P1IFG&BIT3);
  369.         }
  370. }


復(fù)制代碼

源碼下載:
msp430g2553打鈴系統(tǒng).docx (21.72 KB, 下載次數(shù): 27)







歡迎光臨 (http://www.izizhuan.cn/bbs/) Powered by Discuz! X3.1
亚洲日本欧美在线| 久久爱一区二区| 久久精品国产一区二区| 黄色亚洲网站| 久99久视频| 亚洲天堂日韩av| 亚洲精品乱码久久| 亚洲激情 欧美| jlzzjizz在线播放观看| 无码任你躁久久久久久老妇| 制服.丝袜.亚洲.中文.综合懂 | 欧美国产一区二区三区| 久久久精品电影| 欧美日韩成人精品| 97精品视频在线| 国产精品91久久| 成人免费高清完整版在线观看| 国产欧美一区二区| 操一操视频一区| 免费在线观看91| 欧美在线影院一区二区| 欧美精品一级二级| 精品国产乱子伦一区| 日韩av在线一区二区| 一区二区欧美亚洲| 欧美激情在线观看视频| 欧洲美女免费图片一区| 亚洲xxxxx| 神马欧美一区二区| 今天免费高清在线观看国语| 2019日韩中文字幕mv| 激情综合在线观看| 久热在线视频观看| 网站免费在线观看| 亚洲天堂网av在线| 手机看片久久久| 性中国xxx极品hd| 性欧美精品xxxx| 毛片免费视频| 在线色视频网| 日韩激情美女| 日韩av黄色| 国产91久久精品一区二区| 最新精品国产| 男男成人高潮片免费网站| 亚洲女同av| 亚洲我射av| 蜜桃成人av| 99综合在线| 白白色 亚洲乱淫| ...xxx性欧美| 欧美日韩免费在线视频| 亚洲美女在线观看| 日韩视频不卡中文| 国产亚洲欧美日韩精品| 欧美裸身视频免费观看| 国产一区红桃视频| 日韩精品欧美在线| 黄色手机在线视频| 少妇愉情理伦三级| 中文字幕在线观看你懂的| 手机看片一区二区| 夜夜操天天干| 欧美成人三区| 香艳视频网站| 国产福利视频在线| 欧美第一在线视频| 欧美日韩日本国产亚洲在线 | www.一区二区三区.com| 九九热免费在线视频| 久久精品国产亚洲a∨麻豆| 亚洲第一av| 欧美午夜精品一区二区三区电影| 日本网站在线观看一区二区三区| 国产精品丝袜在线| 日韩区在线观看| 91成人国产在线观看| 欧美日韩精品中文字幕一区二区| 在线观看免费黄网站| 国产精品丝袜一区二区| 内射无码专区久久亚洲| 男捅女免费视频| 国产盗摄精品一区二区酒店| 国产一二区视频| 幼a在线观看| 2023国产精华国产精品| 一区二区视频欧美| 国产精品私人影院| 亚洲精品成人免费| 91在线免费看网站| 日韩中文字幕组| 日韩a在线播放| 精品一区二区6| 亚洲av无码一区二区三区性色| 97在线资源在| 中文字幕人成乱码在线观看| 亚洲精品小说| 中文字幕av一区二区三区| 精品国产免费久久| 国产美女扒开尿口久久久| 国产96在线 | 亚洲| 999久久久国产| 午夜视频www| 丝袜视频国产在线播放| 国产剧情一区二区在线观看| 久久人人精品| 欧美午夜性色大片在线观看| 欧美俄罗斯乱妇| 国产日本欧美在线| 久久久国产一级片| 久热在线视频精品网站| 日日天天狠狠| 成人性生活av| 亚洲第一毛片| 亚洲国产精品久久艾草纯爱| 欧美性猛交xxxxxxxx| 5566成人精品视频免费| 永久免费网站视频在线观看| 国产成人福利在线| 亚洲综合激情六月婷婷在线观看| 男人av在线| 一区二区三区韩国免费中文网站| 成人国产视频在线观看| 日韩欧美国产午夜精品| 亚洲精品日韩激情在线电影| 人妻巨大乳一二三区| 国产婷婷一区二区三区久久| 亚洲伦理在线| 久久三级中文| 99久久国产综合精品女不卡| 日韩av在线看| 国语精品中文字幕| 亚洲综合网在线观看| 污视频网站免费观看| av资源网在线观看| 国产精品成人一区二区不卡| 久久综合九色综合欧美亚洲| 亚洲乱亚洲乱妇无码| 亚洲国产欧美日韩| av在线免费播放网址| 国产一卡二卡3卡4卡四卡在线| 超碰在线资源| 国产农村妇女精品一二区| 一区二区三区在线影院| 久久久女女女女999久久| 男女激情无遮挡| 影音先锋亚洲天堂| 天天堂资源网在线观看免费视频| 成人国产一区| 国产乱码精品一区二区三区av| 日韩不卡在线观看| 日本一区网站| 懂色av蜜臀av粉嫩av永久| 国产偷窥女洗浴在线观看亚洲| 欧美aa在线观看| 久久激情久久| 欧美日韩精品三区| 麻豆成人小视频| 微拍福利一区二区| www.尤物.com| 国产福利资源一区| 欧美激情一区不卡| 欧美男同性恋视频网站| 91影视免费在线观看| 色婷婷精品久久二区二区密 | 高清日韩欧美| 久久久精品黄色| 色综合色综合久久综合频道88| 日韩欧美亚洲天堂| 97国产成人无码精品久久久| 免费在线视频一级不卡| 一区二区蜜桃| 欧美日韩国产综合一区二区三区| av色综合网| 国产黄色大片免费看| 黄色大片免费看| 日韩成人综合网| 久久久91精品国产一区二区精品| 久久综合伊人77777尤物| 成人免费毛片播放| 无码h黄肉3d动漫在线观看| 2024最新电影免费在线观看| 裸体一区二区| 亚洲国产欧美一区二区三区同亚洲 | 天天干视频在线| 性欧美18xxxhd| 成人h动漫精品| 久久91精品国产91久久跳| 黑人粗进入欧美aaaaa| 欧美特级特黄aaaaaa在线看| 超碰成人av| 97精品国产综合久久久动漫日韩| 久久久精品黄色| 久久免费视频观看| 91精品小视频| 五月婷婷导航| 色777狠狠狠综合伊人| 在线国产电影不卡| 日韩精品不卡| 国产黄色小视频在线观看| 欧美性video| 久久久亚洲国产美女国产盗摄| 欧美激情亚洲精品| 久操视频免费看| 中出福利视频| 午夜在线a亚洲v天堂网2018| 日韩成人久久久| 可以在线看的黄色网址| 欧美图片欧美激情欧美精品| 深夜视频一区二区| 亚洲丝袜另类动漫二区| 91九色在线观看| 久久久久久久久久成人| 韩国精品一区| 亚洲欧洲中文日韩久久av乱码| 91网免费观看| 波多野结衣午夜| 欧美gay视频| 一本色道久久综合| 日韩中文字幕欧美| 免费看黄色aaaaaa 片| 能在线观看av网站| 欧美aaa在线| 欧洲精品在线视频| 久久久久亚洲av片无码下载蜜桃| av片在线观看| 亚洲婷婷综合色高清在线| 久久av二区| 色婷婷av一区二区三区之红樱桃| 超碰成人97| 精品国产污污免费网站入口| 亚洲第一区第二区第三区| 99热在线免费播放| 日本欧美韩国一区三区| 国产97人人超碰caoprom| 久久久一区二区三区四区| 亚洲女人18毛片水真多| 亚洲图片小说区| 欧美调教femdomvk| 久久久免费视频网站| 你懂的视频在线观看资源| 亚洲私拍自拍| 久久男人资源视频| 日本免费一二三区| 日本h片久久| 欧美精品一二三四| 国产资源中文字幕| 亚洲а∨精品天堂在线| 91麻豆精品秘密| 日本不卡免费新一二三区| 九九久久久2| 欧美日韩亚洲一区二区三区在线| 美女视频黄免费的亚洲男人天堂| 国产一区二区播放| 电影一区二区三区| 久久精品午夜| 国产在线视频不卡| 国产精品久久欧美久久一区| 成人影院中文字幕| 精品视频在线播放色网色视频| 人妻精品久久久久中文字幕| av中文字幕在线观看| 亚洲午夜私人影院| 国产天堂在线播放| 色视频在线播放| 国产三级精品视频| 久久av喷吹av高潮av| 美女啪啪无遮挡| 国产精品毛片久久久| 亚洲成人久久一区| 色噜噜在线观看| 金瓶狂野欧美性猛交xxxx | 中文字幕av一区二区三区高 | 欧美日韩午夜剧场| **亚洲第一综合导航网站| 一本到在线视频| 免费毛片在线不卡| 不卡av电影院| 老熟妇一区二区三区| 日韩欧美ww| 欧美美女操人视频| 亚洲av综合一区| 国产成人一区二区三区影院| 成年人精品视频| 国产伦精品一区二区三区视频网站| 国产成人澳门| 美日韩在线视频| 中文av免费观看| 日韩免费一区| 国产精品久久精品| 凸凹人妻人人澡人人添| 国产欧美不卡| 国产丝袜不卡| 精品久久久久一区二区| 羞羞的视频在线看| 精品视频在线免费看| 少妇精品一区二区| 成人勉费视频| 日韩成人中文字幕| 国产对白videos麻豆高潮| 精品淫伦v久久水蜜桃| 欧美另类交人妖| 国产特级黄色片| 亚洲免费成人| 国产日韩欧美一区二区三区四区| 一个人免费播放在线视频看片| 成人丝袜高跟foot| 欧美午夜小视频| aaa在线观看| 欧美最猛性xxxxx直播| 四虎永久免费在线观看| 91精品国产色综合久久不卡粉嫩| 中文字幕在线观看亚洲| 中文字幕 视频一区| 你懂的视频一区二区| 99久久无色码| 日日摸日日添日日躁av| 国产精品卡一卡二卡三| 亚洲欧美日韩精品一区| 成年女人在线看片| 精品呦交小u女在线| 无码人妻精品一区二区| 永久91嫩草亚洲精品人人| 成人在线视频网址| 黄色网战在线观看| 亚洲欧洲无码一区二区三区| 亚洲精品久久久久久| 五月激情久久| 久久精品久久久久电影| 亚洲国产成人一区二区| 青青国产91久久久久久| 久久av喷吹av高潮av| av中文天堂在线| 日韩精品一区二区在线| av大片在线免费观看| 欧美日韩一区二区高清| 久久66热这里只有精品| 国内在线高清免费视频| 黑人巨大精品欧美一区二区免费 | av男人的天堂在线| 日韩欧美国产一区二区三区 | 久久久久国产精品免费| 亚洲成人偷拍自拍| av一二三不卡影片| 国产探花在线看| 日韩久久一区| 欧美亚洲日本黄色| 久久亚洲国产视频| 国产精品乱人伦| 精品夜夜澡人妻无码av| 青青久久av| 成人福利网站在线观看11| 天天添天天操| 色综合久久久久久久久| 一区二区在线观看免费视频| 久久影视一区| 欧美日韩国产精品一卡| 国产在线91| 亚洲精美色品网站| www.色呦呦| 99免费精品在线观看| 精品无码av一区二区三区不卡| 91精品啪在线观看国产爱臀 | 成人亚洲精品777777ww| 中文字幕佐山爱一区二区免费| 精品人妻互换一区二区三区| 免费av一区二区三区四区| 国产伦精品一区二区三区免费视频 | 欧美性猛交xxxx偷拍洗澡| 国产亚洲精品久久久久久无几年桃 | 亚洲欧美国产一区二区三区| 人人妻人人澡人人爽人人欧美一区 | 成人h版在线观看| 杨幂一区二区国产精品| 国产成人在线中文字幕| 国产精品国产精品| 撸视在线观看免费视频| 亚洲女人天堂成人av在线| 先锋影音男人站| 亚洲视频一二三| 欧美成人aaa片一区国产精品| 精品91久久久久| 黄色一级在线视频| 日韩一区二区三区四区五区| 成人精品视频99在线观看免费| 视频在线91| 亚洲精品丝袜日韩| 欧美性xxxx巨大黑人猛| 亚洲一区二区在线免费观看视频| 国产一级二级三级| 久久99精品视频| 国产伦精品一区二区三区妓女下载| 五月天亚洲色图| 欧美 日韩 国产 在线观看| 中文不卡1区2区3区| 国产精品视频999| 青青草av免费在线观看| 中文字幕精品—区二区| 免费观看h片| 老司机亚洲精品|