自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 STM32__06—单通道ADC

一,ADC(模数转化)STM32芯片集成了12位逐次逼近型ADC模块,什么是逐次逼近型,简单来说就是内置了一个DAC模块用于输出一个电压与输入电压进行二分比较,通过DAC的数字量来确定输入电压的数值量。输入电压范围为0~3.3,对应数字量0~4095。我使用的是103c8t6,有2个ADC模块,分别为ADC1与ADC2,每个ADC模块有10个通道。接下来是对下面ADC模块进行简单的介绍。 我把本节所要学习的部分,分成3个模块为1,输入模块 输入引脚对于的IO口可以参考下图,该引脚应用图来自江科大 这

2022-07-02 05:03:47 642

原创 STM32__05—PWM控制直流电机

一,TB6612电机驱动模块 直流电机属于大功率器件,GPIO无法直接驱动,需要电机驱动模块配合,才能驱动直流电机.TB6612可以驱动2个直流电机。由IN1,IN2控制电机旋转方向,由PWM控制电机旋转速度。二,代码部分核心代码还是为PWM部分,直流电机初始化也只是多初始化2了两个GPIO口,用于产生电压差,驱动电机,并且可以通过2个GPIO口改变电机旋转方向。接线图来源:B站江科大 PWM.cMotor.cmain.c...

2022-07-01 16:44:44 5286 2

原创 蓝桥杯国赛十一届

一,代码部分1,iic.c2,smgshow.c3,ds1302.c4,main.c二,总结国赛加油

2022-06-17 00:14:21 756

原创 备战蓝桥杯day20__超声波基本应用

一,超声波测距原理 蓝桥杯超声波模块分2个部分,为发送模块和接收模块。发送模块负责发送超声波,然后开始计时,接收模块负责接收反弹回来的超声波,然后停止计时,由此我们可以推断出测距公式 L=340*t/2=170*t(假定声速为340m/s)发送端接在单片机的P1^0,接收端接在P1^1。二,代码部分该代码实现基本距离的测量,超基本距离显示999。如何实现超声测距,我们需要一下步骤:1,发射超声波我这里发送的是8

2022-06-01 11:55:03 764

原创 STM32__04—PMW呼吸灯

一,OC比较输出比较OC比较输出可以通过比较CNT与CCR的值从而控制输出的高低电平,如当CNT>CCR时输出高电平,CNT<=CCR时输出低电平,这时我们可以通过控制CNT与CCR的值去输出不同的频率和占空比的PWM信号。所以我们这里需要使用通用定时器的CCR寄存器(红框部分)配置方法可以参考B站江科大这张图注意:我们这里使用的是正极性驱动驱动(LED阴极接PA0,阳极接电源负极) 二,代码部分1,打开RCC,使用内部时钟源2,TIM2初始化3...

2022-05-07 23:56:36 2321 2

原创 STM32__03—初识定时器

一,TIM简介TIM的本质就是计数器,对输入的时钟进行计数,基准时钟为主频72MHZ,不分频时每秒可以产生72M个脉冲。TIM分高级,通用,基础定时器,我使用的是f102c8t6只有TIM1~TIM4四个定时器,其中TIM1为高级定时器,其他为通用定时器,本次主要围绕通用定时器。1,通用定时器内部结构左侧为时钟输入,这次我们主要了解TIMx_ETR外部时钟与内部时钟TIMxCLK,TIMx_CH1,为输入捕获,本次不涉及。上面结构过于复杂这里引用B站江科大做的一张图对于这张图,我

2022-04-23 11:46:15 2641 3

原创 蓝桥杯省一之路06——第十二届省赛真题第二场

一,代码部分1,iic.c/* 程序说明: IIC总线驱动程序 软件环境: Keil uVision 4.10 硬件环境: CT107单片机综合实训平台 8051,12MHz 日 期: 2011-8-9*/#include "reg52.h"#include "intrins.h"#define DELAY_TIME 5#define SlaveAddrW 0xA0#define SlaveAddrR 0xA1//总线引脚定义sbit SDA = P

