自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 51单片机-第十三节-直流电机驱动(PWM)

直流电机是一种将电能转换为机械能的装置。一般的直流电机有两个电极,电极正接,电机正转,电极反接,电机反转。直流电机主要由永磁体(定子)、线圈(转子)和换向器组成。PWM即脉冲宽度调制,在具有惯性的系统中,可以通过对一系列脉冲的宽度进行调制,来等效地获得所需要的模拟参量,常用于电机控速,开关电源等。原理:通过使电机工作一会,停一会,调节工作和停止的比例(即占空比),来控制转速。参数:频率 = 1/Ts;占空比 = Ton/Ts;精度 = 占空比变化步距注:一般保证一个周期频率相同,即使占空比不同。

2024-09-07 17:45:05 619

原创 51单片机-第十二节-LCD1602液晶显示屏

LCD1602是一种字符型液晶显示屏,可以显示ASCII码的标准字符和其他的内置特殊字符。显示容量:16*2个字符,每个字符为5*7点阵。

2024-09-06 10:04:06 638

原创 51单片机-第十一节-DS18B20温度传感器(One_Wire单总线)

DS18B20是一种数字温度传感器。测温范围:-55C - +125C通信接口:1-Wire(单总线)One_Wire单总线是一种通用数据总线,用的比双总线少。(1)一根通信线:DQ(2)异步,半双工。

2024-09-04 10:18:30 872

原创 51单片机-第十节-独立按键及数码管优化

独立按键的实现中,为了解决抖动问题(在按下和抬起时,按键会在高低电平之间抖动10ms),我们在按下后Delay(20),随后进入循环,直到检测到按键抬起,再Delay(20),跳出循环。由于每次数码管显示只显示一下,因此当一次while循环的时间过长,会导致数码管帧率过低,发生闪烁现象。利用定时器,每隔20ms(跳过抖动)检测一次独立按键情况,当按键抬起再执行操作。在实现数码管时, 我们实现了在指定位置显示指定数字,并在显示一下后清零。如果按住按键不抬,程序会停止在独立按键的函数中。

2024-08-30 17:22:50 485

原创 51单片机-第九节-AT24C02存储器(I2C总线)

AT24C02是存储器,且掉电不丢失,可存储单片机要永久保存的数据。通讯接口:I2C总线。容量:256字节。(1)I2C总线 (Inter IC BUS)是由Philips公司开发的一种通用数据总线(2)两根通信线:SCL(Serial Clock)、SDA(Serial Data)(3)同步、半双工,带数据应答(4)通用的I2C总线,可以使各种设备的通信标准统一。

2024-08-30 15:52:27 511

原创 51单片机-第八节-蜂鸣器

蜂鸣器是一种将电信号转换为声音信号的器件,常用来产生设备的按键音、报警音等提示信号。蜂鸣器按驱动方式可分为有源蜂鸣器和无源蜂鸣器有源蜂鸣器:内部自带振荡源,将正负极接上直流电压即可持续发声,频率固定。无源蜂鸣器:内部不带振荡源,需要控制器提供振荡脉冲才可发声,调整提供振荡脉冲的频率,可发出不同频率的声音。

2024-08-07 12:39:58 512

原创 51单片机-第七节-DS1302实时时钟

