51单片机最小系统的制作

51单片机最小系统的制作本文将介绍如何自制一个51单片机最小系统及一些附加模块。最终制成的系统将具有烧录程序,运行程序等功能。先放两张张最终成品如下 ​                                        (正面)                  (反面–锡接走线法)提醒读者,下载口的布局有点

大家好,又见面了,我是你们的朋友全栈君。

本文将介绍如何自制一个51单片机最小系统及一些附加模块。最终制成的系统将具有烧录程序,运行程序等功能。


先放两张张最终成品如下


51单片机最小系统的制作 ​
                                                            (正面)


51单片机最小系统的制作
                            (反面–锡接走线法)


提醒读者,下载口的布局有点不合理,请调至第五部的测试下载模块处查看!!!!!


好了,接下来正式进入制作环节:


第一步:仿真


在win7下采用Proteus 7 Professional绘制仿真原理图,具体绘制操作参考:用proteus绘画51单片机最小系统


为了测试所需,再绘制测试模块,如下:
51单片机最小系统的制作
电阻左端分别接单片机的21、22脚,即P2.0、P2.1端口


绘制完成后,为了仿真,再采用Keil uVision4编写测试代码并生成hex文件。具体操作参考文件:
单片机类型015STC90C516RD+A9T15528的代码编写,烧录



测试代码如下:
  1. #include <REGX52.H>      //预处理命令
  2. void main(void)     
  3. {

  4.     unsigned int a;     
  5.     while(1)
  6.    {        
  7.        P2_0 = 0;      //设P2.0口为低电平,点亮LED
  8.        for (a=0; a<50000; a++);  //这是一个循环,起延时作用
  9.        P2_0 = 1;      //设P2.0口为高电平,熄灭LED
  10.        for (a=0; a<50000; a++);
  11.            P2_1 = 0;      //设P2.1口为低电平,点亮LED
  12.        for (a=0; a<50000; a++);
  13.        P2_1 = 1;      //设P2.1口为高电平,熄灭LED
  14.        for (a=0; a<50000; a++);
  15.    }
  16. }

复制代码

准备工作做完了,接下开始仿真,整个仿真原理图如下:

51单片机最小系统的制作


双击单片机,出现如下界面:
51单片机最小系统的制作


单击上图中Program File栏的文件夹图标 51单片机最小系统的制作 ,进行选择测试代码hex文件,找到需要烧录单片机的hex文件,打开。51单片机最小系统的制作



为了更好的查看线路中电流的流向,建议在Proteus中点击system——set Animation options——在对话框的Animation options 区域选择第三和第四项。


接下来就是查看下仿真结果了,


单击图片中第一个按钮开始仿真 51单片机最小系统的制作 单击图片中第四个按钮结束仿真。
仿真结果为,两个LED,一个亮、灭,另一个亮灭,如此循环;同时可以看见电流流向的箭头。


第二步:准备元器件
51单片机最小系统的制作


第三步:绘制焊接图
原理图和实物焊接图管脚布局不一样,所以需要先布好局,元器件布局如下图:


51单片机最小系统的制作


走线图(未画出单片机底座与附近排针接通)如下:


51单片机最小系统的制作



第四步:焊接
绘制好焊接图后,照着图一部分一部分焊接,就可以了。下图是我采用锡接走线法焊接好后的反面图:


切记不要焊短路了!!
第五步:实物测试
1.测试电源模块


给DC插座上电,反复按自锁开关,查看自锁开关附近的LED以及下载口附近的两个LED是否亮灭。


若此处发现故障,则应立即排除故障再进行下一步。


2.测试下载模块


用杜邦线连接USB_TTL的GND、RXD、TXD、5V0,如下图:


51单片机最小系统的制作


杜邦线的另一端连接下载口的顺序从上往下为5V0、TXD、RXD、GND(连接过程中线不会有交叉),如下图:


51单片机最小系统的制作


打开烧录软件,进行烧录。具体操作参考:单片机类型015STC90C516RD+A9T15528的代码编写,烧录


拔出USB_TTL,给DC插座上电,即可看到接P2.0和P2.1口的LED,P2.0亮-灭-P2.1亮-灭,如此循环。


