C51 延时程序两种方案
2014-02-16 17:03
751 查看
在keil2中修改晶振为22.1184,然后可以测试得到如下两种毫秒延时和秒延时。
方法一:
/*实现功能:在22.1184MHZ下的毫秒延时*/
void dmsec (u16 count)
{
unsigned int i;
while (count)
{
i =230;
while (i>0) i--;
count--;
}
}
方法二:
/*实现功能:在22.1184MHZ下的大约1秒延时*/
for(i=0;i<1000;i++)
{
for(j=0;j<230;j++)
{
;
}
}
方法三:
/*实现功能:在22.1184MHZ下的大约1秒延时,stc12c5a60s2 1T 延时大约1ms*/
void delay_1ms(u16 count)
{
u16 i,j;
for(i=0;i<8*count;i++)
{
for(j=0;j<225;j++){;}
}
}
总结:在写代码时,可以在方法二的for循环下写,可以方便的调整在多少时间(修改i和j的值)里面没有接收到数据的话,就退出。
方法一:
/*实现功能:在22.1184MHZ下的毫秒延时*/
void dmsec (u16 count)
{
unsigned int i;
while (count)
{
i =230;
while (i>0) i--;
count--;
}
}
方法二:
/*实现功能:在22.1184MHZ下的大约1秒延时*/
for(i=0;i<1000;i++)
{
for(j=0;j<230;j++)
{
;
}
}
方法三:
/*实现功能:在22.1184MHZ下的大约1秒延时,stc12c5a60s2 1T 延时大约1ms*/
void delay_1ms(u16 count)
{
u16 i,j;
for(i=0;i<8*count;i++)
{
for(j=0;j<225;j++){;}
}
}
总结:在写代码时,可以在方法二的for循环下写,可以方便的调整在多少时间(修改i和j的值)里面没有接收到数据的话,就退出。
相关文章推荐
- C51常用延时程序
- 我的C51延时程序
- C51 延时程序
- 我的C51延时程序
- 第六周实验指导--下面的程序存在编译错误,请给出两种修改方案--说明处理此类问题的原则是什么
- 第六周实验报告任务 1 下面程序存在编译错误。有两种修改方案,更倾向于那一种?为什么?
- 精准延时程序及用keil C51调试
- C++第六周任务一【任务1】下面的程序存在编译错误。有两种方法可以修改,请给出这两种修改方案,在报告中说明你倾向于用哪一种?为什么?处理此类问题的原则是什么?
- 347. Top K Frequent Elements (C++程序实现,两种方案)
- 6-1 修改程序错误,两种修改方案
- 解决sleep延时阻塞程序主线程,造成程序未响应问题方案
- spring、struts2两种整合方案
- Android设置Activity(界面)为全屏显示的两种方法 xml和java程序
- JAVA程序保护方案(JAVA加密保护,防止反编译、防拷贝)
- java基础--两种简单的死循环程序
- iPhone程序中图片延时加载
- 编写程序判断大小端的两种方法
- QT c++程序使用qml的两种方法
- 实现自定义对话框程序快捷键的两种方法
- C51数字钟程序-ZT(拿来学习用)