请高手帮我分析以下延时程序所占的时钟周期。
求解释:
DELAY: MOV R6, #13
DELAY1: MOV R5, #250
DELAY2: NOP
DJNZ R5, DELAY2
DJNZ R6, DELAY1
RET
问题补充:晶振为12MHz,机器周期即是1us。
;-----------------------------------------------------
最佳答案:
DELAY: MOV R6,#13 ;1
DELAY1: MOV R5,#250 ;1
DELAY2: NOP ;1
DJNZ R5,DELAY2 ;2 250 * (1 + 2) = 750
DJNZ R6,DELAY1 ;2 13 * (1 + 750 + 2) = 9789
RET ;2 1 + 9789 + 2 = 9792
加上调用指令,共用 9794 个机器周期。
当晶振频率为 12MHz,则延时时间为 9794 us。
关键字:51单片机 汇编语言 延时程序
引用地址:
51单片机汇编语言--延时程序的延时时间
推荐阅读最新更新时间:2024-03-16 16:02
51单片机定时器使用经验总结
单片机定时器的使用可以说非常简单,只要掌握原理,有一点的C语言基础就行了。要点有以下几个: 1. 一定要知道英文缩写的原形,这样寄存器的名字就不用记了。 理解是最好的记忆方法。好的教材一定会给出所有英文缩写的原形。 2. 尽量用形像的方法记忆。 比如TCON和TMOD两个寄存器各位上的功能,教程一般有个图表,你就在学习中不断回忆那个图表的形像。 3. TMOD:定时器/计数器模式控制寄存器(TIMER/COUNTER MODE CONTROL REGISTER) 定时器/计数器模式控制寄存器TMOD是一个逐位定义的8位寄存器,但只能使用字节寻址,其字节地址为89H。其格式为:其中低四位定义定时器/计数器C/
[单片机]
51单片机—LCD1602显示模块
- 什么是LCD1602 LCD:Liquid Crystal Display—液晶显示器,简称LCD,其主要显示原理是以电流刺激液晶分子产生点、线、面并配合背部灯管构成画面,通常把各种液晶显示器都直接叫做液晶。 1602:液晶的命名通常都是按照显示字符的行数或液晶点阵的行、列数来的。1602的意思是每行可以显示16个字符,一共可以显示俩行,类似还有0801、1601等。 注意:此类液晶都是字符液晶,即只能显示ASCII码字符,如数字、大小写字母、各种符号等。 LCD1602显示如图: - 如何操作LCD1602 在操作之前先要了解LCD1602的几个重要知识点: RS:数据/命令选择端,它控制着指令操作和数据操作
[单片机]
51单片机的上拉电阻一般多大
1、51单片机的p0口为了实现准3态,采用了oc输出,也就是集电极悬空输出,也有叫图腾柱输出的。这种电路结构,只有下拉能力,高电平输出没有电流,在高电平时表现为高阻态;加上上拉电阻,就会失去高阻态,变成 1、0 两态。 2、p0口上拉电阻的选择,应遵循基本的电路设计原则,不能盲目套用,要看后级情况而定: 例如,后级驱动的是1只npn三极管,这个三极管的放大倍数( )=100倍,三极管的负载电流(ic)要求100ma,当电源为5v时: a、三极管的ib=ic/ =1ma; b、上拉电阻大约=r=5v/ib=5k ; c、为了使三极管注入ib后就迅速进入导通(开)状态,r应再小一些,如4k3; 3、由上面计算可见,三极管的负载大小、放大
[单片机]
51单片机16X16点阵显示屏学习板基本原理
1.功能 16×16点阵显示屏学习板如下图所示,LED显示屏各点亮度均匀、充足,可显示图形和文字,通过文字图像取模软件获得数据码,可以显示各类图形或文字。稳定、清晰、无串扰,图形或文字显示有静止、移入移出等显示方式。 2.基本原理 16×16点阵是用4个8×8点阵屏拼合而成,8X8点阵LED工作原理说明:8×8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置O电平,则相应的二极管就亮;因此要实现一根柱形的亮法。对应的一列为一根竖柱,或者对应的一行为一根横柱,因此实现柱的亮的方法如下所述: 一根竖柱:对应的列置1,而行则采用扫描
[单片机]
51单片机最小系统板制作过程
本文将介绍如何自制一个51单片机最小系统及一些附加模块。最终制成的系统将具有烧录程序,运行程序等功能。 先放两张张最终成品如下 (正面) (反面--锡接走线法) 提醒读者,下载口的布局有点不合理,请调至第五部的测试下载模块处查看!!!!! 好了,接下来正式进入制作环节: 第一步:仿真 在win7下采用Proteus 7 Professional绘制仿真原理图,具体绘制操作参考:用proteus绘画51单片机最小系统 为了测试所需,再绘制测试模块,如下: 电阻左端分别接单片机的21、22脚,即P2.0、P2.1端口 绘制完成后,为了仿真,再采用Keil uVision4编写测试代码并生成hex文件。具体操作参
[单片机]
51单片机串口程序C语言版
这篇文章主要来介绍一下51单片机的串口,下面先来看一下与串口相关的寄存器。 图1 (该图来自51单片机技术文档) 下面来逐个介绍个寄存器。 SCON寄存器的SM1,SM2主要用来设置串行口的工作方式,具体对应关系见图2,REN:串行口接受使能位,当单片机要接受数据时该位应该置一,TB8:发送数据的第九位。在方式2或者方式3中TB8为发送的第九位数据。该位不是很常用,具体介绍请查看51单片机的技术文档,这里不多做介绍。TI:发送中断标志,由硬件在方式0串行发送第8位结束时置位,或在其它方式串行发送停止位的开始时置位,必须由软件清零。RI:接受中断标志,由硬件由硬件
[单片机]
51单片机入门之五:数码管显示(动态)
单片机轻松入门之五数码管的动态显示 上次说了数码管的静态显示,这次介绍动态显示。动态显示是每隔一段很小的时间依次点亮一个数码管,再利用人视觉的暂留效应,从而看起来数码管显示是连续的。相对而言,动态显示的电路、程序稍微复杂,但是可以节约单片机的接口资源。动态显示涉及位选和段选。位选就是选通显示的数码管,段选就是控制该片数码管所要显示的内容。 本次实验让4片数码管显示“1234”,实验中用到了74LS373锁存器。 实验原理图如下: 实验程序如下: #include reg52.h #define uchar unsigned char; #define uint unsigned int; sbit du=P2^0; //位定义
[单片机]
51单片机:数码管c代码集合
/* 点亮第一个数码管,因为板子是自已做的,到电子城买数码管时说好要共阴的,拿来测时才发现是共阳的。 */ //------------------------------------------------------------ /* #include reg52.h #define uchar unsigned char sbit duan=P2^5 ; //注意,有分号 sbit wei=P2^6; //注意,有分号+P是大写的,若你写成小写的则会提示说找不到 const unsigned char table ={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,
[单片机]