完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
随着电子技术的迅速发展,以单片机为控制核心的控制器件,已经全面渗透到测试仪器和计量检定的各个方面。同时,频率计作为一种常用工具,在工程技术和无线电测量、计量等领域的应用十分广泛。本文介绍了一种以PIC16F87X系列单片机为控制器的高分辨率频率计的实现方法。
{ if(TMR1IF==I) //判断是否定时器中断 { TMRIIF=0; //TMR1中断标志位清0 TMR1ON=0; //关闭TMR1 TMR1L=0x00; //设置TMR1数据寄存器初始值 0x0bdc TMR1H=0x00; TMR1ON=1; //开启TMR1 time_count++; //定时计数器减1 } if(CCP2IF==1) //判断是否CCP2中断 { if(ccp_count==0) { TMR1IE=1; //允许TMR1中断 TMR1IF=0; //TMR1中断标志位清0 T1CON=0x30; //设置1:8分频,关闭TMR1 TMR1L=0x00; //TMR1数据寄存器清零 TMR1H=0x00; TMR1ON=1; //开启TMR1中断 } CCP2IF=0; //CCP2中断标志位清0 ccp_count++; //脉冲计数器加1 } } catch_mode) { time_count=0; //定时计数器清零 ccp_count=O //脉冲计数器清零 GIE=1; //允许全局中断 PEIE=1; //允许外围中断 TRISC1=0; //CCP2(RC1)输入 CCP2IE=1; //允许CCP2中断 CCP2IF=0; //CCP2中断标志位清0 CCP2CON=catch_mode; //设置捕捉脉冲模式 e(); //中断开始 while(1) //等待定时中断,时间到则退出 if(ccp_count==2) break; di(); //中断结束 CCP2CON=0x00; //关闭CCP2 CCP2IE=0; //关闭CCP2中断 CCP2IF=0; //CCP2中断标志位清0 TRISC1=0; //CCP2(RC1)输出 TMR1IE=0; //关闭TMR1中断 TMR1IF=O; //TMR1中断标志位清0 PEIE=0; //关闭外围中断 GIE=0; //关闭全局中断 …… } |
|
相关推荐
4 个讨论
|
|
789 浏览 0 评论
大佬们,我写的LCD1602A无法正常显示(四针脚I2C的)
913 浏览 0 评论
ESP32 编译过程中 bootloader 配置阶段的 CMake 缓存冲突错误,记录
486 浏览 0 评论
655 浏览 0 评论
【社区之星】向悫——通过文档来梳理自己的思路,让自己思维更细致,更规范
908 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
17321 浏览 31 评论
/5
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2026-1-14 15:27 , Processed in 0.789225 second(s), Total 45, Slave 38 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
3661