- 博客(11)
- 收藏
- 关注
原创 51单片机4位秒表 Proteus仿真+完整代码
• 分时点亮4位数码管,每次只显示一位,利用视觉暂留效果实现“同时显示”。• 定时器T0每10ms产生一次中断,通过累加中断次数实现毫秒级计时。• 机械按键按下时会产生抖动,通过延时函数(约5ms)消除误触发。:16位定时模式,最大定时时长约65ms(12MHz晶振)。:依次点亮4位数码管,利用人眼视觉暂留实现“同时显示”。:通过双重循环实现简单延时,用于按键消抖和动态扫描。• 每10ms触发一次中断,累计100次后秒加1。范围:0~99,实现最大99.99秒显示。:不断刷新显示和检测按键,确保实时响应。
2025-03-20 00:28:02
593
原创 51单片机数字电压表代码详解(ADC0832+LCD1602)
代码实现双通道电压测量(0-5V),通过LCD1602实时显示电压值。:通过向LCD发送初始化指令序列(如4位/8位模式选择、光标设置等),建立单片机与显示屏的通信基础。:将浮点电压值转换为整数mV处理(例如2.5V→2500mV),避免直接处理浮点数的复杂性。:通过特定的CLK和DI引脚电平序列选择ADC0832的输入通道(CH0/CH1):通过LCD_ShowStr的坐标参数(0,0和0,1)实现双通道分屏显示。:5V/256≈19.5mV,即最小可分辨19.5mV电压变化。建议结合硬件实操加深理解。
2025-03-19 00:10:12
653
原创 51单片机超声波测距代码详解(LCD1602显示)仿真图+完整代码
以下代码实现了一个基于51单片机的超声波测距系统,通过LCD1602实时显示距离,并在距离过近时触发声光报警。:通过定时器记录Echo高电平时间( t ),利用公式 ( \text{距离} = \frac{340 \times t}{2} ) 计算实际距离(单位:cm)。:超声波遇到障碍物反射后,模块的Echo引脚输出高电平,高电平持续时间与距离成正比。:单片机向超声波模块的Trig引脚发送一个10μs的高电平脉冲,触发超声波发射。:定时器0设为模式1(16位定时器),用于超声波测距的计时。
2025-03-18 00:16:25
719
原创 STM32 60秒倒计时代码详解(适合初学者) 完整代码+仿真图
,每次只点亮一个数码管,但因切换速度快(约1ms),人眼会认为两者同时亮起。:此方法依赖软件延时,实际时间精度较低(受循环执行速度影响),适合学习基础原理,实际项目建议使用硬件定时器。,适合初学者理解嵌入式开发的基础逻辑。STM32的定时器(如TIM3)可配置为1秒中断,在中断服务函数中更新计时值,精度更高且不阻塞主循环。:选择当前点亮的数码管位置(PA0控制十位,PA1控制个位)。),用于控制数码管的段选(GPIOB)和位选(GPIOA)。在切换位选信号时,可先关闭所有位选,避免切换过程中的残影。
2025-03-16 22:14:22
807
原创 51单片机密码锁 矩阵键盘+lcd1602(LM016L)+声光报警 Proteus仿真 完整代码
本项目实现了密码锁的基础功能,适合单片机初学者学习外设控制、状态机设计等核心知识。可扩展方向包括:• 添加AT24C02芯片实现掉电保存密码• 集成继电器模块控制真实电磁锁• 增加蓝牙/WiFi模块支持手机远程控制声明:本文代码经过Proteus仿真验证,实际部署需注意硬件电流匹配问题。原创内容转载请注明出处。
2025-03-16 21:01:35
395
原创 STM32数码管倒计时60秒 Proteus仿真
## STM32数码管倒计时60秒 Proteus仿真 ### **一、代码流程**#### **1. 头文件与基础函数**- **头文件**:`#include "stm32f10x.h"` 引入STM32标准库,提供寄存器定义和硬件操作函数。- **延时函数**:`void Delay(uint32_t nCount)` 通过空循环实现简单延时,时间与`nCount`值成正比(不精确,但满足基础需求)。---#### **2. 主函数初始化**1. **数码管编码表**
2025-03-06 20:41:32
947
原创 蓝桥杯——算法——基础训练感悟
01串/*基础练习 01字串问题描述对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:0000000001000100001100100请按从小到大的顺序输出这32种01串。输入格式本试题没有输入。输出格式输出32行,按从小到大的顺序每行一个长度为5的01串。样例输出00000000010001000011<以下部分省略>*/#include<stdio.h>main(){ in
2022-03-19 14:14:37
238
原创 蓝桥杯 16进制转8进制(优化)C语言
看了大佬的思路,改变了一点#include <stdio.h>#include <string.h>#include <malloc.h>struct Shiliu{ char s[1000001] ;};typedef struct Shiliu shiliu ;int main(){ int n ; scanf("%d",&n) ; shiliu* a = (shiliu*)malloc(n*sizeof(shiliu)) ; c
2021-12-26 16:41:23
4122
2
原创 蓝桥杯 c语言 十六进制转八进制
问题描述 给定n个十六进制正整数,输出它们对应的八进制数。输入格式 输入的第一行为一个正整数n (1<=n<=10)。 接下来n行,每行一个由09、大写字母AF组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式 输出n行,每行为输入对应的八进制正整数。【注意】 输入的十六进制数不会有前导0,比如012A。 输出的八进制数也不能有前导0。样例输入 2 39 123ABC样例输出 71 4435274【提示
2021-12-24 13:32:22
773
1
原创 strncpy函数
strcnpy函数strcnpy头文件是string.h 中的一个库函数语法char *strncpy(char *destinin, char *source, int maxlen) ;参数destinin:表示复制的目标字符数组;source:表示复制的源字符数组;maxlen:表示复制的字符串长度注意:strncpy函数所需要的3个参数是两个字符串指针和一个int型的数据类型;所以在有的地方会出现一下写法:strncpy (str1+2, str2+1,3) ;因为strncp
2020-08-19 17:32:26
1789
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人