【嵌入式系统】Proteus电路仿真C51流水灯程序

一、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。
在这里插入图片描述
运行
在这里插入图片描述

4、运行效果图

在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值