自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 51单片机15(直流电机实验)

(4)然后接下来怎么用这个芯片来驱动我们的直流电机,既然不能两个管脚连接,那我怎么来驱动它,那COM这个公共端我们知道它是连接到VCC的,所以我可以将我的直流电机一端接到公共端这里,VCC通过这个电源就是相当于我们直接给它一个电源,一个电机上面一个电源,另一端我可以连接这七路当中的某一路的一个输出管脚,这样一来,当我输入为高输出为低电平,那这里为低电平,这里是为VCC,那这里是不是就有电了,电机就会旋转,那你电机就是固定的一个方向旋转,它不能反方向,如果要反方向,除非改变它的电流,但是这里是改变不了的。

2024-07-23 23:15:58 537

原创 51单片机14(矩阵按键实验)

然后假设我们还会到,假设是这个按键按下,我们刚开始行设置为低电平,第二列是不是可以得到一个低电平,我们读取到它的IO的时候,这一列是可以得到低电平,其他都是高电平,那然后如果是这一个按键按一下,现在将这个列全部送输出低电平来判断这个行,同理这个按键按下,那这个是不是低电平,其他的就为高电平,所以我们通过读到这个IO为低电平,那就能保证这一行有按键按下,那现在是刚开始是这一列有按键,然后这一次是这一行有按键按下,那是不是就能确认这个按键。b、同理,一列的话,它也把另一个管脚,全部并联引出来,构成了一列。

2024-07-21 17:09:32 901

原创 51单片机14(独立按键实验)

7、但实际上是不是这种波形呢,不是的,因为我们的这种机械开关,它里面会有一个抖动的情况,那我们来看一下实际的这种波形,当我们的按键没有按下,它默认是高电平,假设我们有上拉电阻,当我们按键按下的时候,这里呢会存在一个抖动,抖动过程之后,才会进入一个稳定的一个闭合状态,也就是说,当我们的按键按下的时候,刚开始它会有一个抖动的过程,抖动了一段时间之后,才变成低电平,变成低电平。另一端呢,是连接到GND,也就是我们刚才介绍的,当我们的按键按下的时候,这个GND是不是低电平,低电平这里就是连接在一起了。

2024-07-21 13:28:48 981

原创 51单片机13(动态数码管实验)

(3)假设我这个P22,P23,P24高电平,那它的YLED8也就是Y7输出是有效的,那么根据这个网络标号LED8,它是连接在这里,所以这里有效就是这个管脚,这个数码管点亮,那么再给这个P0口赋值对应的断码数据,那就可以让这个数码管给显示对应的数据,这是我们的这个电路,那么动态显示的这个电路,前面其实我们已经分析了,它的公共端,段选是并联在一起,像A连A,B连B,C连C,以此类推,这是我们A2到A4的这个电路图,它是已经固定的管脚不可更改。1、本章所要实现的功能是:控制动态数码管从左至右显示数字0-7。

2024-07-20 10:18:47 686

原创 51单片机12(静态数码管实验)

一、数码管简介1、数码管是一种半导体发光的一种器件,它的基本单元是发光二极管,也就是我们前面介绍的一个LED,那么数码管也称为LED,数码管,不同行业对它的称呼可能不一样,其实都是一样的东西,有的叫数码管,有的叫LED数码管都是一样的。2、那么数码管,按照他的段数,可分为这几种,像七段还有八段数码管,那么八段数码管比七段数码管要多一个发光二极管,也就是多了一个DP,小数点的位置,那么这个小数点可以更精确地表示数码管想要显示的内容,比如说它可以显示小数,这是这个数码管按照它的一个段数来区分。3、那

2024-07-17 18:14:14 667

原创 51单片机11(蜂鸣器硬件设计和软件设计)

5、那我们来看一下我们的集成板,像我们的A2到A4,它所使用的这个驱动电路是ULN2013这个芯片,这个芯片,我们后续会介绍一下这个芯片在我们学习电机的时候,我们会介绍这里,大家只要了解,通过这个芯片,可以驱动我们的蜂鸣器发出声音,此处,先不要了解,可以不了解这个ULN2013的一个使用,只知道这个P25管脚的输出高,那么对应的蜂鸣器输出管脚是对应的是低,也就是相当于一个非门一样的一个电路。这是我们的这个软件设计的一个功能需求,知道了这个功能需求了之后,那我们接下来就可以编写我们的一个蜂鸣器的一个代码。

2024-07-14 22:36:50 888

原创 51单片机10(蜂鸣器介绍)

