proteus仿真AT89C51单片机测试试验[无须keil](1)
前面,我们测试了在proteus下仿真arduino的试验。有伙伴问到proteus下的单片机仿真应该如何搭建环境(咱们这里不讲解51单片机的知识,侧重讲仿真环境的搭建),这里我们就来将详细步骤陈述一下。
一、proteus的器件选择与电路
器件选择,主要是AT89C51,电容,晶振,电阻,单刀开关,led灯,BOM清单如下:
元器件连接图如下,连接完成后记得在Design下面设置一下电源
将使用默认的电源连接勾上,如下图,否则就有可能会报错
接下来我们来编写C代码,代码其实很简单,但我们必须首先配置好环境,否则不能编写代码,首先右键单击51芯片,选择右键菜单中的“edit source code”,进入新固件工程对话框,如下图:
点击编译器按钮进入编译器配置对话框,将我们使用的单片机编译器进行配置:
请伙伴们注意,这里我们采用Keil for 8051编译,那么我们就必须在上述图中写入我们安装的keil的安装目录,然后一定记得点击下面的check按钮,这样才能配置成功。
配置成功后,点击ok则可以直接进入代码编辑界面,并且系统自动为我们配置好了头文件,这个比keil更加方便(如果在keil中必须手动配置头文件以及添加主程序的c文件),如下图:
我们为这个程序添加一个延时程序,代码很简单:
void delay(int x) { unsigned char i=x; unsigned char j=x; while(--i); while(--j); }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
接下来,我们就可以在主程序中调用了,完整的程序如下:
#include <reg51.h>
#define LED_pinP1
void delay(char x);
void main()
{
while(1)
{
LED_pin=0x00;
delay(1000);
LED_pin=0xC;
delay(2000);
}
}
void delay(int x)
{
unsigned char i=x;
unsigned char j=x;
while(--i);
while(--j);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
这里的LED_pin的设置我们可以根据电路图来设置,很显然,我们将LED接在了P3的3、4号管脚上了,那么我们要使LED灯亮,则按照二进制的配置应该是00001100,置为高电平1为灯亮,所以我们将这个数字表述为16进制就是0xc了。
至此,我们可以编译运行了,你看到下图的编译成功的提示,说明我们可以运行了
编译成功后,我们双击我们的51芯片,则会发现,编译后系统自动为我们配置好了运行编码文件(这里的文件不是hex而是omf)
点击下方的运行,那么我们的两个LED灯就可以闪烁起来了。就那么简单!就那么容易!真是感叹啊,很早以前我们使用proteus6的时候要是有这么简单这么便利的功能该多好啊!现在电路仿真、编码都可以在一个软件中完成。
可能有小伙伴们会问,你那两个单刀开关有什么用?是的,这里还没有用起来,下一篇博文,我们将利用他们来对LED进行简单的控制。请关注下面的博文更新。