2022-04-22 15:41:19 1402

原创 蓝桥杯省一之路05——第十二届省赛真题第一场

一,代码部分1,ds18b20.c#include "reg52.h"#include "onewire.h"void Convert_18b20(){ init_ds18b20();//初始化 Write_DS18B20(0xcc);//跳过ROM Write_DS18B20(0x44);//开启温度转化 }float Read_18b20(){ int t; float Temp; unsigned char LSB,MSB; init_ds18b20();.

2022-04-19 17:07:15 156

原创 蓝桥杯省一之路04——第十届省赛真题

一,代码部分1.smgshow#include "reg52.h"void Delay(int t){ while(t--);}void HC573(unsigned char channel, unsigned char dat){ P0=dat; switch(channel) { case 4: P2=(P2 & 0x1f) | 0x80;//选通Y4C,LED break; case 5: P2=(P2 & 0x1f) | 0.

2022-04-17 16:02:44 323

原创 STM32__02—初识外部中断EXTI

一,外部中断中断可以使STM32的执行效率大大提升,不需要使用轮询浪费系统运行的空间,在主程序运行中,出现中断时暂停正在执行的程序,转而去执行中断程序,处理完后在执行中断前运行的程序。中断有优先级,可以使用嵌套。如何产生外部中断?1)AFIO中断引脚选择AFIO为对GPIO等外设进行设置的外部中断控制寄存器,AFIO的时钟与GPIO相同RCC_APB2中打开。2)EXTI边缘检测与控制产生中断路线把输入信号输入到NVIC,此时可以控制触发方式,由输入信号上升沿触发还是下降沿触发。

2022-04-16 23:10:50 320

原创 蓝桥杯省一之路03——第十三届省赛真题

一,代码部分1.ds1302#include "ds1302.h" //写字节void Write_Ds1302(unsigned char temp) { unsigned char i; for (i=0;i<8;i++) { SCK = 0; SDA = temp&0x01; temp>>=1; SCK=1; }} //向DS1302寄存器写入数据void Write_Ds1302_B

2022-04-16 10:28:48 150

原创 蓝桥杯省一之路02——第八届省赛真题——电子钟

1,ds18b20.c#include "reg52.h"#include "onewire.h"void Conv_18B20()//开启温度转化{ init_ds18b20(); Write_DS18B20(0xcc); Write_DS18B20(0x44);}float Read_18B20(){ unsigned char LSB; unsigned char MSB; int t; float T; init_ds18b20(); Write_DS18B20

2022-04-14 22:18:01 1014 1

原创 STM32__01—GPIO介绍与点亮LED

