41、基于51单片机的高频测量仪设计(全套资料)

编号:41

基于51单片机的高频测量仪设计

功能描述:

      由STC89C52单片机+信号输入+74HC14整形电路+74HC390分频电路+LCD1602显示模块+电源构成。
1、能测出正弦波、三角波或方波等波形的频率;
2、频率的测量范围为1Hz—12MHz,且能检测幅度最小值为1Vpp的信号;
3、通过LCD1602液晶显示屏显示检测到的即时频率数值(最多8位数,单位为Hz)、显示周期时间。

Proteus7.8以上版本均可使用

视频演示链接:

41、基于51单片机的高频测量仪设计

仿真图:

PCB图:

报告截图:

程序源码:

void main()
{ 
	unsigned char i;
	LCD_init();
	timer_init();             //定时/计数器初始化 
 
	for(i = 0;i<4;i++)
	{
	 	LCD_disp_char(i+0,1,character_1[i]);
	}
	LCD_write_command(0xc0+0);//第一行
	LCD_write_data ('T');
	LCD_write_data ('i');
	LCD_write_data ('m');
	LCD_write_data ('=');
	while(1)
	{
		dis_num();         //显示
		delay_1s();
	}
}

void timer_init(void)         //定时/计数器初始化
{ 
	TMOD=0x66;                //计数器0和计数器1工作工作方式2,自动重装初值 
	
	TH0=0;                    //计数器初值为0
	TL0=0;
	TR0=1;                    //计数器开始计数	    
	ET0=1;                    //打开计数器0中断   

	TH1=0;                    //计数器初值为0
	TL1=0;
	TR1=1;                    //计数器开始计数	    
	ET1=1;                    //打开计数器1中断   

	RCAP2H=(65536-62500)/256; //在程序初始化的时候给RCAP2L和RCAP2H赋值, 
	RCAP2L=(65536-62500)%256; //TH2和TL2将会在中断产生时自动使TH2=RCAP2H,TL2=RCAP2L。 
	TH2=RCAP2H;               //12M晶振下每次中断62.5ms(1s=1000ms=62.5ms×16)
	TL2=RCAP2L;
	ET2=1;                    //打开定时器2中断	 
	TR2=1;                    //定时器2开始计时  
	EA=1;                     //开总中断   
} 

void timer2(void) interrupt 5 //定时器2中断(62.5ms)
{
	time++;
	TF2=0;                    //定时器2的中断标志位TF2不能够由硬件清零,所以要在中断服务程序中将其清零
	if (time==16)             //定时1s时间到  
	{
	   time=0;                //计时清0
	   EA=0;                  //关中断		 
	   fre=(long)count1*256+TL1;     //count*256强制转换成long型,否则将不产生进位~先判断分频后(计数器1)
	   FLAG = 0; 
	  
	   if(fre<2000)//如果不到200KHz则读取分频前(计数器0)频率(200K÷100=2000)
	   {
	   		fre = (long)count*256+TL0;
			FLAG = 1;          
	   } 
		if(!FLAG)
		{
			fre = fre *100;//100分频
		}
	   
	   TL0=0;                 //清零计数器0计数	    
	   TH0=0;
	   
	   TL1=0;
	   TH1=0; 
	   
	   count=0;               //清零计数器0计数	  
	   count1=0;
	   EA=1;                  //开中断	    
	}
} 
//----------------------------------------------------------------
void timer0(void) interrupt 1 //计数器0中断(100分频前)	 
{
	count++;
}		
//----------------------------------------------------------------
void timer1(void) interrupt 3 //计数器1中断(100分频后) 
{
	count1++;
}

软件免费下载地址:

1、Proteus仿真软件
文件内容:Proteus7.8安装包、Proteus8.6安装包、Proteus.8.10安装包、Proteus Professional 8.11 SP0安装包

链接:https://pan.baidu.com/s/11LNUZ9BJXWvXf1C4dPc3_w 
提取码:2756 


3、KEIL5 MDK软件(STM32开发软件)
链接:https://pan.baidu.com/s/1t3eY-3yRdTa7jZMlijq_jg 

提取码:ab58 

文件下载:

链接:https://pan.baidu.com/s/10UIhhva7NuC1_X0xf_R0Nw?pwd=zse4 
提取码:zse4

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

单片机技能设计

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值