用 proteus 对 8051 及其外设进行仿真
首先,在 proteus 中建立一个空项目,然后添加我们需要的器件
点击右侧栏中的P
按钮,搜索 🔍 80C51
, 选择搜索结果第一个,点击OK
返回工作区,在工作区按下鼠标左键即可添加这个器
然后如此添加红色发光二极管led-red
、电阻res
,双击电阻更改阻值为100
(proteus 中 led 亮度并不是只有亮与不亮两种,而是与流过其的电流有关,改小电阻会使发光现象更明显),将 led 与电阻串联起来,复制得到总共 8 份,led 采用共阴极 🌑 接法,阴极接到ground
🌏 上,ground
无法通过搜索得到而是要在左边栏 👈 获取
阳极 ☀️ 依次接到单片机的 21~28 号引脚
这样,器件布局工作就完成了
在 keil 中新建项目,select device
时选择T80C51
,如果你没有51单片机的软件包,可以在keil官网选择c51进行下载,下载后直接安装再重启软件即可
项目建好后,新建一个文件,编写如下代码
#include <reg51.h>
void delay500ms(void){
unsigned char a,b,c;
for(c=23;c>0;c--){
for(b=152;b>0;b--){
for(a=70;a>0;a--)
{
}
}
}
}
void main(){
unsigned char count = 0;
P2 = 0X01;
while(1)
{
P2 = P2 << 1 ;
if (P2 == 0x00){
P2 = 0x01;
}
delay500ms();
}
}
保存为main.c
在项目的Source Group 1
上右击 -> Add Existing Files...
然后选择项目目录下的main.c
文件,这样我们就将这个文件纳入我们的项目之中了
接下来是编译前的最后一步,点击工具栏中长得像魔棒的这个按钮
先在Target
栏将晶振调整为12MHz
, 再到Output
栏把Creat HEX File
勾上
设置好,点击ok
返回主页面,点击工具栏左侧的Translate
和Build
进行编译和构建,如果成功,可以看见信息栏输出信息,提示已创建 hex 文件
这样我们就得到了一个可以直接在单片机上运行的程序文件,接下来我们将它“烧录”到模拟单片机上
再次打开 proteus 界面,在单片机上双击,在器件编辑页面中挂载刚刚生成的 hex 文件,并确认时钟频率是 12MHz(之前在 keil 中设置的是何值,此处就应是何值)
最后,点击运行按钮,即可在计算机上 💻 直接模拟单片机程序的运行效果