亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? hgs12864z.c

?? HGS12864Z is OLED Display Screen for Instrument display application.
?? C
字號:

#include <reg52.h>
#include "tsingtek.h"
#include <stdio.h>
#include <intrins.h>
//********************************************************添加2006.3.8
#include "fp1.h"
#include "yl1.h"
#include "yl2.h"
#include "fp2.h"
#include "fp3.h"
#include "fp4.h"
#include "fp5.h"
#include "fp6.h"
#include "fp7.h"
#include "fp8.h"
#include "fp9.h"
#include "fp10.h"
#include "fp11.h"
#include "fp12.h"
#include "fp13.h"
#include "fp14.h"
#include "fp15.h"
#include "fp16.h"
#include "fp17.h"
#include "fp18.h"

#include "cat_off.h"
#include "cat_on.h"
#include "number.h"  //0--9 figure
#include "chinese.h"  //1616 chinese word

//**************************************************************

#define  uchar unsigned char
#define  uint unsigned  int
#define  All_Screen_ON   0xff
#define  All_Screen_OFF  0x00
#define  ON    0
#define  OFF   1

#define REST  P2_2
#define CS    P2_1
#define CD    P2_0
#define WR    P3_6
#define RD    P3_7
#define M80   P2_3     //時序選擇  M80 MS=11,80時序
#define MS    P2_4

uchar data_4byte[4];
void write_data(unsigned char DATA);
void WriteCommand(unsigned char command);
void oled_init();
void reset_oled();
void oled_display_zw(uchar DATA);
void oled_display_picture(uchar picture[]);
void write_4_byte(uchar DATA);
void delay(uint uiSec);

//**********************************************************添加

void oled_display(uchar picture[]);
void clear_screen();
void time();
void time1();
void time2();
void time3();
void time4();
void w_word(uchar Row,uchar Column,uchar a);/*write word column、 Row、 a-word*/
void word_1616(uchar Row,uchar Column,uchar a);//16*16word
void show_cat(uchar cat[]);
void cat_offon();
void scroll();

uchar page;

void main()
{
   unsigned char i=5;
   P3=0XFF;
   M80=1;
   MS=1;
   delay(10);
   oled_init();
   oled_display_zw(0x00);
   delay(100);
  while(1)
  {
	clear_screen();
        delay(10000);
        oled_display(fp1);
	delay(6);
        oled_display_picture(Image_1);
        delay(10000);
        oled_display_picture(Image_2);
        delay(10000);
        CD = 0;
        WriteCommand(0xA4);
        clear_screen();
	oled_display(fp2);
	delay(6);
	oled_display(fp3);
	delay(6);
	oled_display(fp4);
	delay(6);
	oled_display(fp5);
	delay(6);
	oled_display(fp6);
	delay(6);
	oled_display(fp7);
	delay(6);
	oled_display(fp8);
	delay(6);
	oled_display(fp9);
	delay(6);
	oled_display(fp10);
	delay(100);
	oled_display(fp9);
	delay(6);
	oled_display(fp8);
	delay(6);
	oled_display(fp7);
	delay(6);
	oled_display(fp6);
	delay(6);
	oled_display(fp5);
	delay(6);
	oled_display(fp4);
	delay(6);
	oled_display(fp3);
	delay(6);
	oled_display(fp2);
	delay(100);
	oled_display(fp1);
	delay(100);
	oled_display(fp10);
	delay(6);
	oled_display(fp11);
	delay(6);
	oled_display(fp12);
	delay(6);
	oled_display(fp13);
	delay(6);
	oled_display(fp14);
	delay(6);
	oled_display(fp15);
	delay(6);
	oled_display(fp16);
	delay(6);
	oled_display(fp17);
	delay(6);
	oled_display(fp18);
	delay(6);
	delay(200);
	delay(200);
	delay(200);
	clear_screen();
    //******************************
        time();
	clear_screen();
        cat_offon();
        word_1616(0,40,8);//速
	word_1616(0,48,5);
	cat_offon();
	word_1616(0,48,9);//度
	word_1616(0,56,5);
	cat_offon();
        word_1616(0,56,10);//快
	word_1616(16,40,5);
        cat_offon();
        word_1616(16,40,11);//溫
	word_1616(16,48,5);
        cat_offon();
        word_1616(16,48,9);//度
	word_1616(16,56,5);
        cat_offon();
        word_1616(16,56,12);//寬
	word_1616(32,40,5);
	cat_offon();
        word_1616(32,40,13);//視
	word_1616(32,48,5);
	cat_offon();
        word_1616(32,48,14);//角
	word_1616(32,56,5);
	cat_offon();
        word_1616(32,56,15);//大
	word_1616(48,40,5);
	cat_offon();
        word_1616(48,40,16);//功
	word_1616(48,48,5);
	cat_offon();
        word_1616(48,48,17);//耗
	word_1616(48,56,5);
	cat_offon();
        word_1616(48,56,18);//低
        scroll();
	for(i=0;i<10;i++)
	{
	    delay(100);
	}

          CD = 0;
          WriteCommand(0x15); 	/* Set Column Address */
	  WriteCommand(0x00); 	  /* Start = 0 */
	  WriteCommand(0x3F); 	  /* End = 127 */

// Row Address
	  WriteCommand(0x75); 	/* Set Row Address */
	  WriteCommand(0x0c); 	  /* Start = 0 */
	  WriteCommand(0x4b); 	  /* End = 63 */
	  WriteCommand(0xA1); 	/* Set Display Start Line */
	  WriteCommand(0x0c);
	  WriteCommand(0xA2); 	/* Set Display Offset */
	  WriteCommand(0x4c); 	  /* No offset */
  }

}

