仪器网(yiqi.com)欢迎您!

| 注册2 登录
网站首页-资讯-专题- 微头条-话题-产品- 品牌库-搜索-供应商- 展会-招标-采购- 社区-知识-技术-资料库-方案-产品库- 视频

问答社区

频率计原理及用单片机AT89C52设计时的程序代码---求高手帮助急

1282188191 2011-07-14 21:26:33 402  浏览
  •  

参与评论

全部评论(2条)

  • jftijbcfik 2011-07-15 00:00:00
    我来帮你写写

    赞(8)

    回复(0)

    评论

  • ozhengshun 2011-07-15 00:00:00
    简单的频率计 #include "reg51.h" /********IO引脚定义***********************************************************/ sbit Fin=P1^3; //测量频率管脚 sbit Fout=P1^7; //发生频率管脚,可用单芯线将P1。7脚的频率输出连接P1。3的输入脚 /********数据定义*************************************************************/ code unsigned char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0x00};//共阴数码管段值表 0-9 - 空 unsigned char l_tmpdate[8]; //显示的缓冲区 bit int_flag; //中断事件的响应 unsigned int fry; //保存的频率值 /********函数声明*************************************************************/ void display(unsigned char *lp,unsigned char lc);//数字的显示函数;lp为指向数组的地址,lc为显示的个数 void delay(unsigned int timer); //延时子函数 void Mee_F(void); //测频函数 void Mee_T(void); //测周函数 void Fry_Mee(void); //测频测周选择 /***********主函数开始********************************************************/ void main() { unsigned int tmp; //数据转换缓冲 unsigned int i=2000; //显示延时,提高亮度 EA=1; //开总中断 TMOD=0x11; //定时器工作方式1 TH0=256-(50000/256); //定时器初值 TL0=256-(50000%256); TH1=256-500/256; TL1=256-500%256; ET0=1; //开定时器0 中断 ET1=1; //开定时器1 中断 TR1=1; //启动定时器1 while(1) { Fry_Mee(); //开始测量 l_tmpdate[0]=fry/10000; //测量完后将整型数分离出来,进行显示 tmp=fry%10000; l_tmpdate[1]=tmp/1000; tmp=tmp%1000; l_tmpdate[2]=tmp/100; tmp=tmp%100; l_tmpdate[3]=tmp/10; l_tmpdate[4]=tmp%10; while(i--) //显示延时 display(l_tmpdate,5); //显示频率 i=2000; } } /**********定时器0入口函数**************************************************/ void time0(void) interrupt 1 { int_flag=1; //中断标志 } /**********定时器1入口函数**************************************************/ void time1(void) interrupt 3 //定时器1的中断函数,我们用来产生频率 { TH1=256-1000/256; //重设初值 TL1=256-1000%256; Fout=!Fout; //取反 产生频率,也就是频率发生器,可改变计数值改变频率 } /**********测频测周选择**************************************************/ void Fry_Mee(void) { if(fry<2000) //小于 2k 测周 Mee_T(); else if(fry>=2000) //大于2k 测频 Mee_F(); } /**********测频,原理:开一个标准的50ms计数中断,对被测信号计数**********/ void Mee_F(void) { bit lhj_old=1,lhj_new=1; //定义状态 unsigned int f_count=0; //计数临时值 int_flag=0; TH0=256-50000/256; //定时器初值 50ms TL0=256-50000%256; TR0=1; //启动计数器 while(1) //循环 测频 { lhj_new=Fin; //取得现在的 频率发生引脚状态 if(lhj_old!=lhj_new) //与前一个时刻 旧值 比较,如果不同 f_count++; //则 计数加1 lhj_old=lhj_new; //将新值赋给旧值 if(int_flag) //如果到了定时时间 { TR0=0; //关闭定时器0 fry=f_count*10; //计算频率,定时 50ms计数 每1个周期 计2次 所以 1s内计数= f_count*20/2=f_count*10 return; //返回 跳出循环 } } } /**********测周,原理:以被测信号的一个周期为中断源,读取定时器的值为计数值***************/ void Mee_T(void) { bit lhj_old=0,lhj_new=0; //定义状态 unsigned char temp_flag=0; unsigned int t_count; //计数临时值 TH0=0; TL0=0; while(1) //循环 测周 { lhj_new=Fin; //取得现在的 频率发生引脚状态 if(lhj_old&&!lhj_new) //下降沿开始启动定时器 { temp_flag++; TR0=1; //启动定时器 计数 } if(temp_flag==2) //两个下降沿的到来 { TR0=0; //计数停止 t_count=TH0*256+TL0; //取得当前的计数值 fry=1000000/t_count; //计算频率,这个1000000是晶振采用12M经12发频的计数脉冲 return; //返回 } lhj_old=lhj_new; } } /*************显示函数*******************************************/ void display(unsigned char *lp,unsigned char lc) { unsigned char i; //定义变量 P2=0; //端口2为输出 P1=P1&0xF8; //将P1口的前3位输出0,对应138译码器的输入脚,全0为diyi位数码管 for(i=0;i<lc;i++){ //循环显示 P2=table[lp[i]]; //查表法得到要显示数字的数码段 delay(10); //短延时 P2=0; //清0端口,准备显示下位 if(i==7) //检测显示完8位否,完成直接退出,不让P1口再加1,否则进位影响到P13数据 break; P1++; //下一位数码管 } } /*************延时子函数 *******************************************/ void delay(unsigned int timer) { while(timer--); }

    赞(11)

    回复(0)

    评论

