自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 资源 (1)
  • 收藏
  • 关注

原创 TL431的工作原理

VKA被拉低后,导致R1、R2上分压降低,则VREF降低,当VREF降低到<2.5V后,TL431截止,VKA电压又上升,R1、R2上分压增大,VREF电压又回升,当VREF电压回升到>2.5V后,TL431又导通,VKA又被拉低,如此循环往复。起初当VKA>2.5V时,431导通,K端和A端短接,K端电压被拉低到VKA<2.5V,则431立马截止,K端和A端断开,K端电压又升高到>2.5V,431再次导通,如此循环往复,由于导通截止是一个较快的过程,使得VKA最终稳定在2.5V。

2025-09-17 15:38:46 457

原创 进阶五 按键切换不同led流水效果

功能概述crol()cror()blink()off()

2025-06-20 16:02:08 397

原创 进阶四 带记忆功能的000-255 计数器

/ 限制计数值在0-255范围内。// 读取当前计数值。// 8位数据接口,两行显示,5x7点阵。// 写入新数据后光标右移,显示不移动。// 读取当前计数值。// 显示开,光标关,闪烁关。if(button == 0) { // 检测按键按下。

2025-06-13 16:27:35 631

原创 进阶三 超声波测距LED显示

说明:定时1 采集数据,解决led闪烁问题。

2025-06-13 12:06:00 232

原创 进阶二:基于HC-SR04和LCD1602的超声波测距

本实验中,LCD1602的数据口接89C51的P0口,用于传输数据和指令;接通电源后,LCD1602液晶显示屏上正常显示“Distance: cm”,当改变被测物体与HC-SR04超声波测距模块之间的距离时,显示屏上的距离值能够实时更新,并且测量结果与实际距离基本相符。模块自动检测是否有返回信号,若有返回信号,ECHO引脚会输出高电平,高电平持续的时间就是超声波从发射到返回的时间。改变被测物体与HC-SR04超声波测距模块之间的距离,观察LCD1602液晶显示屏上显示的距离值是否相应变化。

2025-05-10 21:08:26 1013

原创 进阶一: 带记忆功能的00-59计秒器

通过AT24C02 记忆计数的状态,开机后显示上次结束的数值。

2025-05-06 08:45:03 366

原创 什么是IIC通信

即,是一种串行通信总线,由飞利浦公司在1980年代开发,主要用于连接主板、嵌入式系统或手机中的低速外围设备。IIC协议采用,允许多个主设备和从设备连接在同一总线上进行通信。IIC协议的工作原理:。SDA用于传输数据,SCL用于提供时钟信号以确保同步。IIC总线上的每个设备都有一个唯一的地址,主设备通过发送这个地址来选择与其通信的目标设备。:当SCL为高电平时,SDA从高电平跳变到低电平,表示通信开始。:在数据传输过程中,SCL为高电平时,SDA上的数据必须保持稳定;

2025-05-05 12:59:46 1140

原创 实验七:基于89C51和DS18B20的温度采集与显示

学习使用DS18B20数字温度传感器采集温度数据。使用4位共阳极数码管显示温度数据,显示精度到小数点后两位。熟悉89C51单片机的I/O口操作和位选控制。89C51单片机开发板DS18B20数字温度传感器4位共阳极数码管三极管8550(用于位选驱动)电阻、电容等辅助元件杜邦线若干:分别连接数码管的A - G段和DP(小数点)。P2.4P2.5P2.6P2.7:分别控制数码管的不同位显示。使用8550(PNP型)作为位选驱动,控制数码管位选通。DQ端连接89c51的P2.3。

2025-04-29 22:54:12 1085

原创 实验五 LCD1602 显示字符串

【代码】实验五 LCD1602 显示字符串。

2025-04-21 20:37:41 223

原创 选作一 LED显示4*4键位值

【代码】实验扩充 LED显示4*4键位值。

2025-04-19 19:02:51 841

原创 51单片机波特率与溢出率的关系

若计数初值为X(即从X开始计数),那么以工作在方式2的8位自动重装计数,则可以计数256,从而需要计数的位数为:256-X。1/fosc易知为一个晶振周期(也就是拍节),12/fosc也就是一个机器周期(因为单片机中一个机器周期为12个晶振周期)。波特率(Baud Rate)表示串口通信中每秒传输的位数(bps),而溢出率是定时器每秒溢出的次数。根据所需的波特率和晶振频率,计算定时器的初值 TH1。51单片机的串口有4种工作模式(模式0~3),其中模式1和模式3的波特率是可变的,由定时器1的溢出率决定。

