众所周知,嵌入式编程通常与硬件离不开关系。而单片机开发版对于程序员而言正如将军的配剑一般重要。

但是,开发版的价格少则数十多则上板,并且我们似乎也没有办法随身携带。那么有没有什么方法能够利用电脑仿真实现单片机开发呢?

本期我们要介绍的软件是Protues,一款应用广泛的单片机仿真软件。

1.软件下载安装与破解

首先我们可以去Protues的官网下载安装包也可以后台私信我  Protues  使用百度网盘进行安装与破解。

导入我们的汉化包和破解补丁,我们就可以享受Protues专版啦,需要注意的是这里我们推荐使用Protues8.0以上版本的,相较于7,Protues8具有更加丰富的元件库以及更好的用户体验。例如我们常用的单总线温湿度传感器DHT11传感器并没有包含在Protues7的元件库中,而Protues8的元件库中则是包含着这款元器件。

2.添加元器件

创建工程应该不用教吧

4.编写示例代码

我们打开我们的Keil5(没使用过的同学可以上网搜一下教程后续也会出相关的文章),选择我们的芯片AT89C52。

右键添加51单片机的头文件,即可开始我们的编程。

首先第一步我们需要写上我们的主函数main,需要在main函数中加入while(1)使其构成一个死循环,否则单片机运行一遍程序后将不再运行。

之后我们需要定义我们的延时函数,延时函数的原理是利用单片机执行一次指令需要一定周期的时间,因此我们让程序执行一定量的次数,即可实现循环。


#include 
void delayms(unsigned int x)
{
  unsigned char i;
  while (x--)
  {
    for (i = 0; i < 120; i++);
  }
}

void main()
{
  
}

     

51单片机有许多引脚,我们使用51单片机特有的类型sbit来定义我们最开始仿真图中连接LED灯所使用的引脚。

sbit LED = P1 ^ 1 ;

之后我们只需要控制该变量的0或者1即可实现单片机io的高低电平状态从而实现控制LED灯的亮灭。

具体代码如下:

#include 

sbit LED = P1 ^ 1 ;

void delayms(unsigned int x)
{
  unsigned char i;
  while (x--)
  {
    for (i = 0; i < 120; i++);
  }
}

void main()
{
  LED = ~LED;
  delayms(500);
}


     


点击对应的按钮,在设置中生成HEX文件(机器码)而后点击编译,这样子就可以在工程目录生成HEX文件,我们之后双击仿真图中的单片机,导入我们的HEX文件,就可以看见LED灯闪烁啦。

嘉立创PCB

还没有评论,抢个沙发!