导航:首页 > 操作系统 > 延迟2ms单片机代码

延迟2ms单片机代码

发布时间:2023-06-13 09:26:16

⑴ 跪求用单片机制作长延时定时器的程序

多简单的事啊,我贴一个AVR采用定时器0计时的,你参考一下吧。
#pragma interrupt_handler timer0_ovf_isr:10 //TIMER0 定时2ms中断.
void timer0_ovf_isr(void)
{
TCNT0 = 0xD9; //reload counter value
timer2ms++;
if(timer2ms >= 5)
{
timer2ms = 0;
timer10ms ++;
systimer10ms ++;
if(systimer10ms >= 22) //内部1M晶振
{
systimer10ms = 0;
timer1s ++;
}
}
也就是说。你另外起一个变量。与响应时间对照。你别说9999分钟。你就是9999年都可以做到。不理解时加我QQ问我吧。

⑵ 89C51单片机,假定单片机晶振频率6MHz,试编写延时2ms的程序

单片机晶振频率6MHz的时钟周期是0.166uS,89C51的指令周期是12个时钟周期,约等于2uS。
以下是例程:
汇编
DELAY: MOV Rn,#200 循环200次 *10uS = 2mS
LOOP: NOP 一个指令周期
NOP
NOP
DJNZ Rn,LOOP 二个指令周期,一次循环总共5个指令周期耗时10uS
RET

C语言 #define NOP _nop_(),_nop_(),_nop_()

for(int i = 200;i!=0;i-- )NOP;

⑶ 任意型号单片机,延迟1或2秒怎么写12M,24M怎么算for后面怎么写。要过程不要结果。

一般先写一个延时几个毫秒的子程序,很简单。
void delay( int ms )
{
while( ms-- )
{
int i = 延时常数;
do { _nop_(); } while( --i );
}
}

要延时一秒钟,就是1000ms,delay( 1000 );
几个注意事项,
1、延时程序没有关中断,所以中断程序会影响定时精度。
2、延时常数可以用软仿真程序实验确定,需要根据不同的单片机、晶振频率调整延时常数。
3、想要适用任意型号单片机,内层循环最好加一句空操作,通常这可以阻止编译时优化程序。

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

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

阅读全文

与延迟2ms单片机代码相关的资料

热点内容
深圳6k程序员 浏览:520
刷脸支付oem需要源码吗 浏览:166
如何在线压缩动态图片 浏览:113
vb字母表加密 浏览:613
红帽磁盘命令 浏览:868
cmd命令大全ip地址 浏览:14
服务器被攻击什么意思 浏览:73
看去哪个app 浏览:163
埃微手环用什么app 浏览:567
培训需要编程基础吗 浏览:338
程序员写论文需要什么条件 浏览:600
三菱电机压缩机待遇 浏览:889
android电源关机 浏览:521
重新定义程序员教程 浏览:541
程序员小白是什么水平 浏览:810
ug编程刀具移动高度 浏览:928
程序员思想和人交互 浏览:567
程序员编写的软件 浏览:290
透传命令 浏览:381
raptor冒泡排序编程 浏览:707