2025-04-14 23:14:56 1272

原创 中断优先级应用

【代码】中断优先级应用。

2025-04-03 15:29:57 146

原创 外部中断优先级

【代码】外部中断优先级。

2025-04-03 15:14:41 152

原创 定时器中断实现led闪烁(main闪烁&中断闪烁)

【代码】定时器中断实现led闪烁。

2025-04-03 09:42:49 221

原创 延时函数参数传递led闪烁

【代码】延时函数参数传递led闪烁。

2025-04-02 09:54:21 353

原创 延时函数led闪烁

【代码】延时函数led闪烁。

2025-04-02 09:51:33 250

原创 第一个发光二极管闪烁

【代码】第一个发光二极管闪烁。

2025-04-01 16:34:27 120

原创 点亮多个LED

【代码】

2025-04-01 16:12:07 97

原创 点亮单个LED

【代码】

2025-04-01 16:03:38 112

原创 Timer/Counter Control Register.(Reset Value = 0000 0000b)

TCON Register - TCON (S:88h)

2025-03-25 15:20:35 287

原创 外部中断控制SMG

【代码】外部中断控制SMG。

2024-11-13 11:20:49 131

原创 流水灯C51

【代码】流水灯C51。

2024-11-13 10:07:28 134

原创 32 矩阵键盘扫描行反转法采用头文件

【代码】32 矩阵键盘扫描行反转法采用头文件。

2024-11-04 16:20:53 271

原创 31 矩阵键盘行扫描法程序采用头文件

【代码】31 矩阵键盘行扫描法程序采用头文件。

2024-11-04 15:32:17 162

原创 30 矩阵键盘行扫描法

0xf7)break;break;break;break;=0xf7);=0xfb)break;break;break;break;=0xfb);=0xfd)break;break;break;break;=0xfd);=0xfe)break;break;break;break;=0xfe);

2024-11-04 14:55:49 545

原创 C51 定时器应用

这是一段基于51单片机的C语言代码。

2024-10-29 16:31:50 471

原创 关于堆栈的讲解

一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。

2024-10-28 15:20:26 396 1

原创 STM32F103 点亮LED闪烁与仿真

/ 注意这里的函数非常的重要,这里是将对应的GPIO端口初始化成默认的样子,因为这个端口可能在以前使用过,其他的配置可能发生了改变。//打开对应的GPIO的时钟,注意这里不同的外设可能挂载的时钟不同,所以需要开原理图,GPIO_ResetBits(LED_GPIO_PORT, LED_GPIO_PIN);//配置引脚的输出的模式。3、不同的芯片对应的库函数具有一定的差异,所以在进行引入库的时候,可能会出错误,

2024-06-08 10:52:38 856

原创 04 静态显示

/定义按键的输入端(为单片机P2口的P2.1按键)//定义按键的输入端(为单片机P2口的P2.1按键)//定义按键的输入端(为单片机P2口的P2.1按键)//定义按键的输入端(为单片机P2口的P2.1按键)

2024-04-10 11:25:29 377

原创 03 按键识别程序

/定义按键的输入端(为单片机P2口的P2.1按键)while(BY1==0);//按键锁定,每按一次count 只加1.#define uchar unsigned char//宏定义无符号字符型。//右移8-count位。//按键计数,每按一下,count 加1。//将count 清零。if(count==8) //计8次重新计数。//左移count位。//延时,软件去干扰。//定义为11111110。void delay10ms(void) //延时程序。if(BY1==0) //确认按键按下。

2024-04-10 11:08:02 919

原创 02 流水灯

/直接对1/0口赋值,使批输出低电平。a=temp

2024-04-10 09:13:17 291

原创 01 闪烁灯

/定义单片机P1口的第0位 (即P1.0)#define uchar unsigned char//宏定义无符号字符型。#define uint unsigned int //宏定义无符号整型。#include<reg52.h> //库文件。//点亮P1.0口灯。//熄灭P1.0口灯。while(1) //无限循环。void delay()//延时程序。

2024-04-10 08:56:44 483

原创 STM32之GPIO

