51单片机测量脉冲宽度 30

#include<reg51.h>unsignedintwidth=0,count=0;unsignedinttable[10]={0xc9,0xf9,0xa4,0xb0... #include<reg51.h>unsigned int width=0,count=0;unsigned int table[10]={0xc9,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80};void delay(int n){ int i,j; for(i=n;i>0;i--) for(j=1;j>0;j--);}void exint0() interrupt 2 { TH1=(65536-1000)/256; TL1=(65536-1000)%256; width=count; count=0;}void capture_init(void){ IT1=1; EX1=1; TMOD=0x90; TH1=(65536-1000)/256; TL1=(65536-1000)%256; TR1=1; ET1=1; EA=1;}void display(unsigned char num){ P0=0xff; P0=table[num/10]; P2=0xff; P2=table[num%10];}void main(){ capture_init(); while(1) { delay(20); display(width); }}void timer() interrupt 3 { TH1=(65536-1000)/256; TL1=(65536-1000)%256; count++; }想问一下这个程序问题在哪里,如果换路,它数值不会变。只有在启动之前,开关调到当前路才显示当前的宽度。 展开
 我来答
huzengpan
2017-06-20 · TA获得超过1499个赞
知道小有建树答主
回答量:1199
采纳率:84%
帮助的人:426万
展开全部
脉冲宽度说白了就是连续两次电平变化所占用的时间,单片机实现的话就是利用电平变化中断打开定时器,到再次变化时定时器的读数(没有溢出的情况)。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式