原创 【零基础】入门51单片机图文教程(Proteus+Keil)

2019-6-26 16:22 10030 45 3 分类: MCU/ 嵌入式 文集: 单片机

参考资料:

https://www.jianshu.com/p/88dfc09e7403

https://blog.csdn.net/feit2417/article/details/80890218

 

零、前言

  我一直认为看资料还不如先动手试试,在“做”的过程中“学”,先打下基础、建立兴趣,再戒骄戒躁好好看看书,搞明白一些常识。但是网上的教程往往都比较片面,要么给几张图、几段代码就算完事了,环境如何安装、细节小问题是怎么回事都讲的不是很详细,所以这篇文章就是要把每一步都讲的详细了,真正0基础也能看得懂、学的会,不用再去搜其他资料,真的手把手也就这个效果了。

一、准备

  1 硬件:需要有一台电脑,笔记本、台式机都行

  2 环境:请使用官方原版(不要用ghost、精简系统)的XP或WIN7,很多莫名其妙的问题都是缺少一些dll文件,所以一定要用官方原版的系统,若不想重装电脑可以使用VMware安装虚拟机。另外尽量使用32位的系统,毕竟这些软件都比较老了

  3 软件:

    1)Proteus 8.4 SP0  

      下载地址:http://www.ddooo.com/softdown/26979.htm 注意看破解方法,其中针对WIN7 X64有部分有误的地方:

      1)第七步:正确路径可能是“C:\Program Files (x86)\Labcenter Electronics\Proteus 8 Professional”,将破解包中的BIN目录覆盖到这里即可

      2)第八步:正确路径可能是“C:\ProgramData\Labcenter Electronics\Proteus 8 Professional”,将破解包中的MODELS目录覆盖到这里即可

      (不要修改默认安装位置,找不到正确路径的话可以搜索下“Proteus 8 Professional”这个关键词)

    2)Proteus 8.4 汉化包  

      下载地址:本文末尾处

    3)Keil 5       

      下载地址:http://www.ddooo.com/softdown/79273.htm 需要注意的是:

      1)使用注册机生成注册码时,因为现在Keil 5是针对ARM的所以在注册机的Target栏需选择为ARM而不是C51

    4)Keil 5 C51依赖包  

      下载地址:https://share.weiyun.com/5WSwsJv(密码:0000)

      (Keil 5是默认不支持51单片机的,但是可以通过依赖包实现,安装和使用方法:https://blog.csdn.net/feit2417/article/details/80890218)

  4 安装:按下载页面的方法安装好,如果安装过程中有什么问题,一定要注意你操作系统的版本,以及是否是原生系统

二、在proteus绘制硬件电路

  这里我们只实现最简单的功能:点亮一个LED灯

  1、打开proteus,点击首页的“新建工程”新建一个项目

  2、在新建工程向导里依次操作如下:

  1)输入项目名称、选择项目存储位置

  2)原理图:DEFAULT

  3)PCB布板设计:不创建

  4)固件:没有固件的项目

   5)点击“完成”按钮完成新项目的创建

  3、在电路图中放置我们需要的三个器件:51单片机、LED灯、电源并连线

  1)51单片机

  在界面中点击“P”(P和L代表的是元件模式)

  在元器件选择窗口中输入51单片机的型号进行搜索,关键字“C52”(51单片机的常用型号是AT89C52)。

  选择需要的型号后点击右下角的“确认”按钮,然后将其放置到电路图中即可

  2)LED

  重复前面的操作,关键字改为“LED”即可,这里选择的是“LED-YELLOW”,将LED放到单片机旁边

  3)电源

   电源在界面左侧选择“终端模式”,然后找到POWER这个元件即是电源。将电源也拖到单片机旁边

  4)连接电路

  使用鼠标将LED一端与电源连接,另一端连接单片机的P0.1,要注意LED的方向不要接反了。

 三、Keil编写控制代码

  1、启动Keil

  2、新建项目

  1)点击“Project->New μVersion Project”

  2)输入项目名称

  3)在新窗口中Search关键字“C51”,找到Atmel下的AT89C51,点击OK按钮完成项目创建

  3、添加代码文件

  1)右键“Source Group 1”

  2)点击下图中画红线的地方

  3)新弹出的窗口中选择C File,Name栏输入“main”

  4)在main.c中输入下述代码,然后保存(画红圈的地方)

  4、生成HEX文件(单片机运行使用的文件格式)

  1)右键左侧的Target按钮,选择Opention for Target 'Target 1'

  2)新弹出的窗口中选择Output选项卡,把“Creat HEX File”勾上,点击OK按钮即可(这一步是设置程序编译时要输出HEX文件)

 

  3)点击下图画红线的按钮,编译程序,注意下侧“Build Output”栏是否有提示错误,输出 0 Error即是OK了

  4)找到生成的HEX文件备用(在项目目录下的Objects目录内)

