亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码
標題:
51MCU常用延時,16進制轉10進制程序等
[打印本頁]
作者:
sakyamuni
時間:
2020-3-3 20:17
標題:
51MCU常用延時,16進制轉10進制程序等
常用函數:
1. 延時函數;
2. HexToDec(unsigned char uHex);//16進制轉10進制
3. DecToHex(unsigned char uDec);//10進制轉16進制
4.時鐘框架;
單片機源程序如下:
//#include <reg51.h>
#include <absacc.h>
#include <intrins.h>
#include <math.h>
#include <absacc.h>
#include <string.h>
#include "..\\INC\\ISD51_U1.h"
#include "..\\INC\\basic.h"
#include "..\\INC\\SST89.h"
#include "..\\INC\\ProcessCommu.H"
#include "..\\INC\\CommunicationExt.h"
idata struct SSysTimer sSysTimerV;
//extern xdata struct SSysTime SSysTimeV; /* 系統時間 */
bit bNet1CpuStateFlag = 0;
bit bNet2CpuStateFlag = 0;
bit bNet3CpuStateFlag = 0;
bit bDisplayCpuStateFlag = 0;
void delay(unsigned int dtime) // 1000 is equal 1000ms when crystal is 36MHz
{
unsigned char i;
ISDdisable();
while((dtime--)!=0)
{
for(i=0;i<246;i++)
{
_nop_();
_nop_();
_nop_();
_nop_();
}
}
// ISDenable();
}
void InitSys(void) /*init 8031*/
{
WDTC = 0; //禁止Watchdog
WDTD = -100; //禁止Watchdog
//unsigned int timer2_baud;
// ISD51 makes use of Uart1 or Uart2 based on header file & object file used
T2CON = 0x34; // Use Timer 2 as baudrate generator
// This sets Uart1 to use timer2 baud rate
PCON |= 0x0C; // Set UART2 to user timer2 baud rate
// RCAP2L = 0xE0; // 19200 at 20M 0xE0
RCAP2L = 0xC0; // 19200 at 40M 0xC0,19200
RCAP2H = 0xff;
SCON = 0x50; // enable first serial UART & receiver
EX0 =0;
EX1 =0;
ET1 =0;
TR1 =1;
IE = IE & 0x18;
EA = 1; // 開放中斷
TMOD = 0x12; //T0 :自動載入 ; T1:16 定時器
TH0 = 0xFC; //old is 0xFD
TL0 = 0xFF;
IT1 = 1;
EX1 = 0; //禁止IAP中斷
EPCA = 1; //使能PCA中斷
//中斷優先級
IP = 0x40; //PCA中斷優先級最高
IPH = 0x18; //串口和定時器1中斷優先級次高
CCAPM0 = 0;
CCAPM1 = 0;
CCAPM2 = 0;
CCAPM3 = 0;
CCAPM4 = 0;
TR0 = 1;
TR1 =1;
ET1 =0;
ET0 =0;
}
void ProcessSystimer(unsigned char uVal)
{
static unsigned char uNum = 0;
code unsigned char uAdjustNum[3]={15,15,5};
static unsigned char uIndex=0;
/*
uNum=uNum+ uVal;
if(uNum<uAdjustNum[uIndex])
return;
uNum = uNum-uAdjustNum[uIndex];
uIndex++;
if(uIndex>=3)
uIndex=0;
*/
uIndex++;
if(uIndex==3)
uIndex = 0;
else
return;
sSysTimerV.uMillisecond++;
if(sSysTimerV.uMillisecond>=1000)
{
sSysTimerV.uMillisecond = 0;
sSysTimerV.uSecond++;
if(sSysTimerV.uSecond>=200)
{
sSysTimerV.uSecond = 0;
}
}
}
unsigned char HexToDec(unsigned char uHex)
{
unsigned char uTempVal;
uTempVal = (uHex/16)*10+uHex%16;
return uTempVal;
}
unsigned char DecToHex(unsigned char uDec)
{
unsigned char uTempVal;
uTempVal = (uDec/10)*16+uDec%10;
return uTempVal;
}
unsigned int GetTimeInterval(struct STimeInterval * ptsTimeInterval)
{
xdata unsigned int iCurrentTime;
iCurrentTime = GetCurrentTime();
if( iCurrentTime >= ptsTimeInterval[0].OldTime)
ptsTimeInterval[0].Interval = iCurrentTime - ptsTimeInterval[0].OldTime;
else
ptsTimeInterval[0].Interval = 20000 + iCurrentTime - ptsTimeInterval[0].OldTime;
return ptsTimeInterval[0].Interval;
}
unsigned int GetCurrentTime()
{
xdata struct SSysTimer sCurrentTimeV;
sCurrentTimeV.uSecond = sSysTimerV.uSecond;
sCurrentTimeV.uMillisecond = sSysTimerV.uMillisecond/10;
//ISDwait();
sCurrentTimeV.uTime = sCurrentTimeV.uSecond*100;
sCurrentTimeV.uTime = sCurrentTimeV.uTime + sCurrentTimeV.uMillisecond;
return sCurrentTimeV.uTime;
}
復制代碼
所有資料51hei提供下載:
basic常用函數.zip
(2.14 KB, 下載次數: 12)
2020-3-3 20:14 上傳
點擊文件名下載附件
51MCU常用延時,16進制轉10進制等
下載積分: 黑幣 -5
作者:
51c_yang
時間:
2021-7-15 20:28
這16進制轉10進制的程序也不對吧
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1