ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:17.10KB ,
资源ID:2963171      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2963171.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(频率计.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

频率计.docx

1、频率计#include #include #define uint unsigned int #define uchar unsigned char uchar f_str15; uchar unit4; uint rang=1; uint th0=0; uint tl0=0; uint n_f1=0; uint n_f2=0; double time1=0; double ff=0; uchar s05_flag=0; double timer_count1=0; double timer_count2=0; uchar cs_flag=0; void switch_rang (); voi

2、d delay1(unsigned int k); void delay(uint z); void fraction_to_str(float a,uchar* pStr); void float_to_str(float a,uchar* pStr); void display(unsigned char x,unsigned char y,unsigned char *str); void Write_Data(uchar dat); void Set_Cursor(unsigned char x, unsigned char y); sbit xz_key=P06; sbit sc_k

3、ey=P07; sbit td_a=P20; sbit td_b=P21; sbit td_c=P22; sbit buzz=P23; /lcd显示定义 #define LCD_DATA P1 /*数据口 */ sbit RS = P00; /*并行的指令/数据选择信号, H数据, L命令*/ sbit RW = P01; /*并行读写选择信号, H读, L写*/ sbit E = P02; /*并行使能端, H有效, L无效*/ /sbit PSB=P04; /*串并行选择端,H选择并行,L选择串行*/ /sbit RST=P03; /bit busy=0; /*忙碌标志*/ /*lcd显示

4、程序*/ void display(unsigned char x,unsigned char y,unsigned char *str) unsigned char i=0; Set_Cursor(x,y); /设置显示的起始地址 while(stri!=0) Write_Data(stri); /写入需要显示字符的显示码 i+; void delay1(unsigned int k) unsigned int i; unsigned char j; for(i=0;ik;i+) for(j=0;j=100) /*0.5秒标志*/ s05_flag=1; / timer_count1=0;

5、/外部中断计数 void int0() interrupt 0 n_f1+; if(n_f1=1) /*第一个下降沿时开始计数*/ TH0=0xd8; TL0=0xf0; timer_count1=0; TR0=1; else if(s05_flag=1) /*当5ms标志为一且下降沿时开始读数*/ cs_flag=1; /*频率计算标志*/ TR0=0; /*关掉T0*/ n_f2=n_f1-1; th0=TH0-0xd8; tl0=TL0-0xf0; timer_count2=timer_count1; n_f1=0; /*初值清零*/ s05_flag =0; timer_count1=

6、0; /频率测量 void fre_text() if(cs_flag=1) cs_flag=0; time1=(timer_count2*500.705 +(tl0+th0*255)*0.05)*0.01; ff=(n_f2)/time1; / ff=ff-0.270; switch_rang (); time1=(timer_count2*500.705 +(tl0+th0*255)*0.05)*0.01; ff=(n_f2)/time1; ff=ff*100000; if(ff500000) if(ff500000) & (ff600000) & (ff700000) & (ff8000

7、00) & (ff900000) & (ff1000000)ff=ff+ff*0.0130 ; else if(ff100)ff=ff-ff*0.00112 ; else ff=ff-ff*0.00228; delay(50); ff=ff/100; switch(rang) case 0: ff=ff; break; case 1: ff=ff*100; break; case 2: ff=ff*10000;break; default: break; /ff=ff-270; rang=1; /1ms延时子函数/ void delay(uint z) uint i,j; for(i=0;i=

8、z;i+) for(j=0;j110;j+); /自动换挡程序/ void switch_rang () if(ff=1000000)=1) if(ff=10)=1) rang-; if(ff=10000)&(ff=1000000)=1) rang+; switch(rang) case 0: td_a=0;td_b=0;td_c=0;break; /*1100HZ*/ case 1: td_a=1;td_b=0;td_c=0;break; /*10010000HZ*/ case 2: td_a=0;td_b=1;td_c=0;break; /*100001000000HZ*/ default: break;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1