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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4102|回復: 1
打印 上一主題 下一主題
收起左側

單片機ds1302日歷數字鐘數碼管顯示程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:454508 發表于 2018-12-25 15:45 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
在此附程序源碼,希望幫助到由需要的小伙伴!

單片機源程序如下:
  1. #include<reg52.h>
  2. #include<intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. sbit sclk = P1^2;                                                  //ds1302時鐘脈沖引腳
  6. sbit dio = P1^1;                                                  //ds1302輸入引腳
  7. sbit ce = P1^0;                                                          //ds1302片選引腳
  8. sbit beep = P1^7;                          //蜂鳴器引腳
  9. // 顯示部分引腳定義
  10. sbit   din = P2^6;                                  // 串行數據輸出,接CH451的數據輸入
  11. sbit   load=P3^3;                         //串行命令加載,上升延激活
  12. sbit   dout=P2^7;                         //INT1,鍵盤中斷和鍵值數據輸入,接CH451的數據輸出
  13. sbit   dclk = P2^5;                       //串行數據時鐘上升延激活
  14. //ch452命令定義
  15. #define CH452_RESET     0x0201                          // 復位
  16. #define CH452_SYSOFF    0x0400                          // 關閉顯示、關閉鍵盤
  17. #define CH452_SYSON1    0x0401                          // 開啟顯示
  18. #define CH452_SYSON2    0x0403                          // 開啟顯示、鍵盤
  19. #define CH452_DIG4      0x0c00                      // 數碼管位4顯示,需另加8位數據
  20. #define CH452_DIG5      0x0d00                          // 數碼管位5顯示,需另加8位數據
  21. #define CH452_DIG6      0x0e00                          // 數碼管位6顯示,需另加8位數據
  22. #define CH452_DIG7      0x0f00                      // 數碼管位7顯示,需另加8位數據
  23. #define  h                            12
  24. #define  m                                 0
  25. #define  s              0
  26. unsigned char code number[]={0xbd,0x18,0xd5,0xd9,0x78,0xe9,0xed,0x98,0xfd,0xf9};
  27. //鍵盤部分
  28. uchar keycode,b,d,z,zz;
  29. //按鍵延時部分
  30. void Delay200ms() //@11.0592MHz
  31. {
  32.         unsigned char i, j, k;

  33.         _nop_();
  34.         _nop_();
  35.         i = 7;
  36.         j = 78;
  37.         k = 167;
  38.         do
  39.         {
  40.                 do
  41.                 {
  42.                         while (--k);
  43.                 } while (--j);
  44.         } while (--i);
  45. }
  46. void delay(uint z)
  47. {
  48.         uint x,y;
  49.         for(x=z;x>0;x--)
  50.                 for(y=120;y>0;y--);
  51. }  
  52. void CH452_Read(void)
  53. {                uchar cmd1;
  54.                 uint i,j;
  55.                 cmd1=0x07; //讀按鍵的命令字
  56.                 load=0;
  57.                 for(i=0;i!=4;i++) // 只需要發出高4位,多發也可以,但應該確保最后留下的4位是該命令碼
  58.                 {
  59.                 din=cmd1&1;
  60.                 dclk=0;
  61.                 cmd1>>=1; //往右移一位
  62.                 dclk=1; //產生時鐘上升沿鎖通知CH451輸入位數據
  63.                 }
  64.                 load=1; //產生加載上升沿通知CH451處理命令數據
  65.                 for(j=0;j<100;j++){ }
  66.                 keycode=0; //清除keycode
  67.                 for(i=0;i!=7;i++)
  68.                 {
  69.                 keycode<<=1; //數據移入keycode,高位在前,低位在后
  70.                 if (dout)
  71.                 { keycode++;} //從高到低讀入451的數據
  72.                 // keycode|=CH452_DOUT;
  73.                 dclk=0; //產生時鐘下升沿通知CH451輸出下一位
  74.                 dclk=1;
  75.                 }
  76. }
  77. // ch452寫程序
  78. void ch451_write(uint command)
  79. {
  80.   char i;       
  81. load=0;   
  82.     for(i=0;i<12;i++){                  //送入12位數據,低位在前
  83.     din = command&1;                               
  84.    dclk =0;
  85.     command>>=1;
  86.     dclk=1;                              //上升沿有效
  87.   }
  88.         load=1;
  89. }
  90. //顯示程序
  91. void display1(uchar minute10,minute,second10,second)               
  92. {
  93.         ch451_write(CH452_DIG4 | number[minute10]);       
  94.         ch451_write(CH452_DIG5 | number[minute]|0x02);
  95.         ch451_write(CH452_DIG6 | number[second10]);       
  96.         ch451_write(CH452_DIG7 | number[second]);
  97. }
  98. //顯示程序
  99. void display2(uchar z,zz,nian10,nian)               
  100. {
  101.         ch451_write(CH452_DIG4 | 0);       
  102.         ch451_write(CH452_DIG5 | 0);
  103.         ch451_write(CH452_DIG6 | number[nian10]);
  104.         ch451_write(CH452_DIG7 | number[nian]);
  105. }
  106. //顯示程序
  107. void display3(uchar yue10,yue,ri10,ri)                       
  108. {
  109.         ch451_write(CH452_DIG4 | number[yue10]);       
  110.         ch451_write(CH452_DIG5 | number[yue]);
  111.         ch451_write(CH452_DIG6 | number[ri10]);
  112.         ch451_write(CH452_DIG7 | number[ri]);
  113. }
  114. //ds1302時序部分程序
  115. void write_1302(uchar add,dat)//寫數據 add 是addres 地址 dat 是數據
  116. {
  117.         uchar i,temp;
  118.         temp=add; // 把add地址給 temp
  119.         ce=0;
  120.         _nop_();
  121.         sclk=0;
  122.         _nop_();
  123.         ce=1;
  124.         _nop_();
  125.         for(i=0;i<8;i++)
  126.         {
  127.                 sclk=0;
  128.                 _nop_();
  129.                 if((temp&0x01)==0x01)// 剛才把地址給了temp 現在和1與然后一位一位的給dio 前面定義了dio是引腳
  130.                         dio=1;
  131.                         else
  132.                         dio=0;
  133.                 temp>>=1;
  134.                 sclk=1;
  135.                 _nop_();
  136.         }
  137.         temp=dat;
  138.         for(i=0;i<8;i++)
  139.         {
  140.                 sclk=0;
  141.                 _nop_();
  142.                 if((temp&0x01)==0x01)
  143.                         dio=1;
  144.                         else
  145.                         dio=0;
  146.                 temp>>=1;
  147.                 sclk=1;
  148.                 _nop_();
  149.         }
  150.         ce=0;
  151.         sclk=0;
  152. }
  153. uchar read_1302(uchar add)// 讀數據
  154. {
  155.         uchar dat,dat1,i,temp;
  156.         temp=add;
  157.         ce=0;
  158.         _nop_();
  159.         sclk=0;
  160.         _nop_();
  161.         ce=1;
  162.         for(i=0;i<8;i++)
  163.         {
  164.                 sclk=0;
  165.                 _nop_();
  166.                 if((temp&0x01)==0x01)
  167.                         dio=1;
  168.                         else
  169.                         dio=0;
  170.                 temp>>=1;
  171.                 sclk=1;
  172.                 _nop_();
  173.         }
  174.         for(i=0;i<8;i++)
  175.         {
  176.                 sclk=0;
  177.                 _nop_();
  178.                 if(dio)
  179.                     dat|=0x80;
  180.                 if(i<7)
  181.                         dat>>=1;
  182.                 sclk=1;
  183.         }
  184.         dat1=dat/16;
  185.         dat=dat%16;
  186.         dat=dat1*10+dat;  
  187.         ce=0;
  188.         sclk=0;
  189.         return dat;
  190. }
  191. //數字調整
  192. uint tiaozheng ( uint Q){
  193.                                 uint a;
  194.                                 a = Q;
  195.                                 if(Q>15)        {
  196.                                 a=a+6;
  197.                                 }
  198.                                 if(Q>25)        {
  199.                                 a=a+6;
  200.                                 }
  201.                                 if(Q>35)        {
  202.                                 a=a+6;
  203.                                 }
  204.                                 if(Q>45)        {
  205.                                 a=a+6;
  206.                                 }
  207.                 if(Q>55)        {
  208.                                 a=a+6;
  209.                                 }
  210.                                 return a;
  211.                                 }
  212. //主函數部分
  213. void main()
  214. {  
  215.         unsigned int minute;
  216.         unsigned int second;
  217.         unsigned int shi;
  218.          unsigned int ri;
  219.          unsigned int yue;
  220.          unsigned int nian;
  221.          b=0;
  222.          d=0;
  223.          ch451_write(CH452_RESET); // 開啟顯示
  224.         ch451_write(CH452_SYSON2); // 開啟顯示
  225.         write_1302(0x8e,0x00);     //開寫保護
  226.         write_1302(0xc0,0xfe);
  227.         write_1302(0xc2,0xff);
  228.         write_1302(0x80,0x30); //秒寫入 (地址+數據)
  229.         write_1302(0x82,0x59); //分寫入
  230.         write_1302(0x84,0x11); //時寫入
  231.         write_1302(0x86,0x11); //日寫入
  232.         write_1302(0x88,0x01); //月寫入
  233.         write_1302(0x8c,0x18); //年寫入
  234.         write_1302(0x8e,0x80); //關寫保護
  235.         display3(1,5,0,3);
  236. while(1){
  237.                 write_1302(0x8e,0x00);  //開寫保護
  238.                 second=read_1302(0x81);        //讀秒
  239.                 minute=read_1302(0x83); //讀分鐘
  240.                 shi=read_1302(0x85);        //讀小時
  241.                 ri=read_1302(0x87);         //讀日
  242.                 yue=read_1302(0x89);        //讀月
  243.                 nian=read_1302(0x8d);        //讀年
  244.                 write_1302(0x8e,0x80);  //關寫保護
  245.                 CH452_Read();

  246. //功能鍵作用
  247.                 if(keycode==0x4c){
  248.                 Delay200ms();
  249.                 CH452_Read();
  250.                 if(keycode==0x4c){
  251.                                         b++;
  252.                                         if (b==7){
  253.                                         b=0;
  254.         }
  255. }
  256. }
  257.                 if(keycode==0x4f){
  258.                 Delay200ms();
  259.                 CH452_Read();
  260.                 if(keycode==0x4f){
  261.                                         d++;
  262.                                         if (d==7){
  263.                                         d=0;
  264.                         }
  265.                 }
  266.         }
  267.                 if (keycode==0x44){
  268.                 Delay200ms();
  269.                 CH452_Read();
  270.                 if (keycode==0x44){
  271.                 display2(0,0,nian/10,nian%10);
  272.                 b=0;
  273.                         }
  274.                 }
  275.                 if (keycode==0x45){
  276.                 Delay200ms();
  277.                 CH452_Read();
  278.                 if (keycode==0x45){
  279.                 display1(yue/10,yue%10,ri/10,ri%10);
  280.                 b=0;
  281.                         }
  282.                 }
  283.                 if (keycode==0x46){
  284.                 Delay200ms();
  285.                 CH452_Read();
  286.                 if (keycode==0x46){
  287.                 display1(shi/10,shi%10,minute/10,minute%10);
  288.                 b=0;
  289.                         }
  290.                 }
  291.                 if (keycode==0x47){
  292.                 Delay200ms();
  293.                 CH452_Read();
  294.                 if (keycode==0x47){
  295.                 display1(0,0,second/10,second%10);
  296.                 b=6;
  297.                         }
  298.                 }  
  299.         if(b==1){
  300.                 display2(0,0,nian/10,nian%10);
  301.                 }               
  302.                 if(b==2){
  303.                 display2(0,0,yue/10,yue%10);
  304.                 }
  305.                 if(b==3){
  306.                 display2(0,0,ri/10,ri%10);
  307.                 }
  308.                 if(b==4){
  309.                 display2(0,0,shi/10,shi%10);
  310.                 }
  311.                 if(b==5){
  312.                 display2(0,0,minute/10,minute%10);
  313.                 }
  314.            if(b==6){
  315.                 display2(0,0,second/10,second%10);
  316.                 }
  317. //選擇加減鍵
  318. //加減年                               
  319.                 if(d==1){               
  320.                 CH452_Read();
  321.                 if (keycode==0x4d){
  322.                 Delay200ms();
  323.                 CH452_Read();
  324.                 if (keycode==0x4d){
  325.                             nian++;
  326.                                 nian = tiaozheng(nian);
  327.                                 write_1302(0x8e,0x00);//開寫保護                                               
  328.                                 write_1302(0x8c,nian); //年寫入
  329.                                 write_1302(0x8e,0x80);//關寫保護
  330.                             write_1302(0x8e,0x00);//開寫保護       
  331.                                 nian=read_1302(0x8d);        //讀年
  332.                                 write_1302(0x8e,0x80);//關寫保護
  333.                                 display2(0,0,nian/10,nian%10);        
  334.                                 b=1;
  335.                                 }
  336.                                
  337.                                 }
  338.                         if(d==1){               
  339.                         CH452_Read();
  340.                         if (keycode==0x4e){
  341.                         Delay200ms();
  342.                         CH452_Read();
  343.                         if (keycode==0x4e){
  344.                             nian--;
  345.                                 nian = tiaozheng(nian);
  346.                                 write_1302(0x8e,0x00);//開寫保護                                               
  347.                                 write_1302(0x8c,nian); //年寫入
  348.                                 write_1302(0x8e,0x80);//關寫保護
  349.                             write_1302(0x8e,0x00);//開寫保護       
  350.                                 nian=read_1302(0x8d);        //讀年
  351.                                 write_1302(0x8e,0x80);//關寫保護        
  352.                                 display2(0,0,nian/10,nian%10);
  353.                                 b=1;
  354.                                 }
  355.                                
  356.                                 }
  357.                         }
  358.                  
  359.           }
  360. //加減月
  361.                           if(d==2){               
  362.                         CH452_Read();
  363.                         if (keycode==0x4d){
  364.                         Delay200ms();
  365.                         CH452_Read();
  366.                         if (keycode==0x4d){
  367.                             yue++;
  368.                                 write_1302(0x8e,0x00);//開寫保護                                               
  369.                                 write_1302(0x88,yue); //月寫入
  370.                                 write_1302(0x8e,0x80);//關寫保護
  371.                             write_1302(0x8e,0x00);//開寫保護       
  372.                                 yue=read_1302(0x89);        //讀月
  373.                                 write_1302(0x8e,0x80);//關寫保護        
  374.                                 display2(0,0,yue/10,yue%10);
  375.                                 b=2;
  376.                                 }
  377.                                
  378.                                 }
  379.                         if(d==2){               
  380.                         CH452_Read();
  381.                         if (keycode==0x4e){
  382.                         Delay200ms();
  383.                         CH452_Read();
  384.                         if (keycode==0x4e){
  385.                             yue--;
  386.                                 yue = tiaozheng(yue);
  387.                                 write_1302(0x8e,0x00);//開寫保護                                               
  388.                                 write_1302(0x88,yue); //月寫入
  389.                                 write_1302(0x8e,0x80);//關寫保護
  390.                             write_1302(0x8e,0x00);//開寫保護       
  391.                                 yue=read_1302(0x89);        //讀月
  392.                                 write_1302(0x8e,0x80);//關寫保護        
  393.                                 display2(0,0,yue/10,yue%10);
  394.                                 b=2;
  395.                                 }
  396.                                
  397.                                 }
  398.                         }
  399.                  
  400.           }
  401. //加減日
  402.                             if(d==3){               
  403.                         CH452_Read();
  404.                         if (keycode==0x4d){
  405.                         Delay200ms();
  406.                         CH452_Read();
  407.                         if (keycode==0x4d){
  408.                             ri++;
  409.                                 ri = tiaozheng(ri);
  410.                                 write_1302(0x8e,0x00);//開寫保護                                               
  411.                                 write_1302(0x86,ri); //日寫入
  412.                                 write_1302(0x8e,0x80);//關寫保護
  413.                             write_1302(0x8e,0x00);//開寫保護       
  414.                                 ri=read_1302(0x87);        //讀日
  415.                                 write_1302(0x8e,0x80);//關寫保護        
  416.                                 display2(0,0,ri/10,ri%10);
  417.                                 b=3;
  418.                                 }
  419.                                
  420.                                 }
  421.                         if(d==3){               
  422.                         CH452_Read();
  423.                         if (keycode==0x4e){
  424.                         Delay200ms();
  425.                         CH452_Read();
  426.                         if (keycode==0x4e){
  427.                             ri--;
  428.                                 ri = tiaozheng(ri);
  429.                                 write_1302(0x8e,0x00);//開寫保護                                               
  430.                                 write_1302(0x86,ri); //日寫入
  431.                                 write_1302(0x8e,0x80);//關寫保護
  432.                             write_1302(0x8e,0x00);//開寫保護       
  433.                                 ri=read_1302(0x87);        //讀日
  434.                                 write_1302(0x8e,0x80);//關寫保護        
  435.                                 display2(0,0,ri/10,ri%10);
  436.                                 b=3;
  437.                                 }
  438.                                
  439.                                 }
  440.                         }
  441.                  
  442.           }
  443. //加減小時
  444.                              if(d==4){               
  445.                         CH452_Read();
  446.                         if (keycode==0x4d){
  447.                         Delay200ms();
  448.                         CH452_Read();
  449.                         if (keycode==0x4d){
  450.                             shi++;
  451.                             shi = tiaozheng(shi);
  452.                                 write_1302(0x8e,0x00);//開寫保護                                               
  453.                                 write_1302(0x84,shi); //小時寫入
  454.                                 write_1302(0x8e,0x80);//關寫保護
  455.                             write_1302(0x8e,0x00);//開寫保護       
  456.                                 shi=read_1302(0x85);        //讀小時
  457.                                 write_1302(0x8e,0x80);//關寫保護        
  458.                                 display2(0,0,shi/10,shi%10);
  459.                                 b=4;
  460.                                 }
  461.                                
  462.                                 }
  463.                         if(d==4){               
  464.                         CH452_Read();
  465.                         if (keycode==0x4e){
  466.                         Delay200ms();
  467.                         CH452_Read();
  468.                         if (keycode==0x4e){
  469.                             shi--;
  470.                                 shi = tiaozheng(shi);
  471.                                 write_1302(0x8e,0x00);//開寫保護                                               
  472.                                 write_1302(0x84,shi); //小時寫入
  473.                                 write_1302(0x8e,0x80);//關寫保護
  474.                             write_1302(0x8e,0x00);//開寫保護       
  475.                                 shi=read_1302(0x85);        //讀小時
  476.                                 write_1302(0x8e,0x80);//關寫保護        
  477.                                 display2(0,0,shi/10,shi%10);
  478.                                 b=4;
  479.                                 }
  480.                                
  481.                                 }
  482.                         }
  483.                  
  484.     }

  485. //加減分鐘
  486.                              if(d==5){               
  487.                         CH452_Read();
  488.                         if (keycode==0x4d){
  489.                         Delay200ms();
  490.                         CH452_Read();
  491.                         if (keycode==0x4d){
  492.                             minute++;
  493.                             minute = tiaozheng(minute);
  494.                                 write_1302(0x8e,0x00);//開寫保護                                               
  495.                                 write_1302(0x82,minute); //分寫入
  496.                                 write_1302(0x8e,0x80);//關寫保護
  497.                             write_1302(0x8e,0x00);//開寫保護       
  498.                                 minute=read_1302(0x83);        //讀分
  499.                                 write_1302(0x8e,0x80);//關寫保護        
  500.                                 display2(0,0,minute/10,minute%10);
  501.                                 b=5;
  502.                         }
  503.                                
  504.                                 }
  505.                         if(d==5){               
  506.                         CH452_Read();
  507.                         if (keycode==0x4e){
  508.                         Delay200ms();
  509.                         CH452_Read();
  510.                         if (keycode==0x4e){
  511.                                 minute--;
  512.                                 minute = tiaozheng(minute);
  513.                                 write_1302(0x8e,0x00);//開寫保護                                               
  514.                                 write_1302(0x82,minute); //分寫入
  515.                                 write_1302(0x8e,0x80);//關寫保護
  516.                             write_1302(0x8e,0x00);//開寫保護       
  517.                                 minute=read_1302(0x83);        //讀分
  518.                                 write_1302(0x8e,0x80);//關寫保護        
  519.                                 display2(0,0,minute/10,minute%10);
  520.                                 b=5;
  521.                                         }
  522.                                 }
  523.                         }                 
  524.           }
  525. //加減秒
  526.                              if(d==5){               
  527.                         CH452_Read();
  528.                         if (keycode==0x4d){
  529.                         Delay200ms();
  530.                         CH452_Read();
  531.                         if (keycode==0x4d){
  532.                                 second++;
  533.                                 second = tiaozheng(second);
  534.                                 write_1302(0x8e,0x00);//開寫保護                                               
  535.                                 write_1302(0x80,second); //秒寫入
  536.                                 write_1302(0x8e,0x80);//關寫保護
  537.                             write_1302(0x8e,0x00);//開寫保護       
  538.                                 second=read_1302(0x81);        //讀秒
  539.                                 write_1302(0x8e,0x80);//關寫保護        
  540.                                 display2(0,0,second/10,second%10);
  541.                                 b=6;
  542.                                 }
  543.                                
  544.                                 }
  545.                         if(d==5){               
  546.                         CH452_Read();
  547.                         if (keycode==0x4e){
  548.                         Delay200ms();
  549.                         CH452_Read();
  550.                         if (keycode==0x4e){
  551.                                 second--;
  552.                                 second = tiaozheng(second);
  553.                                 write_1302(0x8e,0x00);//開寫保護                                               
  554.                                 write_1302(0x80,second); //秒寫入
  555.                                 write_1302(0x8e,0x80);//關寫保護
  556.                             write_1302(0x8e,0x00);//開寫保護       
  557.                                 second=read_1302(0x81);        //讀秒
  558.                                 write_1302(0x8e,0x80);//關寫保護        
  559.                                 display2(0,0,second/10,second%10);
  560.                                 b=6;
  561.                         }                                                       
  562.                 }
  563.         }                  
  564. }  
  565. //蜂鳴器部分
  566.                         if(h==shi){
  567.                         if (m==minute){
  568.                         if (second==s){
  569.                         beep = 0;
  570.                          Delay200ms();
  571.                         beep = 1;
  572.                                 }                                                       
  573.                         }                       
  574.                         }
  575.                                
  576.         }//while結束
  577. }//main結束
  578.          
