这个是实现延时的。
成都创新互联公司服务项目包括淮上网站建设、淮上网站制作、淮上网页制作以及淮上网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,淮上网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到淮上省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
其实这两句应该连一块儿看:
for(;dly0;dly--)
for(i=0;i5000;i++);
也就是延迟了dly个"for(i=0;i5000;i++);"的执行时间
具体延迟了多久和很多因素相关,最主要的是和晶振相关。
当为40M时,
for(i=0;i5000;i++);延时应该是大约12~15MS左右吧
不过这么写不是很严谨,一般的需要精确处理的嵌入式开发(例如手机,CPF再开发等)中不会这么做的 ,一般是参照芯片式样书和嵌入式OS的Tick单位,进行精确计时
你很熟悉汇编吗?看着不像,连汇编函数定义和调用都不熟悉,为什么一定要去玩汇编?玩汇编的人不多,汇编的资料也不多。没有好的汇编根基,还不如学容易上手的C语言。
在arm嵌入式中,用定时器设置延迟函数的程序实现方法如下:
#includereg51.h晶振11.0592STC89C51
sbit RELAY = P1^4; //定义继电器使用的IO口
sbit K1 = P0^0; //定义按键使用的IO口
void main()
{
while(1)//大循环
{
if(K1 == 0) //如果按键按下
{ a=2000;/这里/时间怎样设定一个小时
RELAY = 0; //继电器闭合
while(a--);
a=2000;这里/时间怎样设定一个小时
RELAY = 1;
while(a--);
}
else
{
RELAY = 1;
}
}
}
利用定时器延时的优缺点:
1、因为定时器累加与CPU无关,即使中断,仍然会保持计数。不受上述问题影响。
2、缺点需要占用定时器资源。
3、功耗也会高一些。
arm嵌入式简介:
ARM是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。技术具有性能高、成本低和能耗省的特点。适用于多种领域,比如嵌入控制、消费/教育类多媒体、DSP和移动式应用等。