
51单片机从零开始学习
文章平均质量分 89
从零开始学习51单片机(具体参考哪个视频在每一篇的顶部都有给出)
Zevalin爱灰灰
如果能找到就好了
展开
-
51单片机从零开始入门教程 第一章(51单片机基础知识与工程创建)
视频链接:[1-1] 课程简介。原创 2023-11-25 21:38:50 · 7702 阅读 · 0 评论 -
51单片机从零开始入门教程 第二章(LED篇)
(3)拿到编译产生的文件后,打开STC-ISP,选择相应的单片机型号(这个在开发板的芯片上有写,一定要选择对应型号)以及串口号,再选择“打开程序文件”,找到刚刚生成的.hex文件,接着就可以把该文件下载到开发板中完成点灯。(1)由于程序本身的执行速度很快,仅靠编写两句不同的代码配置P2寄存器是无法观察到LED闪烁的现象的,这时就需要借助延时函数。(2)按照上一例的操作将生成的.hex文件写进开发板,即可观察LED流水的现象。(2)按照上一例的操作将生成的.hex文件写进开发板,即可观察LED流水的现象。原创 2023-11-25 21:48:33 · 1320 阅读 · 0 评论 -
51单片机从零开始入门教程 第三章(独立按键篇)
当按键导通时,受上拉电阻影响,VCC不能与GND“抗衡”,引脚会受GND影响而处于低电平,不过。,按下按键,P3中相应的位被置为0,松开按键,P3中相应的位被置为1(引脚采取的是。(2)按照上一例的操作将生成的.hex文件写进开发板,按动K2按键((2)按照上一例的操作将生成的.hex文件写进开发板,按动K1按键((2)按照上一例的操作将生成的.hex文件写进开发板,按动K1按键((2)按照上一例的操作将生成的.hex文件写进开发板,按动K1按键(,因为弱上拉电阻的存在会让高电平“并不是那么高”),原创 2023-11-25 21:52:19 · 1450 阅读 · 0 评论 -
51单片机从零开始入门教程 第四章(数码管篇)
对于共阳极数码管,如果想让其显示数字,首先要将其公共阳极置为高电平(否则永远不可能产生正向电流),对于各个LED的阴极,需要点亮哪个LED灯,就将哪个LED灯的阴极置为低电平。,但实际上并不是这样,共阴极数码管(共阳极数码管同理)被点亮后,即使阳极变为低电平或者公共阴极变为高电平,数码管也不会立刻熄灭(或者说人眼不能马上发现数码管熄灭),会有一个“,被选中的引脚被置为低电平(同一时刻只能有一个引脚被选中),其对应的数码管可以显示数字。,且封装起来的四个数码管其同样位置的LED阳极接的是同一条线,也就是说,原创 2023-11-25 21:55:40 · 1346 阅读 · 0 评论 -
51单片机从零开始入门教程 第五章(模块化编程及调试工具)
①把各个模块的代码放在不同的.c文件里,在.h文件里提供外部可调用函数的声明,其它.c文件想使用其中的代码时,只需要#include "XXX.h"文件即可。(1)传统方式编程:所有的函数均放在main.c里,若使用的模块比较多,则一个文件内会有很多的代码,不利于代码的组织和管理,而且很影响编程者的思路。②除了main.c外,其它的.c文件都有对应的.h文件(且同名),不过.h文件可以没有对应的.c文件。(3)使用在其它.c文件中定义的函数,其所属的.c文件必须添加到工程参与编译。原创 2023-11-25 22:03:02 · 1742 阅读 · 0 评论 -
51单片机从零开始入门教程 第六章(矩阵键盘篇)
(1)项目包含的文件:其中MatrixKey.c、MatrixKey.h、Delay.c、Delay.h、LCD1602.c及LCD1602.h全部沿用上一例的代码,这里不再给出,INTRINS.H及REGX52.H在系统include目录中,不需要自己编写。(1)项目包含的文件:其中Delay.c、Delay.h、LCD1602.c及LCD1602.h全部沿用上一例的代码,这里不再给出,INTRINS.H及REGX52.H在系统include目录中,不需要自己编写。(2)矩阵键盘扫描(输入扫描)原创 2023-11-25 22:06:13 · 1697 阅读 · 0 评论 -
51单片机从零开始入门教程 第七章(定时器篇)
3、定时器个数:3个(T0、T1、T2),T0和T1与传统的51单片机兼容,T2是此型号单片机增加的资源(STC89C52定时器资源),定时器的资源和单片机的型号是关联在一起的,不同的型号可能会有不同的定时器个数和操作方式,但一般来说,T0和T1的操作方式是所有51单片机所共有的。(4)注意:中断的资源和单片机的型号是关联在一起的,不同的型号可能会有不同的中断资源,例如中断源个数不同、中断优先级个数不同等等。(1)项目包含的文件:其中需要重写的都会在下面给出,未给出的沿用旧例出现过的即可。原创 2023-11-25 22:15:21 · 1552 阅读 · 0 评论 -
51单片机从零开始入门教程 第八章(串口篇)
单片机的串口可以使单片机与单片机、单片机与电脑、单片机与各式各样的模块互相通信,极大的扩展了单片机的应用范围,增强了单片机系统的硬件实力。(4)将生成的.hex文件下载到开发板中,马上打开串口助手,可以看到电脑每隔一秒就会接收到一个递增的数字(十六进制),按下复位按键后电脑会马上接收到56,紧接着开始接收从0开始每秒递增1的数字。(1)SBUF:串口数据缓存寄存器,物理上是两个独立的寄存器,但占用相同的地址。(2)项目包含的文件:其中需要重写的都会在下面给出,未给出的沿用旧例出现过的即可。原创 2023-11-25 22:21:35 · 1756 阅读 · 0 评论 -
51单片机从零开始入门教程 第九章(LED点阵屏篇)
1、LED点阵屏由若干个独立的LED组成,LED以矩阵的形式排列,以灯珠亮灭来显示文字、图片、视频等。5、74HC595是串行输入并行输出的移位寄存器,可用3根线输入串行数据,8根线输出并行数据,多片级联后,可输出16位、24位、32位等,常用于IO口扩展。(3)将生成的.hex文件下载到开发板中,可以看到LED点阵屏会重复显示三帧动画,依次是笑脸、无表情脸、哭脸。(2)该例需要用到Delay()函数,这里不再赘述,然后添加如下所示的代码文件,进行编译。,比如只需要第一行第一列的LED灯亮,那么。原创 2023-11-25 22:26:36 · 1230 阅读 · 0 评论 -
51单片机从零开始入门教程 第十章(DS1302实时时钟篇)
(1)0001 0011表示13,1000 0101表示85,0001 1010不合法,对应在十六进制中的体现:0x13表示13,0x85表示85,0x1A不合法。(1)项目包含的文件:其中需要重写的都会在下面给出,未给出的沿用旧例出现过的即可(本例需要液晶屏模块以及延时函数的代码文件)。(1)项目包含的文件:其中需要重写的都会在下面给出,未给出的沿用旧例出现过的即可(本例需要液晶屏模块的代码文件)。(3)将生成的.hex文件下载到开发板中,可以看到液晶屏上显示当前的时间。原创 2023-11-25 22:36:41 · 2131 阅读 · 0 评论 -
51单片机从零开始入门教程 第十一章(蜂鸣器篇)
1、蜂鸣器是一种将电信号转换为声音信号的器件,常用来产生设备的按键音、报警音等提示信号。(1)该项目包含的文件:其中需要重写的都会在下面给出,未给出的沿用旧例出现过的即可(本例需要延时函数,因为独立按键模块需要消抖)。(3)将生成的.hex文件下载到开发板中,按下独立按键,数码管会显示对应的键码,同时蜂鸣器会发出持续1秒的声响。(3)将生成的.hex文件下载到开发板中,就可以听到美妙的音乐了。(1)该项目包含的文件:本例需要延时函数以及定时器0模块的代码。(1)有源蜂鸣器:内部自带振荡源,将。原创 2023-11-25 22:42:23 · 1308 阅读 · 0 评论 -
51单片机从零开始入门教程 第十二章(存储器篇)
(3)将生成的.hex文件下载到开发板中,根据main.c文件中的注释进行调试即可(建议测试按键4的功能时先给单片机断电,然后再通电,以此验证AT24C02即使断电也能保存数据)。(1)之前的key.c文件中用来检测按键是否被按下的函数存在死循环,如果按住按键不松开,那么程序会一直卡在死循环中,这样会影响其它模块以及整个程序的进行,为了解决这个问题,可以。(2)项目包含的文件:其中需要重写的都会在下面给出,未给出的沿用旧例出现过的即可(本例需要延时函数的代码文件以及上例中的I2C和AT24C02文件)。原创 2023-11-25 22:50:13 · 1721 阅读 · 0 评论 -
51单片机从零开始入门教程 第十三章(传感器篇)
(1)项目包含的文件:其中需要重写的都会在下面给出,未给出的沿用旧例出现过的即可(本例需要液晶屏模块、独立按键模块(定时器扫描版)、存储器模块、I2C模块、定时器0模块、温度传感器模块的代码文件以及延时函数的代码)。(3)接收一位:主机将总线拉低1~15us,然后释放总线,并在拉低后15us内读取总线电平(尽量贴近15us的末尾),读取为低电平则为接收0,读取为高电平则为接收1 ,整个时间片应大于60us。(4)发送一个字节:连续调用8次发送一位的时序,依次发送一个字节的8位(低位在前)。原创 2023-11-25 22:58:05 · 1856 阅读 · 0 评论 -
51单片机从零开始入门教程 第十四章(液晶屏篇)
1、LCD1602(Liquid Crystal Display)液晶显示屏是一种字符型液晶显示模块,可以显示ASCII码的标准字符和其它的一些内置特殊字符,还可以有8个自定义字符,显示容量为16×2个字符,每个字符为5*7点阵。发送指令0x06 //数据读写操作后,光标自动加一,画面不动。发送指令0x38 //八位数据接口,两行显示,5*7点阵。发送指令0x0C //显示开,光标关,闪烁关。数据/指令选择,1为数据,0为指令。发送数据 //发送要显示的字符数据。读/写选择,1为读,0为写。原创 2023-11-25 23:06:24 · 1095 阅读 · 0 评论 -
51单片机从零开始入门教程 第十五章(直流电机篇)
(独立按键和数码管可以不用定时器扫描,我的项目中独立按键是用定时器扫描,数码管则不是,所以不用延时函数,另外数码管只需要静态显示即可,所以不需要消影)(3)开发板上的电机模块:VCC和OUT1接电机的两端,当然,电机一端接VCC另一端可以接OUT1-4,下面代码以接OUT1为准,OUT1的电平与IN1的电平相同,也就是与P10有关,且OUT1高电平才能驱动电机转动((1)大功率器件直接驱动:(D1二极管用于保护电路,否则断电后,由于电机有电感的特性,但是电路却是断路,因此电机两端的电压会异常地高;原创 2023-11-25 23:10:15 · 2476 阅读 · 0 评论 -
51单片机从零开始入门教程 第十六章(模数转换篇)
指AD/DA数字量的精细程度,通常用位数表示。例如,对于5V电源系统来说,8位的AD可将5V等分为256份,即数字量变化最小一个单位时,模拟量变化5V/256=0.01953125V,所以,8位AD的电压分辨率为0.01953125V,(3)可将AD/DA模块直接集成在单片机内,这样直接写入/读出寄存器就可进行AD/DA转换,单片机的IO口可直接复用为AD/DA的通道。②转换速度:表示AD/DA的最大采样/建立频率,通常用转换频率或者转换时间来表示,对于采样/输出高速信号,应注意AD/DA的转换速度。原创 2023-11-26 00:00:27 · 2702 阅读 · 0 评论 -
51单片机从零开始入门教程 第十七章(红外遥控篇)
(2)在下面会讲到外部中断,由于K3与P32连接,这就导致按下按键K3后就会产生一个外部中断(K3断开时P32处于高电平,按下按键K3后P32处于低电平,相当于给了一个下降沿,如果按住K3不放,就是一直处于低电平)。(否则是低电平触发,低电平触发的意思是只要一直收到低电平信号,那么中断就会反复执行,而选择下降沿触发的话中断只会执行一次),IT1同理。本例需要液晶屏模块的代码,剩余缺失代码会在下面给出,将它们添加到项目中,然后进行编译,根据主函数中的注释调试((4)发送Data时,前560us低电平,原创 2023-11-26 00:03:22 · 4761 阅读 · 0 评论