那么,当脉冲信号过来,它的这个频率,也就是周期是固定的,那么占空比呢,就是高电平,这段时间所占的整个周期的一个比例,所以改变这个高电平的时间,也就可以改变蜂鸣器的一个声音的一个大小。(2)那么电磁式蜂鸣器,它的构造是由振荡器,再加电磁线圈,再加磁铁,再加震动膜片以及外壳组成,那么接通电源之后,这个振荡器,它产生的音频信号电流,就会通过这个电磁线圈,让这个电磁线圈产生一个磁场,震动膜片在这个磁电磁线圈和磁铁的作用下,就会相互作用,它就会周期性的一个震动来发出声音。c、左边图是压电式蜂鸣器,也称为无源蜂鸣器。

2024-07-14 17:53:48 654

原创 51单片机9(使用左移实现流水灯编程)

那么零往左移是不是就是这样零左移,左移多少,左移i这个i是跟着我们的这个循环的一个次数来的,当i=0的时候,满足这个条件,那进入循环体,i是等于0,这个0是不是相当于我们的i口所有的都是0,因为它是8位,如果只写一个0,相当于8位都是0,那这是不符合我们的一个功能要求,我们只希望第一个P2.0为零,其他的为1。就是说我们每一次这个加了一次,又要跳到这个条件来对比,如果是满足它进行,就会进入到我们的for语句里面,执行它的循环体,这相当于我们要执行8次,每一次是只加1的i+1,那么就相当于循环8次了。

2024-07-13 18:40:23 632

原创 51单片机8(LED闪烁)

(3)那既然我们现在编写的这个函数是实现延时的一个功能,所以这里我就用了一个delay延时,我这里写的的是延时10微秒,为什么10微秒,等一下我们会给大家看一下,这里先写一下,这个延时函数,我们这个函数有一个入口的一个参数,也就是形式参数,通过这个形式参数,我们再调用这个延时函数的时候,我们在传入一个值给我们的函数,让它传入的值的不同,延时就不同,这样就给我们使用这个函数,增加了一个灵活性。(1)在原有的点亮第一个LED灯的代码程序上,我们最主要的就是编写一个延时函数,那延时函数怎么写。

2024-07-13 12:39:11 595

原创 51单片机7(点亮第一个LED)

(4)右边这张图是我们A5到~A7开发板对应的LED模块的一个电路,那我们这里呢,对同样的,如果说你要让第一指示灯点亮,它也是全部供阳极接法,所以要让它亮,就是要输出低电平,那这里对应的是这个管脚,因为这个管脚它全部是模块独立,这里引出来的都是一些排针,那排针的话,我可以将一根导线,一端连接到我们脚的一端,一端连接到我们单片机的P20管脚,是不是就相当于这个脚就是P2.0,跟我们的这个脚是不是对应了,通过这种方式,我们可以进行一个程序的兼容。

2024-07-11 19:19:54 939

原创 51单片机6(P0&P1&P2&P3结构框架图)

一、GPIO结构框架图与工作原理1、接下来我们介绍一下这个GPIO结构框图和工作原理,我们使用51单片机的GPIO分为了P0,P1,P2,P3这四组端口,下面我们就分别来介绍这四组端口它的一个内部结构,只有了解了内部的结构,对于我们单片机的IO口的一些使用会非常清楚。2、P0端口(1)那我们列举的是这个P0端口的一个内部结构框图,从这张图我们可以看到,它是有锁存器,还有输入缓冲器,以及切换开关。一个非门,一个与非门,以及场效应管,它这些组成的驱动电路构成。这个图当中的最左边,最右边是标记的是

2024-07-11 16:09:32 712

原创 51单片机5(GPIO简介)

(f)那么,除了这一种方式可以查找之外,还可以通过我们的数据手册,前面我们在介绍这个芯片的时候,我们可以看到stc 89系列的一个中文参考手册,中文参考手册里面,我们可以看到这一个,在这个芯片的一个管脚,管脚的一个图当中,我们可以看一下stc89c系列的一个广角,看一下stc89c,管脚图下面对应的就是一些管脚的说明,我们看一下管脚的一个说明。(b)通常我们给这个单片机的一个晶振是0~40,当然我们使用的是12M或者是11.0592M的一个晶振。

2024-07-11 10:07:59 832

原创 51单片机4(reg52头文件介绍)

2、头文件的一个调用的写法有两种,第一种,使用尖括号包含的一个头文件编译器,先进入到软件安装文件夹,开始搜索这个头文件是不是有,也就是这个我们的这个软件安装的一个目录,我们可以看一下,软件安装的一个目录是在我们的D盘,在我们的klc.51的一个c51,还有inc,这是我们所有的头文件,它会在这里面去首先搜索,搜索这个文件夹里面有没有这个reg52.h,如果这个文件夹里面没有引用这个头文件,那编译器它就会报错。

