標(biāo)題:
51單片機(jī)延時程序如何改才能應(yīng)用于15F104W
[打印本頁]
作者:
新鄉(xiāng)家電維修
時間:
2018-6-10 10:19
標(biāo)題:
51單片機(jī)延時程序如何改才能應(yīng)用于15F104W
寫了個51單片機(jī)解碼程序在AT89C51和STC89C52RC運(yùn)行都正確,但是寫到15F104W上就不正確了,延時與內(nèi)部晶振頻率都改了,還是不行
下面是AT89C51晶振12M,延時540us程序:
DELAY540US:
MOV R7, #180
DE1: NOP
DJNZ R7, DE1
RET
下面是15F104W晶振6M延時540US,是否真的是延時了540us???????????
DELAY540US: ;@6.000MHz
PUSH 38H
PUSH 39H
MOV 38H,#3
MOV 39H,#127
NEXT1:
DJNZ 39H,$
DJNZ 38H,NEXT1
POP 39H
POP 38H
RET
要如何改才能用,
作者:
風(fēng)158
時間:
2018-6-29 07:18
可用stc網(wǎng)站提供的15系列延時程序:
//========================================================================
// 函數(shù): void delayms(unsigned int ms)
// 描述: 延時函數(shù)。
// 參數(shù): ms,要延時的ms數(shù), 這里只支持1~65535ms. 自動適應(yīng)主時鐘.
// 返回: none.
// 版本: VER1.0
// 日期: 2013-4-1
// 備注:
//========================================================================
void delayms(unsigned int ms)
{
unsigned int i;
do{
i = MAIN_Fosc / 13000;
while(--i) ; //14T per loop
}while(--ms);
}
原程序是1ms的,可根據(jù)需要修改i的循環(huán)次數(shù),例如:
i = MAIN_Fosc / 130*54;//1ms*0.54=540us
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1