- 博客(54)
- 资源 (1)
- 收藏
- 关注
原创 【强制转换】浮点数计算式转换为整型数据涉及到的注意点
不强制转换,直接赋值时,解算出来的数据,误差是最小的。强制转换时,进行解算时,后边的小数点直接给抹去了。
2024-12-12 17:52:50
468
原创 【动态库静态库】VS中如何生成调用静态库、动态库以及全局变量的使用
① 找到你要分享的代码文件,add.c 和 add.h 文件,拷贝一份② 创建一个空的工程项目命名为 add③ 再把 add.c 和 add.h 文件拷贝到该空工程项目下④ 添加到工程项目中,注意这个工程是无法运行的,因为没有main函数,无法编译成可执行程序,但可以编译成静态库⑤ 但是此时可以 右键工程名字,找到属性,常规中,配置类型点击静态库⑥选择静态库⑦ 然后,ctrl+f5,编译加运行,无法生成可执行程序,但可以生成add.lib,静态库。
2024-12-06 17:46:58
955
原创 (八)STM32 USART —— 串口通讯
理解各种串口通信接口和电平标准;串口通信的特点;USB 转 串口的原理;STM32 的 USART 的用法,以及衍生出的各种函数;
2023-12-19 12:18:37
2857
原创 (五)STM32 按键输入实验及 GPIO做普通 IO 的注意事项
STM32 的 GPIO 做为输入时如何配置;按键消抖操作; GPIO 中哪些 IO 口不轻易当作普通的IO 来使用
2023-12-16 17:34:22
1387
原创 (七)STM32 NVIC 中断、优先级管理及 AFIO 时钟的开启
搞清楚 STM32 的中断是什么;NVIC 嵌套向量中断控制器、EXTI 外部中断/事件控制器是什么;中断优先级分组是什么;AFIO时钟什么时候开启
2023-12-13 14:41:36
2738
原创 【工具使用】Keil常用的调试操作整理介绍
2、当选择了非0级优化时,调试可能会变得困难,具体表现在断点调试。该按钮是在进入了函数单步调试的时候,有时候你可能不必再执行该函数的剩余部分了,通过该按钮就直接一步执行完函数余下的部分,并跳出函数,回到函数被调用的置。:如果是在C语言窗口中,则是按单条语句执行,与单步调试不同的是,遇到函数不会进入函数内部,而是直接全速运行函数,并跳到下一条语句。但我的Keil软件中无法显示这个视图,并且通过修改系统试图,调试时,点击打开系统视图发生了闪退的现象,目前能想到的原因是:重新安装Keil,安装最新版本。
2023-11-29 16:10:10
14826
4
原创 51单片机AD模数转换(SPI通信)
一、AD/DA介绍 AD(AnalogtoDigital):模拟-数字转换,将模拟信号转换为计算机可操作的数字信号,DA (Digital to Analog) :数字-模拟转换,将计算机输出的数字信号转换为模拟信号 AD/DA转换打开了计算机与模拟信号的大门,极大的提高了计算机系统的应用范围,也为模拟信号数字化处理提供了可能。二、硬件电路模型 AD转换通常有多个输入通道,用多路选择开关连接至AD转换器,以实现AD多路复用的目的,提高硬...
2022-03-22 17:07:30
10734
原创 51单片机直流电机调速
一、直流电机介绍 直流电机是一种将电能转换为机械能的装置。一般的直流电机有两个电极,当电极正接时, 电机正转,当电极反接时,电机反转。直流电机主要由永磁体(定子)、线圈(转子) 和换向器组成除直流电机外,常见的电机还有步进电机、舵机、无刷电机、空心杯电机等。二、电机驱动电路①大功率器件直接驱动 ULN2003芯片做驱动或直接搭建器件电路,不能反转②H桥驱动,可以做正反转ULN2003芯片:给0输出1,给1输出0;0是有驱动能力的,1是没有驱动能力的,相当于断开,因...
2022-03-21 16:56:13
5624
原创 51单片机LCD1602液晶显示屏
一、LCD1602介绍 LCD1602 (Liquid Crystal Display)液晶显示屏是一种字符型液晶显示模块,可以显示ASCII码的标准字符和其它的一些内置特殊字符,还可以有8个自定义字符 显示容量: 16x2个字符, 每个字符为5*7点阵二、引脚及电路应用三、内部结构框图通过往DDRAM中写入数据,DDRAM在字模库里找到然后显示在屏幕上,屏幕只能显示16*2,但实际可以显示40*2,厂家其实并没有做出来。四、存储结构往...
2022-03-21 11:43:57
13606
5
原创 51单片机DS18B20温度报警器
主要是对主函数逻辑的编写,主要有两个注意点:①将按键换成定时器扫描,要注意,单总线进行传输时,要关闭定时器中断,传输结束后再打开定时器,所有的单总线都得这样。因为单总线中必须要进行延时操作。如果在延时操作时,中断触发,去执行中断函数中的内容,则单总线的时序就发生了变化,影响到单总线的运行。这就是单总线比较鸡肋的地方。IIC则不会,因为IIC是时钟控制,时钟变化,数据才进行传输。②显示精度的问题:显示小数部分,先化为整数,强制类型转化为长整型(因为整型的范围是65535,小数点乘以10000,用整型可
2022-03-20 19:17:58
2545
4
原创 51单片机DS18B20(单总线)温度读取
一、DS18B20介绍 DS18B20是一种常见的数字温度传感器,其控制命令和数据都是以数字信号的方式输入输出,相比较于模拟温度传感器,具有功能强大、硬件简单、易扩展、抗干扰性强等特点 测温范围: -55°C 到+125°C . 通信接口: 1-Wire (单 总线) 其它特征:可形成总线结构、内置温度报警功能、可寄生供电二、引脚及应用电路VCC表示电路的意思,指的是接入电路的电压;VDD表示器件的意思,指的是器件内部的工作电...
2022-03-20 15:01:22
21720
2
原创 51单片机秒表(定时器扫描按键数码管)
利用定时器对代码的优化①对按键代码的优化之前的按键代码unsigned char Key(){ unsigned char KeyNumber=0; if(P3_1==0){Delay(20);while(P3_1==0);Delay(20);KeyNumber=1;} if(P3_0==0){Delay(20);while(P3_0==0);Delay(20);KeyNumber=2;} if(P3_2==0){Delay(20);while(P3_2==0
2022-03-18 11:31:15
5164
9
原创 51单片机EEPROM(I²C总线通信)AT24C02数据存储
一、存储器介绍补充:(1)易失性存储器/RAM 存储速度特别快但掉电丢失①SRAM :运行速度最快,用于电脑CPU,高速缓存;单片机中的SRAM,定义一个变量就会存在SRAM中,使用触发器做的,存储容量小,成本高。②DRAM :运行速度仅次于SRAM,用于电脑里的内存条,手机里的运行内存,电容做的。(2)非易失性存储器/ROM 存储速度比较慢,但掉电不丢失①Mask ROM:第一代,做出来数据是写好的,只能读不能写。②PROM:第二代,做出来只能写一次,以后不能再更改。..
2022-03-16 20:57:46
10420
1
原创 51单片机可调时钟
通过按键实现设置时钟时间void main(){ LCD_Init(); DS1302_Init(); Timer0Init(); LCD_ShowString(1,1," - - ");//静态字符初始化显示 LCD_ShowString(2,1," : : "); DS1302_SetTime();//设置时间 while(1) { KeyNum=Key();//读取键码 if(KeyNum==1)//按键1用来 来回切换模式 {
2022-03-10 19:22:22
4480
4
原创 51单片机DS1302实时时钟
一、DS1302介绍 DS1302是由美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟芯片。它可以对年、月、日、周、时、分、秒进行计时,且具有闰年补偿等多种功能。 RTC(Real Time Clock):实时时钟,是-种集成电路,通常称为时钟芯片。二、引脚定义与应用电路该电路中没有接备用电池,因此掉电再上电之后是初始化设置的时间。三、操作寄存器的定义及时序定义根据时序图来写代码①首先对DS1302进行引脚定义及初始化设置...
2022-03-10 11:22:45
19333
20
原创 51单片机LED 8*8点阵屏显示动画
通过设置变量,让LED点阵屏一帧一帧的显示,对于显示字的数组,用文字取模软件提取main.c文件#include <REGX52.H>#include "Delay.h"#include "MatrixLED.h"//不加code是存放在RAM中,加code是存放在Flash中,Flash中空间更大,只读不写unsigned char code Animation[]={ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0
2022-03-07 19:39:29
3340
2
原创 51单片机LED 8*8点阵屏显示图形
一、LED点阵屏介绍LED点阵屏由若干个独立的LED组成,LED以矩阵的形式排列,以灯珠亮灭来显示文字、图片、视频等。LED点阵屏广泛应用于各种公共场合,如汽车报站器、广告屏以及公告牌等LED点阵屏分类 按颜色:单色、双色、全彩 按像素:8*8、16*16等(大规模的LED点阵通常由很多个小点阵拼接而成)二、显示原理LED点阵 屏的结构类似于数码管,只不过是数码管把每-列的像素以“8”字型排列而 已 LED点阵屏与数码管一样,有共阴和共阳两种接法,不同的接法对应的电路结构不同 LED点
2022-03-07 15:39:21
5860
原创 51单片机电脑通过串口控制LED灯
Hex模式:底层传输的实际数据文本模式:把数据进行编码,显示ASCII码char字符,带括号的是控制字符,无法显示出来代码UART.c#include <REGX52.H>/** * @brief 串口初始化 * @param 无 * @retval 无 */void UART_Init()//UART串口用的T1定时器,模式是8位自动重装载,//4800bps@12.000MHz{ SCON=0x50; //REN置1,允许单片..
2022-03-05 10:42:05
5176
原创 51单片机串口向电脑发送数据
一、串口的介绍 串口是一种应用十分广泛的通讯接口,串口成本低、容易使用、通信线路简单,可实现两个设备的互相通信。 单片机的串口可以使单片机与单片机、单片机与电脑、单片机与各式各样的模块互相通信,极大的扩展了单片机的应用范围,增强了单片机系统的硬件实力。 51单片机内部自带UART (Universal Asynchronous Receiver Transmitter,通用异步收发器),可实现 单片机的串口通信。二、硬件电路简单双向串口通信有两根通......
2022-03-05 10:33:50
23689
8
原创 51单片机定时器时钟
需要LCD1602.c Timer0.c Delay.cmain.c#include <REGX52.H>#include "Delay.h"#include "LCD1602.h"#include "Timer0.h"unsigned char Sec=30,Min=11,Hour=17;void main(){ LCD_Init(); Timer0Init(); LCD_ShowString(2,3,":"); LCD_ShowString(2,6,":...
2022-03-04 16:31:14
2552
原创 51单片机(中断系统)按键控制LED流水灯模式(2)
一、中断系统中断系统是为使CPU具有对外界紧急事件的实时处理能力而设置的。 当中央处理机CPU正在处理某件事的时候外界发生了紧急事件请求,要求CPU暂停当前的工作,转而去处理这个紧急事件,处理完以后,再回到原来被中断的地方,继续原来的工作,这样的过程称为中断。实现这种功能的部件称为中断系统,请示CPU中断的请求源称为中断源。微型机的中断系统一般允许多个中断源,当几个中断源同时向CPU请求中断,要求为它服务的时候,这就存在CPU优先响应哪一个中断源请求的问题。通常根据中断源的轻重缓急排队,...
2022-03-04 16:18:23
15837
7
原创 51单片机(定时器)按键控制led流水灯模式(1)
一、定时器介绍●定时器介绍:51单片机的定时器属于单片机的内部资源,其电路的连接和运转均在单片机内部完成●定时器作用:(1)用于计时系统,可实现软件计时,或者使程序每隔一固定时间完成一项操作(2)替代长时间的Delay,提高CPU的运行效率和处理速度............二、STC89C52定时器资源 定时器个数: 3个(T0、 T1、T2),T0和T1与传统的51单片机兼容,T2是此型号单片机增加的资源。 注意:定时器的资源和单片机的型号是关联在一起的,...
2022-03-04 14:32:57
5967
原创 51单片机矩阵键盘密码锁
主要是对主函数中逻辑的描述#include <REGX52.H>#include "Delay.h"#include "LCD1602.h"#include "MatrixKey.h"unsigned char KeyNum;unsigned int PassWord,Count;void main(){ LCD_Init(); LCD_ShowString(1,1,"PassWord:"); while(1) { KeyNum=MatrixKey(); i
2022-03-02 15:41:01
1819
4
原创 51单片机矩阵键盘
一、矩阵键盘介绍矩阵键盘可以按行也可以按列扫描在STC89C52芯片中所有的IO口都可以是输入也可以做输出,P1 P2 P3都是弱上拉,P0是开漏输出,但在开发板上已经做了外部上拉电阻和P1 P2 P3一样。IO口都是弱上拉,强下拉,所以按键扫描是可以IO口接IO的,不会发生短路的现象。二、扫描的概念三、代码采用模块化编程,在LCD1602上显示,当哪个按键按下就是显示哪个数字,矩阵键盘按列扫描首先让P1口全部写高,当P13口为0,检测P17 P16 P15 P14口的电
2022-03-02 15:35:53
11086
原创 51单片机LCD1602液晶屏显示
根据厂家提供的LCD1602驱动代码,会直接调用即可,要知道每个函数中的参数代表什么意思。前两位都是代表起始位,第三位代表所显示的内容,第四位代表内容长度#include <REGX52.H>#include "lcd1602.h"#include "Delay.h"int Result=0;void main(){ LCD_Init();// LCD_ShowChar(1,1,'A');// LCD_ShowString(1,3,"Hello");// L..
2022-03-02 13:10:44
2628
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人