本文目录一览:
- 1、急需一个延时10秒的C语言程序,求大师帮忙,谢谢
- 2、汇编/C语言设计继电器控制程序,继电器每10s闭合一次,时间为10s,断开时蜂鸣器蜂鸣(用定时计数器延时)
- 3、52单片机C语言中“Delay”是什么意思,怎么用?
- 4、求单片机C语言延时程序(延时10s)
- 5、用C语言怎么在单片机AT89C51上编写一个延时10秒的程序?
- 6、单片机中延迟10sC语言程序可以这样写吗,如果不可以哪儿错了?
急需一个延时10秒的C语言程序,求大师帮忙,谢谢
#includedos.h
void fun()
{
delay(10000);
}
调用系统的延迟函数delay,该函数的延时单位是毫秒,所以括号内写10000毫秒,即延迟10秒
汇编/C语言设计继电器控制程序,继电器每10s闭合一次,时间为10s,断开时蜂鸣器蜂鸣(用定时计数器延时)
#includereg51.h
#define uchar unsigned char
uchar times;
sibt 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;i0;i--);
}
}
那么当你在别的函数中用到Delay(10000);就是延时10000ms,也就是10S
求单片机C语言延时程序(延时10s)
用定时器做吧,DELAY了不能做别的事情,效率太低了。做一个1ms的定时程序,再到计数10000次的时候执行一次你要的程序(比如说置位某个变量),这样就可以了。51就那么几个寄存器,看一下就可以了设定了,TH和TL只要记住计数到0的时候,会产生中断就可以了
用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 //定时器1中断函数使用默认寄存器组
{
TH1 = 0XFF; //定时器1定时时间=500us
TL1 = 0X06;
YSJS++;
if(YSJS==20000) //500uS*20000=10000000us=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秒。。在中断进行加1后判断是否==200是的话就到10秒了。。
你的这个方法的话这样好些,我按你外部晶振12MHZ算这样1个延时对应1us
void delay10s(void)
{
unsigned char i,j,k;
for (i=200,i0,i--) '200*50ms=10s
{
for (j=200,j0,j--) '200*250us=50ms
{
for(k=250,k0,k--) '250us
{;}
}
}
}