c语言延迟10s,C语言延迟05秒是50000吗

发布时间:2023-01-04

本文目录一览:

  1. 急需一个延时10秒的C语言程序,求大师帮忙,谢谢
  2. 汇编/C语言设计继电器控制程序,继电器每10s闭合一次,时间为10s,断开时蜂鸣器蜂鸣(用定时计数器延时)
  3. 52单片机C语言中“Delay”是什么意思,怎么用?
  4. 求单片机C语言延时程序(延时10s)
  5. 用C语言怎么在单片机AT89C51上编写一个延时10秒的程序?
  6. 单片机中延迟10sC语言程序可以这样写吗,如果不可以哪儿错了?

急需一个延时10秒的C语言程序,求大师帮忙,谢谢

#include <dos.h>
void fun()
{
    delay(10000);
}

调用系统的延迟函数 delay,该函数的延时单位是毫秒,所以括号内写 10000 毫秒,即延迟 10 秒。

汇编/C语言设计继电器控制程序,继电器每10s闭合一次,时间为10s,断开时蜂鸣器蜂鸣(用定时计数器延时)

#include <reg51.h>
#define uchar unsigned char
uchar times;
sbit jdq = P1^4;
sbit fmq = P1^5;
void t0isr() interrupt 1
{
    TH0 = (65536 - 50000) / 256;
    TL0 = (65536 - 50000) % 256;
    times++;
    if(times == 200)
    {
        jdq = ~jdq;
        fmq = ~jdq;
    }
}
main()
{
    TMOD = 0x01;
    TH0 = (65536 - 50000) / 256;
    TL0 = (65536 - 50000) % 256;
    TR0 = 1;
    ET0 = 1;
    EA = 1;
    jdq = 0;
    fmq = 0;
    while(1);
}

52单片机C语言中“Delay”是什么意思,怎么用?

一般延时 1ms 的程序是:

void Delay(uint x)
{
    uchar i;
    while(x--)
    {
        for(i = 120; i > 0; i--);
    }
}

那么当你在别的函数中用到 Delay(10000); 就是延时 10000ms,也就是 10s。

求单片机C语言延时程序(延时10s)

用定时器做吧,Delay 了不能做别的事情,效率太低了。做一个 1ms 的定时程序,再到计数 10000 次的时候执行一次你要的程序(比如说置位某个变量),这样就可以了。

用C语言怎么在单片机AT89C51上编写一个延时10秒的程序?

  1. 十秒对于单片机来说是很长很长的时间了,单片机十秒的时间什么事都不能做,只在跑这延时程序,那是什么概念。用中断的话,单片机正常运行其他程序,只是时间到了才过来处理延时以后的程序,效率不知道高了多少。
  2. 例程:
// 假设晶振 12MHZ
#include "reg51.h"
unsigned int YSJS = 0;
void main(void)
{
    TMOD |= 0X10;           // 定时器1工作于方式1,16位定时器
    TH1 = 0XFF;             // 定时器1定时时间=500uS
    TL1 = 0X06;
    ET1 = 1;                // 使能定时器1中断
    EA = 1;                 // 开总中断
    while(1)
    {
    }
}
void TIMER1(void) interrupt 3
{
    TH1 = 0XFF;             // 定时器1定时时间=500us
    TL1 = 0X06;
    YSJS++;
    if(YSJS == 20000)       // 500uS * 20000 = 10s
    {
        P1 = P1 ^ 0X01;     // P1.0 十秒钟翻转一次
        YSJS = 0;
    }
}

单片机中延迟10sC语言程序可以这样写吗,如果不可以哪儿错了?

这样倒是也行啊。一个是你要按照你的时钟周期算好循环次数,在一个 for 循环嵌套也可以。不过你单片机就不用干别的了,光在这循环进行延时了,很浪费 MCU 的说。 一般超过 10ms 都建议用定时器中断。开个定时器中断设置比如设定定时器0,计数方式1,即16位定时器。如果是12MHZ外部晶振的话,1个时钟是1us,定时器设为50ms中断,定义一个全局变量比如 SEC,然后在中断里进行+1,20次中断就是1秒,200次中断就到10秒。 你的这个方法的话这样好些,我按你外部晶振12MHZ算这样1个延时对应1us:

void delay10s(void)
{
    unsigned char i,j,k;
    for (i = 200; i > 0; i--)     // 200 * 50ms = 10s
    {
        for (j = 200; j > 0; j--) // 200 * 250us = 50ms
        {
            for(k = 250; k > 0; k--) // 250us
            {
                ;
            }
        }
    }
}