51单片机通用汇编延时子程序,
关键字:51单片机通用汇编延时子程序
51单片机通用汇编延时子程序
[DELY]:通用延时子程序
[地址]:7FEBH - FFEBH
[功能]:延时
[入口]:延时常数放在 R2 寄存器中。时间常数 N(十六进制)所对应的延时时间(6MZH 晶振时)见下表:
[出口]:R2=0
[占用寄存器]:R2
[调用]:无
例:延时1 秒子程序
MOV R2,#18H
LCALL 7FEBH
RET
ORG 7FEBH ;通用延时子程序(07EBH & 0FEBH & ...)
L7FEB: PUSH 02H ;R2(复位后R2即为 02H)存放时间常数,进栈保护
L7FED: PUSH 02H ; R2 进栈保护
L7FEF: PUSH 02H ; 进栈
L7FF1: DJNZ R2,$ ;R2 不为零等待
POP 02H ;出栈
DJNZ R2,L7FEF ; R2 不为零转
POP 02H ; 出栈
DJNZ R2,L7FED ; R2 不为零转
POP 02H ; 出栈
DJNZ R2,L7FEB ; R2 不为零转
RET ;子程序返回
END
N(十六进制数)T(机器周斯)T(秒) 子程序地址
1 11 0.000044
C 2728 0.010912
18 26323 0.105292 2800
1D 50838 0.203352 2808
21 80323 0.321292 2810
24 109666 0.438664 2818
26 133248 0.532992 2820
28 160431 0.641724 2828
29 175481 0.701024 2830
2E 267146 1.068584 2838
37 516836 2.067344 2840
3D 760366 3.041464 2848
42 1021681 4.086724 2850
46 1275016 5.100064 2858
54 2543878 10.175512 2860
65 5144436 20.577744 2868
70 7654053 30.616212 2870
78 9986491 39.945964 2878
7F 12432158 49.728632 2880
98 24956083 99.824332 2888
A9 37708623 150.83453
B6 50353668 201.41467 2890
CA 75697683 302.79073 2898
D9 100218410 400.87365 28A0
E6 125909940 503.63974 28A8
F1 151248830 605.03532 28B0
FF 188839490 755.35794
0 191768000 767.072 28B8
[地址]:7FEBH - FFEBH
[功能]:延时
[入口]:延时常数放在 R2 寄存器中。时间常数 N(十六进制)所对应的延时时间(6MZH 晶振时)见下表:
[出口]:R2=0
[占用寄存器]:R2
[调用]:无
例:延时1 秒子程序
MOV R2,#18H
LCALL 7FEBH
RET
ORG 7FEBH ;通用延时子程序(07EBH & 0FEBH & ...)
L7FEB: PUSH 02H ;R2(复位后R2即为 02H)存放时间常数,进栈保护
L7FED: PUSH 02H ; R2 进栈保护
L7FEF: PUSH 02H ; 进栈
L7FF1: DJNZ R2,$ ;R2 不为零等待
POP 02H ;出栈
DJNZ R2,L7FEF ; R2 不为零转
POP 02H ; 出栈
DJNZ R2,L7FED ; R2 不为零转
POP 02H ; 出栈
DJNZ R2,L7FEB ; R2 不为零转
RET ;子程序返回
END
N(十六进制数)T(机器周斯)T(秒) 子程序地址
1 11 0.000044
C 2728 0.010912
18 26323 0.105292 2800
1D 50838 0.203352 2808
21 80323 0.321292 2810
24 109666 0.438664 2818
26 133248 0.532992 2820
28 160431 0.641724 2828
29 175481 0.701024 2830
2E 267146 1.068584 2838
37 516836 2.067344 2840
3D 760366 3.041464 2848
42 1021681 4.086724 2850
46 1275016 5.100064 2858
54 2543878 10.175512 2860
65 5144436 20.577744 2868
70 7654053 30.616212 2870
78 9986491 39.945964 2878
7F 12432158 49.728632 2880
98 24956083 99.824332 2888
A9 37708623 150.83453
B6 50353668 201.41467 2890
CA 75697683 302.79073 2898
D9 100218410 400.87365 28A0
E6 125909940 503.63974 28A8
F1 151248830 605.03532 28B0
FF 188839490 755.35794
0 191768000 767.072 28B8
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
发布评论请先 登录
相关推荐
基于51单片机的手动数字时钟
具体实现功能由51单片机+8位共阴数码管+独立按键构成。具体功能:(1)利用数码管显示时分秒,显示格式为“时-分-秒”;(2)利用6个按键控制时、分、秒,设定好后自动开始时钟显示;(3)设置秒复位
基于51单片机的遥控开关仿真(双机通信)
灵活、高效的解决方案。本设计所使用的芯片可兼容以下所有的51系列单片机(包括AT系列和STC系列)。资料内容仿真实现(protues8.7)本设计利用protues8.7软件实现仿真设计,具体如图。程序
把esp8266加入到c51单片机单通道程序怎么写
要将ESP8266模块加入到C51单片机的单通道程序中,您需要了解如何通过串行通信(UART)与ESP8266进行通信。以下是如何实现这一点的步骤和示例代码。 步骤 1:硬件连接 首先,您需要
keil可以读出单片机的程序吗
Keil是一款广泛应用于单片机程序开发的软件,它提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案。然而,关于Keil是否能直接“读出”单片机的
单片机烧录程序的基本步骤是什么
是单片机烧录程序的基础,它包含了单片机芯片、电源、接口等基本元件。在选择单片机开发板时,需要考虑以下几个方面: (1)单片机型号:根据项目需
51单片机烧录软件怎么用
准备工作 确保您已经安装了51单片机烧录软件,如Keil、IAR等。 准备好51单片机开发板和烧录器,如STC-ISP等。 确保您的计算机已经安装了相应的驱动
51单片机开发板的主要功能 51单片机开发板能做什么
51单片机开发板是一种基于8051系列单片机芯片的开发板,具有丰富的功能和广泛的应用。下面将详细介绍51单片机开发板的主要功能以及能够实现的
C语言能够实现单片机功能,为什么还要使用汇编呢?
C语言能够实现单片机功能,为什么还要使用汇编呢? C语言是一种高级编程语言,它具有跨平台、可移植性强、易于使用的特点,使得开发人员能够快速且方便地编写复杂的程序。然而,尽管C语言在许多方面都非常强大
stc51单片机怎么烧录
步骤 常见问题与解决方法 STC51单片机是一种常见的8位单片机,广泛应用于各种嵌入式系统。它具有高性能、低成本、易于学习和使用等优点。STC51单
51单片机定时器定时1秒程序流水灯结果分析
51单片机是一种广泛应用的嵌入式微控制器,具有高性能、低功耗、易扩展等优势。在实际应用中,定时器常用于定时操作,如控制程序运行时间、生成精确的时间延时等。本文将详细介绍
51单片机for循环结束之后还在运行
当我们设计并编写嵌入式系统时,使用51单片机编写程序时,常常会用到循环结构来重复执行一段代码。然而,有时我们可能会遇到51单片机在循环结束之
keil5mdk怎么编写51单片机程序
编写51单片机程序需要以下步骤: 编写程序框架:首先,你需要定义程序所需要的变量和常量,以及设置中断向量和寄存器的初始状态。这些信息可以根据
评论