完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
电路元件参数RC测量电路的设计
设计要求: 测量仪的工作原理为:利用振荡电路,将电阻、电容的测量转变为与之成一定函数关系频率的测量,再利用单片机对不同频率进行测量和处理,用数码管显示被测量的大小,可以利用按键对被测量类型进行选择。 测量电阻范围为:≤1MΩ。 测量电容范围为:≤10000pF。 测量精度〈±5%。 废话不多说,先上实物图 注意,做实物没找到开关,用的是跳线冒,当未接跳线时,显示上面最后一张截图待测状态,跳线接好后,将显示对应的测量值。 单片机电容电阻测量仪仿真原理图截图如下: 细节1截图 细节2截图 设计主旨:主要原理是利用555定时器的振荡频率受外围电阻电容的影响来测量的, 以下是部分单片机C语言参考代码: void measure(void) { IE=0x8a; EA=1; ET1=1; ET0=1; TMOD=0x51; TH0=H_0; TL0=L_0; TH1=0; TL1=0; TR0=1; // while(fw1);//测得引脚P3^5为高电平 TR1=1; //timer1 开始计数 // while(fw0); //测得引脚P3^5为低电平 // TR1=0; //timer1 停止计数 // DL=TL1; //读当前计数值 // DH=TH1; /// freq=DPTR; // TH1=100; // TL1=100; // uu=DH256+DPL+inte65536; //计算总计数值 // inte=0; //清累计溢出计数 // tt=uu/(12*1000000.0/12.0); //求振荡周期 // ff=(unsigned long int)(1.0/tt); //频率值 求震荡频率 } void yunsuan (void) { float tt=0; // DPH=11; // DPL=12; uu=DH256+DL+inte65536; //计算总计数值 inte=0; //清累计溢出计数 tt=uu/(12*1000000.0/12.0); //求振荡周期 ff=(unsigned long int)(1.0/tt); //频率值 求震荡频率 } void judgekey1() { long int R=0; // R=(dat1000)/(255-dat); R=10dat-130; display®; LED=~LED; } void judgekey2() { long int C=0; if(scd0) { // C=3193333.0/freq; C=((9.4*ff)-200)*0.8; display1©; LED=~LED; } else if (scg0) { // C=3193333.0/ff; C=(9.4*ff)-200; display1©; LED=~LED; } } 鉴于篇幅限制,只能写部分代码 最后,如果有什么意见或者建议欢迎您留言给我,让我们共同学习一起进步, 如果需要 程序完整源代码和 设计文件,请在下方留言或者私信我,看到后会第一时间回复。 谢谢! |
|
|
|
只有小组成员才能发言,加入小组>>
3263 浏览 9 评论
2944 浏览 16 评论
3443 浏览 1 评论
8955 浏览 16 评论
4036 浏览 18 评论
1078浏览 3评论
558浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
551浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2286浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1848浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-10 12:20 , Processed in 0.910972 second(s), Total 50, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号