0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

51单片机1s延时程序设计的详细资料说明

2oON_changxuemc 来源:未知 2019-03-03 10:49 次阅读

#include

sbit P1_0 = P1^0;

void Delay(); // 下面引用时一定要和这里的大小写一致否则会有警告或错误

void Main()

{

while (1) // 开始一直循环

{

P1_0 = 0;

Delay(); // 没有参数也要加 () 否则会有Warning

P1_0 = 1;

Delay();

}

}

void Delay() // 12M晶振1s延时

{

unsigned char h, i, j, k;

for (h = 5; h 》 0; h--)

for (i = 4; i 》 0; i--)

for (j = 116; j 》 0; j--)

for (k = 214; k 》 0; k--); // 最后个要有 ; 号

}

//=======以下非代码==========//

原理,利用h,i,j,k循环指令消耗掉一定时间来达到延时,为什么利用循环延时的做法,在12M晶振延时1秒中需要h,i,j,k四个变量,且各变量的值是上面代码中那样呢?这要从单片机的周期说起,单片机有指令周期,机器周期,状态周期,时钟周期;

时钟周期:也就晶振的振荡周期,以12MHz为例,时钟周期为 1/ 12000000 = 1/12us;

机器周期:1个机器周期=6个状态周期=12个时钟周期=1us;

指令周期:单片机执行一条指令所需要的时间称为指令周期,指令周期是以机器周期为单位的,不同的指令所需要的机器周期不一定相同(1-4个),单片机执行一条单周期指令需要1us,执行一条双周期指令需要2us,for循环需要8个指令周期;

具体执行for循环消耗的时间,可以在Keil里通过代码测量:

#include

sbit P1_0 = P1^0;

void Delay();

void Main()

{

while (1)// 开始一直循环

{

P1_0 = 0;

Delay();

P1_0 = 1;

Delay();

}

}

void Delay()

{

unsigned char h;

for (h = 1000; h 》 0; h--); // 此处下断点

}

循环1000次执行完后的时间点

1000次循环耗时 0.00042850s - 0.00019600s = 0.00023250s = 232.5us;1次循环耗时约 0.2us,

1s = 1000000us,1000000us / 0.2us = 500000次,而5 * 4 * 116 * 214 = 496480;因为无符号字符型unsigned char 大小为1 byte,范围为0~255,所以只能通过循环嵌套,近似的得到一个1s延时。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 晶振
    +关注

    关注

    33

    文章

    2788

    浏览量

    67791
  • 51单片机
    +关注

    关注

    273

    文章

    5696

    浏览量

    122925
  • 程序
    +关注

    关注

    115

    文章

    3753

    浏览量

    80709

原文标题:51单片机1s延时程序设计