实时时钟芯片,可对年,月,日,周,时,分,秒计时,是一种集成电路。Command:操作模式,决定要进行的操作是读/写,以及读写内容(秒、分、时。。。如下图,其中最左侧的值即为进行对应操作的Command的值。例:对小时进行读取,Command = 0x85;其中Vcc1/2是电源,X1/X2是晶振。重点在于后三个。后三个的作用为输入和读取数据。其中后三个的原理与_74HC595_完全类似,均为1位1位输入,详细过程见上一节。CE:总开关,置1时开始工作;I/O:传入的数据,0/1;

2024-08-05 15:25:33 472

原创 51单片机-第六节-LED点阵屏与_74HC595_

74HC595是串行输入并行输出的移位寄存器,常用于IO口扩展。原理:一位一位对8个位(D0-7)进行赋值,再一起输出。理论上来说,只要时间要求不高,可以 对很多位(32,64)进行赋值再输出,从而3位控制很多位。其中SER为赋值的数据,SETCLK可使数据向下移位,RCLK会将缓存的数据同时输出。例:要使D0-7依次为 0000 0101:令SER=1,SETCLK=0,再令SETCLK=1,可使SER的1赋值给缓存区,得到1。

2024-07-31 11:51:49 426

原创 51单片机-第五节-UART串口通信

串口是通讯接口,实现两个设备的互相通信。单片机自带UART,其中引脚有TXD发送端,RXD接收端。且电平标准为TTL(+5V为1,0V为0)。

2024-07-24 18:20:33 501

原创 51单片机-第四节-定时器

单片机内部实现的计时系统。作用:代替长时间Daley,提高cpu效率。数量:至少2个,T0,T1,T2等。其中T0,T1为所有51单片机共有,T2等为不同单片机特化。工作模式:(只讲模式1)模式0:13位定时器,计数器;模式1:16位定时器,计数器(常用);模式2:8位自动重装模式;模式3:两个8位计数器TMOD:定时器模式寄存器M1,M0为控制模式的,我们运用模式1,令 M1,M0 为 0,1 即可。TCON:定时器控制寄存器TL0,TH0,TL1,TH1:计时系统寄存器。

2024-07-23 11:14:59 860

原创 51单片机-第三节-LCD1602调试工具,矩阵键盘

依次给行赋值 0111,1011,1101,1110,每次赋值后检测列的状态,列为0说明接通了。四个参数的,第四个参数,为保留位数,少的保留后面(123,2 -> 23),多的前面补零。如电脑分辨率1920*1080个LED,只需1920+1080个接口即可控制。四位密码锁,1-9号键为对应键码,10为0,11是确认,12是清除。在单片机中,16个按键只需8个接口(4行+4列)。所有函数,前两个参数,均为指定显示位置。

2024-07-12 11:09:10 254

原创 51单片机-第二节-数码管

多个LED组合成8字显示器。由P2_2 - P2_4控制8个8的亮灭,三个端口,二进制转十进制,2^3=8,遵循CBA。(例:101(CBA)=5,使Y5端口对应LED6亮)由P0_0 - P0_7控制每个8的每个二极管亮灭。

2024-07-09 11:29:42 551

原创 51单片机-第一节-LED和独立按键(Delay函数)

左下角四个按键。

2024-07-07 21:43:30 422

原创 c++学习第十七讲---STL常用容器---list容器

list容器:一个双向循环链表。注:list和vector是两个最常用的容器,各有优缺点。

2024-02-20 11:14:17 381

原创 c++学习第十六讲---STL常用容器---stack容器,queue容器

push(elem);push(elem);stack是一种先进后出的数据结构,它只有一个出口。//判断容器是否为空。栈中只有顶端的元素才能被使用,因此不存在遍历操作。queue是一种先进先出的数据结构,有两个出口。

2024-02-06 17:56:18 424

原创 c++学习第十五讲---STL常用容器---deque容器

功能:双端数组,可以对头端进行插入删除操作。vector头插头删时需要向后移动数组,效率低下。但vector访问元素时的速度会比deque快。deque内部有一个中控器,存放每个缓冲区的地址,维护缓冲区中的内容,缓冲区存放真实数据。依然用iterator迭代器。注:如果将传入的形参加const修饰:const deque<int>d , 就需要将迭代器改为const_iterator。

2024-02-06 16:16:02 1232

原创 c++学习第十四讲---STL常用容器---vector容器

vector功能与数组类似,与数组不同的是,vector可以动态扩展。

2024-02-02 08:20:26 830

原创 c++学习第十三讲---STL常用容器---string容器

string和char*的区别:char*是一个指针string是一个类,封装了char*,管理这个字符串,是char*的容器。

2024-01-27 22:41:14 1600

原创 c++学习第十二讲---STL初识

两种方式:对象/指针public:int m_Age;= v.end();= v.end();

2024-01-26 19:16:39 821

原创 c++学习第十一讲---文件操作

c++中对文件操作需要包含头文件 < fstream >文本文件:以ASCII码形式储存二进制文件:以二进制文件储存(读不懂)操作文件三大类:读:ifstream;写:ofstream;读写:fstream。

2024-01-22 19:30:51 620

原创 EasyX图形化学习(三)

数据类型IMAGE:保存图片的数据类型。

2024-01-18 21:53:30 735

原创 c++学习第十讲---类和对象---模版

建立通用的模具,提高复用性。特点:模板不可以直接使用,它只是一个框架。分类:函数模板和类模板。

2024-01-18 07:37:39 854

原创 c++学习第九讲---类和对象---多态

上面的代码,即使传猫的对象,结果也为“动物说话”,是因为函数的地址在编译阶段就确定了,一定会执行animal类里的speak;问题:多态使用时子类中如果有属性开辟到堆区,那么父类指针在释放时无法调用子类的析构函数,可能会造成内存泄漏。在上面的案例中,父类中的虚函数基本没有使用的必要,因此函数内部可以不写内容,将虚函数变为纯虚函数。Cat 类内部继承了同样的虚函数指针,当子类重写虚函数,会将表中的父类函数指针覆盖。(2)子类必须重写抽象类中的纯虚函数,否则也属于抽象类。(2)纯虚析构:在类内声明,类外实现。

2024-01-11 17:57:05 382

原创 c++学习第八讲---类和对象---继承

使子类(派生类)拥有与父类(基类)相同的成员,以节约代码量。

2024-01-07 21:08:34 519 1

原创 c++学习第七讲---类和对象---运算符重载

对已有的运算符进行重新定义,赋予其另一种功能,以适应不同的数据类型。

2024-01-06 20:53:31 391

原创 c++学习第六讲---类和对象---对象模型和this指针,友元

在c++中,成员变量和成员函数是分开储存的,且只有 非静态成员变量 才属于一个对象。

2024-01-05 11:24:30 434

原创 c++学习第五讲---类和对象---封装,对象的初始化和清理

对象:万事万物皆为对象;类:具有相同性质的对象,可以抽象为类。

2023-12-29 15:58:06 865

原创 EasyX图形化学习(二)

peekmessage函数会将消息保存到 ExMessage 结构体中,只需查看 msg.message (一个成员变量)的内容即可知道按了什么键。filter:默认 -1 获取所有类别的消息。removemsg:在 peekmessage 处理完消息后,是否将其从消息队列中移除。如果获取到了消息,返回 true,如果当前没有消息,返回 false。msg.y 中保存了按键时鼠标的位置坐标。ExMessage---这个结构体用于保存鼠标消息。的指针,用来保存获取到的消息。msg:指向消息结构体。

2023-12-14 18:03:04 1704

原创 EasyX图形化学习(一)

(1)EX_SHOWCONSOLE --- 在创建图形化窗口的同时保留控制台窗口。(2)EX_NOCLOSE --- 禁用图形化窗口的关闭按钮。(3)EX_NOMINIMIZE --- 禁用图形化窗口的最小化按钮。(4)EX_DBLCLKS --- 检查鼠标是否双击。注:若想同时使用上面的宏,可用按位或“ | ”连接。

2023-12-07 11:40:12 1080

原创 c++学习第四讲---函数提高

在( )中将参数赋值,如果传值了,则用传入值,否则才用函数中默认参数。注:1.如果一个位置有了默认参数,那么之后的所有位置都要有默认参数。2.占位参数也可以有默认参数。在函数( )中只有数据类型,没有变量名的变量称作函数占位参数。2.参数有无 const 算作不同类型。(3)函数参数类型不同,或者个数不同,或者顺序不同。1.引用作为重载条件:(有无 const )即根据传入的数据不同调用同名的不同函数。注:1.返回值不同不作为函数重载的条件;结论:在函数重载中尽量不出现默认参数。注:1.暂时用不到。

2023-12-04 18:07:13 433

原创 c++学习第三讲---引用

如 int& ref = a;等价于int* const ref = &a;语法:数据类型 + &别名 = 原名 (注:数据类型与原名类型一致)既然为常量(const),也说明为什么引用在初始化后不可更改。通常用法:用 const 来修饰形参,防止误操作改变实参。作用:函数传参时,可以用引用让形参影响实参(代替指针)。等价于 *ref = 20;使用:例:const int& ref = 10;(1)引用必须初始化。---错误:int &b;(2)引用在初始化后不可更改。作用:给变量起别名。

2023-12-01 17:26:26 344

原创 c++学习第二讲---内存分区模型

c++将内存分为4个区域:1.代码区:存放二进制的代码,由操作系统进行管理2.全局区:存放全局变量以及常量3.栈区:由编译器自动分配释放,存放函数参数值,局部变量4.堆区:由程序员分配和释放。

2023-11-29 17:46:00 369

原创 c++学习第一讲---三目运算符,struct结构体

注:请在学习过c语言的基础上再食用。

2023-11-29 16:37:48 357

原创 c语言-零基础学习收官项目-贪吃蛇

windows作为开发系统为程序员提供的一些函数接口,用以实现一些功能。注:只在windows系统中可用。

2023-11-27 11:05:33 1309

原创 c语言-零基础学习第三十讲-双向链表

【代码】c语言-零基础学习第二十九讲-双向链表。

2023-11-12 15:33:57 36

原创 c语言-零基础学习第二十九讲-单链表

链表是⼀种物理存储结构上⾮连续、⾮顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。节点的组成主要有两个部分:当前节点要保存的数据和保存下⼀个节点的地址(指针变量)。链表⾥的每节"⻋厢"都是独⽴申请下来的空间,我们称之为“结点/节点”。在链表⾥,每节“⻋厢”是什么样的呢?链表的结构跟⽕⻋⻋厢相似。

2023-10-26 20:47:57 38

原创 c语言-零基础学习第二十八讲-顺序表

数据结构是计算机存储、组织数据的⽅式。

2023-10-20 22:47:17 32

原创 c语言-零基础学习第二十七讲-预处理详解

注:#define后面不要加‘;注:如上,替换为3+2*3+2=11如想独立计算,可注:“\”:续行符,替换回车,可转行。//可替换#undef M;int b = M;//不可替换return 0;(VS不支持)许多C的编译器提供了⼀种能⼒,允许在命令⾏中定义符号。⽤于启动编译过程。//linux 环境演⽰。

2023-10-20 15:51:33 42

原创 c语言-零基础学习第二十六讲-文件操作(2)+编译和链接

如果从磁盘向计算机读⼊数据,则从磁盘⽂件中读取数据输⼊到内存缓冲区(充满缓冲区),然后再从缓冲区逐个地将数据送到程序数据区(程序变量等)。SEEK_END---文件的末尾。注:fgets读取时会少读一个字符,在后面补一个“\0”(见上)。offset---从origin对应位置的偏移量。注:origin参数有三种,SEEK_SET---文件开始位置。ferror函数:判断读取结束原因是否为读取错误结束。feof函数:判断读取结束原因是否为遇到文件尾结束。输入的内容会转换为二进制,读取也以二进制读取。

2023-10-17 21:58:17 38

原创 c语言-零基础学习第二十五讲-文件操作

程序⽂件包括源程序⽂件(后缀为.c),⽬标⽂件(windows环境后缀为.obj),可执⾏程序(windows环境后缀为.exe)。return 0;

2023-10-14 16:56:57 47

空空如也

空空如也

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

TA关注的人

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