栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

8-基于51单片机的频率计频率测量仪(源程序+原理图+PCB+论文)全套资料

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

8-基于51单片机的频率计频率测量仪(源程序+原理图+PCB+论文)全套资料

资料编号:008

百度云盘下载链接:https://pan.baidu.com/s/1VT9G20qMpy8H2pdrQNGg6g?pwd=iqf6 

更多资源下载链接: 资料合集 

硬件构成:单片机+最小系统+LCD1602液晶显示模块+NE555模块+电位器调节模块+按键模块

本设计基于STC89C51/52与AT89S51/52、AT89C51/52程序通用,可任选单片机!

  • 1.采用LCD1602液晶显示频率值,测量范围0~500KHZ(理论上500KHZ,实际480KHZ左右)。

  • 2.配有鳄鱼夹,可以测量方波的频率。拨动开关,也可以测NE555产生的频率,通过电位器调节频率值的大小。

 

 

 

sbit   LCD_RS=P1^0;	  //片选信号 
sbit   LCD_RW=P1^1;	  //读写信号 
sbit   LCD_E=P1^2; 	  //使能信号 
#define LCD_DB  P0	//数据信号 
unsigned char character[10]={0};//在屏幕上显示的字符串 
unsigned char character_1[]={"fre= Hz"};
unsigned char FLAG = 0;  //是否分频选择标志
void LCD_init(void);//初始化函数   
void LCD_write_command(unsigned char command);//写指令函数	 
void LCD_write_data(unsigned char dat);//写数据函数	   
void LCD_disp_char(unsigned char x,unsigned char y,unsigned char dat);//在某个屏幕位置上显示一个字符,X(0-15),y(1-2)
void delay_n40us(unsigned int n);//延时函数
void timer_init();            //中断初始化函数  
//-----------------------------延时函数---------------------------
void delay_n40us(unsigned int n)		  //延时函数 
{
	unsigned int i;
	unsigned char j;            
	for(i=n;i>0;i--)
	for(j=0;j<2;j++);          
} 
void delay_1s()
{
	unsigned int i,j;
	for(i = 0;i<100;i++)
		for(j = 0;j<1000;j++);
} 
//---------------------lcd1602液晶显示函数--------------------                                     
void LCD_init(void)	 //液晶初始化函数 
{
	LCD_write_command(0x38);//设置8位格式,2行,5x7
	LCD_write_command(0x38);//设置8位格式,2行,5x7
	LCD_write_command(0x38);//设置8位格式,2行,5x7
	LCD_write_command(0x0c);//整体显示,关光标,不闪烁 
	LCD_write_command(0x06);//设定输入方式,增量不移位
	LCD_write_command(0x01);//清除屏幕显示	  
	delay_n40us(100);//清屏延时 
} 
void LCD_write_command(unsigned char dat)  //写命令函数 
{
	LCD_DB=dat;
	LCD_RS=0;//指令	 
	LCD_RW=0;//写入	 
	LCD_E=1; //使能 	 
	LCD_E=0;
	delay_n40us(1);//写命令延时   
}	 
void LCD_write_data(unsigned char dat)	  //写数据函数 
{
	LCD_DB=dat;
	LCD_RS=1;//数据	  
	LCD_RW=0;//写入	  
	LCD_E=1;//使能  
	LCD_E=0;
	delay_n40us(1);	 //写数据延时 
}
void LCD_disp_char(unsigned char x,unsigned char y,unsigned char dat)//显示一个字符 
{
	unsigned char address;
	if(y==1)
	         address=0x80+x;	 //显示在第一排的时候的x的地址 
	else
	         address=0xc0+x;	 //显示在第二排的时候的x的地址 
	LCD_write_command(address);	 //输入地址 
	LCD_write_data(dat);		 //输入数据 
}
void LCD_disp_num(unsigned char x,unsigned char y,unsigned char dat)//显示一个数字
{
	unsigned char address;
	if(y==1)
	         address=0x80+x;	 //显示在第一排的时候的x的地址 
	else
	         address=0xc0+x;	 //显示在第二排的时候的x的地址 
	LCD_write_command(address);	 //输入地址 
	LCD_write_data(dat+48);		 //输入数据 
}

百度云盘下载链接:https://pan.baidu.com/s/1VT9G20qMpy8H2pdrQNGg6g?pwd=iqf6 

更多资源下载链接: 资料合集 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1012474.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号