站内搜索
发作品签到
专业版

基于STC32G的多功能频率计

工程标签

871
0
0
0

简介

基于STC32G12K128的多功能频率计

简介:基于STC32G12K128的多功能频率计
STC单片机创意设计大赛

开源协议

GPL 3.0

(未经作者授权,禁止转载)
创建时间:2024-06-17 18:50:15更新时间:2024-07-17 17:16:03

描述

 

一、立项需求

 您是否为测量频率而烦恼?

电机转速频率 

电路功能频率

本项目可增加霍尔传感器 获取电机每秒转速 

二、功能展示

这是测量示波器的1khz挂口输出的频率

结果证明 误差只有±1 符合测量结果

三、原理部分

 

本项目基于STC32G进行开发

使用高级PWM定时器进行频率捕获

四:电路设计部分

 

电池充电电路设计部分:

采用FM4057S42做充电管理部分 

 

采用TX4314为电源开关部分 

ADC电路设计部分:

ADC模块仿真图 由积分电路和电压跟随组成 仿真目的是为了更好的获取R1和C1的值

五:软件程序部分

PWM中断函数

 

void PWM_ISR() interrupt PWMA_VECTOR
{
    if(PWMA_SR1 & 0x01)// 更新中断(PWM计数器溢出)
    {
        P45=!P45;
        PWMA_SR1 &= ~0x01;// 清零更新中断标志
        cap_overflow ++;// 捕获值要加上计数器一次溢出
    }
    if (PWMA_SR1 & 0X02)// 当捕获中断标志置1
    {
        P46=!P46;
        PWMA_SR1 &= ~0X02;// 清零捕获中断标志
 
        cap_old = cap_new;// 更新当前捕获值
        cap_new = (PWMA_CCR1H << 8) + PWMA_CCR1L;// 读取计数值低8位,并合并存入cap_new
 
        cap = ((uint32_t)cap_overflow<<16) + cap_new - cap_old;// 计算两次捕获差值
 
        cap_overflow = 0;
    }
}
 
 
PWM初始化设置
 
void PWM_Config() // PWM初始化设置
{
//--------------------------PWMA设置-捕获上升沿----------------------------------
    PWMA_ENO = 0x00;// 关闭捕获/输出通道
    PWMA_ENO = 0x00;// 关闭捕获/输出通道
    PWMA_CCER1 = 0x00;// 关闭通道
    PWMA_CCMR1 = 0x01; // 通道模式配置为输入
    PWMA_SMCR = 0x56;  // 输入1,触发模式
    PWMA_CCER1 = 0x01;// 使能捕获/比较通道1
    PWMA_CCER1 |= 0x00; // 设置捕获/比较通道1上升沿捕获
//PWMA_CCER1 |= 0x20;// 设置捕获/比较通道1下降沿捕获
 
    PWMA_IER = 0x03; // 使能捕获中断
    PWMA_CR1 = 0x01; // 启动PWMA定时器
 
}
 
 
六: 组装采购
加上vfd的成本大约为20rmb 主打的就是一个丐
芯片购买注意事项:
下单时注意芯片的IO口数量为32脚(7x7)
 
VFD屏幕采购链接:
 
 
 
 
PCB生产:
打板方式可使用嘉立创下单助手导入Gerber后领卷免费打板
 
 
 

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
暂无数据

附件

序号文件名称下载次数
1
JUSON.hex
23
2
STC32G驱动7-BT-317NK读取频率.zip
34
3
Gerber_PCB1_2024-07-17.zip
13
克隆工程
添加到专辑
0
0
分享
侵权投诉

评论

全部评论(1
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航