导航:首页 > 操作系统 > 单片机如何设置时间延迟为一秒

单片机如何设置时间延迟为一秒

发布时间:2023-11-27 09:57:47

A. 请问在单片机C语言编程中,用delay延迟的话,1秒程序是什么单片机晶振为12MHZ

在Keil里仿真的话,在配置里把晶振调成12MHz,然后在调用delay函数的地方设置一个断点,开始调试程序,运行到断点处,注意程序左边有一个记录当前寄存器和一些状态的窗口,其中,里面有一个是专门记录当前运行了多少时间的变量,记下当前时间T1,然后按F10(不进入子函数)调试,再记录当前时间T2,则延时=T2-T1。多试几个A,差不多调到1s就够了。我一般都这么调。
你要想明白其中原理,想自己算的话,你就看看delay的汇编代码段自己算吧。

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

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

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

C. 51单片机延时一秒函数,晶振12MHZ

我这有个函数自己实验出来的,在KEIL里看差不多就是延时1毫秒
void delay1ms(unsigned int t)
{
unsigned x,y;
for(x=t;x>0;x--)
for(y=124;y>0;y--);
}

把t 改为你要延时的数就可以了,1毫秒就把t改为1 500毫秒就把t改为500

D. 单片机1秒钟定时汇编语言怎么编

可以有两种方法,设晶振为12M,则
第一种方法:用延时的方法实现
DELAY: MOV R3,#10;延时子程序,延时1秒
D1: MOV R4,#200
D2: MOV R5,#250
D3: DJNZ R5,D3
DJNZ R4,D2
DJNZ R3,D1
RET
END

第二种方法:用定时器的方法实现
————
MOV R1,#20
————
DLY: MOV TMOD,#00000001B;延时子程序,设定定时器的工作方式
D1: SETB TL0,#176(65536-50000); 15536/256 (余数)
SETB TH0,#60;设置初出溢出值50ms,定时2S (商)
SETB TR0 ;启动定时器
JNB TF0,$;是否溢出,没有溢出等待,溢出走一条指令
CLR TF0;清零溢出
DJNZ R1,D1;走20次,刚好1秒
RET
END

阅读全文

与单片机如何设置时间延迟为一秒相关的资料

热点内容
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主页的爱心代表什么意思 浏览:563
程序员和饺子做饭 浏览:307