使用Proteus完成一个简易的跑马灯

proteus绘制图形

打开proteus,在左边工具栏处点击p进入搜索界面,并在搜索界面输入AT89C51选择第一个作为本次实验的芯片。在这里插入图片描述
再通过搜索获取LED灯并与芯片相连,具体效果如下:
在这里插入图片描述
唯一需要注意的点为LED灯的方向问题,LED为单向导通,连接时根据需要调换一下LED灯的方向

keil进行C语言编程并将其转换为hex文件

在进行代码编写之前先进行设置使得之后编程完成后自动保存已编译C语言的hex文件,方便之后proteus使用
在这里插入图片描述
勾选Create HEX File选项,完成后点击OK。之后单击菜单栏里project创建项目文件命名随意
在这里插入图片描述
在下一个提示页面中选择AT89C51型芯片在这里插入图片描述单击OK完成项目文件的创立,之后单击file创建test文件,并在其输入下列代码。将其保存为C语言形式并加入工程文件之中

#include <reg51.h>                //包含头文件 
#include <intrins.h>     //包含移位库函数头文件
void delay(void)      //延时函数 
{
    
     
 unsigned char i,j; 
 for(i = 0;i < 252;i++) 
  for(j = 0;j < 252;j++); 
}
void main(void) 
{
    
     
  unsigned char i; 
 P2 = 0x01;     //P2口初始化
 while(1) 
 {
    
     
   for(i = 0;i < 7;i++) 
  {
    
     
    P2 = _crol_(P2,1);    //P2端口向左循环移动1位 
   delay();   
  }
  for(i = 0;i < 7;i++) 
  {
    
     
    P2 = _cror_(P2,1);    //P2端口向右循环移动1位 
   delay();   
  } 
 } 
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
至此,完成了在keil上进行代码的编写

实验结果

在proteus上将在keil中编写的代码的hex文件导入到芯片中
在这里插入图片描述最后得出的效果图如下所示

在这里插入图片描述
由于技术有限,不能以GIF图展示效果,大致为灯会逐一亮起从左至右循环亮起

本篇文章参考https://blog.csdn.net/tian_maer/article/details/71435894

猜你喜欢

转载自blog.csdn.net/java_creater/article/details/108958752