找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1896|回复: 1
收起左侧

51单片机汇编实验教程程序整理

[复制链接]
ID:663162 发表于 2021-12-17 23:31 | 显示全部楼层 |阅读模式
这个是根据“at89c51 单片机 汇编 实验 教程 刘健老师”的哔哩哔哩视频教程整理的,敲了一边。

希望对和我一样的初学者有用。

延时程序精确分析过程
在单片机的控制应用中,常有延时的需要,CPU过一段时间再去作某件事情,称之为延时。延时有两种方法,即软件延时和硬件延时.硬件延时是通过定时/计数器来实现的,这种方法不占用CPU 的工作时间。软件延时一般采用循环程序,通过CPU执行具有固定延迟时间的循环体来实现的。
延时程序的延时时间主要与两个因素有关,一是所用晶振,二是延时程序中的循环次数,一旦晶振确定之后,则主要是如何设计与计算需给定的延时循环次数。
设单片机的晶振频率为6MHz,则一机器周期为2us;
设单片机的晶振频率为12MHz,则一机器周期为1us;
汇编语言常用延时程序所用到的指令
指令 占用的机器周期数
MOV Rn,#Data  1
DJNZ Rn,Rel      2
RET                  2
NOP                 1
ACALL Addr11 2
LCALL Addr16 2
ADD A,Ri      1
INC DPTR       2
基本延时程序模式及延时时间的计算
分以下几种情况:

1、单循环延时程序
DEL2: MOV RO,#X ; 1 周期
DEL1: DJNZ RO,DEL1 ; 2周期
RET ; 2周期
延时时间=2*X*T+1*T+2*T=(2X+3)T
整个程序的延时时间范围:
以晶振频率6MHz 为例:10us<=t<=1030us
以晶振频率12MHz为例:5us<=t<=515us
延时时间的范围的计算
设X 是装入寄存器R0的时间常数,R0是8位寄存器(以下的 R1、R2、R 均为 8 位),因为 0<=R0<=255,R0=0,延时时间最长,R0=1,延时时间最短。当 Ri=0时,由汇编语言的特征知其将从零开始判断,共256次,所以应在公式中代入256,因此这个程序的最长定时时间为1030us。

51hei.jpg

完整的pdf格式文档51黑下载地址(共140页):
51单片机 汇编.pdf (11.9 MB, 下载次数: 31)

评分

参与人数 1黑币 +80 收起 理由
admin + 80 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:624685 发表于 2021-12-18 20:37 | 显示全部楼层
这个得收藏,慢慢学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表