51单片机(普中HC6800-EM3 V3.0)实验例程软件分析 实验二 LED闪烁

目录

前言

一、原理图及知识点介绍

二、代码分析

[知识点四:delay(u16 i)这个函数为什么i=1时,大约延时10us?](#知识点四:delay(u16 i)这个函数为什么i=1时,大约延时10us?)


前言

已经是第二个实验了,上一个实验是点亮第一个LED灯,这个实验是LED的闪烁。


一、原理图及知识点介绍

原理图与上一小节相同请参考上一小节:

51单片机(普中HC6800-EM3 V3.0)实验例程软件分析 实验一 点亮第一个LED_ManGo CHEN的博客-CSDN博客

二、代码分析

先来介绍一下工程:

下面我们就直接上代码:

cpp 复制代码
/**************************************************************************************
*		              LED闪烁实验												  *
实现现象:下载程序后D11指示灯闪烁
注意事项:无																				  
***************************************************************************************/

#include "reg52.h"			 //此文件中定义了单片机的一些特殊功能寄存器
typedef unsigned int u16;	  //对数据类型进行声明定义
typedef unsigned char u8;


sbit led=P0^0;		 //将单片机的P0.0端口定义为led

/*******************************************************************************
* 函 数 名         : delay
* 函数功能		   : 延时函数,i=1时,大约延时10us
*******************************************************************************/
void delay(u16 i)
{
	while(i--);	
}

/*******************************************************************************
* 函 数 名       : main
* 函数功能		 : 主函数
* 输    入       : 无
* 输    出    	 : 无
*******************************************************************************/
void main()
{
	while(1)
	{
		led=0;
		delay(50000); //大约延时450ms
		led=1;
		delay(50000); //大约延时450ms	
	}		
}

前面的知识点一、二、三都在前一小节:51单片机(普中HC6800-EM3 V3.0)实验例程软件分析 实验一 点亮第一个LED_ManGo CHEN的博客-CSDN博客

知识点四:delay(u16 i)这个函数为什么i=1时,大约延时10us?

下面是从MCU手册中的原话:

从上面可以看出一句汇编指令(机器周期)=12个CPU工作时钟,要想知道delay这个函数中的while语句翻译成汇编有几条汇编指令组成:

我们使用的为12MHZ的晶振,也就是一个机器周期为1us

下面我我们仿真做实验:

1、先将程序运行到while语句开头,此时系统运行时间为394us

2、再将程序运行到while语句结尾处,此时系统运行时间为401us,消耗了7us的时间,刚好执行了7条汇编指令。

3、再将程序运行到while语句开头处,此时系统运行时间为403us,共消耗了9us的时间,大概10us的样子(不是太准确)

因为不是太准确,例程中

delay(50000); //大约延时450ms

确实是用的9us来计算的延时。


现在知道单片机中的延时是怎么得出来的了吧。

相关推荐
树的枝1 小时前
【STM32】03.中断和EXTI外设
笔记·stm32·单片机·嵌入式硬件
单片机杂货铺2 小时前
【单片机毕业设计选题】基于stm32单片机儿童公路车速度检测报警
stm32·单片机·嵌入式硬件·51单片机·硬件工程·课程设计
振南的单片机世界3 小时前
看门狗硬核拆解:1.6秒不喂狗,硬件强制“掀桌子”
arm开发·stm32·单片机·嵌入式硬件
嵌入式阿蔡3 小时前
Linux_01:交叉编译与开发环境实战——从单片机跨到 Linux 的第一道坎
linux·运维·网络·单片机·嵌入式硬件·嵌入式实时数据库
NYFEA5 小时前
徕飞 FCA系列全面上新,一站式I/O扩展国产替代方案
单片机·嵌入式硬件
国科安芯6 小时前
ASL622S:把“信号失真“挡在门外的航天级运放
网络·单片机·嵌入式硬件·架构·状态模式·低轨卫星星座
XiHongShi20166 小时前
STM32H7 FLASH和SRAM标准例程
stm32·单片机·嵌入式硬件
单片机杂货铺7 小时前
【单片机毕业设计选题】基于单片机的智能牛奶保鲜箱设计
人工智能·stm32·单片机·物联网·毕业设计·课程设计
莫浅子1 天前
day01-USB架构与枚举
c++·单片机·嵌入式驱动
恒锐丰科技韩生1 天前
SS8844T|8.2‑40V 四通道独立半桥驱动 ETSSOP28 带散热焊盘 工业自动化机器人专用
嵌入式硬件·硬件工程