参考资料:

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单片机的通用头文件,里面是单片机的寄存器声明

【零基础】入门51单片机图文教程(Proteus+Keil)相关推荐

  1. keyshot7工业产品零基础入门到精通自学教程视频全套设计课程

    keyshot7工业产品零基础入门到精通自学教程视频全套设计课程9205 课程内容-玛丽圈资源网 --/A21 keyshot7工业产品零基础入门到精通自学教程视频全套设计课程/ ├──素材 | └─ ...

  2. 零基础学习51单片机

    零基础学习51单片机 前言 51单片机是一款非常经典的8位单片机,广泛应用于各种嵌入式系统和电子产品中.本文将从零开始,以简明易懂的方式介绍51单片机的基本原理.基本语法和应用. 什么是单片机 单片机 ...

  3. 2021最新零基础入门—网站建站教程(新手必备)

    前言 相信很多新用户会有这样的疑惑,我要做个网站,到底要使用什么产品,如何能快速完成网站建站呢?搭建网站有两种选择,一种是直接购买建站模板,另一种则是自行建站.两类建站方式对比如下: 建站方式 优势 ...

  4. 零基础入门—网站建站教程(新手必备)

    前言 相信很多新用户会有这样的疑惑,我要做个网站,到底要使用什么产品,如何能快速完成网站建站呢?搭建网站有两种选择,一种是直接购买建站模板,另一种则是自行建站.两类建站方式对比如下: 建站方式 优势 ...

  5. 表格制作教程入门_广告制作技术全套教程 电商海报设计零基础入门 视频流量运营教程...

    广告制作技术全套教程 https://pan.baidu.com/s/1AeMp3Yuao676QA-hyRpvsw 提取码: 7i1p 电商海报设计零基础入门https://pan.baidu.co ...

  6. 零基础入门WordPress安装详细教程(图文)

    概述 如果还有不了解宝塔面板怎么使用的小伙伴,可以看下我总结的系列教程,保证从新手变老鸟: [宝塔面板精选教程汇总] 宝塔面板教程(1)基于云服务器搭建宝塔面板教程最全详解 宝塔面板教程(2)宝塔面板 ...

  7. 从零学习入门51单片机和STM32单片机

    ❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分:建议先学习51单片机,其是STM32等高级单片机的基础:这样再学习STM32时才能融会贯通. ☀️ 专栏适 ...

  8. 零基础入门c语言免费教程,C语言零基础急速入门免费教程不定期更新

    很多粉丝问我陈老师为什么你会教c语言和java语言? 因为名字中"陈"字的汉语拼音中"chen"="陈",和"c"语言是 ...

  9. 零基础入门—网站建站教程

    相信很多新用户会有这样的疑惑,我要做个网站,到底要使用什么产品,如何能快速完成网站建站呢?搭建网站有两种选择,一种是直接使用模版建站工具,另一种则是自行建站.两类建站方式对比如下: 模版建站方式优势购 ...

  10. 快速入门-Excel2013零基础入门视频课程-图文解析-15定位功能 制作工资条

    [说明]原视频基本不配说明文档,此文档为 手敲+截图 而来 , 缺少校对时间 , 有问题请留言或发信息 , 我会及时更正的,谢谢 ! [基本数据] 定位条件 [1]调出定位的方法1 [2]调出定位的方 ...

最新文章

  1. python2和python3 在windows下公用 导致python2 pip无法使用 报ssl的错误
  2. R语言ggplot2可视化:可视化堆叠的直方图、添加每个分组的每个bin的计数标签、在堆叠直方图的bin中的每个分组部分添加数值标签
  3. php基础:switch cass控制结构 代替if
  4. IOS CALayer
  5. 开始学习Solaris
  6. MFC CListCtrl 取消选中
  7. Leetcode题库 15.三数之和_0(双指针 C实现)
  8. 论文总结:Fast and Light Bandwidth Testing for Internet Users(21‘ NSDI)
  9. GIS实用小技巧(一)-如何将RTK测量数据导入CAD中?
  10. 基于LD3320的嵌入式语音识别系统设计
  11. 【文末福利】聊天机器人的几种主要架构实现
  12. 怎么在ASP.NET 2.0中使用Membership (转载)
  13. 威纶通触摸屏与仪表通讯_用博途建立西门子触摸屏和S7300PLC的通讯
  14. 离线环境下火狐浏览器Firefox完全信息迁移
  15. GPU显存占满利用率GPU-util为0
  16. 3d 饼环图 echarts实现
  17. Vue3.0基础教程:条件渲染:v-if v-else-if v-if;列表渲染:v-for
  18. linux中的ubiq命令用途,Linux uniq 命令
  19. highchars蜘蛛网图---多层蛛网---最大值在最外层网
  20. Bitvise SSH Client目标计算机积极拒绝,无法连接

热门文章

  1. 有关Idea的Invalidate Caches/Restart
  2. 回溯法(国际象棋八皇后放入棋盘)
  3. Wireshark抓不到vlan tag问题解决
  4. 苹果应用商店反垄断案败诉,市值蒸发500多亿美元;脸书杠上了土耳其政府;Nutanix 扩展多云产品组合……...
  5. word2019关闭时无响应
  6. python自动语音电话_用 Python 实现自己的智能语音助理(百度语音 + 图灵机器人)...
  7. EAS BOS序时簿界面排序
  8. VBA单元格、工作表、工作簿
  9. Navicat 15 premium手动备份数据库步骤
  10. 2018PS cc版本最新最实用学习笔记