<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > 16進制轉(zhuǎn)換算成10進制程序

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

          作者: 時間:2011-05-05 來源:網(wǎng)絡(luò) 收藏

          16算成10

          本文引用地址:http://www.ex-cimer.com/article/172812.htm


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

          //========================================================
          //16to10進制輸出子:顯示數(shù)據(jù),起始位,結(jié)束位,有無小數(shù)點
          //========================================================
          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;i8;i++) {
          tm[i]=dd/div;
          dd%=div;
          div/=10;
          }
          for (i=0;i6;i++) {
          if (tm[i]!=0) break;
          tm[i]=nul;
          }
          tm[5]|=dip; //小數(shù)點控制,請看“串行LED數(shù)碼管顯示驅(qū)動
          j=7;
          for (i=s;ie;i++) {
          d[i]=tm[j];
          j--;
          }
          }

          //把顯示位5-9位的10進制數(shù)成為16進制數(shù)
          unsigned int input(void) {
          unsigned int dd,dat;
          dd=10000;dat=0;
          for (i=5;i10;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;i6;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;i6;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;i6;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;


          上一頁 1 2 3 下一頁

          關(guān)鍵詞: 進制 程序 轉(zhuǎn)換

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();