若此处发现故障,则应立即排除故障再进行下一步。


注:下载模块的+-布局有点不合理,下载的时候不接GND,效果更好!!!!


3.测试复位模块


在上一步程序烧录成功后运行程序,待P2.1亮时,按下按钮,可看见P2.0立即亮起。


若此处发现故障,则应立即排除故障。



结语:第一次制作单片机最小系统,查阅了很多零散资料,最终才做出了自己的第一块51单片机最小系统。
这次经历是值得写下来的,毕竟做这个东西做了好几天,写出来供其他人参考参考。
感谢那些资料的贡献者。


51单片机最小系统的制作 
下载:
51单片机最小系统的制作 51单片机最小系统制作.zip (1.95 MB, 下载次数: 36) 


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/152228.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【软件工程】——详细设计说明书「建议收藏」

    【软件工程】——详细设计说明书「建议收藏」1引言1.1编写目的该文档在概要设计的基础上,进一步的细化系统结构,展示了软件结构的图标,物理设计、数据结构设计、及算法设计、详细的介绍了系统各个模块是如何实现的,包括涉及到的算法,逻辑流程等。预期的读者:程序员1.2背景a. 待开发软件系统的名称:机房收费系统b. 项目的任务提出者:米新江教授c. 项目的开发者:齐智d. 项目的用户:廊坊师范学院全体在职员工及学生e. 运行该软…

    2022年6月12日
  • Normalized Mutual information

    Normalized Mutual information在写论文做数据测试时有用到一个nmi(normalizedmutualinformation)评价聚类的一种方法,不是很清楚,然后上网找了一下资料。首先在理解nmi前,先说说mutualinformation这个东西。我们先举个例子:比如说,标准结果是大圆里面的叉叉圈圈点点,上图呢是我们算法聚类出来的结果,那么如何来看我们算法的聚类效果呢,如何计算呢?我们把上图中的图形用字母来表示…

    2022年9月2日
  • 快速双边滤波源码「建议收藏」

    %FastBilateralFilterUsingRaisedCosines%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%inImg:grayscaleimage%sigma1:widthofspatialGaussian%sigma2:widthofrangeGaussian%[-w,w]^…

    2022年4月16日
  • java虚拟机可以运行的文件_虚拟机的网络模型有

    java虚拟机可以运行的文件_虚拟机的网络模型有Java虚拟机中的内存模型?Java虚拟机运行时内存所有的类的实例(不包括局部变量与方法参数)都存储在Java堆中,每条线程有自己的工作内存(Java栈),不同线程之间无法直接访问对方工作内存中的变量。方法区用于存储被虚拟机加载的类信息、常量、static变量等数据,堆用于存储对象实例,比如通过new创建的对象实例就保存在堆中,堆中的对象的由垃圾回收器负责回收。Java栈用于实现方法调用,每次方法调用就对应栈中的一个栈帧,栈帧包含局部变量表、操作数栈、方法接口等于方法相关的信息,栈中的数据当没有引用指向

    2022年9月15日
  • 7-9 判断素数 (20分) 本题的目标很简单,就是判断一个给定的正整数是否素数。[通俗易懂]

    7-9 判断素数 (20分) 本题的目标很简单,就是判断一个给定的正整数是否素数。[通俗易懂]7-9 判断素数 (20分) 本题的目标很简单,就是判断一个给定的正整数是否素数。输入格式: 输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于2 ​31 ​​ 的需要判断的正整数。输出格式: 对每个需要判断的正整数,如果它是素数,则在一行中输出Yes,否则输出No。输入样例: 2 11 111 输出样例: Yes No#include &l…

    2022年8月18日
  • bigdecimal保留2位小数_bigdecimal保留两位小数显示00

    bigdecimal保留2位小数_bigdecimal保留两位小数显示00作者:RaphetS第一种方法使用DecimalFormat类举个例子,假如我们需要保留两位小数,我们可以这样写DecimalFormatdf=newDecimalFormat(“0.00”);测试如下:doubled=0.200;DecimalFormatdf=newDecimalFormat(“0.00”);System.out.println(df.format(d))…

    2022年9月23日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号