使用Proteus进行51程序设计和仿真
1. 绘制原理图
1) 添加元件
在keyword中搜索并添加添加AT89C51.LED-YELLOW,RES零件。
2) 摆放元件
(1)左击元件列表窗内的AT89C51芯片,然后在原理图编辑窗口内左击摆放。
(2)左击元件列表内的LED-YELLOW,再点击 旋转按钮 ,在原理图编辑框内摆放LED灯8个。
(3)再按照(2)的步骤依次摆放8个电阻,左键双击”10K“,弹出修改值的对话框,将10K修改为300,以至于让LED更亮。
(4)拉一条主线(左击一下起点,让后移动鼠标,然后双击一下终点,即可拉一条主线)
(5)连接管脚。(左击一下起点,左击一下终点即可连接)
(6)点击终端接口→选择POWER,放置电源,然后左键双击电源图标,修改为VCC,再点击OK。
(7)使用LBL为支线标记编号,连接到主线的支线,需要对支线进行编号才能正常连接。
(8)如此,LED流水灯原理图就制作完成。
2.编写51程序
1)创建一个工程
(1)打开Keil软件,点击Project>>New…
(2)在搜素框中输入AT89C51,再选中AT89C51芯片,然后点击OK。
2)编写main.c文件
(1)点击左上角新建文件,再在文本框内复制粘贴51程序代码。然后保存代码为.c后缀文件。
//51单片机编程常用的头文件
#include <reg51.h>
#include <intrins.h>
//延迟函数
void delay_ms(int a)
{
int i,j;
for(i=0;i<a;i++)
{
for(j=0;j<1000;j++) _nop_();
}
}
void main(void)
{
while(1)
{
P0=0xfe;
delay_ms(50);
P0=0xfd;
delay_ms(50);
P0=0xfb;
delay_ms(50);
P0=0xf7;
delay_ms(50);
P0=0xef;
delay_ms(50);
P0=0xdf;
delay_ms(50);
P0=0xbf;
delay_ms(50);
P0=0x7f;
delay_ms(50);
}
}
(2)右键点击 Source Group 1 ,再点击 Add Existing Files to Group “Source Group 1“
(3)选中刚才创建的.c文件,点击add。
3)生成.hex文件
(1)点击魔法棒,在弹出的窗口内选择 Output ,再勾选 Create HEX File ,然后点击 OK。
(2)点击编译按钮,进行编译,编译成功并生成了两个头文件。
3.开始仿真
(1)回到Proteus软件的原理图内,双击 AT89C51 芯片后,在弹出的窗口的 Program File 一栏从刚才 keil 软件编译后的路径中添加 .hex 文件,再点击 OK 。
(2)点击调试按钮开始仿真。
结果: