智能频率计仿真原理图如下
单片机源程序如下:
#ifndef main_c //test ok
#define main_c
#endif
#include "main.h"
//************************全局变量
volatile uint t0_cont;
volatile uint t1_cont;
volatile uchar flg1; //
//-------------------------------------------------------------------------
// 测试函数 用来初始化
//-------------------------------------------------------------------------
void test()
{
send_str( "pinlvji" ); //完成后把所有串口去掉
showstr( "cymometer", 1, 1, 9 ); //液晶显示
// showstr( "1KHz", 12, 1, 4 );
showstr( "Hz", 14, 2, 2 );
}
//-------------------------------------------------------------------------
//mcu初始化 端口 定时器 中断 外中断 变量
//-------------------------------------------------------------------------
void mcu_init()
{
//******************端口
data_direc = out; //输出
DDRB = out; //输出
DDRC = out; //输出
PORTC = 0X00; //输出0
DDRB=0XE0; //输入口
PORTB=0XE9;
//********************定时器
TIMSK |= 0x12; //定时中断允许位 只允许两个匹配
}
//-------------------------------------------------------------------------
// 主函数
//-------------------------------------------------------------------------
int main()
{
uchar f_t; //用测频还是测周
//******************
mcu_init(); //初始化
usart_init( 57600 ); //初始化
send_str( "com ok" ); //完成后把所有串口去掉
yj_set( 0x38, 0x0f, 0x06 ); //初始化
clearall(); //初始化
mzd_on(); //开中断
#if debug
test();
#endif
while ( 1 )
{
if ( !( PINB& ( 1 << 3 )))
{
refish(); //刷新所有的东西
f_t = hz_try(); //估计范围 1k
if ( f_t )
{
cl_f(); //频率法
}
else
{
cl_t(); //周期法
}
}
}
return 1;
}
上一篇:ATMEL系列MCU在线升级bootloader固件源码及操作过程
下一篇:nrf24l01无线芯片的开发板范例-AVR(已验证通过)
推荐阅读最新更新时间:2024-11-03 20:46
设计资源 培训 开发板 精华推荐
- AM1/4S-2409SZ 9V 0.25 瓦 DC/DC 转换器的典型应用
- ESP32S3扩展内存后的软件开发板-0603封装
- PI3WVR31310A HDMI 源参考设计
- 使用 ROHM Semiconductor 的 BD48E34G-TR 的参考设计
- STM32H750测试板
- MC34167 5A 负输入正输出稳压器的典型应用
- 星球大战遥控器 改 萝莉遥控器 主板
- NCV33074ADR2G 二阶高通有源滤波器的典型应用
- LTC2946CDE-1 宽范围 -4V 至 -500V 负电源、电荷和能量监视器(10kHz I2C 接口)的典型应用
- LT3483ES6 演示板,反相 DC/DC 转换器,Vin= 2.7V-12V,Vout= -15V,Vin = 2.7V-4.2V,Vout= -8V,Iout = 8-40mA