復制代碼

所有資料51hei提供下載:
A最終程序.rar (41.94 KB, 下載次數: 23)


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

使用道具 舉報

沙發
ID:1 發表于 2018-12-25 18:20 | 只看該作者
補全原理圖或者詳細說明一下電路連接即可獲得100+黑幣
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人一区二区在线 | 欧美日产国产成人免费图片 | 日本一区二区在线视频 | 精品96久久久久久中文字幕无 | 日韩和的一区二在线 | 欧美日韩综合视频 | 91视视频在线观看入口直接观看 | av在线三级 | 国产区在线免费观看 | 亚洲国产成人在线视频 | 日本小视频网站 | 蜜桃av一区二区三区 | 久久av一区二区 | 亚洲性人人天天夜夜摸 | 色www精品视频在线观看 | 一区二区三区四区在线播放 | 国际精品鲁一鲁一区二区小说 | 免费观看成人鲁鲁鲁鲁鲁视频 | 男人的天堂在线视频 | 亚洲精品视频久久 | 在线国产一区二区 | 一区二区三区四区不卡视频 | 夜夜骚视频 | 一级一级毛片免费看 | 久操伊人 | 黑人巨大精品 | 超碰免费在线 | 91精品导航 | 色婷婷久久 | 久久精品亚洲成在人线av网址 | 久久国产区 | 美女在线一区二区 | 精品久| 欧美xxxⅹ性欧美大片 | 特a毛片 | 国产在线精品一区二区三区 | 一区视频| 在线免费观看a级片 | 国产欧美一区二区三区久久手机版 | 免费精品 | 夜夜精品浪潮av一区二区三区 |