这是去年电子设计大赛的参赛题目!
详细要求记不得了。
对信号做整形、滤波、放大(硬件这块不是我做的,就不说了。)
单片机的功能要求:
芯片用stc89c52,官方提供恩智浦的1769,cortex-m3的芯片,使用该芯片有加分。 我没用过,临时学是学不过来了!
1hz到100khz之间
误差精确到0.00个单位
有显示模块,我们用的1602
能与PC串口通信
能休眠
为了计数方便做了分频计数处理
源码就分享出来吧,需要的朋友可以拿去参考。。
#include<reg51.h>
#include<stdio.h>
#define uchar unsigned char
#define uint unsigned int
#define LCD P0
sbit EN = P2^7;
sbit RS = P2^6;
sbit RW = P2^5;
sbit CON = P2^1;//通道选择
sbit Key = P2^0;
double f_data,s_data;
int over,flag,count,a,comsend;//定时结束标志位,信号处理位, ,sbuf
uchar buffer[16];
char ComBuf[16];
unsigned long t,f,s;//1s定时计数,,取值
/*-------------函数声明--------*/
void Delay(uchar x);//延时
void Write_Codee(uchar date); //液晶写命令
void Write_Data(uchar date);//液晶写数据
void Get_XY(uchar x,uchar y);//写数据位置
void Write_Str(uchar x,uchar y,uchar *p);//写字符
void Lcd_Init(void);//液晶初始化
void Survey_Init();//频率采集 初始化
void High_Init(void);//32分频 频率采集 初始化 >= 400k
void Lows_Process(void);//未分频 频率处理
void High_Process(void);//32分频 通道频率处理
void mode(void);
void First_Data();//通道选择
void Busy(void);
/*------