一,GPIOGPIO中文名称为通用IO口,功能与IO口类似,用于输入与输出,STM32通过GPIO与外设连接,从而实现外设的通信与控制。本节使用的GPIO最简单的输入,输出功能,为高低电平的输出与输入电平的检测。GPIO有八种工作模式其中输入,输出各4种:输入部分:1,模拟输入:采集原始的模拟信号,用于数模转化。2,浮空输入:此时电平是不确定的,有外部输入决定。3,上拉,下拉输入:上拉默认端口为高电平,下拉默认为低电平。(当默认为高电平时,如果输入为低电平,该端口可.

2022-04-12 16:40:03 964 1

原创 蓝桥杯省一之路01——第十一届省赛真题一,二场

一,第一场#include "reg52.h"#include "smgshow.h"#include "PCF8591.h"#include "AT24C02.h"#include "Timer.h"sbit R1=P3^2;sbit R2=P3^3;sbit C1=P3^5;sbit C2=P3^4;int Va,Vp,dig;bit Sta_Va;int Old_Va;int New_Va;void LED3();void Read_Vrb2(){ unsigne

2022-04-07 14:17:57 325

原创 备战蓝桥杯day19__基于PCF8591的DAC模拟输出

题目来源微信公众号:小蜜蜂笔记。一,代码部分#include "reg52.h"#include "smgshow.h"#include "PCF8591.h"sbit S4=P3^3;int v1;unsigned char sta=1;void DAC(){ switch (sta) { case 1: PCF8591_DAC(102);//输出2V电压 break; case 2: PCF8591_DAC(205);//输出4V电压 brea..

2022-04-05 20:40:14 931

原创 备战蓝桥杯day18__PCF8591基本原理与AD转化应用

一,PCF8591PCF8591是一个拥有4路模拟输入,1路DAC输出的AD,DA转化芯片,使用I2C为通信接口AIN0,AIN1,AIN2,AIN3:4路模拟信号输入。A0,A1,A2:硬件地址,在蓝桥杯平台为接地,默认地址的前4为1010,最后一位为写保护位。Vss:备用电源。SDA,SCL:I2C通信相关。Vref:为参考电压,蓝桥杯平台参考电压为5V,意味着模拟信号的5V,相当于数字信号的255。在进行I2C通信时,第一位发送的字节数据为设备地址,等待...

2022-04-01 20:46:56 1071

原创 备战蓝桥杯day17__AT24C02的简单存储

一,AT24C02AT24C02为一种ROM,存储介质为E2PROM,掉电不丢失,以I2C为通信接口,有8个引脚。A0,A1,A2:设备地址,AT24C02地址有8位,前4位默认1010,最后一位为写保护低电平有效。SCL:时钟线。SDA数据线。AT24C02进行读写需要SCL与SDA配和。1,写操作:该时序为向24C02写入一个字节的数据,基本流程为:   1)Start(SCL高电平期间,SDA从高电平切换到低电平)   2)写入设备地址,蓝桥杯平台24...

2022-04-01 15:31:30 5057

原创 备战蓝桥杯day16__555芯片

一,555芯片该芯片内部有5个5K分压电阻,故而称为555定时器。它是一种纯硬件设计,没有可以编程的部分,再蓝桥杯开发平台可以把555芯片看成一个信号发生器,产生方波信号,可以通过调节电位器Rb3来调节频率。 输出引脚为SIGNAL,通过跳帽把输出引到P34引脚。二,代码部分#include "reg52.h"#include "xmf_smg_ca.h"unsigned char SMGnotdotduanma[]={0xc0,0xf9,0xa4,0xb0,0x99,0...

2022-03-24 23:41:22 702

原创 备战蓝桥杯day15__DS1302基本应用

一,DS1302DS1302是一种RTC(实时时钟),通常称为时钟芯片 。Vcc1,Vcc2:为供电引脚,Vcc1为备用电池引脚,Vcc2为主电源。X1,X2:连接晶振。CE:为使能段。IO:数据输入/输出。SCLK:串行时钟线,在上升沿写入,下降沿读出。DS1302读写指令在同一个寄存器,但是在读与写的时候地址不同,需要注意。CH:时钟暂停标志位,为0时,时钟振荡停止,为1时,时钟开始运行。WP:写保护位,为0时,可对时钟或者RAM进行写入,为1时禁止写入。

2022-03-21 21:05:11 513

原创 备战蓝桥杯day14__DS18B20测温

一,DS18B20DS18B20是一种常见的数字温度传感器,相比模拟温度传感器,它能直接输出温度值。测温范围—55°C~125°C,采用单总线通信,支持寄生供电(提供工作电压与传输数据可同用一条线,使用寄生供电时需要采用强上拉输出电流)。内部主要元件有:ROM:一条总线中可以连接多个DS18B20,这个ROM存储ID号相当与DS18B20的地址,用于通信寻址,在蓝桥杯实训平台只有一个DS18B20,所以可以跳过寻址这一步。SCRATCHPAD:本质就是一个暂存器,用于与总线进行交互,测量到.

2022-03-17 21:53:41 632 2

原创 备战蓝桥杯day13__存储器外部扩展应用

一,存储器拓展 前几片文章我们都是对IO口的设置实现功能,这样有一个缺点就是多次重复对IO口进行设置,比如使用不同的外界器件时需要不断对锁存器,IO口进行操作,会导致代码过于臃肿。存储器扩展技术可以理解为每个外界器件赋予它一个外界存储器,直接把命令写入存储器中控制外界器。二,代码部分 #include <stdio.h>#include <absacc.h>#include <intrins.h>void Delay20...