void reset_oled()               //低復(fù)位
{
    unsigned char i=0;
	REST = 0;
    _nop_();
	REST = 1;
    _nop_();
}

void write_data(unsigned char DATA)
{

        CS=0;
        CD=1;
        P0=DATA;
        WR=0;
        _nop_();
        _nop_();
        WR=1;
        _nop_();
        _nop_();


}

void WriteCommand(unsigned char command)
{

        CS=0;
        CD=0;
        P0=command;
        WR=0;
        _nop_();
        _nop_();
        WR=1;
        _nop_();
        _nop_();

}

 void oled_init()
{
        CS=0;       //Chip select
        _nop_();
        reset_oled();      //oled reset
        CD=0;       //send command
        _nop_();
/******************************************
// SSD0323 Initialization Command
****************************/
// Column Address
	  WriteCommand(0x15); 	/* Set Column Address */
	  WriteCommand(0x00); 	  /* Start = 0 */
	  WriteCommand(0x3F); 	  /* End = 127 */

// Row Address
	  WriteCommand(0x75); 	/* Set Row Address */
	  WriteCommand(0x0c); 	  /* Start = 0 */
	  WriteCommand(0x4b); 	  /* End = 63 */

// Contrast Control
	  WriteCommand(0x81); 	/* Set Contrast Control */
	  WriteCommand(0x7f); 	  /* 0 ~ 127 */

// Current Range
	 WriteCommand(0x86); 	/* Set Current Range84h:Quarter, 85h:Half,86h:Full*/

// Re-map
	  WriteCommand(0xA0); 	/* Set Re-map */
	  WriteCommand(0x52); 	  /* [0]:MX, [1]:Nibble, [2]:H/Vaddress [4]:MY, [6]:Com Split Odd/Even "1000010"*/

// Display Start Line
	  WriteCommand(0xA1); 	/* Set Display Start Line */
	  WriteCommand(0x0c); 	  /* Top */

// Display Offset
	  WriteCommand(0xA2); 	/* Set Display Offset */
	  WriteCommand(0x4c); 	  /* No offset */

// Display Mode
	  WriteCommand(0xA4); 	/* Set DisplaMode,A4:Normal,A5:All ON, A6: All OFF,A7:Inverse */

// Multiplex Ratio
	  WriteCommand(0xA8); 	/* Set Multiplex Ratio */
	  WriteCommand(0x3F); 	  /* [6:0]16~128, 64 rows=3Fh*/

// Phase Length
	  WriteCommand(0xB1); 	/* Set Phase Length */
	  WriteCommand(0x22); 	  /* [3:0]:Phase 1 period of 1~16clocks */
							  /* [7:4]:Phase 2 period of 1~16clocks /* POR = 0111 0100 */
// Row Period
	  WriteCommand(0xB2); 	/* Set Row Period */
	  WriteCommand(0x46); 	  /* [7:0]:18~255,K=P1+P2+GS15 (POR:4+7+29)*/

// Display Clock Divide
	  WriteCommand(0xB3); 	/* Set Clock Divide */
	  WriteCommand(0x41); 	  /* [3:0]:1~16, [7:4]:0~16 */
                              /* POR = 0000 0001 */
// VSL
	  WriteCommand(0xBF); 	/* Set VSL */
	  WriteCommand(0x0D); 	  /* [3:0]:VSL */

// CCOMH
	  WriteCommand(0xBE); 	/* Set VCOMH */
	  WriteCommand(0x00); 	  /* [7:0]:VCOMH */

// VP
	  WriteCommand(0xBC); 	/* Set VP */
	  WriteCommand(0x0B); 	  /* [7:0]:VP */

// Gamma
	  WriteCommand(0xB8); 	/* Set Gamma with next 8 bytes*/
	  WriteCommand(0x01); 	  /* L1[2:1] */
	  WriteCommand(0x11); 	  /* L3[6:4], L2[2:0] 0001 0001*/
	  WriteCommand(0x22); 	  /* L5[6:4], L4[2:0] 0010 0010*/
	  WriteCommand(0x32); 	  /* L7[6:4], L6[2:0] 0011 1011*/
	  WriteCommand(0x43); 	  /* L9[6:4], L8[2:0] 0100 0100*/
	  WriteCommand(0x54); 	  /* LB[6:4], LA[2:0] 0101 0101*/
	  WriteCommand(0x65); 	  /* LD[6:4], LC[2:0] 0110 0110*/
	  WriteCommand(0x76); 	  /* LF[6:4], LE[2:0] 1000 0111*/

// Set DC-DC
	  WriteCommand(0xAD); 	/* Set DC-DC */
	  WriteCommand(0x02); 	  /* 03=ON, 02=Off */

// Display ON/OFF
	  WriteCommand(0xAF); 	/* AF=ON, AE=Sleep Mode */
}

