红外线数字转速表课程设计具体要求红外线数字转速表是一种代替机械转速表,用来测量转动速率的计量仪表。1设计目的(1)掌握红外线光电转换器的工作原理;(2)掌握红外线转速表的设计... 红外线数字转速表课程设计
具体要求红外线数字转速表是一种代替机械转速表,用来测量转动速率的计量仪表。
1 设计目的
(1)掌握红外线光电转换器的工作原理;
(2)掌握红外线转速表的设计、组装、调试方法。
2 设计内容及要求
(1)设计四位数数字显示红外线转速表。转速表用红外线发光管。测速范围为0000~
9999转/分,实现近距离测量;
(2)发射的红外线用一定的频率脉冲调制,接收的调制脉冲通过解调电路得到被测转动体的转速脉冲;
(3)组装、调试红外线转速表;
(4)画出完整的电路图,写出设计、调试报告;
(5)选作远距离测量。
http://wenku.baidu.com/view/ad6ca50590c69ec3d5bb75d4.html有具体要求
用51单片机,数码管是阴码的,范围0-9999,红外对管接P20,需要接三极管;
#include
sbit P10=P1^0; //第0位数码管
sbit P11=P1^1;
sbit P12=P1^2;
sbit P13=P1^3;
sbit P20=P2^0;
unsigned int a=0,b=0;
#define THCO 0xee;
#define THLO 0x00;
unsigned char code duan[]={0x3F, 0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
main(void)
{
unsigned char course=0;
TMOD=0x11;
TH0=THCO;
TL0=THLO;
EA=1;
ET0=1;
TR0=1;
while(1)
{
if(P20==1)course=1;
if(P20==0&&course==1){b++; course=0 ; }
}
}
void timw0() interrupt 1
{
static unsigned char k=0,c=0;
TH0=THCO;
TL0=THLO;
c++;
P1|=0xff;
if(k>3){k=0;}
k++;
switch(k-1)
{
case(0):P0=duan[a%10]; P13=0; break;
case(1):P0=duan[a%100/10];P12=0;break;
case(2):P0=duan[a%1000/100];P11=0;break;
case(3):P0=duan[a/1000];P10=0; break;
}
if(c==200) {c=0;a=b;b=0;}
}