一、延时函数

在单片机实时控制系统中,常常会用到延时函数,因此,延时函数是编写单片机程序不可缺少的一部分。由于单片机读、写都需要消耗一定时间,因此延时程序通过执行空白指令来完成。单片机执行一条指令所需要的时间是一个指令周期,完成一个基本操作所用的时间是一个机器周期,如读操作、写等操作。当晶振频率为12MHz时,1个机器周期为1us。

        一个指令周期通常含有1~4个机器周期,其中常用的DJNZ指令周期为两个机器周期,即执行DJNZ指令需要2us; MOV指令周期为一个机器周期,即执行MOV指令需要1us。

二、延时函数计算实例

1.单重循环短暂延时

短暂延时可以通过单重循环来实现,例如,下面为延时200μs子程序,DJNZ指令周期为两个机器周期,即执行DJNZ指令需要2us,每执行一次寄存器R7的值减一,不断重复,到R7值为0是跳转到RET指令结束,即执行DJNZ100次达到延时200μs的目的。

DELAY:
MOV R7,#100
DELAY1:
DJNZ R7,DELAY1
RET

2.多重循环较长延时

如果需要较长的时间延时,则需通过多重循环来实现。例如,下面为延时1秒子程序。

DELAY:   MOV R5,#20
DELAY1: MOV R6,#100
DELAY2: MOV R7,#100DJNZ R7,$DJNZ R6,DELAY2DJNZ R5,DELAY1RET

此子程序采用了3重循环结构,先运行第5行代码操作,每次减1,减到0为止;再运行第6行代码对R6进行减操作,每次减1,减1后不为0,则转移到标号DLY2处运行,此时将R7赋值为100,并再对R7进行减法内循环。当R6减为0时,程序运行到第7行,开始外循环,R5减1不为0时转移到标号DLY1处运行。

为了计算上的简便,可以忽略赋值语句的时间,只计算“DJNZ R7,$"语句的执行时间,该指令执行一次需2μs,执行的次数为R5、R6和R7值的乘积,即:
总延时=2us×R7×R6×R5=2us×100×100×50 =1000000us=1s

三、延时函数应用举例———LED闪烁灯

51单片机最简单的实例就是LED闪烁灯,下面就来介绍

1.硬件电路

