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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51MCU常用延時,16進制轉10進制程序等

[復制鏈接]
跳轉到指定樓層
樓主
ID:701952 發表于 2020-3-3 20:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
常用函數:
    1. 延時函數;
    2. HexToDec(unsigned char uHex);//16進制轉10進制
    3. DecToHex(unsigned char uDec);//10進制轉16進制
     4.時鐘框架;

單片機源程序如下:
  1. //#include <reg51.h>
  2. #include <absacc.h>
  3. #include <intrins.h>
  4. #include <math.h>
  5. #include <absacc.h>
  6. #include <string.h>

  7. #include "..\\INC\\ISD51_U1.h"
  8. #include "..\\INC\\basic.h"

  9. #include "..\\INC\\SST89.h"
  10. #include "..\\INC\\ProcessCommu.H"
  11. #include "..\\INC\\CommunicationExt.h"

  12. idata struct SSysTimer sSysTimerV;

  13. //extern xdata struct SSysTime SSysTimeV;                         /* 系統時間 */

  14. bit        bNet1CpuStateFlag = 0;
  15. bit        bNet2CpuStateFlag = 0;
  16. bit        bNet3CpuStateFlag = 0;
  17. bit bDisplayCpuStateFlag = 0;


  18. void delay(unsigned int dtime)          // 1000 is equal 1000ms when crystal is 36MHz
  19. {
  20.     unsigned char i;


  21.         ISDdisable();

  22.     while((dtime--)!=0)
  23.     {
  24.          for(i=0;i<246;i++)
  25.          {
  26.              _nop_();
  27.              _nop_();
  28.              _nop_();
  29.              _nop_();
  30.          }
  31.     }

  32. //        ISDenable();

  33. }


  34. void InitSys(void)                                 /*init 8031*/
  35. {
  36.         WDTC = 0;                                                                           //禁止Watchdog

  37.         WDTD = -100;                                                                           //禁止Watchdog

  38.         //unsigned int timer2_baud;
  39.         // ISD51 makes use of Uart1 or Uart2 based on header file & object file used
  40.         T2CON  = 0x34;                // Use Timer 2 as baudrate generator
  41.                                                 // This sets Uart1 to use timer2 baud rate
  42.     PCON  |= 0x0C;                 // Set UART2 to user timer2 baud rate
  43. //        RCAP2L = 0xE0;                // 19200  at 20M  0xE0
  44.         RCAP2L = 0xC0;                // 19200  at 40M  0xC0,19200
  45.         RCAP2H = 0xff;
  46.         SCON   = 0x50;      // enable first serial UART & receiver
  47.        
  48.         EX0   =0;
  49.         EX1   =0;

  50.         ET1   =0;

  51.         TR1   =1;
  52.        
  53.         IE = IE & 0x18;       
  54.         EA = 1;             // 開放中斷

  55.         TMOD = 0x12;                             //T0 :自動載入 ; T1:16 定時器

  56.         TH0 = 0xFC;                        //old is 0xFD
  57.         TL0 = 0xFF;
  58.         IT1 = 1;
  59.         EX1 = 0;                                                                //禁止IAP中斷
  60.         EPCA = 1;                                                                //使能PCA中斷

  61. //中斷優先級
  62.         IP  = 0x40;                                                                //PCA中斷優先級最高
  63.         IPH = 0x18;                                                                //串口和定時器1中斷優先級次高

  64.         CCAPM0 = 0;
  65.         CCAPM1 = 0;
  66.         CCAPM2 = 0;
  67.         CCAPM3 = 0;
  68.         CCAPM4 = 0;

  69.         TR0 = 1;

  70.         TR1   =1;
  71.         ET1   =0;
  72.         ET0   =0;

  73. }

  74. void ProcessSystimer(unsigned char uVal)
  75. {
  76.         static unsigned char uNum = 0;
  77.         code unsigned char uAdjustNum[3]={15,15,5};
  78.         static unsigned char uIndex=0;

  79. /*
  80.         uNum=uNum+ uVal;

  81.         if(uNum<uAdjustNum[uIndex])
  82.                 return;
  83.         uNum = uNum-uAdjustNum[uIndex];
  84.         uIndex++;
  85.         if(uIndex>=3)
  86.                 uIndex=0;
  87. */


  88.         uIndex++;
  89.         if(uIndex==3)
  90.                 uIndex = 0;
  91.         else
  92.                 return;



  93.     sSysTimerV.uMillisecond++;

  94.     if(sSysTimerV.uMillisecond>=1000)
  95.     {
  96.                 sSysTimerV.uMillisecond = 0;
  97.         sSysTimerV.uSecond++;
  98.         if(sSysTimerV.uSecond>=200)
  99.         {
  100.             sSysTimerV.uSecond = 0;
  101.         }

  102.     }

  103. }

  104. unsigned char HexToDec(unsigned char uHex)
  105. {
  106.     unsigned char uTempVal;

  107.     uTempVal = (uHex/16)*10+uHex%16;

  108.     return uTempVal;

  109. }

  110. unsigned char DecToHex(unsigned char uDec)
  111. {
  112.     unsigned char uTempVal;

  113.     uTempVal = (uDec/10)*16+uDec%10;

  114.     return uTempVal;

  115. }


  116. unsigned int GetTimeInterval(struct STimeInterval * ptsTimeInterval)
  117. {
  118.          xdata unsigned int iCurrentTime;

  119.      iCurrentTime = GetCurrentTime();
  120.      if( iCurrentTime >= ptsTimeInterval[0].OldTime)
  121.          ptsTimeInterval[0].Interval = iCurrentTime - ptsTimeInterval[0].OldTime;
  122.      else
  123.          ptsTimeInterval[0].Interval = 20000 + iCurrentTime - ptsTimeInterval[0].OldTime;

  124.      return ptsTimeInterval[0].Interval;

  125. }


  126. unsigned int GetCurrentTime()
  127. {
  128.          xdata  struct SSysTimer sCurrentTimeV;

  129.      sCurrentTimeV.uSecond      = sSysTimerV.uSecond;
  130.      sCurrentTimeV.uMillisecond = sSysTimerV.uMillisecond/10;

  131. //ISDwait();

  132.      sCurrentTimeV.uTime = sCurrentTimeV.uSecond*100;
  133.      sCurrentTimeV.uTime = sCurrentTimeV.uTime + sCurrentTimeV.uMillisecond;

  134.      return sCurrentTimeV.uTime;

  135. }