热门问答

频率计原理及用单片机AT89C52设计时的程序代码---求高手帮助急
 
2011-07-14 21:26:33 402 2
单片机频率计原理程序代码
 
2016-03-16 02:43:45 539 1
基于单片机AT89C52频率计,求程序,求助
 
2017-06-22 09:26:53 396 1
跪求单片机at89c52频率计c语言程序
还有跪求那个方波的名字叫神马~~~
2015-04-23 09:42:30 336 1
急求用单片机控制温度的原理?
用于美容美发工具上的,带LCD显示的。如何用单片机实现温度控制?... 用于美容美发工具上的,带LCD显示的。如何用单片机实现温度控制? 展开
2009-08-04 07:40:40 335 4
简易频率计设计(单片机课设)
可以测量正弦波和方波信号的频率 框图 输入信号--》整形处理--》控制器--》显示测量值 要求 1,能测量正弦波和方波10HZ-100KHZ 2,数码显示共三位,其中一位小数,自动换挡(00-999HZ)有一个灯亮,表示单位是HZ,0.00-99.99KHZ,另一个灯亮,表示单位是... 可以测量正弦波和方波信号的频率 框图 输入信号--》整形处理--》控制器--》显示测量值 要求 1,能测量正弦波和方波10HZ-100KHZ 2,数码显示共三位,其中一位小数,自动换挡(00-999HZ)有一个灯亮,表示单位是HZ,0.00-99.99KHZ,另一个灯亮,表示单位是KHZ 3,要有输入信号超范围的保护电路 发挥要求 1,能测量方波周期,并显示 2,能测量100mV的正弦波 有没有爱好者,救救急,对这破玩意一窍不通 有加分 展开
2012-05-31 06:48:10 330 2
求数字频率计的原理图同程序代码!!!急求要求以下
七、数字频率计 设计内容: 采用MCS-51系列单片机进行数字频率计设计并通过实验仪验证通过。 1.设计单片机Z小系统电路(包括复位、晶振等电路) 2.设计键盘/显示器接口电路。 3.通过软件编程实现数字频率计的测量和显示(显示使用六位数码显示器) ... 七、数字频率计 设计内容: 采用MCS-51系列单片机进行数字频率计设计并通过实验仪验证通过。 1.设计单片机Z小系统电路(包括复位、晶振等电路) 2.设计键盘/显示器接口电路。 3.通过软件编程实现数字频率计的测量和显示(显示使用六位数码显示器) 4.通过键盘可控制频率计的闸门时间。 设计要求 1.根据设计题目要求进行系统总体设计。 2.设计系统总体电路图,阐述系统中各个单元电路的工作原理。 3.系统的硬件设计、电路中元器件的选择,参数确定。 4.系统的软件设计、主程序流程图和主要子程序流程图。 5.给出系统设计硬件元器件清单。 展开
2015-09-07 06:52:31 444 1
基于STC15单片机的频率计及方波发生器设计,求原理框图、流程图和程序
一.基础部分 1. 数字频率计设计要求: 1) 被测信号为正弦波或方波,频率范围为1Hz~5MHz; 2) 测量相对误差的值不大于百分之一; 3) 门限电压2V-5V; 4) 测量数据刷新时间不大于2s,测量结果稳定。 2. 方波发生器设... 一.基础部分 1. 数字频率计设计要求: 1) 被测信号为正弦波或方波,频率范围为1Hz~5MHz; 2) 测量相对误差的值不大于百分之一; 3) 门限电压2V-5V; 4) 测量数据刷新时间不大于2s,测量结果稳定。 2. 方波发生器设计要求: 1) 方波发生器可以分为低频和高频2个端口产生,频率范围1Hz-6MHz; 2) 通过不同按键实现频率的粗调和微调。 二.发挥部分 1) 频率计范围为 大于5MHz; 2) 测量相对误差的值不大于 千分之一; 3) 增加脉冲信号占空比的测量功能。 是STC15不是51哦,大神求救呀。。。 展开
2018-12-07 15:50:50 493 0
单片机频率计
求课程设计--单片机频率计
2018-11-10 22:45:41 256 0
单片机频率计
一、基本原理 使用555产生矩形波信号,输入到单片机进行测量频率。 测频的方案有多种: 1、测周法:通过测量被测信号的周期的倒数得到频率,选用适当的时基,以被测信号作为计数的闸门进行测量,得到闸门内的计数值,与时基相乘即为被测信号的周期,周期... 一、基本原理 使用555产生矩形波信号,输入到单片机进行测量频率。 测频的方案有多种: 1、测周法:通过测量被测信号的周期的倒数得到频率,选用适当的时基,以被测信号作为计数的闸门进行测量,得到闸门内的计数值,与时基相乘即为被测信号的周期,周期的倒数即为频率。该法适合测量频率低的信号。 2、测频法:通过频率的定义即单位时间的脉冲数,得到被测信号的频率。选用适当的时基,如1秒,以此作为计数闸门,得到闸门内的计数值即为信号的频率。该法适合测量频率高的信号。 二、参考电路框图 三、参考程序流程图 展开
2011-09-19 20:15:31 522 1
急求基于FPGA的频率计设计
要求:测量范围0.1HZ到50MHZ,测频精度万分之一,脉宽测试范围0.1s到1s,占空比精度1%到99%。(注:软件用的是quartus 2)。 各程序的作用介绍详细点(特别是上面几个要求的地方),我会加分的,当然能完成编译和仿真的,我会加的更多。可以百度附件发给我。Z... 要求:测量范围0.1HZ到50MHZ,测频精度万分之一,脉宽测试范围0.1s到1s,占空比精度1%到99%。(注:软件用的是quartus 2)。 各程序的作用介绍详细点(特别是上面几个要求的地方),我会加分的,当然能完成编译和仿真的,我会加的更多。可以百度附件发给我。Z后,谢谢。 展开
2013-12-09 05:14:34 395 2
求hed-21s数控试验台原理整体图,请各高手帮助!
 
