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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機21音電子琴程序 含仿真

[復制鏈接]
跳轉到指定樓層
樓主
21音電子琴程序仿真

所有資料打包下載:
21音電子琴程序【含仿真】.zip (205.26 KB, 下載次數: 35)

單片機源程序:
  1. #include <reg52.h>
  2. #include <intrins.h>

  3. #define                 uchar                 unsigned char
  4. #define                uint                unsigned int

  5. #define        PSMG                P0        //數碼管IO口
  6. #define         PKEY                 P1        //定義4x4按鍵接的IO口        行掃描
  7. #define        PLED                P2        //LED接的IO口

  8. sbit PLAY = P3^1;
  9. sbit SPK = P3^0;

  10. #define ALLSONG         3  //歌曲總數 按實際寫
  11. #define CODEMAX 30                //最大音符數

  12. uchar tone_h;               
  13. uchar tone_l;                       

  14. uchar t1_flag = 0;                                //用于記錄定時器1進入中斷的次數
  15. uchar PressTime = 0;                //按鍵按下的時間(節拍)

  16. uchar code chuzhi[3][16]={                  //音調對應的計數初值
  17.          0xff,0xff,        //用任意值占0位,因為音調從1開始
  18.          0xf8,0x8c,//低1  
  19.          0xf9,0x5b,//  2                
  20.          0xfa,0x15,//  3                
  21.          0xfa,0x67,//  4                
  22.          0xfb,0x04,//  5                
  23.          0xfb,0x90,//  6                
  24.          0xfc,0x0c,//低7
  25.        
  26.          0xff,0xff,//占0位
  27.          0xfc,0x44,//中1   
  28.          0xfc,0xac,//  2
  29.          0xfd,0x09,//  3
  30.          0xfd,0x34,//  4
  31.          0xfd,0x82,//  5
  32.          0xfd,0xc8,//  6
  33.          0xfe,0x06,//中7   
  34.        
  35.          0xff,0xff,//占0位
  36.          0xfe,0x22,//高1                           
  37.          0xfe,0x56,//        2               
  38.          0xfe,0x85,//        3               
  39.          0xfe,0x9a,//        4               
  40.          0xfe,0xc1,//        5               
  41.          0xfe,0xe4,//        6               
  42.          0xff,0x03 //高7                            
  43.         };       
  44. //共陰數碼管段碼表
  45. uchar code YDTAB[23]={
  46. 0x00,                                                                                                                                        //各段全滅        【0】
  47. 0x77,0x7c,0x39,0x5e,0x79,0x71,0x3d,                 //a - g                        【1~7】
  48. 0x3f,                                                                                                                                        //0                                【8】
  49. 0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,                 //1 - 7                        【9~15】
  50. 0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87                         //1. - 7.                【16~22】
  51. };

  52. //發光二極管閃爍表
  53. uchar code LEDTAB[9]={0xff,0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};

  54. //****** 生日快樂 ******
  55. uint code srkl[] = {
  56.         205,205,406,405,411,807,
  57.         205,205,406,405,412,811,
  58.         205,205,415,413,411,407,406,
  59.         314,114,413,411,413,812,
  60.         305,105,406,405,411,807,
  61.         305,105,406,405,412,811,
  62.         305,105,415,413,411,
  63.         407,406,314,114,413,411,412,811,410,
  64.         0xffff       
  65. };
  66. //*******戀曲1990*******
  67. uint code lq1990[] = {
  68.         613,213,412,411,613,213,412,411,613,213,412,411,1213,        110,        //前奏
  69.         215,215,215,215,413,412,                                                                        //烏溜溜的黑眼珠
  70.         613,211,211,212,413,1206,                                                                //和你的笑臉
  71.         212,213,212,213,415,213,212,                                                        //怎么也難忘記
  72.         612,211,211,206,405,1213,110,                                                //你 容顏的轉變
  73.         215,215,215,215,213,212,                                                                        //輕飄飄的舊時
  74.         613,211,211,212,213,1206,                                                                //光 就這么溜走
  75.         212,213,212,213,415,213,212,                                                        //轉頭回去看看
  76.         612,205,213,212,413,1211,110,                                                //時 已匆匆數年
  77.        
  78.         215,215,215,215,413,412,                                                                        //蒼茫茫的天涯
  79.         613,211,211,212,413,1206,                                                                //路 是你的漂泊
  80.         212,213,212,213,415,213,212,                                                        //尋尋覓覓長相
  81.         612,211,211,206,405,1213,110,                                                //守 是我的腳步
  82.         215,215,215,215,213,212,                                                                        //黑漆漆的孤枕
  83.         613,211,211,212,213,1206,                                                                //邊 是你的溫柔
  84.         212,213,212,213,415,213,212,                                                        //醒來時的清晨
  85.         612,205,213,212,413,1211,110,                                                //里 是我的哀愁
  86.        
  87.         215,215,215,215,413,412,                                                                        //轟隆隆的雷雨
  88.         613,211,211,212,413,1206,                                                                //聲 在我的窗前
  89.         212,213,212,213,415,213,212,                                                        //怎么也難忘記
  90.         612,211,211,206,405,1213,110,                                                //你 離去的轉變
  91.         215,215,215,215,213,212,                                                                        //孤單單的身影
  92.         613,211,211,212,213,1206,                                                                //后 寂寥的心情
  93.         212,213,212,213,415,213,212,                                                        //永遠無怨
  94.         612,205,213,212,413,1211,110,                                                //的 是我的雙眼
  95.        
  96.         615,213,415,416,                                                        //或許明日
  97.         621,216,421,416,                                                        //太陽西下
  98.         415,415,415,416,1213,                                //倦鳥已歸時
  99.         212,213,212,213,415,413,                        //你將已經踏上
  100.         612,211,411,413,1212,210,                //舊時的歸途
  101.         613,213,412,413,                                                        //人生難得
  102.         615,213,415,416,                                                        //再次尋覓
  103.         421,421,421,422,1216,                                //相知的伴侶
  104.         221,221,221,221,416,415,                        //生命終究難舍
  105.         212,412,212,412,413,1215,1610,        1610,                //藍藍的白云天
  106.        
  107.         0xFFFF,
  108. };
  109.        
  110. //==========================
  111. //粗略延時函數
  112. //==========================
  113. void delayms(uint ms)//延時?個 ms
  114. {
  115.     uchar a,b,c;
  116.         while(ms--)
  117.         {
  118.           for(c=1;c>0;c--)
  119.         for(b=142;b>0;b--)
  120.             for(a=2;a>0;a--);
  121.         }
  122. }
  123. //======================
  124. //定時器1 測量按鍵持續的節拍數
  125. //======================
  126. void Timer1_Init(void)
  127. {
  128.         EA = 1;
  129.         ET1 = 1;
  130.         TMOD &= 0x0F;
  131.         TMOD |= 0x10;
  132.         TH1 = (65536-25000)/256;
  133.         TL1 = (65536-25000)%256;        //25ms中斷一次
  134. }
  135. void timer1() interrupt 3
  136. {
  137.         TH1 = (65536-25000)/256;
  138.         TL1 = (65536-25000)%256;        //25ms中斷一次
  139.         t1_flag++;
  140.         if(t1_flag == 5)        //125ms
  141.         {
  142.                 t1_flag = 0;
  143.                 if(PressTime < 16)        //最多16 即最長4秒
  144.                         PressTime++;
  145.                
  146.                                 //8個LED顯示節拍
  147.                 if(PressTime <= 8)
  148.                         PLED = LEDTAB[PressTime];
  149.                 else PLED = LEDTAB[8];
  150.         }
  151. }
  152. //======================
  153. //按鍵掃描函數 【行掃描】
  154. //低4位接行,高4位接列
  155. /*鍵值分布
  156. 0 1 2 3
  157. 4 5 6 7
  158. 8 9 10 11
  159. 12 13 14 15
  160. */
  161. //======================
  162. uchar keyScan(void)
  163. {
  164.         uchar hang;
  165.         uchar key;
  166.         uchar temp;
  167.         for(hang = 0;hang < 4;hang++)
  168.         {
  169.                 PKEY = ~(1<<hang);               
  170.                 temp = PKEY&0xF0;        //取高4位的值
  171.                 temp >>= 4;                                        //將高四位右移到低四位
  172.                 if(temp  != 0x0F)                        //有按鍵按下
  173.                 {
  174.                         switch(temp)
  175.                         {
  176.                                 case 14:                key = 4*hang+0;break;                //temp:1110
  177.                                 case 13:                key = 4*hang+1;break;                //temp:1101
  178.                                 case 11:                key = 4*hang+2;break;                //temp:1011
  179.                                 case 7:                key = 4*hang+3;break;                //temp:0111
  180.                         }
  181.                         break;                //有鍵按下,獲取鍵值后,終止掃描
  182.                 }
  183.                 else                                //沒有按鍵按下 返回255
  184.                         key = 255;
  185.         }
  186.         return key;
  187. }
  188. //======================
  189. //節拍延時
  190. //======================
  191. void delay125ms(uint pai)  //延時 ?*125ms 即?個節拍
  192. {
  193.     uchar a,b,c;
  194.         while(pai--)
  195.         {
  196.         for(c=239;c>0;c--)
  197.                 for(b=104;b>0;b--)
  198.                         for(a=1;a>0;a--);
  199.         }
  200. }
  201. //======================
  202. //定時器0 產生音調
  203. //======================
  204. void Timer0_Init(void)
  205. {
  206.         EA = 1;
  207.         ET0 = 1;
  208.         TMOD &= 0xF0;
  209.         TMOD |= 0x01;
  210.         PT0 = 1;
  211.         TH0 = 255;
  212.         TL0 = 255;
  213. }
  214. //======================
  215. //定時器0中斷  每進入一次,SPK取反
  216. //======================
  217. void timer0() interrupt 1
  218. {
  219.         TH0 = tone_h;
  220.         TL0 = tone_l;
  221.         SPK = ~SPK;
  222. }
  223. //======================
  224. //存儲彈奏的歌曲
  225. //0xffff代表歌曲結束
  226. //千位與百位表示節拍
  227. //十位:低中高音[分別是0,1,2]
  228. //個位:音調[0~7] [0代表不發聲]
  229. //======================
  230. uint  music[CODEMAX] =
  231. {
  232.         215,215,215,215,413,412,                                                                        //烏溜溜的黑眼珠
  233.         613,211,211,212,413,1206,                                                                //和你的笑臉
  234.         212,213,212,213,415,213,212,                                                        //怎么也難忘記
  235.         612,211,211,206,405,1213,110,                                                //你 容顏的轉變
  236.         0xffff,
  237. };
  238. //====================================
  239. //播放函數
  240. //播放完畢后返回1,否則返回0
  241. //music:歌曲數組,note:發第幾個音
  242. //====================================
  243. uchar PlayMusic(uint *music,uint note)
  244. {
  245.         uchar yin1;        //低中高音 0,1,2
  246.         uchar yin2;        //音調 0~7  0代表不發聲,但有節拍
  247.         uchar jiepai;
  248.        
  249.         if(music[note] == 0xffff)
  250.                 return 1;
  251.         else
  252.         {
  253.                 if(music[note]%10 != 0)        //音調不為0 【音調為0時表示不發聲,但有節拍】
  254.                 {
  255.                         yin1 = music[note]%100/10;
  256.                         yin2 = music[note]%10;
  257.                         tone_h = TH0 = chuzhi[yin1][yin2*2 ];                //音調高位 【二維數組 第1維表示低中高音,第二維表示音調】
  258.                         tone_l = TL0 = chuzhi[yin1][yin2*2 + 1];        //音調低位
  259.                         TR0 = 1;                //開啟定時器0 開始發聲
  260.                         //======數碼管顯示音調==================
  261.                         if(yin1 == 0)        //低音
  262.                         {        PSMG = YDTAB[yin2];        }
  263.                         else if(yin1 == 1)        //中音
  264.                         {        PSMG = YDTAB[8+yin2];}
  265.                         else if(yin1 ==2)                //高音
  266.                         {        PSMG = YDTAB[15+yin2];}
  267.                         //==================================
  268.                 }
  269.                 else{        PSMG = YDTAB[8];                }
  270.                
  271.                 jiepai = music[note]/100;
  272.                 //===此處利用定時器1中斷中的節拍顯示功能
  273.                 t1_flag = 0;
  274.                 PressTime = 0;
  275.                 TH1 = (65536-25000)/256;
  276.                 TL1 = (65536-25000)%256;                //25ms中斷一次
  277.                 TR1 = 1;                        //開啟定時器1
  278.                        
  279.                 delay125ms(jiepai);        //節拍
  280.                
  281.                 TR0 = 0;                                //已經響夠節拍數,停止發聲。
  282.                 TR1 = 0;                                //停止顯示節拍
  283.                
  284.                 PSMG = YDTAB[0];        //數碼管不顯示
  285.                 PLED = LEDTAB[0];        //8位LED全滅
  286.                
  287.                 delayms(30);                //每個節拍結束后,停一段時間
  288.                 return 0;
  289.         }
  290. }
  291. //======================
  292. //主函數
  293. //======================
  294. void main(void)
  295. {       
  296.         uchar key = 255;
  297.         uchar save = 0;
  298.         uint note = 0;                //音符
  299.         uchar note2 = 0;
  300.         uchar play_flag = 0;
  301.         uchar yin1 = 0;                //低中高音 0,1,2
  302.         uchar yin2 = 1;                //音調 0~7  0代表不發聲,但有節拍
  303.        
  304.         uchar PlayID = 0;                //播放歌曲的序號
  305.         uchar PlayIDb = 0;        //上次播放的歌曲序號
  306.        
  307.         music[CODEMAX-1] = 0xffff;                //防止歌曲數組無0xffff出現錯誤
  308.        
  309.         PSMG = YDTAB[0];
  310.         Timer0_Init();
  311.         Timer1_Init();
  312.        
  313.         while(1)
  314.         {
  315.                 if(PLAY == 0)                                                //按下PLAY鍵
  316.                 {
  317.                         PLAY = 0;                                                        //引腳置0 進入播放模式
  318.                        
  319.                         //切換了播放歌曲,從第0個音符開始播放,
  320.                         if(PlayID != PlayIDb)
  321.                         {
  322.                                 PlayIDb = PlayID;
  323.                                 note = 0;
  324.                         }
  325. //===============================================================
  326. //==== 重點 =====                       
  327.                         if(play_flag %2 == 0)                //play_flag為偶數時播放,奇數時暫停播放
  328.                         {                       
  329.                                 if(PlayID == 0)
  330.                                 {
  331.                                         if(PlayMusic(music,note) == 0)                //播放音符
  332.                                                 note++;                                                //為結束播放下一個音符
  333.                                         else
  334.                                         {
  335.                                                 if(PlayID < ALLSONG-1)                PlayID++;                //播放下一首
  336.                                                 else                                                                                        PlayID = 0;
  337.                                         }
  338.                                 }
  339.                                 else if(PlayID == 1)
  340.                                 {
  341.                                         if(PlayMusic(srkl,note) == 0)                //播放音符
  342.                                                 note++;                                                //為結束播放下一個音符
  343.                                         else
  344.                                         {
  345.                                                 if(PlayID < ALLSONG-1)                PlayID++;                //播放下一首
  346.                                                 else                                                                                        PlayID = 0;
  347.                                         }
  348.                                 }
  349.                                 else if(PlayID == 2)
  350.                                 {
  351.                                         if(PlayMusic(lq1990,note) == 0)                //播放音符
  352.                                                 note++;                                                //為結束播放下一個音符
  353.                                         else
  354.                                         {
  355.                                                 if(PlayID < ALLSONG-1)                PlayID++;                //播放下一首
  356.                                                 else                                                                                        PlayID = 0;
  357.                                         }
  358.                                 }
  359.                         }
  360. //===================================================================                       
  361.                         key = keyScan();                                //要稍微按久一點才有反應
  362.                         if(key == 15)                                                //按下15號按鍵,停止播放
  363.                         {
  364.                                 PLAY = 1;
  365.                                 note = 0;                                                //停止后再按播放,從頭開始播放。
  366.                                 play_flag = 0;
  367.                                
  368.                                 TR0 = 0;
  369.                                 tone_h = TH0 = chuzhi[2][2*2];                       
  370.                                 tone_l = TL0 = chuzhi[2][2*2+1];                       
  371.                                 TR0 = 1;
  372.                                 delayms(100);                                //按鍵后響一聲
  373.                                 TR0 = 0;
  374.                                
  375.                                 while(keyScan() != 255);                //放開按鍵時(255時) 跳出循環
  376.                         }
  377.                         else if(key == 13)                                //按下13號鍵 暫停與暫停后播放
  378.                         {
  379.                                 play_flag++;
  380.                                
  381.                                 TR0 = 0;
  382.                                 tone_h = TH0 = chuzhi[2][2*2];                       
  383.                                 tone_l = TL0 = chuzhi[2][2*2+1];                       
  384.                                 TR0 = 1;
  385.                                 delayms(100);                                //開始或者暫停都響一聲
  386.                                 TR0 = 0;
  387.                                 while(keyScan() != 255);        //放開按鍵時(255時) 跳出循環
  388.                         }
  389.                         else if(key == 12)                //播放上一首
  390.                         {
  391.                                 if(PlayID > 0)                PlayID--;
  392.                                 else                                         PlayID = ALLSONG-1;
  393.                                
  394.                                 TR0 = 0;
  395.                                 tone_h = TH0 = chuzhi[2][2*2];                       
  396.                                 tone_l = TL0 = chuzhi[2][2*2+1];                       
  397.                                 TR0 = 1;
  398.                                 delayms(100);                                //按鍵后響一聲
  399.                                 TR0 = 0;
  400.                                
  401.                                 while(keyScan() != 255);        //放開按鍵時(255時) 跳出循環
  402.                         }
  403.                         else if(key == 14)                //播放下一首
  404.                         {
  405.                                 if(PlayID < ALLSONG-1)                PlayID++;
  406.                                 else                                                                                        PlayID = 0;
  407.                                
  408.                                 TR0 = 0;
  409.                                 tone_h = TH0 = chuzhi[2][2*2];                       
  410.                                 tone_l = TL0 = chuzhi[2][2*2+1];                       
  411.                                 TR0 = 1;
  412.                                 delayms(100);                                //按鍵后響一聲
  413.                                 TR0 = 0;
  414.                                
  415.                                 while(keyScan() != 255);        //放開按鍵時(255時) 跳出循環
  416.                         }
  417.                 }
  418.                 else if(PLAY == 1)                                //彈奏模式
  419.                 {
  420.                         PlayID = 0;
  421.                         note = 0;
  422.                        
  423.                         key = keyScan();
  424.                        
  425.                         if(key == 0)                                //按下0鍵開始記錄
  426.                         {
  427.                                 if(save == 0)                        //第一次按 表示開始彈奏
  428.                                 {
  429.                                         save = 1;                        //標記,存儲
  430.                                         note2 = 0;               
  431.                                         tone_h = TH0 = chuzhi[0][1*2];                       
  432.                                         tone_l = TL0 = chuzhi[0][1*2+1];                       
  433.                                         TR0 = 1;
  434.                                         delayms(100);        //開始錄制 響一短低音
  435.                                         TR0 = 0;
  436.                                 }
  437.                                 else                                                        //第二次按 表示彈奏結束 寫入結束符0xffff
  438.                                 {
  439.                                         save = 0;
  440.                                         music[note2] = 0xffff;
  441.                                        
  442.                                         tone_h = TH0 = chuzhi[1][3*2];                       
  443.                                         tone_l = TL0 = chuzhi[1][3*2+1];                       
  444.                                         TR0 = 1;
  445.                                         delayms(100);        //錄制完成 響一短高音
  446.                                         TR0 = 0;
  447.                                 }
  448.                                 while(keyScan() != 255);                //放開按鍵時(255時) 跳出循環
  449.                         }
  450.                         else if(key != 255)        //按下1~15鍵
  451.                         {
  452.                                 t1_flag = 0;
  453.                                 PressTime = 0;
  454.                                 TH1 = (65536-25000)/256;
  455.                                 TL1 = (65536-25000)%256;                //25ms中斷一次
  456.                                 TR1 = 1;                        //開啟定時器1,開始計算按鍵按下時間
  457.                                
  458.                                 //判斷被按下按鍵的鍵值
  459.                                 if(key >= 1 && key <= 3)                                //低音 5~7
  460.                                 {        yin1 = 0;        yin2 = key+4;        }                //音調對應的定時器初值,在二維數組中的位置
  461.                                 else if(key >= 4 && key <= 11)        //0音 與中音1~7
  462.                                 {        yin1 = 1;        yin2 = key - 4;        }
  463.                                 else if(key >= 12 && key <= 15)        //高音1~4
  464.                                 {        yin1 = 2;        yin2 = key - 11;        }
  465.                                
  466.                                 tone_h = TH0 = chuzhi[yin1][yin2*2];                        //音調高位 【二維數組 第1維表示低中高音,第二維表示音調】
  467.                                 tone_l = TL0 = chuzhi[yin1][yin2*2+1];                //音調低位
  468.                                 if(yin2 != 0)        //非0音時,開啟定時器0,發聲
  469.                                         TR0 = 1;
  470.                                
  471.                         //======數碼管顯示音調==================
  472.                         if(yin2 == 0)                //0音
  473.                                 PSMG = YDTAB[8];
  474.                         else if(yin1 == 0)        //低音
  475.                         {        PSMG = YDTAB[yin2];        }
  476.                         else if(yin1 == 1)        //中音
  477.                         {        PSMG = YDTAB[8+yin2];}
  478.                         else if(yin1 ==2)                //高音
  479.                         {        PSMG = YDTAB[15+yin2];}
  480.                         //==================================
  481.                                
  482.                                 while(1)                        //釋放按鍵時 跳出循環
  483.                                 {
  484.                                         key = keyScan();
  485.                                         if(key == 255)                //放開按鍵
  486.                                         {
  487.                                                 PSMG = YDTAB[0];       
  488.                                                 PLED = LEDTAB[0];
  489.                                                
  490.                                                 TR1 = 0;
  491.                                                
  492.                                                 TR0 = 0;                                //停止發聲
  493.                                                 if(save == 1)                //save變量為1時,將彈奏的信息保存
  494.                                                 {
  495.                                                         TR1 = 0;                        //關閉定時器1,停止
  496.                                                         music[note2] = (uint)PressTime*100 + yin1*10 + yin2;
  497.                                                         if(note2 < CODEMAX - 2)                                //長度有限制
  498.                                                                 note2++;
  499.                                                 }
  500.                                                 break;
  501.                                         }
  502.                                 }
  503.                         }
  504.                 }
  505.         }
  506. }
  507. //===================================
  508. //單片機STC89C52RC
  509. //晶振12MHz
  510. //最后編輯2016/7/3
  511. //僅供學習交流,不得用于商業用途,版權歸 李資鵬 所有
  512. //===================================
