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

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

超详细!!!!!!

单片机内部三大资源

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

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

FLASH

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

RAM

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

SFR 

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

啥是51单片机?

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

选择的STC89C52的数据

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

 

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

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

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

XTAL 晶振电路 提供基准步调

VCC 电源 40脚 正极

GND 接地 20脚 负极

RST 复位

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

电压有 5v 3.3v

STC89C52用5v供电

 

 LED发光二极管

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

 

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

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

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

 

学习笔记——单片机简介 & 点亮LED & 流水灯 & 电路基础【更新Ing】【即告诉编程软件 P0,就在0x80 的位置上】

可以直接  #include<reg52.h>

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

 

 

控制一位:

学习笔记——单片机简介 & 点亮LED & 流水灯 & 电路基础【更新Ing】即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文件】

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

生成HEX文件

学习笔记——单片机简介 & 点亮LED & 流水灯 & 电路基础【更新Ing】显示下方则完成

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

烧录程序

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

 

 

 

 流水灯:

#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--);
}

 

 

 

 

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

硬件基础

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

大电容低频滤波

小电容高频滤波

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

低频滤波电容作用:

(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系统里足够用】

都是陶瓷的,也有磁片

 

 

三极管

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

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

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

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

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

 

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

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

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

 

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

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

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

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

 

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

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

 

LED本身就有2V的压降

 

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

 解决办法:

 

 

 

 

 

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

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

 

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

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

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

 

上一篇:51单片机:每次按S1键,流水灯移位


下一篇:C# 委托 的语法 之一