LED闪烁和流水灯,调试教程,在线仿真器的使用

常用的延时方法:
软件延时(使用简单但是浪费CPU资源)、定时器延时(不浪费CPU资源),本次先使用软件延时。

LED全亮代码:

#include<reg52.h>	//引用51的头文件
void main()
{
 	P1=0;
}

整体代码闪烁

#include<reg52.h>

unsigned int i;

 void main()
 {
 	while(1)
	{
 		P1=0;
		i=65535;
		while(i--);
		P1=0xff;//单片机会将你写的数转换为二进制,也可以写十进制255,等同于二进制11111111,将灯熄灭。
		i=65535;
		while(i--);
 	}
 }

循环移位函数:()

字符型循环左移: _crol_
字符型循环右移: _cror_
a=0xFE;//11111110
b=_corl_(a,1)//11111101
循环左移是把最高位移到最低位上

左右移运算符:(<<>>)

a=0xFE;//11111110
b=a<<1;//11111100
左移运算符是把最高位移除最低位补零

流水灯代码

#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
void delay(uint z)
{
	uint x,y;
	for(x=z;x>0;x--)
		for(y=114;y>0;y--);

}
uchar temp;
void main()
{
	temp=0xfe;
	P1=temp;
	//delay(100);
 	while(1)
	{
 		temp=_crol_(temp,1);
		P1=temp;
		delay(200);	
 	}
}

调试过程演示

首先改晶振频率将24改为11.0592(根据自己的情况):

在这里插入图片描述
点击debug进行调试:

在这里插入图片描述
出现的界面右上部分是汇编代码(可关闭),左边一列中sec是程序运行的时间,下方是C代码:

在这里插入图片描述
这里我的流水灯是P1口,所以选择P1查看在程序运行中P1的值:

在这里插入图片描述
点击这个图标可以进行单步调试:
(刚开始程序没有运行,所以P1各位都是高电平)

在这里插入图片描述
点击这个图标将程序重置重新运行:
在这里插入图片描述
若进入循环可点击下方的图标跳出循环:

在这里插入图片描述

然后可以点击右下角的watch1,然后输入变量名,可在程序运行中查看变量值的变化:

在这里插入图片描述
右击变量的值可修改变量的进制显示:
在这里插入图片描述然后就可以开始调试了!

在线仿真器的使用:
在这里插入图片描述在线仿真器可以在调试过程中让代码逐行运行的现象展现出来可提高调试的效率。
这个仿真器不仅可以做一个硬件仿真器(内部储存空间大,运行速度快),还是一个高速单片机, 比STC89C52单片机运行速度快大概12倍,这种单片机也叫做1T(一个时钟周期就是一个机器周期)单片机, 而STC89C52是12个时钟周期为一个机器周期。

下面介绍如何将它作为在线仿真器使用:

将STC89C52的芯片取下来换为在线仿真器(看清楚方向,对应IO对应好)。

然后进行仿真设置:

点击Keil仿真这个选项卡:
在这里插入图片描述

单击添加STC仿真器到Keil中去:

在这里插入图片描述

然后选择Keil的安装路径,只选择文件夹,不用展开:

在这里插入图片描述

出现下图表示添加成功点击确定:

在这里插入图片描述

然后点击将IAP15L2K61S2设置为仿真芯片,提示正在检测单片机,等待完成即可:

在这里插入图片描述
然后打开Keil然后按照下图操作

然后点击STC展开,选择STC15F2K60S2:

在这里插入图片描述

然后点击同一窗口中的Debug勾选Use(这个是选择硬件仿真方式),展开下拉菜单找到STCMontor 51 Driver,然后点击settings选择自己的端口号,这就OK了:

在这里插入图片描述

然后编译,(若单片机有自动烧录的功能,记得将跳线帽拔掉)可以试一下点击调试,可见硬件上的小灯是和代码对应的,执行一步代码LED灯就会有相应的变化。
用完后若想使用STC89C52记得把Keil的配置改回来:
在这里插入图片描述
在这里插入图片描述
如何将它作为一个高速单片使用:
选择Keil的安装路径,上面已经选择过了就不用再次选择了,将IAP15L2K61S2设置为仿真芯片,这个每用一次都得设置。(记得将拔下的跳线帽插回去)

然后点击检测MCU选项:
在这里插入图片描述然后就可以将它作为单片机使用(这里可以配置晶振频率),打开程序文件…,若将将STC89C52换回,点击检测MCU选项,就可以正常的使用了。

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值