开漏复用:GPIO口被复用成别的功能,即不是作为GPIO口使用,比如IIC模块对应的输出数据线GP,使用时需要外接上拉电阻。分为A.B.C.D.E.F.G组,每组16个IO,IO都是多功能的,使用之前需要先配置,默认是输入功能。推挽复用:GPIO口被复用成别的功能,即不是作为GPIO口使用,比如UART.SPI模块对应的输出数据线。开漏输出:IO输出0接GND,IO输出1悬空,需要外接上拉电阻,才能实现输出高电平。推挽输出:IO输出0接GND,IO输出1接VCC,拥有比较强的驱动能力。

2024-03-20 14:53:33 284

原创 C语言内部函数与外部函数

开发大型项目,可能包含很多源文件来分别实现,最终,再整合在一起,有时,一个源文件中,需要调用其他源文件中的函数。此时,就需要一些特殊函数,只在定义的文件中有效,这类函数称为内部函数。内部函数只能被本文件中其他函数调用。在定义内部函数时,需要在函数的返回值类型前面添加static关键字,也称静态函数。当多人开发时,可能出现函数重名的情况,不同源文件中的同名函数会相互干扰。编译器,通过extern关键字会知道,add()函数是定义在其他文件中的外部函数。定义外部函数的方式,在函数的返回值类型前面添加。

2023-06-30 19:33:45 495 2

原创 C语言中sprintf()函数的用法

printf 和sprintf都使用格式化字符串来指定串的格式,在格式串内部使用一些以”%”开头的格式说明符来占据一个位置,在后边的变参列表中提供相应的变量,最终函数就会用相应位置的变量来替代那个说明符,产生一个调用者想要的字符串。注意8进制和16进制都不会打印出负数,都是无符号的,实际上也就是变量的内部编码的直接用16进制或8进制表示。9、sprintf的返回值是字符数组中字符的个数,即字符串的长度,不用在调用strlen(str)求字符串的长度。

2023-05-23 21:59:19 2163

原创 29 LCD1602 BY GPT

void lcd1602_display(unsigned char x, unsigned char y, unsigned char *str) //LCD1602显示字符串。void lcd1602_write_data(unsigned char dat) //LCD1602写数据。void lcd1602_write_cmd(unsigned char cmd) //LCD1602写命令。//LCD1602 RW引脚。void lcd1602_init() //LCD1602初始化。

2023-05-23 16:16:07 202

原创 28 单片机控制的88点阵

/* Main.c file generated by New Project wizard * * Created: 周五 5月 12 2023 * Processor: AT89C51 * Compiler: Keil for 8051 */#include #include unsigned char code TableH[] = {0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};unsigned char co

2023-05-12 20:56:30 305

原创 27 DS18B20+4LED 显示温度

/后面的数自动去掉,不管是否大于0.5,而+0.5之后大于0.5的就是进1了,小于0.5的就。//后面的数自动去掉,不管是否大于0.5,而+0.5之后大于0.5的就是进1了,小于0.5的就。//因为读取的温度是实际温度的补码,所以减1,再取反求出原码。switch(i) //位选,选择点亮的数码管,// i=1时 大约延时10us。//间隔一段时间扫描。

2023-05-04 09:46:23 226

原创 26 DS18b20 LED显示

/ 显示0~9的数字。DSPORT = 1;//后面的数自动去掉,不管是否大于0.5,而+0.5之后大于0.5的就是进1了,小于0.5的就。//后面的数自动去掉,不管是否大于0.5,而+0.5之后大于0.5的就是进1了,小于0.5的就。//留两个小数点就*100,+0.5是四舍五入,因为C语言浮点数转换为整型的时候把小数点。DSPORT = 1;

2023-05-03 21:09:48 153

原创 25 LED显示矩阵键盘键值(行扫描法)ASM+C51

初始化MOV A,R3;MOV P0,A;;扫描;;;LP1:clr p1.3jnb p1.7,$mov r3,#0nokey12:jnb p1.6,$mov r3,#4nokey13:jnb p1.5,$mov r3,#8nokey14:jnb p1.4,$mov r3,#12;;;LP2:clr p1.2jnb p1.7,$mov r3,#1。

2023-04-28 11:44:33 901

模拟电子技术基础童诗白

模拟电子技术基础(童诗白) 第三版 PDF 下载

2009-09-07

空空如也

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

TA关注的人

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