延时1秒

您所在的位置:网站首页 延时程序怎么编写20秒 延时1秒

延时1秒

2024-07-16 19:16:29| 来源: 网络整理| 查看: 265

1.准确延时

学会了上一讲的软件调试教学,我们现在用软件调试出延时很接近1毫秒的代码:

for(j=115;j>0;j--);

如果要延时1秒,那是不是循环1000次这条语句呢?

for(i=0;i0;j--); }

可是这段代码在软件调试中发现循环1000次这个1毫秒的延时语句时却跟1秒差距有点大(大于5ms对于单片机来说是一个很大的误差),在《手把手教你学51单片机》文档的4.4节也提到C 语言的延时时间是不能通过程序看出来的,所以我们只能在软件中继续调试新的延时1秒的代码。

这里调试出很接近1秒的延时代码如下

for(i=0;i0;j--);

}  

这里需要变量i和j都必须是unsigned int类型才调试得出准确延时1秒。

2.LED间隔1秒闪烁

用本教程的开发板实现LED亮一秒灭一秒闪烁循环的代码:

#include   sbit LED2  = P0^0; sbit ADDR2 = P1^2; sbit ADDR1 = P1^1; sbit ADDR0 = P1^0; sbit ENLED = P1^4; sbit ADDR3 = P1^3; void main() {       unsigned int i,j;//定义两个16位的变量       ADDR3 = 1;//使能三八译码器     ENLED = 0;//      ADDR2 = 1;//**************************     ADDR1 = 1;//让三八译码器的IO6输出低电平     ADDR0 = 0;//**************************     while (1)     {         LED2=0;//点亮最右端的灯         for(i=0;i0;j--);         }         LED2=1;//熄灭最右端的灯         for(i=0;i0;j--);         }     } }

如果把j定义为unsigned char类型,那这一段延时代码就不是1秒了,读者可以测试一下。所以说真的不能用常识来分析代码呀。

还有笔者发现这个代码在实验现象上有说不出的怪样,如果大家拿手机的秒表计时与灯的闪烁对比,即使我们给单片机上电的瞬间立马同步按下手机秒表计时按键,发现刚开始灯的闪烁与计时器还同步,后面过了几秒发现灯的状态跳变与秒表的数字跳变不同步了,软件仿真发现的确循环一次之后时间会加多。

可如果我们像下面这样三种写法

仅在后面加多一条简单的语句,上面所说的现象就消失了,也就是灯的跳变和计时的数字跳变是同步的,这个问题笔者还在查找原因,我们姑且先放一下这个纠结,继续往下学习先。

此时读者需要自己加入语句后拿手机秒表计时观察,看看是否灯的跳变与秒表数字的跳变同步,在此之前要保证手机的计时与单片机上电时间同步。



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