復制代碼


評分

參與人數 1黑幣 +70 收起 理由
admin + 70 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91成人在线 | 色综合久久久久 | 91精品国产91久久久久久吃药 | 亚洲精品电影网在线观看 | 91精品国产91久久久 | 综合第一页 | 国产一区久久 | 波多野结衣精品在线 | 午夜视频精品 | 国产第一页在线播放 | 亚洲午夜精品久久久久久app | 精品91久久 | 精品久久久久久久久久久院品网 | 日韩成人免费视频 | 精品1区 | 精品一区二区av | 一区二区三区在线播放视频 | www久久 | 91久久久久久久久久久 | 国产一二三区免费视频 | 亚洲免费毛片 | 九九九视频精品 | 国产美女自拍视频 | 国产成人精品免费 | 日韩毛片 | 中文字幕视频免费 | 亚洲在线久久 | 黄视频欧美| 欧美在线观看一区 | 欧美视频 亚洲视频 | 欧美日韩精品免费观看 | 国产在线中文字幕 | 羞羞网站免费观看 | 草久网 | 久久一区二区av | 99精品国产一区二区三区 | 成人免费小视频 | 国产在线精品一区二区三区 | 色妞av | 日韩电影免费在线观看中文字幕 | 精品国产一区二区三区久久久蜜月 |