四、Proteus仿真运行

  1、导入HEX文件

  1)再次打开Proteus,右键单片机,点击“编辑属性”按钮

  2)新窗口中点击“Program File”会弹出寻找HEX文件的小窗口,找到前面生成的HEX文件

  2、点击Proteus左下角的启动按钮,开始仿真

  3、运行结果:LED灯被点亮啦!

 

五、思考

  1、为什么代码中LED=0,电源要加在LED的一侧

  实际上,代码中LED=1,电路中LED旋转180度,LED一侧接地而不是电源也可以将LED点亮。但一般不这么做,因为单片机启动时会进行初始化,初始化过程中各引脚会出现瞬间的通电、断电,如果LED一侧不接电源而接地,单片机初始化时会导致LED闪烁。

  2、代码中引用的reg52.h是什么文件

  C语言中.h是头文件,reg52.h是51单片机的通用头文件,里面是单片机的寄存器声明

六、相关资料

  看完本文你就已经学会了如何使用Proteus+Keil进行51单片机的开发啦!不过这只是最最基础的内容,后面进阶的学习还需要你多多动手,不过毛大闲已经为你准备了后续学习的必备资料。

  关注公众号“零基础爱学习”回复“51”可获得下面的资料

  1、本文所述的Proteus8安装包、Proteus8汉化包、Keil5安装包、Keil5 C51支持包

  2、上述软件安装方法的PDF文档

  3、Proteus8中文使用手册

  4、AT89C52中文说明书

  5、51单片机入门实例(仿真电路图+C代码)

   后续还会继续补充更多学习资料,敬请关注“零基础爱学习”!

 

作者: 布兰姥爷, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-3887969.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

PARTNER CONTENT

文章评论3条评论)

登录后参与讨论

wjx943_536273043 2019-6-29 20:38

分享分享

冰点1128 2019-6-29 16:10

这里好像有一个问题,那个LED灯没有加限流电阻.如果是普通的灌电流,有20MA最大.LED灯一般是3-5MA的电流.

T.b.K 2019-6-27 09:08

图挂了
相关推荐阅读
布兰姥爷 2023-04-21 23:07
跟姥爷深度学习4 从数学计算看神经网络
一、前言我们前面简单的做了一个气温预测,经过反复调试,效果还不错。实际上在这个方向上我们还可以更进一步优化,但因为我们是学习嘛,主要还是看广度而不是深度。考虑到后面要开始学习卷积网络,我们必须把更基础...
布兰姥爷 2023-04-21 23:04
跟姥爷深度学习3 神经网络的调试实操
一、前言前面我们做了一次天气预测的模型,训练的结果都还好,网络好歹是“拟合”了,但预测数据不合预期让我一直耿耿于怀。所以我又花了很长时间来研究为什么,我的理论依据明明没有问题(今日平均温度与近一周平均...
布兰姥爷 2023-04-21 23:02
跟姥爷深度学习2 TensorFlow的基本用法
一、前言前面我们浅用TensorFlow做了个天气预测,虽然效果不咋样,但算是将整个流程跑通了。这一篇我们在之前基础上对TensorFlow的一些参数进行简单介绍,在接口文件的基础上了解各参数的简单含...
布兰姥爷 2023-04-11 22:22
跟姥爷深度学习1,浅用tensorflow做个天气预测
一、前言最近人工智能、深度学习又火了,我感觉还是有必要研究一下。三年前浅学了一下原理没深入研究框架,三年后感觉各种框架都成熟了,现成的教程也丰富了,所以我继续边学边写。原教程链接:https://ww...
布兰姥爷 2023-03-29 12:41
AI为啥要用显卡
一、前言GPT的发布让AI再次热了起来,与上次阿尔法狗不同的是,现在人人都可以跟聊上几句,给它出出难题,还能调戏下。同期英伟达发布了针对AI领域的全新GPU H100,有的童鞋会疑惑,这个英伟达不是做...
布兰姥爷 2019-11-04 21:09
【零基础】使用Tensorflow实现神经网络
一、序言  前面已经逐步从单神经元慢慢“爬”到了神经网络并把常见的优化都逐个解析了,再往前走就是一些实际应用问题,所以在开始实际应用之前还得把“框架”翻出来,因为后面要做的工作需要我们将精力集中在业务...
EE直播间
更多
我要评论
3
45
关闭 站长推荐上一条 /3 下一条