视频地址:https://www.bilibili.com/video/av10765766

超详细!!!!!!

单片机内部三大资源

【资源:单片机可提供使用的东西】

FLASH

  • 可以重复擦写
  • 断电后数据不丢失

RAM

  • 存储中间运算过程中产生和需要的数据
  • 数据断电丢失
  • 读写速度非常快
  • 无限次擦写

SFR

  • 单片机内部的功能对应一个或多个SFR
  • 对SFR的读写、配置来实现单片机各种功能

啥是51单片机?

兼容Inter的MCS-51体系架构的一系列单片机

选择的STC89C52的数据

想让单片机运行程序——> 需要外围电路

单片机最小系统——>用最少元器件搭建的可以工作的系统

XTAL 晶振电路 提供基准步调

VCC 电源 40脚 正极

GND 接地 20脚 负极

RST 复位

电压有 5v 3.3v

STC89C52用5v供电

 LED发光二极管

 点亮一个LED发光二极管【用程序】

通过控制P0.0电位的高低来控制LED亮灭

【即告诉编程软件 P0,就在0x80 的位置上】

可以直接  #include<reg52.h>

但,有些扩展的特殊功能寄存器在这个库里是没有的,可通过sfr 来定义其位置

控制一位:

即P0.0引脚

每一个功能对应一个工程

点亮LED:

#include <reg52.h>
#define uint unsigned int
sbit led = P2^0;
void light(uint x);
void main()
{
 led=0;
 light(1);
 led=1;
 light(2);
 P2=0xaa;
 light(3);
 P2=55;
    light(3);
}
void light(uint x)
{
  uint i,j;
  for(i=x*1000;i>0;i--)
  for(j=110;j>0;j--);
}【保存为.c文件】

生成HEX文件

显示下方则完成

烧录程序

 流水灯:

#include <reg52.h>
#include <intrins.h>   //包含_crol_函数的头文件
#define uint unsigned int
#define uchar unsigned char
void delayms(uint);
uchar aa;//赋值用
void main()
{
   aa=0xfe;//11111110
  while(1)
  {
   P2=aa;
  delayms(500);//延时500ms
  aa=_crol_(aa,1);//将aa循环左移1位并将结果赋值给aa
  }
}
void delayms(uint xms)
{
 uint i,j;
 for(i=xms;i>0;i--)
  for(j=110;j>0;j--);
}

单片机编写程序是根据硬件电路图编写的

硬件基础

大电容低频滤波

小电容高频滤波

低频滤波电容作用:

(1)保护: 相当于直接用水管浇花和用花洒浇花

(2)稳定:功耗不是一成不变的

【比如点亮1个LED,然后点亮所有LED,造成电流瞬间加大,瞬间电压拉低,使有些元件无法正常工作,加上低频滤波电容后,可以稳定这一过程,以适应系统慢慢增加电压过程,避免停机】

电容参数的选取:

(1)耐压值:比如一个5V的系统,则此电容的耐压值必须高于5V

【通常是电压的1.5~2倍】

(2)电压容值:根据后端电路功耗情况+功耗突然变化的情况选取

【比如,5V系统加上100µF的电容,功耗变化电压降至4V,部分元件无法工作,但加490µF的电容就可以保证该系统在功耗突然变化时,使得全部元件仍然正常工作】

(3)类型:

性能:铝<钽tan<陶瓷电容【尤其在通信邻域】

但同样的特征,铝电解电容很便宜,体积大

陶瓷和钽体积较小

高频滤波电容:

把静电消耗掉,防止进入芯片内部

用的时候直接用104电容【10*10^4】即0.1微法的电容就可以了【5V系统里足够用】

都是陶瓷的,也有磁片

三极管

在PNP型三极管中,基极比发射极电压0.7V即可导通

用P1.0的高低电平【差0.7V】控制三极管导通来控制小灯亮灭

驱动能力——电流输出能力

单片机的 IO 电流输出能力有限

普通IO口,内部上拉电阻比较大,输出电流几十微安---上百微安

所以,不会采取下图方式:

总线上:是一一对应连接一起的关系,而不是全部都连一起

LED本身就有2V的压降

IO口作为低电平时,输入的电流不能一直太大,还受到单片机整体IO口【50mA的限制,即高于50mA会造成伤害】

解决办法:

是双向缓冲器,也是电流缓冲器

O-E-   使能引脚 低电平有效,使74HC245正常工作

DIR 方向引脚   接高电平的话    A1【输入】 ——> B1【输出】 .....一一对应

        接低电平的话    B1【输入】——> A1 【输出】 .....一一对应