在本实例中,硬件电路主要包括AT89C51单片机最小系统电路(包括5V电源,正极接40引脚,负极(地)接20引脚;振荡电路,使用晶体振荡器(12MHZ),接18、19脚;复位电路和发光二极管LED电路(由1只LED和1只限流电阻串联而成),具体的连接原理电路图如图所示。当P1.7引脚输出低电平时,点亮LED;当P1.7引脚输出高电平时,LED熄灭。

2.软件部分

要实现LED的闪烁效果需要通过程序控制单片机连接到LED的P1.7引脚,点亮LED,延时一段时间后,再控制P1.7引脚使LED熄灭,如此循环就可以实现LED的闪烁。下面是完整的软件程序实例。

     ORG 0000H
MAIN:CLR P1.7LCALL DELAYSETB P1.7LCALL DELAYSJMP MAINDELAY: MOV R5,#20
DELAY1: MOV R6,#100
DELAY2: MOV R7,#100DJNZ R7,$DJNZ R6,DELAY2DJNZ R5,DELAY1RET

单片机原理与应用技术(一)———51单片机延时汇编语言相关推荐

  1. 单片机原理与实践学习记录之51单片机I/O口简单应用

    单片机原理与实践学习记录 第二课(更新时间:2021.9.3) 51单片机I/O口简单应用 C51中常用的头文件 ​ 通常有reg51.h,reg52.h,math.h, ctype.h, stdio ...

  2. 单片机原理与实践学习记录之51单片机硬件基础

    单片机原理与实践学习记录 第三课(更新时间:2021.9.6) 51单片机硬件基础 MCS-51是Intel公司生产的一个单片机系列的总称.在功能上,该系列单片机有基本型和增强型两大类,通常以芯片型号 ...

  3. [渝粤教育] 昆明理工大学 单片机原理及接口技术(宋庆和) 参考 资料

    教育 -单片机原理及接口技术(宋庆和)-章节资料考试资料-昆明理工大学[] 1.4 发展趋势 1.[多选题]未来单片机发展趋势表现在以下几个方面 A.CPU流水线结构.增加数据总线的宽度提高运算速度和 ...

  4. 微型计算机原理与接口技术ppt,单片机原理与接口技术课件ppt

    PPT内容 这是单片机原理与接口技术课件ppt,包括了微型计算机基础,MCS-51单片机结构与时序,习题课,MCS-51与存储器连接示例,汇编语言程序设计,半导体存储器,中断系统,并行I/O接口,MC ...

  5. MCS-51单片机原理与接口技术--阅读笔记(原创)

             MCS-51单片机原理与接口技术--阅读笔记(原创) 由  王宇 原创并发布 : 第1章 单片机概述 MSC-51美国Intel公司 第2章 基本机构 制造工艺为HMOS MSC-5 ...

  6. 电子信息工程专业打工人的单片机原理与接口技术课程笔记

    文章目录 前言 一.单片机 二.时钟频率 三.单片机电路 1.时钟引脚 2.P3口 3.控制引脚 4.内部结构 四.C51编程语言基础 1.基本了解 2.具体实际 3.LCD1602 五.实际应用 总 ...

  7. c语言40h高四位送41h低四位,《单片机原理及接口技术》复习题

    <单片机原理及接口技术>复习题 一填空题 1.MCS-51单片机引脚信号中,信号名称带上划线的表示该信号为(低电平)有 效或(下降沿)有效. 2.若想使用MCS-51单片机的片内程序存储器 ...

  8. 单片机定时器实验两位倒计时秒表_单片机学习「1」 初始51单片机

    问题1:什么是单片机? 采用集成电路技术,将CPU(具有处理数据能力的中央处理器).RAM(随机存储器,类比电脑里的内存条).ROM(程序存储器,类比电脑硬盘).多种I/O口(类比电脑的各种接口,不过 ...

  9. 单片机C语言稳压程序,51单片机的基于MC34063的5V稳压器的设计 -(原理图+程序)...

    题 目基于MC34063的5V稳压器的设计 研究现状:随着网络技术及通信技术的发展,便携式电子产品如个人数字助理(PDA).3G.4G手机.数码相机.笔记本电脑等个人设备的日益广泛应用,更多需求不断上 ...

  10. 单片机波特率不加倍c语言,51单片机硬件系统设计时,为什么用11.0592MHz的晶振而不用12MHz晶振的原因及串口波特率误...

    在设计51系列的单片机系统时,一般选用11.0592MHz的晶振而不选用12MHz的晶振,为什么?12M的晶振,振荡频率明显高于11.0592M的,按理说12MHz的晶振可以提高单片机的性能,那么我们 ...

最新文章

  1. 一定要加强SQL数据库SA
  2. 高德技术开放日 | 聊聊技术与成长那些事,大量实习岗、社招岗开放
  3. 怎么让电脑不自动休眠_【平安惠阳提醒您】电脑应设置自动休眠 避免产生火灾隐患...
  4. 封装案例-完成开火方法
  5. LiveVideoStack线上分享第五季(十一):Open WebRTC Toolkit实时视频分析系统
  6. html文本设置float,css怎么float(浮动)?
  7. 非受检异常(运行时异常)和受检异常的区别等
  8. 常见面试题汇总 —— C语言
  9. 网页版bpc电波对时_电波表对时软件下载-BPC(中国码)电波表对时模拟软件 20170308 官方版 - 河东下载站...
  10. 张继之为担任BCF理事
  11. charles介绍及代理设置
  12. 开关电源初级和次级变压器之间的Y电容作用
  13. 魔百和CM311-1a YST免拆机卡刷精简固件
  14. linux编写自动运行一串命令的脚本
  15. 程序员需要了解的先秦文学
  16. 计算机怎么设置加密文件,怎么把电脑文件加密_怎么把文件加密-win7之家
  17. dede mysql x_mysql 插入数据时中文变x87xE7xA7x91xE7x82这种?
  18. 【Linux】好玩的Linux命令(二)
  19. python实现新冠疫情各国人数动态图
  20. 英语魔法师之语法俱乐部 | 笔记4 | 初级句型—简单句 | Chapter3—动词时态

热门文章

  1. 神舟刷蓝天w650dbios_神舟z6kp5D1记录一次艰难的刷蓝天bios,总算成功了
  2. vue json对象转数组_分享:vue使用技巧和项目中遇到的问题
  3. 计算机重启 ie 被改,IE浏览器首页被篡改怎么办 如何重置IE还原到最初的安装状态...
  4. java如何实现联网象棋代码_java中国象棋联网对战源码
  5. 时延波束形成 matlab,有关波束形成程序解释
  6. 计算机类研究生求职经历以及经验共享(转)
  7. c语言输出中文为乱码_C语言输出乱码问题
  8. 快速教孩子学编程【1】
  9. NRF24L01模块的2个注意点
  10. 周鸿祎——互联网业界的“搅局者”