void oled_display_zw(uchar DATA)
{
  uint i,j;
  CD = 1;
  for (j=0;j<64;j++) /* 64 row */
   {
	 for (i=0;i<64;i++) /* 128 column  a nibble of command is a dot*/
	  {
		write_data(DATA);
	  }
   }
}

void oled_display_picture(uchar picture[])                      //有灰度 IMAGETOLCD
{
  uint i,j;
  CD = 0;
  WriteCommand(0xA7);
  CD = 1;
  for (j=0;j<64;j++) /* 64 row */
   {
	 for (i=0;i<64;i++) /* 16*8 column  a nibble of command is a dot*/
	  {
		write_data(picture[(j<<6)+i]);
	  }
   }
}


void write_4_byte(uchar DATA)
{
  uchar k;
  uchar kk,kkk;
  kk=DATA;
  for(k=0;k<4;k++)
   {
     kkk=kk&0xc0;
     switch(kkk)
       {
		 case 0x00:
           data_4byte[k]=0x00;
         break;
         case 0x40:
           data_4byte[k]=0x0f;
         break;
		 case 0x80:
           data_4byte[k]=0xf0;
         break;
         case 0xc0:
           data_4byte[k]=0xff;
         break;
      	 default:
      	 break;
	   }
     kk=kk<<2;
      write_data(data_4byte[k]);                /* 8 column  a nibble of command is a dot*/
   }

}

void delay(uint uiSec)
{
     uchar j;
     while(uiSec--)
     {
     	for(j=0;j<80;j++)
     	{_nop_();}

     }
}

