1651基于STM32景区人流检测控制系统设计(仿真,程序)
思路:本系统基于stm32f10x为核心,数码管显示计数值和目标数量,在软件中设置目标人数量可设置的最大值。通过矩阵按键设置目标数量。按键计数设置传送带计数值,按键按下计数值数量加一,计数值与目标数量比较数量相等。计数值数量重置蜂鸣器报警,计数值和目标值不相等继续计数。
#include "stm32f10x.h"
void GPIO_Config(void);
void delay(uint32_t d){
uint32_t i=0;
uint32_t n=0;
for(i=0;i<d;i++)
for(n=0;n<800;n++);
}
uint8_t conveyor_scan(){
if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_9)==0){
return 1;
}
return 0;
}
void keymat_line_set(uint8_t c){
uint8_t bb[]={Bit_SET,Bit_SET,Bit_SET,Bit_SET};
bb[c]=Bit_RESET;
GPIO_WriteBit(GPIOC,GPIO_Pin_4, bb[0]);
GPIO_WriteBit(GPIOC,GPIO_Pin_5, bb[1]);
省略。
1652基于STM32的示波器信号发生器设计-pcb-程序-上位机-原理图
USB虚拟示波器
USB示波器采用STMF103C8作为主控,片内ADC采样,USB模拟串口与上位机通信。性能并不强,但是结构简单,易于使用。
在原工程的基础上,添加了运放与二极管保护,一方面增加了输入阻抗,另一方面防止过电压损坏器件。
基本参数
最高采样率:70KSPS
采样深度:6144
测量范围:0-3.3V
输入阻抗:1M ohm
FFT频谱分析
1653基于STM32的多功能智能密码锁控制设计
本制作的电子密码锁包含有PCB、原理图,PCB印制电路板。此设计用外部存储器,支持修改密码。在实际中我发现12864还是用串口比较好,因为用并口的话使用会影响同GPIO口的其他位口。
一、功能介绍:
1、输入6位密码,即可开锁。
2、输入7次纯数字,系统会自动恢复初始状态。
3、没有输入完6位密码,按下确认键,系统不会应答。
4、密码输入错误三次,锁定键盘并且蜂鸣器提醒10秒。
5、输入错误可以退格、清零。
6、开机后12864模块会有60秒定时显示,没操作键盘60秒后,清除数据并且恢复初始状态。如果在记时期间有按键按下,这停止倒计时,并且在没有操作键盘8秒左右,重新开启倒计时12864休眠功能。
7、在功能模式下可以修改密码,也可以做其他功能选择(其他功能你们根据自身能力添加)。
8、程序有密码数值存储在数组,可用于显示等操作。(修改密码时可以显示)
9、有人体感应模块,感应到有人吗,并且12864处于关屏休眠模式下,即可打开12864屏幕。
10、有外部存储器24C02,支持修改密码,密码断电不丢失。
11、步进电机模块。
12、继电器模块。
13、温度模块,倒计时期间可以测量7805和1117芯片温度或者外部温度,并实时显示。
1654基于STM32闭环步进电机控制系统设计(仿真,程序,说明)
(1) 基本功能:本任务通过输出脉冲控制步进电机的停止、运动、方向。使用 两个按键分别控制步进电机的正转和反转,再次按下这两个按键,步进电机停止, 同时 LCD 显示电机状态信息。
(2) 扩展功能:加入一个转速阈值设置功能,由电位器充当阈值设置器,可设 置目标转速并使电机接近设置的转速。
1655基于STM32C8T6的智能蓝牙小车控制设计-毕设课设资料
stm32最小系统(10r)型号具体为STM32F103C8T6
jdy-31蓝牙模块(10r)
L298N继电器模块(10r)直流步进电机版 直插电解
小车底座 50-70r(套装包括 四个直流电机 四个车轮 两块亚克力板车身)
#include "stm32f10x_gpio.h"
#include "stm32f10x_rcc.h"
#include "stm32f10x_it.h"
#include <stdio.h>
/*
#ifdef->endif的内容部分和PUTCHAR_PROTOTYPE{}的内容属于C语言的语法规则引入,
所以头部必须引入#include<stdio.h>,这样子的话C语言的语法就可以完美引用
*/
#ifdef __GNUC__
/* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf
set to 'Yes') calls __io_putchar() */
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif /* __GNUC__ */
//中断服务函数
u8 i;
u8 flag; //定义一个标志位
void USART1_IRQHandler(void)
{
if(USART_GetITStatus(USART1, USART_IT_RXNE) == SET) //检查指定的 USART1 中断发生与否
{
USART_ClearITPendingBit(USART1, USART_IT_RXNE); //清除 USART1 的中断待处理位
GPIO_ResetBits(GPIOC,GPIO_Pin_13); //设置LED灯作为中断发生与否的指示灯
i= USART_ReceiveData(USART1); //返回 USART1 最近接收到的数据
//if语句的内容部分可以保证蓝牙接收到的flag数据是正确的,如果不加的话会导致接收不到正确的数据
省略。。。。
文章转自电设屋,资料百度网盘下载地址 https://www.aiesst.cn/share.html