EM78系列单片机--延迟子程序的编写

发布者:幸福家庭最新更新时间:2018-01-27 来源: eefocus关键字:EM78系列  单片机  延迟子程序 手机看文章 扫描二维码
随时随地手机看文章

在許多程序设计的場合,我們時常会利用到时间延迟子程序,接下来就介紹一个可以控制延迟时间的延迟子程序。 
开下面是利用发工具E8-ICE来演示的一个精确的控制延迟时间的程序,选择使用石英振荡器,可以精确的算准延迟时间,时间可以到nanosecond(十亿分之一秒),很神奇。 
  
LP_CNT0 == 0X20     ;定义。 

LP_CNT1 == 0X21 
MOV  A, @2           ;A = 2。 
MOV  LP_CNT0, A      ;设定延迟寄存器0(LP_CNT0)=2 
CALL        P0_DLY      ;呼叫时间延迟子程序。 
P0_DLY: 
NOP                 ;调节延迟时间。 
MOV  A, @200         ;设定 A = 200。 
MOV  LP_CNT1, A      ;设定寄存器LP_CNT1 = 200。 
P0_LP: 
NOP                 ;调节延迟时间。 
NOP                 ;调节延迟时间。 
NOP                 ;调节延迟时间。 
DJZ LP_CNT1         ;递減LP_CNT1,为0就跳过下一行 
JMP P0_LP           ;循环。 
DJZ LP_CNT0         ;递減LP_CNT0,为0就跳过下一行 
JMP P0_DLY          ;循环。 
RET                 ;返回主程序。 
  
  
假设用户所使用的开发工具是E8-ICE,而且所采用的振荡器为石英振荡(4M Hz),並选择指令执行周期为1 Cycle, 2 CLOCk。这時每执行一个指令的时间为0.5 uS.  
用户可以看出在程序中用了两个寄存器来计数(LP_CNT0、LPCNT1),另外也使用了两个循环(P0_DLY、P0_LP),其中在P0_LP中有5个指令,所以在P0_LP这个循环中,执行了有1000个指令。 
  
5X 200= 1000                 P0_LP循环总共执行指令数目。 
5  +  1000 = 1005               P0_DLY循环总共执行指令数目。 
1005 X 2 = 2010 
2010 + 1 + 1 = 2012   延迟程序总共执行指令数目 
  
在整个P0_DLY循环中就有2012个指令,每个指令的执行时间为0.5 us。 
2012 (instructions) x 0.5 (us/instruction) = 1.006 ms 
所以用户可以精确的计算出延迟的时间,用户可以在LP_CNT0设定不同的值,如此可以有各种不同的延迟时间。 
l         例:设计一个延迟时间为2ms的程序。 
  
只要在上述程序中在呼叫P0_DEL延迟子程序之前,將LP_CNT0设成4就可以了。 
MOV   A, @4 
MOV   LP_CNT0, A 
CALL P0_DLY 
其余不变。 
1005 X 4 = 4020。 
4020 + 1 + 1 = 4022。 
4022 (instructions) X 0.5 (us)  = 2.011 ms 


关键字:EM78系列  单片机  延迟子程序 引用地址:EM78系列单片机--延迟子程序的编写

上一篇:EM78系列单片机--数码管LED显示
下一篇:EM78系列单片机--中断程序的设计

推荐阅读最新更新时间:2024-03-16 15:53

AT89S51单片机驱动扬声器实现报警器功能的设计
1. 用P1.0输出1KHz和500Hz的音频信号驱动扬声器,作报警信号,要求1KHz信号响100ms,500Hz信号响200ms,交替进行,P1.7接一开关进行控制,当开关合上响报警信号,当开关断开告警信号停止,编出程序。 2. 电路原理图 “单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPK IN端口上; 在“音频放大模块”区域中的SPK OUT端口上接上一个8欧的或者是16欧的喇叭; 把“单片机系统”区域中的P1.7/RD端口用导线连接到“四路拨动开关”区域中的K1端口上; 3. 程序框图 4. 参考源程序 FLAG BIT 00H ORG 00H START: JB P1.7,STA
[单片机]
AT89S51<font color='red'>单片机</font>驱动扬声器实现报警器功能的设计
基于单片机的风机温度控制系统的设计
   0.引言   风机为通用机械,它广泛地使用在国民经济的各个部门中。风机广泛用在工厂、矿井、车辆、建筑物、家用电器等的通风、排尘和冷却;谷物的烘干和选送;风洞风源和气垫船的充气和推进等。另外,在一些对环境温度有特殊要求的场所,要求温度变化在1℃以下,这就需要一种可以根据外界环境温度来确定风机的转动与停止的风机温控系统。   本文设计的风机微小温控系统,可使温度检测精度达到0.01℃,并可手动设定温度上下限,且具有自动声光报警功能。    1.设计要求   本系统采用PT1000温度传感器检测环境温度(温度检测精度0.01℃),根据环境温度变化控制风机降温,并具备按键手动设定温度上下限、声光报警等功能。其控制面板示意图如