2024-07-10 18:20:36 334

原创 51单片机3(51单片机最小系统)

(2)前面我们介绍过,为什么要加入这个下载电路到最小系统里,这里就不再重复,程序要烧写到单片机里,是通过上位机对应的软件将我们的编译器生成的这个hex文件烧写到我们的单片机串口里,通过串口烧写到我们的单片机flash里面,那么我们知道现在的笔记本电脑一般它是没有这个RS22,所以我们通常使用的是USB的一个接口,要跟我们的单片机的串口进行连接它,肯定是不能直接连接的, 这里就要用到一个USB转TTL的一个芯片,那么这个芯片呢,我们使用的是CH 340的这个芯片,那么通过这个CH 340芯片呢?

2024-07-10 17:02:25 922

原创 51单片机2(开发板的功能及使用介绍)

b、旁边的一个U6芯片,它主要是用来拓展我们单片机的alco,我们单片机alco是有限的,像我们板子上集成了这么多的硬件,如果它的每一个alco都对应着一个硬件,那是不够的,这时我们使用595芯片来拓展,驱动我们8*8的一个点阵,因为点阵8*8相当于64个管脚,而我们这个呢,8行8列要16个管脚,那么我们这个595呢,它就相当于使用3个管脚来拓展8个,节约了我们单片机5个管脚,这是非常有用的,对我们的应用价值是很高的。比如我们使用遥控器来控制我们的灯,来控制我们的蜂鸣器,来控制我们的显示。

2024-07-08 18:26:57 790

原创 数字电路与C语言基础5(C51基础知识中——C51运算符)

2、位运算C51语言里面,能够对运算对象按位进行操作,它与汇编语言使用的是一样方面的,位运算是按位对这个变量进行运算,但并不改变参与运算的值,如果要求按位改变变量的值,只要利用相应的赋值运算, C51中,它的一个位运算,只能对整型数据操作,不能对浮点型数据操作,这个要注意,那我们看一下这个位运算。(1)、那么我们看一下逻辑与的格式:条件式1 && 条件式2,如果条件式1为真,我们就判断一下条件式2,如果条件式2也为真,那么,它的结果就是真的。a*=5相当于a=a*5;a为假,a&&b为真,b&&c为假。

2024-05-27 18:17:49 1644

原创 数字电路与C语言基础4(C51基础知识上)

(1)单片机内部有很多的特殊功能寄存器,每个寄存器在单片机内部都分配有唯一的地址,一般呢,我们根据特殊寄存器的功能,给这些寄存器赋予各自的名称,当我们需要在程序中操作这些特殊功能的寄存器的时候,必须要在程序的最前面加上,将这些名称加以声明,声明的过程,实际就是将这个寄存器的内存中的地址编号赋给这个名称,这样编译器在以后的程序中,才可能认识这些名称所对应的寄存器。(1)定义变量的时候,必须通过数据类型说明符来指明变量的数据类型,数据类型有很多种,在前面看我们的,介绍数据类型的时候,有很多种。

2024-05-23 21:22:32 1613 1

原创 数字电路与C语言基础3(二进制的逻辑运算)

同或”运算是实现“必须相同,否则就没有”这种逻辑关系的一种运算,其逻辑运算符就是一个小圆圈里面多了一个点,这在键盘上是敲不出来的,想要了解的可以在百度或浏览器上查一下,为了方便描述,这里用“***”表示。C语言中运算符为“&”,其运算规则如下:0&0=0,0&1=0(1&0=0),1&1=1。”,其运算规则如下:0|0=0,0|1=1(1|0=1),1|1=1。如:0***0=1,0***1=0,1***0=0,1***1=1。如0///0=0,0///1=1,1///0=1,1///1=0.

2024-05-21 17:10:31 260

原创 数字电路与C语言基础2(二进制与十六进制)

只是大家要了解一下二进制跟十进制的一个转换,那么从二进制的这个转换过程中,我们也可以找到一般规律,当二进制数转换到十进制数的时候,二进制的最后一位往前看,每一位代表这个数2的n次幂。我们选择程序员模式,比如我们默认十进制,那我们随便输125,换成二进制看一下,得1111101。数字电路中只有两种电平特性,也就是高电平和低电平,那么这也就决定了数字电路中使用的是二进制,十进制大家应该十分熟悉,逢十进一,借一当十是十进制的特点,有了十进制的一个基础,我们学习二进制就十分简单了。表示的是二进制数的后缀。

2024-05-21 15:59:58 196

原创 51单片机1(单片机介绍)