2022-03-11 23:34:28 270

原创 备战蓝桥杯day12__串口通信进阶应用

一,程序设计的思路与框架在上一个程序中我们实现了向上位机发送的都是为单个字符,这次需要向单片机发送一个字符串。需要建立一个发送字符串的函数。将字符串分成当个字符,使用发送单个字节的函数进行发送。 在接收上位机指令的处理是这道题目比较关键的部分,如何把接收到的信息,进行区分成多个状态指令。...

2022-03-01 19:19:46 246

原创 备战蓝桥杯day11__串口通信基本操作

一,串口通信串口通信有多种这里我们选择的是UART,UART是一种全双工,异步的串口通信,那什么是全双工和异步呢? 我们这里使用的是异步需要约定一个相同的通信速率,而这个通信速率叫做波特率,指每秒钟数据传输的位数,如我们常用的9600波特率就是指每秒钟传输9600位。所以我们需要规定一个波特率,而这个波特率由定时器1来产生,所以我们开启定时器1,通过给TH1,TL1初值来决定波特率的多少。到底需要赋值多少可以使用STC-isp来计算。而传输或者接收的数据放在SUBF.二,代...

2022-02-27 15:10:19 563

原创 备战蓝桥杯day10__PWM控制灯光亮度

一,PWM PWM为脉冲宽度调制,在这个题目中通过控制占空比来控制灯的亮度,如题目PWM脉宽信号一个周期为10000us,在蓝桥杯开发平台中低电平时LED亮起,所以我们可以通过调节低电平在一个周期所占用的时间来控制灯的亮度,本质是低电平亮,高电平灭,但是由于周期短,人眼无法识别,人眼所看到的只是亮度的变化。、二,代码部分#include <reg52.h>#include <intrins.h>sbit L1=P0^0;sbit S7=P3^0;vo...

2022-02-15 15:31:38 891

原创 备战蓝桥杯day9__定时器进阶

这个题目是对前面所学知识的小总结,没有什么新的知识点但是多了很多细节。一,代码部分#include <reg52.h>#include "intrins.h"void HC138(unsigned char n);sbit S5=P3^2;sbit S4=P3^3;unsigned char m=0;unsigned char s=0;unsigned char _50ms=0;void Inisystem(){ HC138(4); P0=0xff; HC1..

2022-02-09 22:14:11 387 1

原创 备战蓝桥杯day8__定时器实现秒闪功能

一,什么是定时器51单片机有两个定时/计数器T0和T1,为16位加法计数器,由低8位TLx和高8位THx两个寄存器组成,最大计数值为65535个计数脉冲。计数器的脉冲来源有2种,一种是系统时钟输出的12分频,如单片机的外部晶振为12Mhz,那么12分频后,输入计数器的计数脉冲为1Mhz,及每个脉冲的周期为1us。因此定时T0最大的定时时间为65535us,也就是65.5ms. 如果我们需要定时50ms应该如和操作,要定时50ms,意味着要计数50000个脉冲就到65535了所以...

2022-02-09 11:39:56 1143 2

原创 备战蓝桥杯day7__外部中断系统基本操作

一,51单片机的中断系统51单片机中有5个中断源这里使用的是外部中断0:INT0。上面是51单片机的中断系统结构,这决定了你的中断向量,也就是中断初始函数需要如何写,首先图中INT0代表着外部的输入,我们需要让IT0,EX0,EA等于1。接下来是中断服务函数的书写1,中断函数不能有返回值,且不能带参数。2,中断函数名括号后面要加 interrupt 来表明这个是一个中断服务函数。3,interrupt后面要加中断号。如INT0的中断号为0。二,代码部分...

2022-02-08 21:38:03 718

原创 备战蓝桥杯day6__矩阵键盘