//***********************************************************添加
void clear_screen()
{
    uint j,i;
	  CD=0;
	    WriteCommand(0x15); 	/* Set Column Address */
	    WriteCommand(0x00); 	  /* Start = 0 */
	    WriteCommand(0x3F); 	  /* End = 127 */

// Row Address
	  WriteCommand(0x75); 	/* Set Row Address */
	    WriteCommand(0x0c); 	  /* Start = 0 */
	    WriteCommand(0x4b); 	  /* End = 63 */
      CD=1;
        for (j=0;j<64;j++) /* 64 row */
         {
	       for (i=0;i<16;i++) /* 16*8 column  a nibble of command is a dot*/
	        {
		      write_4_byte(0x00);
	        }
         }

}
//================================================================
//
void oled_display(uchar picture[])                              //字模3軟件  無灰度
{
	uint j,i;
	  CD=0;
	    WriteCommand(0x15); 	/* Set Column Address */
	    WriteCommand(0x00); 	  /* Start = 0 */
	    WriteCommand(0x3F); 	  /* End = 127 */

// Row Address
	    WriteCommand(0x75); 	/* Set Row Address */
	    WriteCommand(0x0c); 	  /* Start = 0 */
	    WriteCommand(0x4b); 	  /* End = 63 */
          CD=1;
		for(j=0;j<64;j++)
		{
	       for (i=0;i<16;i++) /* 16*8 column  a nibble of command is a dot*/
	        {
		      write_4_byte(picture[(j<<4)+i]);
	        }
		}
}
/******************************************************************/
void time()
{
        word_1616(8,4,0);//物
        word_1616(8,12,1);//理
	word_1616(8,20,2);//量
	word_1616(8,28,3);//監(jiān)
	word_1616(8,36,4);//測
	word_1616(8,44,6);//計
	word_1616(8,52,7);//時
        w_word(32,12,0);
        w_word(32,20,0);
        w_word(32,28,10);
	w_word(32,36,0);
	w_word(32,44,0);
	time4();
}
/**************************************************************************/
void time1()
{
    uchar i;
    for(i=0;i<10;i++)
	{
	    w_word(32,44,i);
		delay(100);
	}
}
/*************************************************************************/
void time2()
{
    uchar i;
	for(i=0;i<2;i++)
	{
	    w_word(32,36,i);
		time1();
	}
}
/*************************************************************************/
void time3()
{
    uchar i;
	for(i=0;i<2;i++)
	{
	    w_word(32,20,i);
		time2();
	}
}
/***************************************************************************/
void time4()
{
    uchar i;
	for(i=0;i<2;i++)
	{
	    w_word(32,12,i);
		time3();
	}
}
/**********************************************************************/
void w_word(uchar Row,uchar Column,uchar a)//write 0-9 figure
{
    uint i,j;

	for(j=0;j<32;j++)
	 {
        CD=0;
	    WriteCommand(0x75); 	/* Set Row Address */
	    WriteCommand(0x0c+Row+j); 	  /* Start = Row */
	    WriteCommand(0x0c+Row+31); 	  /* End = Row+16 */
	    WriteCommand(0x15); 	/* Set Column Address */
	    WriteCommand(Column); 	  /* Start = Column */
	    WriteCommand(Column+7); 	  /* End = Column+32 */
        CD=1;
	   for (i=0;i<2;i++) /* 2*8 column , a nibble of command is a dot*/
	     {
		   write_4_byte(number[a][(j<<1)+i]);
	     }
	 }
}
/************************************************************************/
void word_1616(uchar Row,uchar Column,uchar a)//write chinese word of1616
{
    uint i,j;

	for(j=0;j<16;j++)
	 {
        CD=0;
	    WriteCommand(0x75); 	/* Set Row Address */
	    WriteCommand(0x0c+Row+j); 	  /* Start = Row */
	    WriteCommand(0x0c+Row+15); 	  /* End = Row+16 */
	    WriteCommand(0x15); 	/* Set Column Address */
	    WriteCommand(Column); 	  /* Start = Column */
	    WriteCommand(Column+7); 	  /* End = Column+16 */
        CD=1;
	   for (i=0;i<2;i++) /* 2*8 column , a nibble of command is a dot*/
	     {
		   write_4_byte(chinese[a][(j<<1)+i]);
	     }
	 }
}
/***************************************************************************
void word_1616(uchar Row,uchar Column,uchar a)//write chinese word of1616
{
    uint i,j;

	  CD=0;
	  WriteCommand(0x15); 	//* Set Column Address
	    WriteCommand(Column); 	  //* Start = Column
	    WriteCommand(0x3F); 	  //* End = 127
	  WriteCommand(0x75); 	//* Set Row Address
	    WriteCommand(0x0c+Row); 	  //* Start = Row
	    WriteCommand(0x4b); 	  //* End = 63
      CD=1;
	for(j=0;j<16;j++)
	 {
	   for (i=0;i<2;i++) //* 16*8 column  a nibble of command is a dot
	     {
		   write_4_byte(chinese[a][(j<<1)+i]);
	     }
	 }
}
/***************************************************/
//******************************************************************************
void show_cat(uchar picture[])
{
   uint i,j;
   for(j=0;j<64;j++)
    {
	  CD=0;
	  WriteCommand(0x15); 	/* Set Column Address */
	    WriteCommand(0); 	  /* Start = Column */
	    WriteCommand(39); 	  /* End = 127 */

	  WriteCommand(0x75); 	/* Set Row Address */
	    WriteCommand(0x0c+j); 	  /* Start = Row */
	    WriteCommand(0x0c+0x3f); 	  /* End = 63 */
      CD=1;
		for(i=0;i<10;i++)//picture is 58*64
		{
     		write_4_byte(picture[(j*10)+i]);
		}
    }

}
/***************************************************************************/
void cat_offon()
{
    uchar i;
    show_cat(cat_off);
	for(i=0;i<5;i++)
	{
	    delay(200);
	}
	show_cat(cat_on);
	for(i=0;i<5;i++)
	{
	    delay(200);
	}
}
/*****************************************************************************/
void scroll()
{
    uchar i;
    CD=0;
    for(i=0x0c;i<0x4b;i++)
      {
	    WriteCommand(0xA2); 	/* Set Display Offset */
	    WriteCommand(i); 	  /* No offset */
        delay(800);
      }
}
/****************************************************/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日产在线观看| 亚洲情趣在线观看| 国产欧美日韩亚州综合| 国产亚洲精品中文字幕| 中文字幕av一区二区三区免费看| 中文字幕一区二区三区视频| 亚洲愉拍自拍另类高清精品| 免费精品99久久国产综合精品| 国产一区美女在线| 99久久精品99国产精品| 欧美日韩国产在线观看| 精品美女一区二区三区| 亚洲国产精华液网站w| 亚洲一区二区在线免费看| 青青草国产成人99久久| 国产99久久久精品| 色哟哟亚洲精品| 日韩欧美国产小视频| 经典三级一区二区| 成人国产在线观看| 精品视频一区 二区 三区| 久久久久久久久久久久电影| 亚洲精品少妇30p| 久久www免费人成看片高清| 成人18精品视频| 欧美一区二区视频在线观看| 亚洲国产成人午夜在线一区 | 久久99蜜桃精品| 不卡在线视频中文字幕| 日韩精品一区在线| 日韩码欧中文字| 26uuu精品一区二区在线观看| 亚洲国产日韩a在线播放性色| 色综合久久综合| 国产成人精品网址| 精品国产一区二区国模嫣然| 日韩精品电影在线| 色哟哟一区二区| 亚洲精品伦理在线| 91精品1区2区| 亚洲日本欧美天堂| av在线不卡电影| 精品国产制服丝袜高跟| 国产精品丝袜一区| 一区二区欧美精品| 国产成人免费视频一区| 欧美色图在线观看| 亚洲午夜电影网| 欧美日韩一级二级| 亚洲成人免费电影| 国产区在线观看成人精品| 一本久久综合亚洲鲁鲁五月天| 亚洲欧洲www| 成人网在线免费视频| 久久精品一区二区三区不卡| 久久精品国产成人一区二区三区| 9191成人精品久久| 色婷婷久久一区二区三区麻豆| 日韩综合小视频| 91亚洲国产成人精品一区二三 | 91在线一区二区三区| 精品久久久久久久久久久久包黑料 | 久久综合精品国产一区二区三区| 日韩精品91亚洲二区在线观看| 日本韩国欧美一区二区三区| 亚洲特黄一级片| 不卡一二三区首页| 中文在线免费一区三区高中清不卡| 久久精品国产99| 欧美v国产在线一区二区三区| 日本大胆欧美人术艺术动态 | 热久久国产精品| 欧美日韩aaa| 丝袜诱惑亚洲看片| 这里是久久伊人| 日本不卡高清视频| 欧美一级视频精品观看| 秋霞电影网一区二区| 91精品国产综合久久精品图片| 偷偷要91色婷婷| 制服丝袜亚洲网站| 日韩av中文字幕一区二区三区| 欧美日韩二区三区| 午夜欧美2019年伦理| 在线亚洲免费视频| 亚洲免费大片在线观看| 色综合久久中文综合久久97| 亚洲精品乱码久久久久久日本蜜臀| jizzjizzjizz欧美| 日韩美女精品在线| 91麻豆.com| 亚洲va国产va欧美va观看| 欧美性大战久久久久久久| 亚洲福利视频导航| 欧美日韩一区二区三区在线| 日本美女一区二区| 精品国产一二三区| 成人午夜av在线| 国产精品福利一区二区三区| 在线观看日韩毛片| 97精品国产露脸对白| 一区二区三区成人| 在线成人免费视频| 精品午夜一区二区三区在线观看 | 尤物视频一区二区| 一本色道久久综合亚洲精品按摩 | 91免费在线看| 性欧美疯狂xxxxbbbb| 欧美性生活影院| 日本成人在线网站| 欧美日韩亚洲综合在线| 极品少妇一区二区| 亚洲另类春色国产| 久久综合av免费| 884aa四虎影成人精品一区| 成人av资源下载| 国产成人免费视频网站| 亚洲成va人在线观看| 亚洲人吸女人奶水| 欧美v亚洲v综合ⅴ国产v| 国产一区二区三区观看| 国产在线乱码一区二区三区| 日本va欧美va精品| 亚洲主播在线播放| 亚洲一区二区三区激情| 亚洲欧美一区二区不卡| 久久久777精品电影网影网| 久久夜色精品一区| 综合欧美亚洲日本| 136国产福利精品导航| 一区二区三区电影在线播| 日韩黄色免费电影| 国产成人99久久亚洲综合精品| 国产老妇另类xxxxx| 亚洲乱码国产乱码精品精小说| 中文字幕欧美国产| 自拍偷拍欧美激情| 国产精品久久久久久久久久久免费看 | 国产欧美一区二区精品久导航| 一区二区在线观看av| 91麻豆精品视频| 亚洲视频一区二区在线观看| 国产综合成人久久大片91| 精品处破学生在线二十三| 久久夜色精品国产噜噜av | 亚洲精品成人悠悠色影视| 91最新地址在线播放| 亚洲免费视频中文字幕| 一本大道久久精品懂色aⅴ| 亚洲视频一区在线| 91精品国产乱码| 国内国产精品久久| 国产欧美精品一区二区三区四区| 国产一区二区伦理| 亚洲免费观看高清完整版在线观看 | 一区二区三区四区五区视频在线观看 | 日韩精品一区在线观看| 久久久久国产免费免费| 国产精品三级电影| 亚洲成人三级小说| 成人午夜免费视频| 亚洲一区二区欧美| 国产在线看一区| 精品国产露脸精彩对白| 91福利视频久久久久| 国产精品77777竹菊影视小说| 偷偷要91色婷婷| 中文字幕一区二区在线观看| 久久久国产精华| 久久精品一区四区| 色美美综合视频| 五月综合激情网| 国产精品久久夜| 国产亚洲一区字幕| 成人激情开心网| 国产成人在线视频网站| 天天操天天色综合| 亚洲男人的天堂在线观看| 亚洲欧洲韩国日本视频| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 国产精品乱码人人做人人爱| 欧美一级二级三级蜜桃| 欧美精品123区| 日本精品视频一区二区| 91久久精品一区二区三区| 成人sese在线| 成人国产在线观看| 国产精品1区2区3区在线观看| 国产一区不卡精品| 久久99热国产| 韩日av一区二区| 久久国产精品无码网站| 精品亚洲免费视频| 韩国av一区二区三区| 精品一区二区在线看| 国产精品一区二区久久不卡| 狠狠色综合色综合网络| 国产精品中文字幕欧美| 国内久久婷婷综合| 国产精品123|