学习笔记——单片机简介 & 点亮LED & 流水灯 & 电路基础【更新Ing】
视频地址: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:
#define uint unsigned int
sbit led = P2^0;
void light(uint x);
{
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 <intrins.h> //包含_crol_函数的头文件
#define uint unsigned int
#define uchar unsigned char
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】的更多相关文章
- Linux内核学习笔记-1.简介和入门
原创文章,转载请注明:Linux内核学习笔记-1.简介和入门 By Lucio.Yang 部分内容来自:Linux Kernel Development(Third Edition),Robert L ...
- 第一个FPGA工程—LED流水灯
这一章我们来实现第一个FPGA工程-LED流水灯.我们将通过流水灯例程向大家介绍一次完整的FPGA开发流程,从新建工程,代码设计,综合实现,管脚约束,下载FPGA程序.掌握本章内容,大家就算正式的开始 ...
- 使用CCS10新建TMS320F28335工程并闪烁LED(流水灯)程序
学习TMS320F28335使用Code Composer Studio 10.4.0下载和安装本文不再叙述. 1. 新建工程 1.1选择目录新建工作区 1.2打开软件界面如下图所示: 1.3选择新建 ...
- S3C6410裸奔之旅——RVDS2.2编译、仿真、调试过程 LED流水灯---转的
S3C6410裸奔之旅——RVDS2.2编译.仿真.调试过程 LED流水灯 (2012-10-13 23:56:30) 转载▼ 标签: s3c6410裸奔 ok6410 rvds2.2 rvds2.2 ...
- zigbee学习之路(二)点亮LED
一.前言 今天,我来教大家如何点亮led,这也是学习开发板最基础的步骤了. 二.原理分析 cc2530芯片跟虽然是51的内核,但是它跟51单片机还是有区别的,51单片机不需要对IO口进行配置,而cc2 ...
- React学习笔记 - JSX简介
React Learn Note 2 React学习笔记(二) 标签(空格分隔): React JavaScript 一.JSX简介 像const element = <h1>Hello ...
- CUBRID学习笔记 1 简介 cubrid教程
CUBRID 是一个全面开源,且完全免费的关系数据库管理系统.CUBRID为高效执行Web应用进行了高度优化,特别是需要处理大数据量和高并发请求的复杂商务服务.通过提供独特的最优化特性,CUBRID可 ...
- Zedboard学习(三):PL下流水灯实验 标签: fpgazynqPL 2017-07-05 11:09 21人阅读 评论(0)
zynq系列FPGA分为PS部分和PL部分. PL: 可编程逻辑 (Progarmmable Logic), 就是FPGA部分. PS: 处理系统 (Processing System) , 就是与F ...
- cc2530单片机的第一次实验,流水灯
第一个实验:控制流水灯 P1_0,P1_1,P0_4都连接在发光二极管的负极,所以,当这三个引脚为低电平,也就是0的时候,相应的发光二极管才会亮. 其实这里可以稍微的关注一下寄存器的地址,然后,编程的 ...
随机推荐
- JS获取登录者IP和登录城市
登录城市:<sp class="cy"></sp><br /> 管理员个数:<font color=</strong>< ...
- 转:SVN 版本服务器搭配全过程详解(含服务端、客户端)
1.为什么要用VisualSVN Server,而不用Subversion? 回答: 因为如果直接使用Subversion,那么在Windows 系统上,要想让它随系统启动,就要封装SVN Serve ...
- Appuim的安装步骤
1.下载Appium Desktop并安装 下载地址:https://github.com/appium/appium-desktop/releases 我下载的版本为:appium-desktop- ...
- AI佳作解读系列(四)——数据增强篇
前言 在深度学习的应用过程中,数据的重要性不言而喻.继上篇介绍了数据合成(个人认为其在某种程度上可被看成一种数据增强方法)这个主题后,本篇聚焦于数据增强来介绍几篇杰作! (1)NanoNets : H ...
- 【MySQL 读书笔记】SQL 刷脏页可能造成数据库抖动
开始今天读书笔记之前我觉得需要回顾一下当我们在更新一条数据的时候做了什么. 因为 WAL 技术的存在,所以当我们执行一条更新语句的时候是先写日志,后写磁盘的.当我们在内存中写入了 redolog 之后 ...
- tomcat server.xml结构
所有xml文件使用的文件头 <?xml version='1.0' encoding='utf-8'?> 2 <Server port="8005" shutdo ...
- python 三元运算符、推导式、递归、匿名函数、内置函数
三目运算符 # 三目(元)运算符:就是 if...else...语法糖 # 前提:简化if...else...结构,且两个分支有且只有一条语句 # 注:三元运算符的结果不一定要与条件直接性关系 cmd ...
- dataframe常用处理
获取列名:data.columns.values.tolist() 复制列: out['serial_number'] = out['2']这样就是新增了一列,复制了‘2’这一列,然后再del out ...
- Laravel——安装Laravel-admin
前言 环境 : WAMP | Windows 7 | PHP 7.0.4 | MySQL 5.7.11 | Apache 2.4.18 框架 : Laravel | Laravel-admin 文档 ...
- Xilinx FPGA 移位寄存器IP延时问题
软件版本:Vivado2016.1 在使用移位寄存器IP时,对于不同延时拍数的使能延时可能会有问题. (1)32深度的可变长度移位寄存器,IP生成界面如下图所示. (2)128深度的可变长度移位寄存器 ...