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

面包板社区 2019-06-30 11:00


零、前言


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


一、准备


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


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


3 软件:


1)Proteus 8.4 SP0 


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


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


第八步:正确路径可能是“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 需要注意的是:使用注册机生成注册码时,因为现在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单片机的通用头文件,里面是单片机的寄存器声明。


参考资料:

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

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


作者:毛大闲, 来源:面包板社区

链接:https://www.mianbaoban.cn/blog/uid-me-3887969.html

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




------------------------

与工程师一起改变世

面包板社区 面包板社区——中国第一电子人社交平台 面包板社区是Aspencore旗下媒体,整合了电子工程专辑、电子技术设计、国际电子商情丰富资源。社区包括论坛、博客、问答,拥有超过250万注册用户,加入面包板社区,从菜鸟变大神,打造您的电子人脉社交圈!
评论
  • 当前,智能汽车产业迎来重大变局,随着人工智能、5G、大数据等新一代信息技术的迅猛发展,智能网联汽车正呈现强劲发展势头。11月26日,在2024紫光展锐全球合作伙伴大会汽车电子生态论坛上,紫光展锐与上汽海外出行联合发布搭载紫光展锐A7870的上汽海外MG量产车型,并发布A7710系列UWB数字钥匙解决方案平台,可应用于数字钥匙、活体检测、脚踢雷达、自动泊车等多种智能汽车场景。 联合发布量产车型,推动汽车智能化出海紫光展锐与上汽海外出行达成战略合作,联合发布搭载紫光展锐A7870的量产车型
    紫光展锐 2024-12-03 11:38 121浏览
  • 最近几年,新能源汽车愈发受到消费者的青睐,其销量也是一路走高。据中汽协公布的数据显示,2024年10月,新能源汽车产销分别完成146.3万辆和143万辆,同比分别增长48%和49.6%。而结合各家新能源车企所公布的销量数据来看,比亚迪再度夺得了销冠宝座,其10月新能源汽车销量达到了502657辆,同比增长66.53%。众所周知,比亚迪是新能源汽车领域的重要参与者,其一举一动向来为外界所关注。日前,比亚迪汽车旗下品牌方程豹汽车推出了新车方程豹豹8,该款车型一上市就迅速吸引了消费者的目光,成为SUV
    刘旷 2024-12-02 09:32 131浏览
  • TOF多区传感器: ND06   ND06是一款微型多区高集成度ToF测距传感器,其支持24个区域(6 x 4)同步测距,测距范围远达5m,具有测距范围广、精度高、测距稳定等特点。适用于投影仪的无感自动对焦和梯形校正、AIoT、手势识别、智能面板和智能灯具等多种场景。                 如果用ND06进行手势识别,只需要经过三个步骤: 第一步&
    esad0 2024-12-04 11:20 88浏览
  • RDDI-DAP错误通常与调试接口相关,特别是在使用CMSIS-DAP协议进行嵌入式系统开发时。以下是一些可能的原因和解决方法: 1. 硬件连接问题:     检查调试器(如ST-Link)与目标板之间的连接是否牢固。     确保所有必要的引脚都已正确连接,没有松动或短路。 2. 电源问题:     确保目标板和调试器都有足够的电源供应。     检查电源电压是否符合目标板的规格要求。 3. 固件问题: &n
    丙丁先生 2024-12-01 17:37 109浏览
  • 光伏逆变器是一种高效的能量转换设备,它能够将光伏太阳能板(PV)产生的不稳定的直流电压转换成与市电频率同步的交流电。这种转换后的电能不仅可以回馈至商用输电网络,还能供独立电网系统使用。光伏逆变器在商业光伏储能电站和家庭独立储能系统等应用领域中得到了广泛的应用。光耦合器,以其高速信号传输、出色的共模抑制比以及单向信号传输和光电隔离的特性,在光伏逆变器中扮演着至关重要的角色。它确保了系统的安全隔离、干扰的有效隔离以及通信信号的精准传输。光耦合器的使用不仅提高了系统的稳定性和安全性,而且由于其低功耗的
    晶台光耦 2024-12-02 10:40 134浏览
  • 概述 说明(三)探讨的是比较器一般带有滞回(Hysteresis)功能,为了解决输入信号转换速率不够的问题。前文还提到,即便使能滞回(Hysteresis)功能,还是无法解决SiPM读出测试系统需要解决的问题。本文在说明(三)的基础上,继续探讨为SiPM读出测试系统寻求合适的模拟脉冲检出方案。前四代SiPM使用的高速比较器指标缺陷 由于前端模拟信号属于典型的指数脉冲,所以下降沿转换速率(Slew Rate)过慢,导致比较器检出出现不必要的问题。尽管比较器可以使能滞回(Hysteresis)模块功
    coyoo 2024-12-03 12:20 150浏览
  • 作为优秀工程师的你,已身经百战、阅板无数!请先醒醒,新的项目来了,这是一个既要、又要、还要的产品需求,ARM核心板中一个处理器怎么能实现这么丰富的外围接口?踌躇之际,你偶阅此文。于是,“潘多拉”的魔盒打开了!没错,USB资源就是你打开新世界得钥匙,它能做哪些扩展呢?1.1  USB扩网口通用ARM处理器大多带两路网口,如果项目中有多路网路接口的需求,一般会选择在主板外部加交换机/路由器。当然,出于成本考虑,也可以将Switch芯片集成到ARM核心板或底板上,如KSZ9897、
    万象奥科 2024-12-03 10:24 86浏览
  • 11-29学习笔记11-29学习笔记习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记
    youyeye 2024-12-02 23:58 88浏览
  • 遇到部分串口工具不支持1500000波特率,这时候就需要进行修改,本文以触觉智能RK3562开发板修改系统波特率为115200为例,介绍瑞芯微方案主板Linux修改系统串口波特率教程。温馨提示:瑞芯微方案主板/开发板串口波特率只支持115200或1500000。修改Loader打印波特率查看对应芯片的MINIALL.ini确定要修改的bin文件#查看对应芯片的MINIALL.ini cat rkbin/RKBOOT/RK3562MINIALL.ini修改uart baudrate参数修改以下目
    Industio_触觉智能 2024-12-03 11:28 104浏览
  •         温度传感器的精度受哪些因素影响,要先看所用的温度传感器输出哪种信号,不同信号输出的温度传感器影响精度的因素也不同。        现在常用的温度传感器输出信号有以下几种:电阻信号、电流信号、电压信号、数字信号等。以输出电阻信号的温度传感器为例,还细分为正温度系数温度传感器和负温度系数温度传感器,常用的铂电阻PT100/1000温度传感器就是正温度系数,就是说随着温度的升高,输出的电阻值会增大。对于输出
    锦正茂科技 2024-12-03 11:50 134浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