2012-12-01 11:39:01 300 1
求一个简易单片机频率计设计程序
频率测量精度为1HZ 误差小于10HZ通过LCD1602显示出来
2010-07-11 07:06:44 531 2
化学专业英译汉 急求帮助!!
Precious metals are found in the process and wastewater streams of various industries including mining [1,2], ore and metal processing [3], semiconductor and electronic manufacturing [4,5] and e-Waste recycling [6,7]. Numerous works discu... Precious metals are found in the process and wastewater streams of various industries including mining [1,2], ore and metal processing [3], semiconductor and electronic manufacturing [4,5] and e-Waste recycling [6,7]. Numerous works discuss the use of adsorption for precious metal separation and recovery [8-17]. Selective adsorption is an attractive technology for separation, removal and recovery of precious metals. Gold [9], silver [10], platinum [11] and palladium [12] were selectively adsorbed from binary and complex mixtures and recovered at high purity using polymeric resins [13] and adsorbents made from MCM-41 [14-16 ] and SBA-15 [17]. Tsezos and coworkers [18] reported the adsorption of palladium, gold, uranium, yttrium, silver and nickel by biomass derived from two bacteria strains. They observed that the biosorbents preferentially adsorbed gold and silver, both classified as soft metals according to Pearson’s hard-soft acid-base (HSAB) principle [19]. 展开
2011-03-07 21:54:47 507 1
有没有单片机低频信号发生器的源代码 求帮助
 
2018-07-18 07:40:09 273 1
基于单片机的频率计
哪位大侠有基于单片机频率计的设计,范围1HZ到100MHZ,希望能不吝赐教啊。自己做的频率计仿真达不到要求。只能达到10M,卡在哪了,做不下去了。O(∩_∩)O谢谢了。
2012-05-08 03:40:25 274 3
单片机频率计设计
在下想做个频率计用来检测NE555的频率,那请问输入端电路怎么弄,以及程序的测量怎么写?
2015-08-06 12:10:34 544 1
基于51单片机的频率计,求信号预处理放大及整形的电路图与仿真??
 
2012-10-02 19:16:28 372 1
急求高手!!分析化学络合滴定法实验~
1、 如果配置EDTA溶液的水中含有少量的Ca2+、Mg2+,则在pH10时用Ca2+标定和在pH5~6时用Zn2+标定,所得结果是否一致?为什么? 2、 在pH10时用Ca2+或Zn2+标定EDTA溶液时,为了中和基准溶液中的强酸,能否用酚酞代替甲基红来指示中和反应?如果不用酸碱指示剂,... 1、 如果配置EDTA溶液的水中含有少量的Ca2+、Mg2+,则在pH10时用Ca2+标定和在pH5~6时用Zn2+标定,所得结果是否一致?为什么? 2、 在pH10时用Ca2+或Zn2+标定EDTA溶液时,为了中和基准溶液中的强酸,能否用酚酞代替甲基红来指示中和反应?如果不用酸碱指示剂,操作应怎样进行? 3、 查出在pH10用Ca2+、Mg2+与EDTA、铬黑T络合物的条件稳定常熟,并据此阐述实验中用Ca2+标定EDTA时应用Mg2+_EDTA改善滴定终点敏锐性的原理。 4、 测定水的总硬度,在什么情况下可以省去下列的步骤? (1)、将水样酸化、微沸; (2)、加入三乙醇胺; (3)、加入Na2S; (4)、加入Mg2+_EDTA溶液。 5、 为了用CaCO3标定EDTA,以及测定水的总硬度,除了用铬黑T作指示剂(加Mg2+_EDTA)以外,还可采用什么指示剂?用钙指示剂可以吗? 会其中几个问题就解答几个吧~~~ 展开
2012-04-07 17:30:03 594 2

1月突出贡献榜

推荐主页

最新话题