(1)单片机的工作频率是指单片机内部运行的时钟频率,也可以理解为单片机执行指令的速度。7、DIP是封装类型,即双列直插式封装技术,是一种集成电路的封装方式,集成电路的外形为长方形,在其两侧则有两派平行的金属引脚,称为排针。3、单片机的任务时信息采集(依靠传感器)、处理(依靠CPU)和硬件设备(例如电机,LED等)的控制。2、单片机内部集成了CPU、RAM、ROM、定时器、中断系统、通讯接口等一系列电脑的常用硬件功能。(1)RAM是随机读/写存储器,用作数据存储器,是在运行程序时,存放数据的。

2024-05-12 15:10:29 663

原创 深入C语言(一)

a、了解程序——程序是什么,程序能改变世界依靠的什么,程序是从哪里来的,程序是如何工作的。(3)高级语言——算法语言,接近人们熟悉的自然语言和数学语言,直观易懂,便于编程与调试。b、领会程序——理解程序带给人们的独特逻辑思维和计算思维,学会某种编程语言。(2)汇编语言——是将机器语言的二进制代码指令,用助记符表示出来的一种语言。c、编写程序——需求分析,设计方案,选择思维,编程实现,调试运行。(2)智慧农业,例如:阿里,京东,百度,腾讯。c、程序执行效率好,占用空间少。(1)工作,学习,生活,娱乐。

2023-11-06 20:24:42 33 1

原创 基础的C语言语法知识(3)

其中printf的第一个参数必须是字符串,字符串有多个占位符,而占位符是通过%转换操作进行的,例如整型int占位符为%d,后面的替换参数会依次替换前面的占位符)4、int不是标识符,不是我们随意命名,其次int不是任何一个实体的名称,int是C语言中的一个关键词,关键词是在C语言标准中规定的,并且在代码中有特殊的意义和用途,因此关键词是不能作为标识符使用。b、printf打印两个整数,可以这样写,printf(“%d %d,整型int1,整型int2”);(1)2,3这类常量,属于int类型。

2023-10-18 22:12:19 26 1

原创 基础的C语言语法知识(2)

(6)虽然add函数的确被main函数成功调用了,但是编译器是怎么理解这个名称的呢,编译器会从代码开始按照从上往下的顺序阅读代码,编译器首先看到了一个函数的定义,描述了一个叫add的函数,接着在main中需要使用到add,由于编译器已经知道了add的定义,因此编译器可以正常通过,但是将函数定义和函数调用反过来呢。(7)add函数成功被主函数调用,那么自然的,我们便想到主函数又是被谁调用的呢,主函数的返回值又必须是int吗?b、进入主函数,才能由主函数调用其他函数。1、输入两个整数,返回相加结果。

2023-10-18 11:59:41 28 1

原创 基础的C语言语法知识(1)

(2)函数的第二个特征就是函数内部可以处理一些事情,而这段代码就是将Hello Word 显示在屏幕上。return之后跟着的是函数的返回值,这个地方返回了0,0是一个整数,与前面的int是对应的,这也反映了函数是可以返回一些值。(1)main后面的()是用来输入参数的,目前这个参数为空。这是我们可以得到第一个特征,函数可以输入一些值,当然也可以不输入,函数是需要被{}包括的,其内部是函数体,可以做一些处理。中它表示一个主函数。// 主函数返回值。return 函数返回值。

2023-10-15 18:05:55 32 1

原创 如何写第一个C语言程序

1、首先打开Visual Studio 2022,我们需要创建一个新的项目,这里有两种创建方式,第一种直接点击欢迎界面中的创建新项目,第二种,选择继续但无需代码,之后在文件菜单中选择新建项目就可以了。2、创建新项目的时候,需要先选择项目类型,这里我们选择控制台应用,点击下一步,最后我们需要给项目命名,然后指定项目的保存位置,点击创建,就可以新建一个C语言的项目。接着我们选择调试菜单,选择开始执行(不调试)(H),这个步骤是运行程序,可以看到Hello Word 就在控制台中被正确地打印出来。

2023-10-15 17:26:11 23 1

原创 数字电路与C语言基础1(电平特性)

1、首先打开Visual Studio 的官方网站——Visual Studio.microsoft.com,下载Visual studio的安装器(注意不要将Visual Studio与Visual Studio Code弄混了)。3、下载好安装包后,就可以看到一个安装界面,工作负荷选项就选择使用C++的桌面开发,如果不想使用默认的安装位置,也可以在安装位置中自定义安装位置,其他选项我们全部使用默认就可以了。4、完成上面两个步骤,我们直接点击安装,Visual Studio就会自动下载并安装。

2023-10-15 16:38:39 98 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除