完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
这是我写的频率计代码,我用LCD屏幕显示就只显示了一个1就没有了,下图是我的光敏二极管模块
#include "speed.h" uint dat=0,r=0,time,pulse; bit flag=0; void INT0_ISR() interrupt 2 //检测到一个低电平,一个低电平代表闪烁一次 { dat++;//测得的脉冲数 if(flag)//定时到了一秒 { pulse=dat; dat=0; } EX1=1; //允许外部中断1 } void timer1_ISR() interrupt 3 { TR1=0; TH1=0x3C; TL1=0xAF; time++; if(time>=19)//定时到了1秒 { flag=1; time=0; } TR1=1; } int countspeed() { r=pulse; return pulse; } void speedinit() { EA=0; TMOD=0x10;//T1做定时器 16位 TH1=0X3C; TL1=0XAF; //初值15535 定时50 000us TR1=1;//启动T1计数 IT1=0;//外部中断电平触发 EX1=1;//允许外部中断 ET1=1;//开放T1中断请求 EA=1;//开总中断 } |
|
相关推荐
5个回答
|
|
你记的是脉冲,干嘛用电平触发?
|
|
|
|
测试闪烁频率不是计电平吗,计脉冲的那个注释是我没有改过来的
|
|
|
|
测频率是计二个下降沿之间的时间,这个倒数就是频率。
|
|
|
|
但是我测的是LED闪烁的频率,这个不是脉冲信号吧
|
|
|
|
闪烁怎么不是脉冲信号,正是脉冲信号。
|
|
|
|
只有小组成员才能发言,加入小组>>
3278 浏览 9 评论
2955 浏览 16 评论
3455 浏览 1 评论
8987 浏览 16 评论
4050 浏览 18 评论
1102浏览 3评论
570浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
568浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2301浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1857浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 10:33 , Processed in 1.385588 second(s), Total 87, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号