文章出处:【微信号:changxuemcu,微信公众号:畅学单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    单片机C语言程序设计的20例基础程序设计详细资料概述

    本文档介绍的主要内容是20例基于单片机C语言的基础程序设计详细资料概述
    发表于 06-08 08:00 87次下载
    <b class='flag-5'>单片机</b>C语言<b class='flag-5'>程序设计</b>的20例基础<b class='flag-5'>程序设计</b><b class='flag-5'>详细资料</b>概述

    51单片机教程之指令系统及程序设计详细资料概述

    本文档的主要内容详细介绍的是51单片机教程之指令系统及程序设计详细资料概述。内容包括了:一MCS51
    发表于 10-23 11:00 8次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>教程之指令系统及<b class='flag-5'>程序设计</b>的<b class='flag-5'>详细资料</b>概述

    51单片机教程之51单片机IO端口应用的详细资料概述

    本文档的主要内容详细介绍的是51单片机教程之51单片机IO端口应用的详细资料概述主要内容包括了:
    发表于 10-24 16:22 19次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>教程之<b class='flag-5'>51</b><b class='flag-5'>单片机</b>IO端口应用的<b class='flag-5'>详细资料</b>概述

    51单片机教程之MCS51单片机C程序设计详细资料概述

    本文档的主要内容详细介绍的是51单片机教程之MCS51单片机C程序设计
    发表于 10-24 16:22 11次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>教程之MCS<b class='flag-5'>51</b><b class='flag-5'>单片机</b>C<b class='flag-5'>程序设计</b>的<b class='flag-5'>详细资料</b>概述

    51单片机经典项目及仿真程序及原理的详细资料详解

    本文档的主要内容详细介绍的是51单片机经典项目及仿真程序及原理的详细资料详解主要内容包括了:1
    发表于 12-13 17:08 58次下载

    单片机基础教程之汇编语言程序设计知识的详细资料说明

    本文档的主要内容详细介绍的是单片机基础教程之汇编语言程序设计知识的详细资料说明包括了:1 编程的
    发表于 01-28 16:47 10次下载
    <b class='flag-5'>单片机</b>基础教程之汇编语言<b class='flag-5'>程序设计</b>知识的<b class='flag-5'>详细资料</b><b class='flag-5'>说明</b>

    多个51单片机C语言程序设计源代码的详细资料合集

    本文档的主要内容详细介绍的是多个51单片机C语言程序设计源代码的详细资料合集。
    发表于 03-11 08:00 20次下载
    多个<b class='flag-5'>51</b><b class='flag-5'>单片机</b>C语言<b class='flag-5'>程序设计</b>源代码的<b class='flag-5'>详细资料</b>合集

    51单片机延时函数计算问题以及如何准确延时详细资料说明

    本文档的主要内容详细介绍的是51单片机延时函数计算问题以及如何准确延时详细资料
    发表于 04-15 18:24 2次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b><b class='flag-5'>延时</b>函数计算问题以及如何准确<b class='flag-5'>延时</b>的<b class='flag-5'>详细资料</b><b class='flag-5'>说明</b>

    51单片机的汇编指令详细资料说明

    本文档的主要内容详细介绍的是51单片机的汇编指令详细资料说明
    发表于 08-30 17:28 14次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>的汇编指令<b class='flag-5'>详细资料</b><b class='flag-5'>说明</b>

    51单片机例函数的详细资料说明

    本文档的主要内容详细介绍的是51单片机例函数的详细资料说明
    发表于 08-28 17:29 8次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>例函数的<b class='flag-5'>详细资料</b><b class='flag-5'>说明</b>

    51单片机的中断系统详细资料说明

    本文档的主要内容详细介绍的是51单片机的中断系统详细资料说明
    发表于 06-14 17:45 3次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>的中断系统<b class='flag-5'>详细资料</b><b class='flag-5'>说明</b>

    51单片机汇编语言教程之单片机键盘接口程序设计详细资料说明

    本文档的主要内容详细介绍的是51单片机汇编语言教程之单片机键盘接口程序设计详细资料
    发表于 06-05 16:30 19次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>汇编语言教程之<b class='flag-5'>单片机</b>键盘接口<b class='flag-5'>程序设计</b>的<b class='flag-5'>详细资料</b><b class='flag-5'>说明</b>

    单片机原理及应用的详细资料说明

    本文档的主要内容详细介绍的是单片机原理及应用的详细资料说明包括了:单片机芯片的硬件结构, MCS-51
    发表于 12-26 10:34 20次下载
    <b class='flag-5'>单片机</b>原理及应用的<b class='flag-5'>详细资料</b><b class='flag-5'>说明</b>

    51单片机1s延时程序设计资料下载

    电子发烧友网为你提供51单片机1s延时程序设计资料下载的电子
    发表于 04-23 08:47 5次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b><b class='flag-5'>1s</b><b class='flag-5'>延时</b><b class='flag-5'>程序设计</b><b class='flag-5'>资料</b>下载

    【Practical】51单片机软件延时1S

    51单片机软件延时1S
    发表于 11-12 14:51 13次下载
    【Practical】<b class='flag-5'>51</b><b class='flag-5'>单片机</b>软件<b class='flag-5'>延时</b><b class='flag-5'>1S</b>