导航:首页 > 操作系统 > 单片机延时怎么变慢

单片机延时怎么变慢

发布时间:2023-03-09 19:14:57

‘壹’ 单片机 延迟一秒程序怎么写延迟2秒我是初学者,想请教一下。

你好!
你要先写一个延时基准(50毫秒),在延时1秒就是做20次基准,2秒就是40个基准!
也可以用定时器,定时50毫秒,定时器中断计数,计数20就是1秒,计数40次就是2秒(推荐用定时器!)
仅代表个人观点,不喜勿喷,谢谢。

‘贰’ 单片机有哪些延时方法详细介绍

据我所知,单片机延时的方法有:

1。空操作延时(12MHz)

voiddelay10us()
{
_NOP_();
_NOP_();
_NOP_();
_NOP_();
_NOP_();
_NOP_();
}

2。循环延时(12MHz)

Voiddelay500ms()
{
unsignedchari,j,k;
for(i=15;i>0;i--)
for(j=202;j>0;j--)
for(k=81;k>0;k--);
}

延时总时间=[(k*2+3)*j+3]*i+5
k*2+3=165 us
165*j+3=33333 us
33333*i+5=500000 us=500 ms

3。计时器中断延时(工作方式2) (12MHz)

#include<reg52.h>
sbitled=P1^0;
unsignedintnum=0;
voidmain()
{
TMOD=0x02;
TH0=6;
TL0=6;
EA=1;
ET0=1;
TR0=1;
while(1)
{
if(num==4000)
{
num=0;
led=~led;
}
}
}

voidT0_time()interrupt1
{
num++;
}

4。C程序嵌入组合语言延时

‘叁’ 如何用按键调整单片机的延时时间

#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar key1,key2,key3; //定义三个按键的代号
uchar a,i,temp,temp1; //定义主体函数所用变量
uint x,y,z; //定义延时函数所用三个变量
void delay1(uint); //定义延时函数1
void delay2(uint); //定义流水灯大间隔所用延时函数
void keyscan(); //定义键盘扫描函数
void main()
{ TMOD=0x01; //为了保证及时扫描到键盘变动,只好开启中断了
TH0=(65536-500)/256;//中断0.5ms开启一次
TL0=(65536-500)%256;
EA=1;
ET0=1;
a=0xfe;
i=0;
temp1=1;
while(1)
{

P1=a;
temp=a<<1;
a=a>>7;
a=temp|a;
i=i+1;
delay1(100);
if(i==8)
{
i=0;
delay2(temp1);
}
}
}
void delay1(uint z)
{

for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void delay2(uint temp1)
{

for(x=temp1;x>0;x--)
for(y=1100;y>0;y--);
}
void keyscan()
{
if(key1==0)
{
delay1(10); //键盘消抖
if(key1==0)
{
temp1=10;
while(!key1); //等待按键释放
}
}
if(key2==0)
{
delay1(10); //键盘消抖
if(key1==0)
{
temp1=20;
while(!key2); //等待按键释放
}
}
if(key3==0)
{
delay1(10); //键盘消抖
if(key3==0)
{
temp1=30;
while(!key3); //等待按键释放
}
}
}
void T0_time() interrupt 1
{
TH0=(65536-500)/256; //重装初值
TL0=(65536-500)%256;
keyscan();

}
我的proteus坏了,不能模拟,现手写的,如果有问题可以再告诉我,我的QQ378773957,用的ATMEL51单片机
三个按所在的IO口我没有进行位定义,你在开头位定义一下应该就可以可以了

‘肆’ 单片机编程 使用按键控制流水灯延时时间,每按一次按键流水灯流水速度逐渐变慢,直到停止流水

你可以简单地认为单片机只能输出5V或者0V的电压 分别对应1和0,那么LED灯的另一端接地或者接5V,如果你 的单片机输出5V接到LED灯,LED灯另一端接地 , 那就产生电压了,电路就导通了,灯就亮了 ,反之也是这个道理。时间方面可以写大致的延时,或者用定时器,这样就比较精确了,你学会了这个就可以说入门了。

‘伍’ 怎样调整单片机流水灯的快慢,请举个例子

就下面的程序
;----- 延时子程序 -----
DELAY: MOV R0,#255 ;延时一段时间
D1: MOV R1,#20
DJNZ R1,$
DJNZ R0,D1
RET ;子程序返回

END ;程序结束
来说,想要让流水灯变慢点的话,就增加延时。这里将第二行指令D1: MOV R1,#20中的20改大,但是要小于256.比如D1: MOV R1,#200
如果想要流水灯快点的话,就是要减少延时时间。这里将第二行指令D1: MOV R1,#20中的20改小,但是一定要大于等于零。比如D1: MOV R1,#2

‘陆’ 通过用按键调整单片机的延时时间

#include<reg51.h>
sbitkey=P1^0;
sbitled=P1^2;
voiddelay(unsignedcharx)
{
unsignedchari;
while(x--)for(i=0;i<120;i++);
}
main()
{
unsignedcharnn;
while(1)
{
if(key==0)
{
while(key==0);
nn++;
if(nn>250)nn=50;
}
led=0;
delay(nn);
led=1;
delay(nn);
}
}

阅读全文

与单片机延时怎么变慢相关的资料

热点内容
java下载文件的文件名 浏览:460
神奇宝贝我的世界电脑版服务器地址 浏览:4
shellls命令 浏览:762
军用压缩饼干怎么吃 浏览:938
人道pdf 浏览:610
分类视觉算法 浏览:257
android弹出键盘位置 浏览:451
安卓怎么下载爱思助 浏览:985
安卓机的呼叫怎么开启 浏览:355
腾讯服务器硬盘什么价 浏览:841
交换机关闭所有端口命令 浏览:91
程序员可以开网店吗 浏览:115
算法工程师面试经验 浏览:686
有什么好用的陪聊app 浏览:698
什么是备中心服务器 浏览:144
linux配置本地yum源 浏览:539
半导体器件与工艺pdf 浏览:528
超大文件解压太慢 浏览:861
微光app主页的爱心代表什么意思 浏览:564
程序员和饺子做饭 浏览:307