[单片机]
一个简易的51单片机串口接收和发送程序
/********************* 程序功能:接收上位机发过来的一个字符串,然后把该字符串发送给上位机, 字符串必须以!结尾 **********************/ #include reg52.h #define uchar unsigned char #define uint unsigned int sbit LED = P2^7; uchar flag = 0; uchar index = 0; uchar data c ; void Delay_ms(uint n) { uchar i; while(n--) for(i = 0;i 120;i++); } void Send_strin
[单片机]
PIC16系列单片机与PC机串行通信的软硬件实现
1 前言 美国Microchip公司的PIC16系列单片机是一种新型的CMOS工艺的8位单片机。其中,PIC16FXX单片机的程序存储器为电可擦除闪速存储器(flash),可多次修改程序,甚至可以在线编程。PIC16F83和PIC16F84片内数据存储器除RAM外,还有64字节的EEPROM,可以当作一般的或非易失性的数据存储器使用,简单方便。它还具有片内上电复位、延时电路、看门狗电路等。另外,PIC16系列单片机功耗极低,因而是一种非常适合在各种便携式设备中使用的高性价比的单片机,并已经得到了越来越广泛的应用。 但是在许多需要大量计算的运用中,还必须借助微机的强大数据处理能力。这样必须通过通信电路实现PIC单片机与微机间的可靠
[单片机]
PIC16<font color='red'>系列</font><font color='red'>单片机</font>与PC机串行通信的软硬件实现
SE8510反激隔离电源设计帮助MCU供电解忧愁
随着LED照明领域的发展,其控制方法也在逐步提高。而PWM技术利用数字输出来对模拟电路进行控制的优点被应用于众多领域。本文简要介绍了基于SE8510设计的 反激 隔离 电源 在采用单片机产生PWM波来控制LED亮度的方法的同时,解决 MCU 的供电问题,同时介绍了一些控制方案,调节输出电流以及调节LED色温和亮度等。 1.基于SE8510的反激式隔离电源设计 图1是SE8510 反激 式隔离电源系统原理图,SE8510是离线式隔离原边控制反激LED驱动控制IC。SE8510使用了一个坚固的高压隔离工艺能够承受一个输入电压达450 v的冲击,具有8-450V的宽输入电压范围。因此SE8510可以通过主线输入电压直接驱动,简化变压
[电源管理]
SE8510反激隔离电源设计帮助<font color='red'>MCU</font>供电解忧愁
基于AT89S51的单片机无线双显示抢答器C代码
#include REG51.h #include STRING.H /****************************************************************** * 自定义Macro *******************************************************************/ //编码的均为反向编码 #define CLEAR 0x7f //定义清空的反码 #define LED_BEGIN 0x01 // 定义开始时数码管的显示 #define LED_FOUL 0x38 // 犯规后显示
[单片机]
51单片机(二十九)—— 矩阵键盘输入实验
一、矩阵键盘原理介绍 在之前的文章中,我们介绍过独立按键的使用,独立按键需要每个按键使用一个IO口进行读取,如果按键比较多,对IO资源的占用比较多。使用矩阵键盘,并采用扫描的方式对按键进行读取是解决按键多的一个有效办法。采用矩阵按键的方式就可以有效的节省I/O资源。4*4的矩阵键盘只需要8个I/O口进行采集。6*6的矩阵键盘只需要12个I/O口就可以采集。 本实验的硬件电路是一个4X4的矩阵键盘。矩阵键盘的原理图如下图所示。 由原理图可以看出J23的1~4与矩阵键盘的每一行相连。5~8与矩阵键盘的每一列相连。每一列上设置了上拉电阻。矩阵键盘扫描时,令J23的1~4中的一个为低电平,如果相应的行有按键按下,则J23的5~8中
[单片机]
51<font color='red'>单片机</font>(二十九)—— 矩阵键盘输入实验
实时单片机通讯网络中的内存管理
      摘要:为提高单片机通讯的实时性,采用了动态的内存管理方法,并将其应用到AUTO 2000DCS系统中,获得了满意的效果。      关键词: 动态分区 静态分区 最先适应法 内存表      在AUTO 2000 DCS系统中,我们采用了单片机实时通讯网络.这是一种具有不确定控制站监控的主从式总线网络.大致的工作过程是网络系统上电,各站点进行控制权争夺确立控制站和非控制站;控制站轮询各站点,被轮询的站点若有数据发送即成为主站,执行主机/从机的通讯;通讯结束后(无论成功与否)主站将控制权归还给控制站;控制站然后轮询下一个站点,周而复始。        为了提高通讯效率,采取了
[应用]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved