找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7590|回复: 11
打印 上一主题 下一主题
收起左侧

单片机程序中有什么好办法取代delay延时?

  [复制链接]
跳转到指定楼层
楼主
ID:168971 发表于 2018-6-10 15:00 来自触屏版 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在单片机的编程中 有什么好办法取代delay延时?不用中断,麻烦大神给写个例子,,,学习一下
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:329253 发表于 2018-6-10 17:02 来自触屏版 | 只看该作者
定时器,用定时器或单片机小精灵
回复

使用道具 举报

板凳
ID:348896 发表于 2018-6-10 18:12 | 只看该作者
延时就是让cpu做无用功 根据需要延时的时间 长的还是delay好用 短的us级就 _nop_(); i++; while(i--);等等。总之能达到目的就行。
回复

使用道具 举报

地板
ID:123289 发表于 2018-6-10 18:54 | 只看该作者
等你革新单片机
回复

使用道具 举报

5#
ID:331575 发表于 2018-6-10 19:55 | 只看该作者
可以用定时器中断,在中断函数中不断扫面你按键状态的变化,希望可以给你思路

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

6#
ID:348994 发表于 2018-6-10 20:20 | 只看该作者

定时器,用定时器或单片机小精灵
回复

使用道具 举报

7#
ID:323774 发表于 2018-6-10 22:45 | 只看该作者
使用非阻塞的方式编写代码,逻辑比较麻烦点。
回复

使用道具 举报

8#
ID:349102 发表于 2018-6-10 23:13 来自触屏版 | 只看该作者
调用_nop_()空函数,但要添加#include "intrins.h" 头文件
回复

使用道具 举报

9#
ID:213173 发表于 2018-6-11 06:46 | 只看该作者
用计数法延时,示例如下,闪烁灯。
#include <AT89X52.H>
sbit LED=P1^0;
unsigned int count;

void main()                                                       
{
        LED=0;
        while(1)
        {
                count++;
                if(count>=30000)
                {
                        count=0;
                        LED=~LED;
                }
        }
}
回复

使用道具 举报

10#
ID:341778 发表于 2018-6-11 15:23 | 只看该作者
简单应用定时器
回复

使用道具 举报

11#
ID:217829 发表于 2018-6-11 20:24 | 只看该作者
定义静态变量,用计数的方式,好过延时死等
回复

使用道具 举报

12#
ID:350035 发表于 2018-6-12 10:03 | 只看该作者
用定时器+软件计数器
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表