復制代碼

所有資料51hei提供下載:
basic常用函數.zip (2.14 KB, 下載次數: 12)


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

使用道具 舉報

沙發
ID:923440 發表于 2021-7-15 20:28 | 只看該作者
這16進制轉10進制的程序也不對吧
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 男人天堂网址 | 国产在线高清 | 91精品国产综合久久福利软件 | 黄网站涩免费蜜桃网站 | 日韩三级视频 | 精精久久| 国产在线中文字幕 | 青青久久| 成人午夜电影在线观看 | av网站在线播放 | 色一级| 久久久国产精品一区 | 国产在线视频一区 | 日韩av免费在线电影 | 欧美在线综合 | 欧美一区二区成人 | 久久久久91 | 成年人在线播放 | 羞羞网站在线观看 | 精品欧美黑人一区二区三区 | 精品国产一级 | 在线看av的网址 | av中文字幕在线播放 | 成人在线不卡 | 九九视频在线观看 | 精品三级在线观看 | 久久久久久a| 欧美激情精品久久久久 | 国产999在线观看 | 91欧美| 在线观看的av| 在线观看中文字幕 | 国产成人a亚洲精品 | 性视频网 | 国产高清一区二区三区 | 午夜黄色 | 欧美区日韩区 | 国产精久久久久久久妇剪断 | 亚洲中午字幕 | 欧美a区 | 国产精品精品视频一区二区三区 |