标题:
51单片机延时程序如何改才能应用于15F104W
[打印本页]
作者:
新乡家电维修
时间:
2018-6-10 10:19
标题:
51单片机延时程序如何改才能应用于15F104W
写了个51单片机解码程序在AT89C51和STC89C52RC运行都正确,但是写到15F104W上就不正确了,延时与内部晶振频率都改了,还是不行
下面是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
要如何改才能用,
作者:
风158
时间:
2018-6-29 07:18
可用stc网站提供的15系列延时程序:
//========================================================================
// 函数: void delayms(unsigned int ms)
// 描述: 延时函数。
// 参数: ms,要延时的ms数, 这里只支持1~65535ms. 自动适应主时钟.
// 返回: 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的,可根据需要修改i的循环次数,例如:
i = MAIN_Fosc / 130*54;//1ms*0.54=540us
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1