一、Proteus安装
- 安装包下载
更换存储地址,直接开始安装
二、熟悉Proteus
- 创建项目
- 自定义工程名称,存放路径,新建项目,next
- 创建原理图
- 创建PCB
- 后面直接点next
- 选择芯片
- Finish创建成功
源码窗口
PCB
原理图
三、C51程序设计仿真
1. 绘制原理图
- 添加元件
需要的元件包括有:AT89C51, LED-YELLOW(8个),RES(电阻8个,300欧)
一条总线(单击起点,鼠标拖动,双击终点即可添加)
电源:
- 连接
因为是通过总线进行链接的,所以需要给每条对应支线进行标记。即P0对P0,P1对P1;
2. 程序编写
需要借助Keil C51,下载地址为https://www.keil.com/demo/eval/c51.htm。
MDK和C51不是同一个东西。MDK是用于stm32,C51是用于51单片机的。但是两者可以兼容。可以参考这个进行更改:https://zhuanlan.zhihu.com/p/390070604
如果后续需要下载历史版本的keil可以参考这篇文章【Keil科普教程 | Keil历史版本的几种下载方法-哔哩哔哩】 https://b23.tv/LTaEjUY
-
1)、创建新项目Project->New *Vision Project…
选择之后点击ok,弹窗选择是 -
接下来新建main.c文件,编写代码File->New
#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_(); //1ms } } // 改变P0寄存器的值,控制灯亮灭 void main(void) { while(1) { P0=0xfe; // 二进制11111110,表示P0口的最低位为低电平,其余高电平,从而使得灯亮 delay_ms(50); P0=0xfd; //11111101 delay_ms(50); P0=0xfb; //11111011 delay_ms(50); P0=0xf7; //11110111 delay_ms(50); P0=0xef; //11101111 delay_ms(50); P0=0xdf; //11011111 delay_ms(50); P0=0xbf; //10111111 delay_ms(50); P0=0x7f; //01111111 delay_ms(50); } }
-
ctrl+s保存,文件名为main.c
-
使用魔法棒,输出hex文件:
-
编译
-
结果:
3、回到Proteus执行
点击AT89C51,选中刚才生成的hex文件,ok。
运行