《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 解決方案 > 16進(jìn)制轉(zhuǎn)換算成10進(jìn)制程序

16進(jìn)制轉(zhuǎn)換算成10進(jìn)制程序

2017-02-10
關(guān)鍵詞: 進(jìn)制 轉(zhuǎn)換程序

16進(jìn)制轉(zhuǎn)換算成10進(jìn)制程序


 unsigned char d[10];    //用于顯示的10位顯示緩存

 //========================================================
     //16進(jìn)制to10進(jìn)制輸出子程序:顯示數(shù)據(jù),起始位,結(jié)束位,有無(wú)小數(shù)點(diǎn)
 //========================================================
 void output(unsigned long dd,unsigned char s,unsigned char
 e,unsigned char dip) {
     unsigned long div;
     unsigned char tm[8],i,j;
     div=10000000;
     for (i=0;i<8;i++) {
         tm[i]=dd/div;
         dd%=div;
         div/=10;
     }
     for (i=0;i<6;i++) {
         if (tm[i]!=0) break;
         tm[i]=nul;
     }
     tm[5]|=dip;            //小數(shù)點(diǎn)控制,請(qǐng)看“串行LED數(shù)碼管顯示驅(qū)動(dòng)程序”
     j=7;
     for (i=s;i<e;i++) {
         d[i]=tm[j];
         j--;
     }
 }

 //把顯示位5-9位的10進(jìn)制數(shù)轉(zhuǎn)換成為16進(jìn)制數(shù)
 unsigned int input(void) {
     unsigned int dd,dat;
     dd=10000;dat=0;
     for (i=5;i<10;i++) {
         dat+=dd*temp;
         dd/=10;
     }
     return(dat);
 }
 /*    89C51系列CPU編程器接收CPU程序*/

 #i nclude <reg51.h>
 #i nclude <intrins.h>
 #i nclude <absacc.h>

 #define e 8
 #define p 9
 #define l 10

 sbit led=P3^2;
 sbit p27=P2^7;
 sbit p26=P2^6;
 sbit p36=P3^6;
 sbit p37=P3^7;
 sbit rst=P3^3;
 sbit ale=P3^5;
 sbit vpp=P3^4;

 bit b_break;
 unsigned int adds;


 //    13.8mS
 void int_t0(void) interrupt 1 {
     TH0=-100;
     b_break=1;
 }

 void wait(unsigned char w) {
     unsigned int t=w*184;
     b_break=0;
     TL0=-t%256-1;TH0=-t/256;
     while (b_break==0) {}
 }

 void nop(void) {
     _nop_();_nop_();_nop_();_nop_();
     _nop_();_nop_();_nop_();_nop_();
     _nop_();_nop_();_nop_();_nop_();
     _nop_();_nop_();_nop_();_nop_();
     _nop_();_nop_();_nop_();_nop_();
 }

 unsigned char command(void) {
     TH0=-100;b_break=0;
     while (RI==0) {if (b_break==1) return(0);}
     RI=0;
     return(SBUF);
 }

 void earsure(unsigned char cpu) {
     switch (cpu) {
     case 1:        //89C51
     case 2:rst=p26=1;p27=p36=p37=0;nop();vpp=1;nop();
         ale=0;wait(110);ale=1;nop();
         break;
     case 3:
     case 4:break;
     case 5:
     case 6:break;
     }
 }

 void program(unsigned char cpu) {
     unsigned int bdata adds=0;
     unsigned char d;
     switch (cpu) {
     case 1:    //89C51
     case 2:
         p36=p37=1;rst=1;
         while (1) {
             TH0=-100;b_break=0;
             while (RI==0) {if (b_break==1) return;}
             RI=0;
             d=SBUF;
             //address
             P0=adds%256;
             P2=adds/256;
             p27=1;
             //data
             P1=d;
             nop();    //48clcl
             //vpp
             vpp=1;
             nop();    //48clcl
             //ale
             ale=0;
             wait(1);//100uS
             ale=1;
             nop();    //10uS
             vpp=0;
             nop();    //48clcl
             p27=0;
             nop();    //48clcl
             P1=0xff;
             TH0=-100;b_break=0;
             while (d!=P1) {if (b_break==1) return;}    //data
polling
             SBUF=d;
             adds++;
         }
         break;
     case 3:
     case 4:
     case 5:
     case 6:break;
     }
 }

 void lock(unsigned char cpu) {
     unsigned char i;
     switch (cpu) {
     case 1:    //89c51
     case 2:
         //lock 1
         rst=p26=p36=p27=p37=1;nop();
         vpp=1;
         nop();
         ale=0;
     //    for (i=0;i<6;i++) wait(100);
         wait(1);
         ale=1;
         nop();
         vpp=0;
         nop();
    
         //lock 2
         rst=p26=p27=1;p36=p37=0;nop();
         vpp=1;
         nop();
         ale=0;
     //    for (i=0;i<6;i++) wait(100);
         wait(1);
         ale=1;
         nop();
         vpp=0;
         nop();
        
         //lock 3
         rst=p26=p36=1;p27=p37=0;nop();
         vpp=1;
         nop();
         ale=0;
     //    for (i=0;i<6;i++) wait(100);
         wait(1);
         ale=1;
         nop();
         vpp=0;
         nop();
         break;
     case 3:
     case 4:
     case 5:
     case 6:break;
     }
 }

 void main(void) {
     unsigned char disp,flash,temp,cpu;
     EA=1;
     SCON=0xd8;PCON=0x80;
     TMOD=0x21;
     TL1=TH1=0xff;TR1=1;
     TH0=-100;ET0=TR0=1;

     flash=0x80;


     while (1) {
         temp=command();
         switch (temp) {
         case 0:
         case 1:        //89c51
         case 2:        //89C52
         case 3:        //80f51
         case 4:        //80F52
         case 5:        //87F51
         case 6:cpu=temp;SBUF=temp;break;//87f52
         case e:SBUF=temp;earsure(cpu);break;    //erasure
         case p:SBUF=temp;program(cpu);break;    //program
         case l:lock(cpu);SBUF=temp;break;    //lock
         default:SBUF=temp;break;
         }
         b_break=0;
         if ((++disp)>flash) {disp=0;led=!led;}
     }
 }
 //HT1380實(shí)時(shí)時(shí)鐘驅(qū)動(dòng)程序

 sbit clock_dat=P0^1;
 sbit clock_clk=P0^2;
 sbit clock_rst=P0^3;

 sbit a0=ACC^0;
 sbit a1=ACC^1;
 sbit a2=ACC^2;
 sbit a3=ACC^3;
 sbit a4=ACC^4;
 sbit a5=ACC^5;
 sbit a6=ACC^6;
 sbit a7=ACC^7;

 void clock_out(unsigned char dd) {
     ACC=dd;
     clock_dat=a0;clock_clk=1;clock_clk=0;
     clock_dat=a1;clock_clk=1;clock_clk=0;
     clock_dat=a2;clock_clk=1;clock_clk=0;
     clock_dat=a3;clock_clk=1;clock_clk=0;
     clock_dat=a4;clock_clk=1;clock_clk=0;
     clock_dat=a5;clock_clk=1;clock_clk=0;
     clock_dat=a6;clock_clk=1;clock_clk=0;
     clock_dat=a7;clock_clk=1;clock_clk=0;
 }
 unsigned char clock_in(void) {
     clock_dat=1;
     a0=clock_dat;
     clock_clk=1;clock_clk=0;a1=clock_dat;
     clock_clk=1;clock_clk=0;a2=clock_dat;
     clock_clk=1;clock_clk=0;a3=clock_dat;
     clock_clk=1;clock_clk=0;a4=clock_dat;
     clock_clk=1;clock_clk=0;a5=clock_dat;
     clock_clk=1;clock_clk=0;a6=clock_dat;
     clock_clk=1;clock_clk=0;a7=clock_dat;
     return(ACC);
 }
 unsigned char read_clock(unsigned char ord) {
     unsigned char dd=0;
     clock_clk=0;
     clock_rst=0;
     clock_rst=1;
     clock_out(ord);
     dd=clock_in();
     clock_rst=0;
     clock_clk=1;
     return(dd);
 }
 void write_clock(unsigned char ord,unsigned char dd) {
     clock_clk=0;
     clock_rst=0;
     clock_rst=1;
     clock_out(ord);
     clock_out(dd);
     clock_rst=0;
     clock_clk=1;
 }
 /*單個(gè)漢字庫(kù)字摸提取程序,tc2.0編譯*/
 #i nclude "stdio.h"
 #i nclude "dos.h"
 #i nclude "process.h"
 #i nclude "string.h"


 void main(void) {
     long int num_bytes,qm,wm;
     unsigned char d,i,j,k,a[132],b[132];
     unsigned char * data;
     unsigned char * hz;
     static unsigned  char dd[103];
     FILE *fp;

     if ((fp=fopen("hzk16f","rb"))==NULL) {
         printf("can't open hzk16\n");
         exit(1);
     }
     clrscr();
     while (1) {

         data=(unsigned char *) malloc(33);
         printf("please input:\n");
         scanf("%s",dd);    /*輸入一個(gè)漢字*/

         qm=* dd;        /*通過(guò)區(qū)位碼計(jì)算其在hzk16f文件中的偏移地址*/
         qm=qm-161;
         if (qm>87) exit(0);
         wm=* (dd+1);
         wm=wm-161;
         if (wm>94) exit(0);
         num_bytes=((long)qm*94+wm)*32;
         fseek(fp,num_bytes,SEEK_SET);
         fgets(data,33,fp);
         for (i=0;i<32;i++) b[i]=* data++;
         for (i=0;i<32;i+=2) a[i/2]=b[i];
         for (i=0;i<32;i+=2) a[i/2+16]=b[i+1];
         for (i=8;i<16;i++) b[i]=a[i];
         for (i=8;i<16;i++) a[i]=a[i+8];
         for (i=8;i<16;i++) a[i+8]=b[i];

         /*轉(zhuǎn)換,hzf16f在電腦的儲(chǔ)存格式是以行為字節(jié)計(jì)算的,一般的lcd都采用以列為字節(jié)計(jì)算*/
         for (k=0;k<32;k+=8) {
             for (j=0;j<8;j++) {
                 d=0;
                 for (i=0;i<8;i++) {
                     if (a[i+k]>=0x80) {
                         switch (i) {
                         case 0:d+=1;break;
                         case 1:d+=2;break;
                         case 2:d+=4;break;
                         case 3:d+=8;break;
                         case 4:d+=0x10;break;
                         case 5:d+=0x20;break;
                         case 6:d+=0x40;break;
                         case 7:d+=0x80;break;
                         }
                     }
                 }
                 for (i=0;i<8;i++) a[i+k]<<=1;
                 b[j+k]=d;
             }
         }
         clrscr();
         printf("/*%s:*/\n",dd);        /*輸出0x00格式的16進(jìn)制數(shù)*/
         for (k=0;k<32;k+=8) {
             for (j=0;j<8;j++) printf("0x%x,",b[j+k]);
             printf("\n");
         }
         getch();
     }
 }
 //按鍵掃描驅(qū)動(dòng)程序

 unsigned char key,key_h,kpush;
 unsigned int key_l;

 //按鍵連接到p1.0、p1.1、p1.2

 void int_t0(void) interrupt 1 {
     unsigned char dd,i;
     TL0=TL0+30;TH0=0xfb;    //800
     /*    按鍵判別    */
     if ((P1&0x7)==0x7) {
         if ((key_l>30)&&(key_l<800)&&(key_h>30)) {       
 //釋放按鍵,如果之前按鍵時(shí)間少于1秒,讀入鍵值
             key=kpush;
         }
         if ((++key_h)>200) key_h=200;
         key_l=0;
         if (key>=0x80) key=0;                           
 //如果之前的按鍵為長(zhǎng)按1秒,清除鍵值
     } else {
         kpush=P1&0x7;
         key_l++;
         if ((key_l>800)&&(key_h>30)) {                   
 //如果按鍵超過(guò)1秒,鍵值加0x80標(biāo)志長(zhǎng)按鍵
             key=kpush|0x80;
             key_h=0;
             key_l=0;
         }
     }
 }
 void main(void) {
     TMOD=0x1;TR0=1;ET0=1;EA=1;
     while (1) {
         while (!key) {}
         switch (key) {
         case 1:break;
         case 2:break;
         }
     }
 //串行驅(qū)動(dòng)led顯示,
 //一個(gè)74hc595位移寄存器驅(qū)動(dòng)三極管驅(qū)動(dòng)led位,
 //兩個(gè)74hc595驅(qū)動(dòng)led段,方式位5位x8段x2=10個(gè)數(shù)碼管
 //5分頻,每次掃描時(shí)間位1.25ms


 //定義特殊符號(hào)

 #define nul 0xf
 #define qc 0xc
 #define qb 0xb
 #define q_ 0xa
 #define q__ 0xd
 #define q___ 0xe
 #define qp 0x10
 #define qe 0x11
 #define qj 0x12
 #define qn 0x13
 #define qf 0x14
 #define qa 0x15
 #define qr 0x16
 #define qd 0x17
 #define qu 0x18
 #define ql 0x19
 #define qh 0x1a
 #define qwen 0x1b
 #define qt 0x1c
 #define qla 0x1d
 #define qlb 0x1e
 #define qlc 0x1f
 #define qld 0x20
 #define qle 0x21
 #define qlf 0x22
 #define qlg 0x23
 #define qldp 0x24


 //顯示段信息,不同led排列組合的段信息只需更改8個(gè)數(shù)值即可。
 //因此,該定義具有通用性。

 //    顯示   
 //        -d 20
 //    |c 40    |e 10
 //        - g        80       
 //    |b 2    |f 4
 //        _a1    .dp 8
 #define pa 1
 #define pb 2
 #define pc 0x40
 #define pd 0x20
 #define pe 0x10
 #define pf 4
 #define pg 0x80
 #define pdp 8

 //--------------
 #define l0 pdp+pg
 #define l1 255-pf-pe
 #define l2 pdp+pc+pf
 #define l3 pdp+pc+pb
 #define l4 pdp+pa+pb+pd
 #define l5 pdp+pb+pe
 #define l6 pdp+pe
 #define l7 pdp+pc+pg+pb+pa
 #define l8 pdp
 #define l9 pdp+pb
 #define la pdp+pa
 #define lb pdp+pd+pe
 #define lc pdp+pg+pe+pf
 #define ld pdp+pc+pd
 #define le pdp+pe+pf
 #define lf pdp+pe+pf+pa
 #define l_ 255-pg
 #define lnul 255
 #define ll pdp+pg+pd+pf+pe
 #define lp pdp+pa+pf
 #define lt pdp+pd+pe+pf
 #define lr pdp+pe+pf+pg+pa
 #define ln pdp+pg+pa
 #define lh pdp+pd+pe+pa
 #define ly pdp+pb+pd
 #define lu pdp+pg+pd
 #define l__ pdp+pg+pb+pc+pe+pf
 #define l___ l__-pg
 #define l_1 255-pa
 #define l_2 255-pa-pg
 #define lj 255-(pe+pf+pa)
 #define lwen 255-(pd+pe+pg+pb)
 #define lall 0


 #define lla 255-pa
 #define llb 255-pb
 #define llc 255-pc
 #define lld 255-pd
 #define lle 255-pe
 #define llf 255-pf
 #define llg 255-pg
 #define lldp 255-pdp


 //串行送出的位信息,目前是10位led顯示。
 unsigned char code un_dig[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb};
 //串行送出的短信息。
 unsigned char code
 un_disp[]={l0,l1,l2,l3,l4,l5,l6,l7,l8,l9,l_,lb,lc,l__,l___,lnul,lp,le,lj,ln,lf,la,lr,ld,lu,
 ll,lh,lwen,lt,lla,llb,llc,lld,lle,llf,llg,lldp,lnul};


 sbit d_clk=P0^0;        //移位時(shí)鐘
 sbit d_dat=P0^1;        //移位數(shù)據(jù)
 sbit d_st=P0^2;            //移位鎖定


 unsigned char dig;            //位掃描計(jì)數(shù)器
 unsigned char d[10];                            //顯示緩沖

 //送出8位串行數(shù)據(jù)
 void out_disp(unsigned char dd) {
     unsigned char i;
     for (i=0;i<8;i++) {
         if (dd&1) d_dat=1; else d_dat=0;
         d_clk=0;
         dd>>=1;
         d_clk=1;
     }
 }
 //控制小數(shù)點(diǎn)和閃爍,顯示數(shù)據(jù)|0x040表示有小數(shù)點(diǎn);顯示數(shù)據(jù)|0x80表示閃爍。
 void out_displ(unsigned char dd) {
     if (dd>=0x80) {
         if (s001>flash_time) {out_disp(0xff);return;}
     }
     dd&=0x7f;
     if (dd>=0x40) {
         dd=un_disp[dd&0x3f]^pdp;
     } else dd=un_disp[dd];
     out_disp(dd);
 }

 unsigned int s001;    //閃爍時(shí)間參考
 void int_t0(void) interrupt 1 {
     unsigned char dd;
     TL0=TL0+30;TH0=0xfb;    //800
     time++;
     if ((++s001)>=800) s001=0;
     //    顯示   
     if ((++dig)>4) dig=0;
     d_st=0;
     dd=d[dig+5];
     out_displ(dd);
     dd=d[dig];
     out_displ(dd);
     out_disp(un_dig[dig]);
     d_st=1;
 }
 void main(void) {
     unsigned char i;
     TMOD=0x1;
     TR0=ET0=1;
     EA=1;
     for (i=0;i<10;i++) d[i]=i;    //display test
     while (1) {}
 }

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产精品99久久久久久白浆小说 | 久久疯狂做爰流白浆xx| 在线一区观看| 日韩亚洲成人av在线| 亚洲人成网在线播放| 亚洲国产综合91精品麻豆| 欧美一区二区三区在线免费观看| 亚洲欧美国产77777| 亚洲一区二区3| 亚洲永久免费av| 亚洲小少妇裸体bbw| 亚洲一区二区三区在线| 亚洲小说春色综合另类电影| 在线亚洲一区二区| 亚洲午夜激情在线| 亚洲在线成人| 小黄鸭精品密入口导航| 久久av二区| 亚洲激情视频| 99视频精品全国免费| 99在线观看免费视频精品观看| 亚洲精品日韩综合观看成人91| 亚洲欧洲一二三| 99精品视频一区二区三区| 在线亚洲电影| 亚洲一区欧美激情| 久久国产精品第一页| 久久久免费观看视频| 麻豆亚洲精品| 欧美久久久久久久久| 欧美视频在线观看 亚洲欧| 国产精品精品视频| 国产伦精品一区二区三区免费迷 | 欧美高清不卡在线| 欧美人成在线| 国产精品xxxav免费视频| 国产免费成人| 亚洲电影免费在线观看| 日韩视频国产视频| 亚洲一区二区三区视频| 久久精品二区三区| av不卡在线| 欧美一区二区在线| 老色鬼精品视频在线观看播放| 欧美激情网友自拍| 国产精品成人免费视频| 国语自产精品视频在线看抢先版结局 | 亚洲国产婷婷香蕉久久久久久99| 亚洲免费精彩视频| 亚洲欧美国产制服动漫| 亚洲国产老妈| 亚洲一区二区在线观看视频| 欧美在线日韩精品| 欧美成人第一页| 国产精品久久久久久福利一牛影视| 国产区日韩欧美| 亚洲国产一区二区在线| 亚洲一区在线观看免费观看电影高清| 久久高清福利视频| 亚洲深夜福利网站| 久久亚裔精品欧美| 国产精品a久久久久久| 激情五月婷婷综合| 中文欧美在线视频| 亚洲精品国产精品国自产在线 | aa亚洲婷婷| 久久久久久9999| 欧美日韩中文字幕在线视频| 国产主播一区| 一区二区欧美在线观看| 亚洲国产99精品国自产| 亚洲欧美激情四射在线日| 免费的成人av| 国产日韩欧美视频| 99pao成人国产永久免费视频| 久久黄色小说| 欧美一级视频精品观看| 欧美另类变人与禽xxxxx| 国产婷婷色一区二区三区在线| 亚洲激情在线激情| 久久国产欧美精品| 午夜视频在线观看一区二区三区| 欧美aa在线视频| 国产日韩在线看片| 亚洲视屏一区| av成人免费在线| 乱人伦精品视频在线观看| 国产精品热久久久久夜色精品三区 | 国内成人在线| 亚洲一区欧美二区| 在线视频欧美日韩| 欧美高清视频www夜色资源网| 国产自产2019最新不卡| 亚洲小说欧美另类社区| 夜夜嗨av一区二区三区网页| 另类天堂视频在线观看| 国产日韩精品在线观看| 国产精品99久久久久久久vr| 亚洲精品一区二区三区樱花| 开元免费观看欧美电视剧网站| 国产乱人伦精品一区二区| 国产精品99久久久久久久久| av不卡在线| 欧美另类videos死尸| 亚洲国产日韩在线| 亚洲精品黄网在线观看| 久久视频在线视频| 国产亚洲人成a一在线v站| 亚洲一区二区免费| 亚洲女同精品视频| 国产精品白丝jk黑袜喷水| 亚洲免费福利视频| 日韩视频在线观看免费| 欧美11—12娇小xxxx| 亚洲第一黄网| 亚洲精品美女在线观看播放| 女同一区二区| 亚洲电影视频在线| 亚洲激情视频在线播放| 美女精品网站| 在线观看欧美成人| 亚洲黄色在线看| 嫩草成人www欧美| 亚洲第一网站| 亚洲精选国产| 欧美日本中文| av不卡免费看| 亚洲欧美日韩精品久久| 国产精品尤物| 久久精品卡一| 欧美黄色小视频| 日韩网站在线观看| 亚洲欧美激情一区二区| 国产伦精品一区| 久久国产主播精品| 欧美aaa级| 日韩手机在线导航| 亚洲在线免费观看| 国产精品日韩欧美一区二区三区 | 欧美一区日本一区韩国一区| 久久久国产精品一区二区三区| 国产一区二区在线观看免费| 久久精品成人一区二区三区蜜臀 | 欧美一级在线播放| 老牛嫩草一区二区三区日本| 亚洲国产成人在线播放| 99天天综合性| 国产精品草草| 欧美在线www| 欧美不卡高清| 日韩一级不卡| 欧美一区二区三区四区在线观看| 国内成人精品2018免费看 | 久久精品伊人| 亚洲国产婷婷综合在线精品 | 午夜精品免费| 国语精品一区| 亚洲精品孕妇| 国产精品入口尤物| 亚洲激情六月丁香| 欧美日韩在线播放三区| 欧美亚洲网站| 欧美精选在线| 欧美一级视频一区二区| 欧美国产日本韩| 亚洲一区免费在线观看| 美女主播精品视频一二三四| 一本久道综合久久精品| 久久精品国产2020观看福利| 亚洲国产aⅴ天堂久久| 亚洲综合不卡| 亚洲第一区在线观看| 亚洲欧美三级伦理| 亚洲第一中文字幕在线观看| 亚洲欧美国产高清| 亚洲成色777777女色窝| 午夜亚洲福利| 亚洲国产日韩在线一区模特| 欧美一区=区| 最新中文字幕亚洲| 久久精品欧美日韩| 夜夜精品视频一区二区| 久久嫩草精品久久久精品| 99国产精品视频免费观看| 久久伊人亚洲| 亚洲图色在线| 欧美精品一区二区三区在线看午夜| 亚洲欧美网站| 欧美日韩第一区日日骚| 亚洲成色999久久网站| 国产精品久久久久久福利一牛影视 | 欧美一区二区三区四区在线| 亚洲日韩视频| 麻豆国产精品777777在线| 亚洲无线一线二线三线区别av| 蜜臀av在线播放一区二区三区| 亚洲一区在线看| 欧美日韩裸体免费视频| 亚洲国产精品va在线看黑人 | 一本久久青青|