51单片机学习笔记
文章平均质量分 88
本专栏是本人跟着B站江科大的视频的学习过程中记录下来的笔记,部分内容借鉴了江科大的视频资料。我之所以记录下来是为了方便自己日后复习。如果你也是跟着江科大的视频学习的,可以配套本专栏食用,如有问题可以留言交流,同时也可以私信我拉进微信群聊。QQ交流群群号:963138186
Vera工程师养成记
QQ交流群:963138186
展开
-
单片机学习笔记---红外遥控&红外遥控电机调速(完结篇)
上一节讲了红外发送和接收的工作原理,这一节开始代码演示!提前说明,本节代码演示中会涉及定时器和中断系统!本次代码演示实现的效果是红外遥控显示键码值和红外遥控电机调速原创 2024-02-20 15:57:46 · 2263 阅读 · 3 评论 -
单片机学习笔记---红外遥控(外部中断)
红外遥控是利用红外光进行通信的设备,由红外LED将调制后的信号发出,由专用的红外接收头进行解调输出通信方式:单工,异步红外LED波长:940nm通信协议标准:NEC标准原创 2024-02-20 15:29:21 · 1430 阅读 · 0 评论 -
单片机学习笔记---AD模数转换&DA数模转换
上一篇博客讲了AD/DA转换的工作原理,也介绍了运算放大器的工作原理,这节开始代码演示!AD模数转换新创建一个工程:AD模数转换第一个工程将用到LCD1602和Delay函数,所以首先将我们之前讲过的代码模块添加进来然后创建主程序main.c,XPT2046.c,XPT2046.h文件。开始代码讲解:原创 2024-02-18 21:05:36 · 2155 阅读 · 3 评论 -
单片机学习笔记---AD/DA工作原理(含运算放大器的工作原理)
AD(Analog to Digital):模拟-数字转换,将模拟信号转换为计算机可操作的数字信号。有时候我们也把AD叫做ADC(C是转换器converter的缩写)。比如说模拟电压,单片机是数字信号,数字信号是只有0V和5V两种状态,如果说输入个2.5V时,那我们怎么读它呢?它是属于高电平还是低电平呢?这时候,我们要读它就需要用一个AD转换器,将2.5V转换为一个数字存储在空间里。这就是AD转换的一个作用。原创 2024-02-18 16:30:34 · 8421 阅读 · 0 评论 -
单片机学习笔记---LED呼吸灯&直流电机调速
上一节讲了电机的工作原理,这一节开始代码演示!我们上一篇说并且我们还要保证无论Ton和Toff哪个时间比较长,,因为为了保证周期一定。原创 2024-02-16 19:26:52 · 1501 阅读 · 2 评论 -
单片机学习笔记---直流电机驱动(PWM)
直流电机是一种将电能转换为机械能的装置。一般的直流电机有两个电极,当电极正接时,电机正转,当电极反接时,电机反转直流电机主要由永磁体(定子)、线圈(转子)和换向器组成除直流电机外,常见的电机还有步进电机、舵机、无刷电机、空心杯电机等原创 2024-02-16 15:58:07 · 4584 阅读 · 0 评论 -
单片机学习笔记---LCD1602功能函数代码
上一篇讲了LCD1602的工作原理,这一节开始代码演示!新创建工程:LCD1602功能函数代码新创建main.c,LCD1602.c和LCD1602.h文件开始代码讲解:LCD1602.c先根据原理图声明一下这三个控制引脚和八个数据引脚原创 2024-02-15 21:49:43 · 4521 阅读 · 3 评论 -
单片机学习笔记---LCD1602
LCD1602(Liquid Crystal Display)液晶显示屏是一种字符型液晶显示模块,可以显示ASCII码的标准字符和其它的一些内置特殊字符(比如日文的片假名),还可以有8个自定义字符显示容量:16×2个字符,每个字符为5*7点阵(其实是5*8的点阵,只不过字符只占了5*7)原创 2024-02-15 17:30:12 · 1946 阅读 · 0 评论 -
单片机学习笔记---DS18B20温度读取
我们再根据上一篇讲的时序逐个定义函数写在OneWire.c里面模拟初始化的时序初始化:主机将总线拉低至少480us,然后释放总线,等待15~60us(可以取中间值)后,存在的从机会拉低总线60~240us(可以取中间值)以响应主机,之后从机将释放总线原创 2024-02-14 21:07:58 · 2006 阅读 · 0 评论 -
单片机学习笔记---DS18B20温度传感器
DS18B20是一种常见的数字温度传感器,其控制命令和数据都是以数字信号的方式输入输出,相比较于模拟温度传感器,具有功能强大、硬件简单、易扩展、抗干扰性强等特点测温范围:-55°C 到 +125°C通信接口:1-Wire(单总线)其它特征:可形成总线结构(可以在一条通信线上挂很多设备,这样就可以节省IO口,这样单片机一个IO口就可以读很多个温度传感器)、内置温度报警功能、可寄生供电(因为数字温度传感器的三个引脚当中,有两个是供电的,一个是数据输入输出的,如果使用寄生供电的话,那么VCC电源正极就原创 2024-02-13 22:42:55 · 10492 阅读 · 2 评论 -
单片机学习笔记---AT24C02数据存储
在这个文件里面我们是按照上一篇博客所讲的各部分时序来逐个定义函数,函数体的内容就是模拟每一部分时序写的。原创 2024-02-12 17:25:23 · 1950 阅读 · 1 评论 -
单片机学习笔记---AT24C02(I2C总线)
AT24C02是一种可以实现掉电不丢失的存储器,可用于保存单片机运行时想要永久保存的数据信息存储介质:E2PROM(电可擦除可编程ROM )通讯接口:I2C总线容量:256字节I2C总线(Inter IC BUS)是由Philips公司开发的一种通用数据总线两根通信线:SCL(Serial Clock)、SDA(Serial Data)同步(因为有同步的时钟线SCL)、半双工(双向分时,因为SDA只有一根线,而且哟啊负责来回通信,所以只能分时地复用一根线),带数据应答(在发送一个字节数据之后原创 2024-02-11 20:17:40 · 2667 阅读 · 0 评论 -
单片机学习笔记---蜂鸣器播放提示音&音乐(天空之城)
蜂鸣器播放提示音&音乐(天空之城)代码演示原创 2024-02-10 20:33:19 · 4496 阅读 · 2 评论 -
单片机学习笔记---蜂鸣器工作原理
蜂鸣器是一种将电信号转换为声音信号的器件,常用来产生设备的按键音、报警音等提示信号蜂鸣器按驱动方式可分为有源蜂鸣器和无源蜂鸣器有源蜂鸣器:内部自带振荡源,将正负极接上直流电压即可持续发声,频率固定。无源蜂鸣器:内部不带振荡源,需要控制器提供振荡脉冲才可发声,调整提供振荡脉冲的频率,可发出不同频率的声音。原创 2024-02-09 23:11:43 · 4696 阅读 · 0 评论 -
单片机学习笔记---DS1302时钟
DS1302时钟上一节我们讲了DS1302的工作原理,这一节我们开始代码演示。新创建一个工程写上框架原创 2024-02-09 15:09:38 · 1510 阅读 · 6 评论 -
单片机学习笔记---DS1302实时时钟工作原理
提前预告:本节会带大家看芯片手册!学会看芯片手册是一位开发工程师必备的技能!DS1302介绍DS1302是由美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟芯片。它可以对年、月、日、周、时、分、秒进行计时,且具有闰年补偿等多种功能还有另外一个名词就是RTC(Real Time Clock):实时时钟,是一种集成电路,通常称为时钟芯片。(我们的单片机内部没有RTC,可以外接一个RTC的芯片,给单片机提供实时时钟。市面上有很多种实时时钟芯片,有的自带电池,功能各不相同。)原创 2024-02-08 18:02:47 · 2816 阅读 · 0 评论 -
单片机学习笔记---LED点阵屏显示图形&动画
上一节我们讲了点阵屏的工作原理,这节开始代码演示!前面我们已经说了74HC595模块也提供了8个LED,当我们不使用点阵屏的时候也可以单独使用74HC595,这8个LED可以用来测试74HC595。那接下来我们可以先不使用点阵屏,先用这8个LED来测试一下74HC595。原创 2024-02-08 12:28:06 · 1794 阅读 · 2 评论 -
单片机学习笔记---LED点阵屏的工作原理
LED点阵屏的结构类似于数码管,只不过是数码管把每一列的像素以“8”字型排列而已LED点阵屏与数码管一样,有共阴和共阳两种接法,不同的接法对应的电路结构不同(每一行的阳极连在一起,每一列的阴极连在一起)LED点阵屏需要进行逐行或逐列扫描,才能使所有LED同时显示原创 2024-02-07 23:14:10 · 1738 阅读 · 0 评论 -
单片机学习笔记---串口向电脑发送数据&电脑通过串口控制LED
串口向电脑发送数据接下来先开始演示一下串口单向发送一个数字给电脑:写好框架后把前几节写好的Delay程序添加进来,后面会用到原创 2024-02-07 14:51:52 · 2347 阅读 · 2 评论 -
单片机学习笔记---串口通信(2)
当这个RI等于0的时候,并且SM2=0的时候,将接收到的9位数据的前8位(不要起始位)装入到SBUF当中,这个过程是单片机内部串口进行自动完成的,而不需要我们对这个接收的数据进行去掉最高位,去掉最低位这样子的操作,这个是由串口的内部结构自动去完成。它由RXD引脚来接收这个数据,同样它是根据位采样脉冲的情况来一位一位的接收。数据是通过RXD来进行接收的,同样它是在波段率的脉冲采样的时序上面进行接收,然后,首先它接收低电平的起始位,然后,以此类推,8位的数据位,从D0到D8,低位到高位,最后是高低平的停止位。原创 2024-02-06 21:26:08 · 1583 阅读 · 0 评论 -
单片机学习笔记---串口通信(1)
通信的方式可以分为很多种:按照数据传送的方式,可分为串行通信和并行通信。按照通信的数据同步方式,又可以分为异步通信和同步通信。 按照数据的传输方向,又可以分为单工通信,半双工通信,还有全双工通信。下面就逐个来介绍。原创 2024-02-06 21:13:28 · 1156 阅读 · 0 评论 -
单片机学习笔记---按键控制LED流水灯模式&定时器时钟
第一步,对TMOD的赋值首先是对TMOD的赋值,TMOD的寄存器,我们前面已经说了,它是用来确定我们定时器的工作方式,像里面包含了T0和T1这两个定时器的工作方式,那你使用的是T0或者是T1,那就对这个TMOD的高4位或者是低4位进行赋值。原创 2024-02-03 14:54:38 · 1992 阅读 · 0 评论 -
单片机学习笔记---定时器和中断系统如何连起来工作
前面两节我们分别讲了中断系统和定时器,这节我们看看这两者连起来工作的原理。说明:看这一节之前一定要先把前两节给看明白了再仔细琢磨这一节的每一张图!前两节:单片机学习笔记---中断系统(含外部中断)-CSDN博客单片机学习笔记---定时器/计数器(简述版!)-CSDN博客首先看一下我们51单片机芯片手册上的定时器工作图,以定时器0,工作在方式1(模式1)的情况为例。原创 2024-02-03 14:28:22 · 562 阅读 · 0 评论 -
单片机学习笔记---中断系统(含外部中断)
比如,你在打开火烧一壶水,然后就去洗衣服,在洗衣服的过程当中,突然听到这个水壶发出了水开的报警声音,这个时候水壶正在开了,爆发出报警声音,这个时候你就要停止洗衣服的这个动作了,如果说你再继续往下洗衣服,那可能就会导致水壶烧干而引引发的一些火灾这些非常危险的一些事件,所以这个水开报警事件就相当于非常紧急突发的事件,那这个时候我们就要立刻停止手上的工作,停止洗衣服的这个动作,然后,转去什么去关火,完火之后,然后将开水灌入到暖水瓶当中,执行完成这个动作之后,又回到我们刚才洗衣服的地方,继续去洗你的衣服,这个过程我原创 2024-02-03 11:59:32 · 1473 阅读 · 0 评论 -
单片机学习笔记---定时器/计数器(简述版!)
我们知道STC89系列的51单片机,它有三个定时器,分别是定时器0,定时器1和定时器2。要注意的是,基本的51系列的单片机都含有两个定时器,也就是定时器0和定时器1,那么不是说所有的51单片机都含有定时器2的,一些增强型的一些51单片机可能就有定时器2。本节介绍的就是定时器0和定时器1的使用,至于定时器2的使用方法,它是和前两个是一样的。本节主要是介绍定时器0和定时器1,然后,再介绍一下如何配置这个定时器。其实这个定时器也是和外部中断类似,它是属于单片机内部的一个资源,所以我们通过软件配置就可以实现定时原创 2024-02-03 12:03:04 · 2171 阅读 · 0 评论 -
单片机学习笔记---矩阵键盘密码锁
学了这么久,迫不及待想要做一个密码锁玩一玩,那直接进入正题!这节我们可以直接创建一个跟上一节一模一样的工程文件。可以直接复制粘贴上一节的工程文件,把名字改成矩阵键盘密码锁就可以了。原创 2024-01-26 22:52:03 · 1211 阅读 · 3 评论 -
单片机学习笔记---矩阵键盘
矩阵键盘的介绍在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式采用逐行或逐列的“扫描”,就可以读出任何位置按键的状态。原创 2024-01-26 17:06:19 · 2417 阅读 · 1 评论 -
单片机学习笔记---LCD1602调试工具
长话短说就是使用LCD1602液晶屏作为调试窗口,提供类似printf函数的功能,可实时观察单片机内部数据的变换情况,便于调试和演示。这里提供的LCD1602代码属于模块化的代码,使用者只需要知道所提供函数的作用和使用方法就可以很容易的使用LCD1602原创 2024-01-26 12:56:51 · 1279 阅读 · 2 评论 -
单片机学习笔记---动态数码管显示
上一节我们得出一个结论,多位一体的数码管不可能在同一时刻显示多个不同数字,即使有多位选中的话,那显示的数字也会是相同的。这是由于他们共用引脚导致的这个现象。当然这也是为了节省引脚的连接方式,方便操作。那这样的连接方式怎样才能让数码管同时显示不同数字呢?这就是我们要实现的第二功能:动态数码管显示。就是利用人眼视觉暂留和数码管显示的余晖这个原理来实现的。比如我们先让数码管的第一位显示“1”,然后很快地让第二位显示“2”,很快地让第三位显示“3”......然后不断地让它扫描,就是很快地扫描的“1”“原创 2024-01-25 21:57:47 · 1174 阅读 · 0 评论 -
单片机学习笔记---静态数码管显示
今天开始学习数码管,它比LED和独立按键复杂一点数码管是什么?LED数码管是一种简单、廉价的显示器,是由多个发光二极管封装在一起组成“8”字型的器件原创 2024-01-25 18:44:42 · 1577 阅读 · 0 评论 -
单片机学习笔记---独立按键控制LED移位
独立按键的第四个功能:控制LED移位比如P2=0x01即0000 0001按第0次是左移0,即0x01原创 2024-01-23 17:52:54 · 879 阅读 · 0 评论 -
单片机学习笔记---独立按键控制LED显示二进制
这节我们来实现独立按键的第三个功能,独立按键控制LED显示二进制新创建一个工程文件,然后上来我们就要把基本框架写好,这是基本的习惯原创 2024-01-23 14:51:44 · 1075 阅读 · 0 评论 -
单片机学习笔记---独立按键控制LED状态
这一节我们先来讲一下按键的抖动:对于机械开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开,所以在开关闭合及断开的瞬间会伴随一连串的抖动。看一下下面这个波形,按键没有按下的时候,它就是高电平1,然后突然按下按键,就变成低电平0并且由于机械触点,它会弹开,然后上下抖动一下,之后才稳定得变成0。这个抖动的时间大概是5-10ms,不同的开关抖动的时间是不一样的。当抖动消失的时候,它就是进入一个稳定的低电平0状态。松手的时候它也产生抖动原创 2024-01-23 10:59:04 · 513 阅读 · 0 评论 -
单片机学习笔记---独立按键控制LED亮灭
今天开始我们要学习一个新的模块:独立按键!先说独立按键的内部结构:它相当于一种电子开关,按下时开关接通,松开时开关断开,实现原理是通过轻触按键内部的金属弹片受力弹动来实现接通和断开。它主要由四个部分组成:原创 2024-01-22 23:10:16 · 1146 阅读 · 0 评论 -
单片机学习笔记---LED流水灯
有了前两个代码的经验,我们第三个LED流水灯就容易完成了!首先我们先打开keil,点击新建工程项目.....原创 2024-01-21 18:15:22 · 548 阅读 · 0 评论 -
单片机学习笔记---让LED闪烁起来
我们要实现的是让LED以一秒为周期闪,怎么做?首先,我们再新建一个工程原创 2023-11-23 21:43:10 · 913 阅读 · 0 评论 -
单片机学习笔记---点亮第一个灯
废话少说,进入正题!怎样用Keil建立第一个工程?我们用C语言编写代码实现单片机的功能,而编写代码的环境用的是keil。STC-ISP使用来给单片机下载程序的原创 2023-11-19 14:34:51 · 151 阅读 · 0 评论 -
单片机学习笔记---零基础预备知识
废话少说,直接进入正题!第一:单片机不要说形状不同,要说封装不同单片机的封装:DIP直插式(Dual In-line Package双列直插式封装) 美/ˈduːəl/引脚顺序:缺口的左边是第一个引脚,逆时针方向数,如果是贴片式的芯片,小凹槽就近的就是第一个引脚原创 2023-11-19 14:21:29 · 245 阅读 · 0 评论