51单片机的最小系统构成

晶振电路

复位电路

电源电路

下载电路(自己加的)

单片机的 P0 口是漏极开路,即输出高电平会导 致高阻态,要让它输出高电平就必须外接上拉电阻

一、晶振电路

由于单片机正常工作需要一个时钟,因此就需要在其晶振引脚上外接晶振,犹如人的心脏。

51 单片机,其时钟频率可在 0-40MHZ 上运行,一般情况下我们建议选择 12M(适合计算延时时间)或者是 11.0592M(适合串口通信)。

二、复位电路

时钟周期在不停的运行,系统也有可能会出 现崩溃或者瘫痪状态。这就好比人会生病一样,人一生病就得看医生,服用医生 开的药后重新获得正常状态。

那么单片机呢,它是如何获取重生的?这就需要设 计一个复位电路来实现此功能。我们知道单片机引脚当中就有一个 RST 复位引 脚,而 STC89CXX 单片机又是高电平复位,所以只需要让这个引脚保持一段时间 高电平就可以。

手动复位是通过一个按键及电容 电阻所组成,利用按键的开关功能实现复位,按键按下后 VCC 直接进入到单片机 RST 引脚,松开后 VCC 断开,RST 被电阻拉为低电平。这一合一开就实现了手动 复位。而自动复位主要是利用 RC 充放电功能,电源已开启,由于电容隔直,VCC 直接进入 RST,然后电容开始慢慢充电,直到充电完成,此时 RST 被电阻拉低。 这样就起到上电复位的效果。

电源电路

任何电子器件都需要有一个合适的电源进行供电,这就好比人要吃饭一样, 没有电源,系统是不会工作的。STC89CXX 单片机的工作电压是 3.3-5.5V 范围, 通常我们使用 5V 直流。

下载电路

通过串口烧录到单片机中的flash

电脑没有RS232接口,所以常用USB接口转TTL芯片。

USB1 接口即为程序下载接口,D-和 D+连接到 CH340 芯片 的 D-和 D+,然后 CH340 芯片的串口 TXD 和 RXD 管脚就连接到单片机的串口(P3.0、 P3.1)上,这里不是直接连接到单片机串口,而是通过 P5 端子进行转接。这样 做不仅可以让开发板 USB 接口下载程序,还可以让单片机串口不受 CH340 干扰, 这样开发板也可以当成 USB 转 TTL 模块使用,该设计也是考虑 WIFI、蓝牙等模 块与串口通信不受干扰问题。 USB1 接口不仅可以作为程序下载口,还可以作为串口通信口,因为它本身就 76 是实现串口下载。同时还可以作为电源供电口,可以看到 USB1 的管脚 1 就是 5V 电源脚,所以开发板的可以直接使用 USB 线来供电,如果提供的 USB 线有问题, 可以使用安卓手机数据线,接口都是兼容的。当电源开关打开后,电源指示灯 DP1 即会点亮,表明系统电源正常。

软件安装

发送的资料中有keil51和pojie工具,按教程安装。跳过

51单片机工程模板创建

在电脑中新建文件夹,然后在软件中新建一个工程,并把工程保存在文件夹中。
软件内会显示选择CPU型号,开发板是STC89C516,软件中好啊不到,但兼容Ateml的89C52,直接选择这个即可。

然后在工程中新建一个文件,File--new...然后定位到文件夹中,命名只能是英文,后缀要自己填,比方这次是.C的后缀。

双击文档或者邮件选择,把刚创建的文件添加进去。

配置魔术棒选项卡

要勾选编译成功后生成HEX文件。

尝试写第一行代码

#include "reg52.h"

void main()

{

while(1)

{

}

}

点编译

第一个:它是编译当前界面所在的一个 C 文件。
第二个:联合编译整个工程,发生修改的文件重新编译,并生成可执行文件。
第三个:联合编译整个工程,所有文件都重新编译,并生成可执行文件。

头文件的作用

在代码中引用头文件,其实际意义就是将这个头文件中的全部内容放到引用 头文件的位置处,免去我们每次编写同类程序都要将头文件中的语句重复编写。 在代码中加入头文件有两种书写方法,分别为#include 和#include "reg52.h",包含头文件时都不需要在后面加分号。

两种写法的区别如下:

当使用<>包含头文件时,编译器先进入到软件安装文件夹处开始搜索这个 头文件,也就是 KEILC51/C51/INC 这个文件夹下,如果这个文件夹没有引用的头 文件,编译器将会报错。

当使用""包含头文件时,编译器先进入到当前工程所在文件夹处开始搜索 该头文件,如果当前工程所在文件夹下没有该头文件,编译器将继续回到软件安 装文件夹处搜索这个头文件,若找不到该头文件,编译器将报错。