一,矩阵键盘的扫描思路要了解矩阵键盘的扫描思路,我们先要清楚单个开关的结构。 如果我们要识别黄色按钮按下的状态,应该怎么做呢?我们让R1输出低电平,R2,R3,R4输出高电平,然后去读取C1~C4的状态,如果都为高电平则R1行上没有按键按下。依次类推到R3输出低电平,R2,R1,R4输出高电平,然后去读取C1~C4的状态,会发现C2为低电平,从而确定按下的开关为R3C2.二,代码部分s#include <reg52.h>#include &lt...

2022-02-08 16:48:01 164

原创 备战蓝桥杯day5__独立按键的基本操作与扩展应用

一,元件介绍 使用独立键盘时,需要使跳帽在2-3,引脚在按下时,P30—P33相应的引脚为低电平,通过检测哪个引脚为低电平,来判断哪个按键按下,从而实现什么功能。二,代码部分#include <reg52.h>sbit L1=P0^0;sbit L2=P0^1;sbit L3=P0^2;sbit L4=P0^3;sbit S7=P3^0;sbit S6=P3^1;sbit S5=P3^2;sbit S4=P3^3;void Delay(un...

2022-02-05 22:28:20 708 1

原创 备战蓝桥杯day4__数码管动态显示

一,代码部分#include "reg52.h"#include "intrins.h"unsigned int month=1;void SMG_2022();unsigned char code SMG_duanma[18]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x80,0xc6,0xc0,0x86,0x8e,0xbf,0x7f};void HC138(unsigned char n){ sw...

2022-01-25 20:37:38 291 1

原创 备战蓝桥杯day3__数码管静态显示

一,元件介绍 数码管分共阴和共阳,com端用于控制哪个数码管亮,而a,b,c等控制数码管的段码,共阳数码管及段码对应的端口为低电平时,则亮起,共阴与其相反,

2022-01-21 20:15:51 469

原创 备战蓝桥杯day2__蜂鸣器与继电器

一,元件介绍1,继电器当继电器中间的线圈导通时,电生磁把K1吸下来,与m2连接,不导通时K1与m1连接,当继电器工作时,继电器旁边的LED会亮起。我们通过控制N BELAY端口来控制继电器是否工作,该端口为1时继电器不工作,为0时工作。2,...

2022-01-20 19:35:51 415

原创 备战蓝桥杯day1__LED跑马灯

51单片机于大多数单片机不同,在点亮LED时不是仅仅输出一个高电平就可以解决,需要经过一个74HC138译码器,一个74HC573锁存器。一,74HC138译码器有6个输入端口但是我们只需要关注A,B,C端口,由这三个端口决定8个输出端口哪个输出 低电平。规则如下:二,74HC573锁存器 该锁存器为非反转透明锁存器,非反转的意思时输入什么就输出什么,锁存:把输出端的状态锁定,不受输入的影响。当LE端口为高电平时为打通状态,意味着此时输入影响这输出。掌握的以上的知...

2022-01-19 20:05:39 449

原创 基于arduino的多个舵机控制

一,setup与外部 首先你想使用舵机就需要去调用arduino ide的Servo这个库函数,第二步定义你的舵机名称采用Servo +舵机名称,我这里有4个舵机就定义了四个。 接下来是setup函数的部分,依旧采用舵机名称.attach(),用来告诉你的arduino你的舵机分别连接在哪个端口,记连接端口要带~,这表示这个端口支持输出pwm。注意我连接的位置。记得开发板要与舵机共地,这是信号传输的关键!!!!!用begin设置波特率为9600。最后用print...

2021-12-19 10:57:10 6943 5

原创 基于Arduino控制伺服电机(舵机)

一·,串口监视器的应用运用到的函数与关键字有:setup,loop,begin,println,print,available,parselnt.其中begin,avaliable属于Serial库中的库函数,调用格式为 库函数名.需要调用的函数。setup:只执行一次,arduino.ide不可缺少的函数,可理解为开始运行程序的准备阶段。loop:也是arduino.ide中的不可缺少的函数,循环函数,一直执行。begin:设置串口通信的波特率,波特率为单位时间传输码元符号的个...

2021-12-02 21:35:24 2228

空空如也

空空如也

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

TA关注的人

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