学习笔记——单片机简介 & 点亮LED & 流水灯 & 电路基础【更新Ing】的更多相关文章

  1. Linux内核学习笔记-1.简介和入门

    原创文章,转载请注明:Linux内核学习笔记-1.简介和入门 By Lucio.Yang 部分内容来自:Linux Kernel Development(Third Edition),Robert L ...

  2. 第一个FPGA工程—LED流水灯

    这一章我们来实现第一个FPGA工程-LED流水灯.我们将通过流水灯例程向大家介绍一次完整的FPGA开发流程,从新建工程,代码设计,综合实现,管脚约束,下载FPGA程序.掌握本章内容,大家就算正式的开始 ...

  3. 使用CCS10新建TMS320F28335工程并闪烁LED(流水灯)程序

    学习TMS320F28335使用Code Composer Studio 10.4.0下载和安装本文不再叙述. 1. 新建工程 1.1选择目录新建工作区 1.2打开软件界面如下图所示: 1.3选择新建 ...

  4. S3C6410裸奔之旅——RVDS2.2编译、仿真、调试过程 LED流水灯---转的

    S3C6410裸奔之旅——RVDS2.2编译.仿真.调试过程 LED流水灯 (2012-10-13 23:56:30) 转载▼ 标签: s3c6410裸奔 ok6410 rvds2.2 rvds2.2 ...

  5. zigbee学习之路(二)点亮LED

    一.前言 今天,我来教大家如何点亮led,这也是学习开发板最基础的步骤了. 二.原理分析 cc2530芯片跟虽然是51的内核,但是它跟51单片机还是有区别的,51单片机不需要对IO口进行配置,而cc2 ...

  6. React学习笔记 - JSX简介

    React Learn Note 2 React学习笔记(二) 标签(空格分隔): React JavaScript 一.JSX简介 像const element = <h1>Hello ...

  7. CUBRID学习笔记 1 简介 cubrid教程

    CUBRID 是一个全面开源,且完全免费的关系数据库管理系统.CUBRID为高效执行Web应用进行了高度优化,特别是需要处理大数据量和高并发请求的复杂商务服务.通过提供独特的最优化特性,CUBRID可 ...

  8. Zedboard学习(三):PL下流水灯实验 标签: fpgazynqPL 2017-07-05 11:09 21人阅读 评论(0)

    zynq系列FPGA分为PS部分和PL部分. PL: 可编程逻辑 (Progarmmable Logic), 就是FPGA部分. PS: 处理系统 (Processing System) , 就是与F ...

  9. cc2530单片机的第一次实验,流水灯

    第一个实验:控制流水灯 P1_0,P1_1,P0_4都连接在发光二极管的负极,所以,当这三个引脚为低电平,也就是0的时候,相应的发光二极管才会亮. 其实这里可以稍微的关注一下寄存器的地址,然后,编程的 ...

随机推荐

  1. 爬虫基础(五)-----scrapy框架简介

    ---------------------------------------------------摆脱穷人思维 <五> :拓展自己的视野,适当做一些眼前''无用''的事情,防止进入只关 ...

  2. protobuf使用详解

    https://blog.csdn.net/skh2015java/article/details/78404235 原文地址:http://blog.csdn.net/lyjshen/article ...

  3. 关联分析中寻找频繁项集的FP-growth方法

    关联分析是数据挖掘中常用的分析方法.一个常见的需求比如说寻找出经常一起出现的项目集合. 引入一个定义,项集的支持度(support),是指所有包含这个项集的集合在所有数据集中出现的比例. 规定一个最小 ...

  4. Win7系统用户文件夹多出一个Administrator.xxx开头的文件怎么解决

    一般情况下,Win7操作系统都会有一个Administrator用户文件夹,但最近有用户发现自己win7系统电脑中用户文件夹有两个Administrator文件夹,另一个是以Administrator ...

  5. 【python 字符串】 字符串的相关方法(一)

    将字符串首字母变为大写 ->  capitalize() 方法 # 将字符串的首字母转换为大写 text = 'alet' ret = text.capitalize() print(ret) ...

  6. Debian社区群龙无首

    导读 前两天有过消息 Debian 包维护者 Michael Stapelberg 因对 Debian 社区的现状不满而宣布退出 Debian 的维护,该消息引发了人们对于 Debian 的担忧.11 ...

  7. 【CSA49G】【XSY3315】jump DP

    题目大意 有一个数轴.yww 最开始在位置 \(0\).yww 总共要跳跃很多次.每次 yww 可以往右跳 \(1\) 单位长度,或者跳到位置 \(1\). 定义位置序列为 yww 在每次跳跃之后所在 ...

  8. [Ynoi2019模拟赛]Yuno loves sqrt technology I

    题目描述 给你一个长为n的排列,m次询问,每次查询一个区间的逆序对数,强制在线. 题解 MD不卡了..TMD一点都卡不动. 强制在线的话也没啥好一点的方法,只能分块预处理了. 对于每个块,我们设lef ...

  9. k-均值聚类算法1

    一.k-means算法: 1.优缺点: 优点:容易实现. 缺点:可能收敛到局部最小值,在大规模数据集上收敛较慢. 2.伪代码描述:

  10. python中的sequence(序列)

    摘要 这篇文章主要是为了让自己记住字典不是序列,python中序列的类型 序列化的定义 有个朋友问我,什么是序列化,我瞬间懵了,然后查了一下,发现廖雪峰老师给出了一个很舒服的解释: 序列化:我们把变量 ...