打开该头文件查看其内容,将鼠标移动到 reg52.h 上,单击右键,选择“Open document ”,即可打开该头文件。

也可以在工程中找到文件双击打开

51单片机入门学习日记day05相关推荐

  1. 51单片机入门学习小结(流水灯与数码管)

    51单片机入门学习小结(流水灯与数码管) 对原理图的分析 以下是我所用单片机的原理图 这块51单片机一共有4个I/O口(意思为input/output),也代表着如果我们后续都要用到这四个的话那么功能 ...

  2. 51单片机入门学习笔记(上)

    笔记整理自B站UP主江科大自化协教程<51单片机入门教程-2020版 程序全程纯手打 从零开始入门> 所用单片机为普中51 STC89C52单片机2022新款,文中所提到的调试现象及结果也 ...

  3. 51单片机入门学习篇-led灯、按键、数码管、中断

    文章目录 前言 一.Proteus仿真 二.Keil代码编写 1.流水灯 2.来回点灯 3.按键操作 4.中断操作 5.数码管 6 动态数码管 三. 练习题 总结 前言 本文用来记录博主学习单片机的过 ...

  4. 51单片机入门学习------环境搭建

    为了做比赛,开始学习51单片机 因为之前在做uwb定位模块使用的stm32,下载过keil,所以下载路径和编译器默认路径不同,导致了许多问题. 一.注册Keil软件时出现TOOLS.INI_TOOLC ...

  5. 51单片机入门学习 第六天

    提示:今天是学习51单片机的第六天,以下就是今天的笔记(我买的是普中的开发板,学习笔记是根据普中的视频进行学习) 目录 独立按键实验 1.按键介绍 2.硬件设计 3.软件设计 矩阵按键实验 1.矩阵按 ...

  6. 51单片机入门学习 第七天

    提示:今天是学习51单片机的第七天,以下就是今天的笔记(我买的是普中的开发板,学习笔记是根据普中的视频进行学习)   前面我们学习了案件和矩阵,矩阵的使用方法有行线反转法,今天学习IO口的扩展使用74 ...

  7. 51单片机入门学习 第八天

    提示:今天是学习51单片机的第八天,以下就是今天的笔记(我买的是普中的开发板,学习笔记是根据普中的视频进行学习)今天学习的内容是中断和串口通信. 目录 中断系统 1.中断 1.1中断介绍 1.2中断结 ...

  8. 51单片机入门学习 第二天

    提示:今天是学习51单片机的第二天,以下就是今天的笔记 目录 一        单片机最小系统构成 二        reg52.h 头文件介绍 一        单片机最小系统构成 若要使系统正常运 ...

  9. 51单片机入门学习 第一天

    今天是学习51单片机的第一天,以下就是今天的笔记. 一        单片机介绍 1.单片机简介:一台能够工作的计算机要有这样几个部件构成:CPU(进行运算.控制). RAM (数据存储).ROM(程 ...

最新文章

  1. shell脚本中$#、$0、$@等特殊变量的含义
  2. C3P0连接池的运用
  3. OO实现ALV TABLE 三:ALV的功能设计
  4. WINHEX的比较、同步功能加上NTFS对稀疏文件的支持
  5. MyBatis : Example 条件查询 in 用法
  6. tensorflow GPU环境配置 Nvidia+cuda+cudnn
  7. OSPF路由协议配置实例
  8. MySQL索引原理及慢查询优化,了解一下?
  9. webpack入门总结1
  10. SuiteCRM添加自定义字段
  11. pacman 查询_Pacman常用命令 文内搜索吧
  12. 边境的悍匪—机器学习实战:第十二章 使用TensorFlow自定义模型和训练
  13. 达摩院python教程视频_达摩院官方刚刚发布了最新的Python教程,整套427集系统学习视频...
  14. Python爬取猫眼电影榜单评分,以及评论
  15. 单点登录常见解决方式和阿里云短信服务
  16. 无需投资,小白在家也能闲鱼店创业赚钱,教你月入10000+丨国仁网络资讯
  17. 京东面试题(JAVA)
  18. 说说信息技术工程化问题
  19. Google earth engine 批量下载
  20. 非自交多边形的轮廓内缩外扩算法

热门文章

  1. 【DBAplus社群】MySQL进阶路:从小工到专家的必读书籍和必备工具
  2. 查看san交换机端口流量_网络--监控--交换机端口流量监控
  3. 2021-03-17-伪协议
  4. 分布式 - 分布式体系架构:集群和分布式
  5. Python.__getitem__方法
  6. 如何开启python编程?
  7. Qt-FFmpeg开发-视频播放(4)
  8. 商城项目-了解电商行业
  9. 画家百度百科创建应该怎么做呢?
  10. php timer 定时执行,PHP定时执行任务实现方法详解(Timer),详解timer_PHP教程