基于单片机89C52的光电转速测量系统Word下载.docx
《基于单片机89C52的光电转速测量系统Word下载.docx》由会员分享,可在线阅读,更多相关《基于单片机89C52的光电转速测量系统Word下载.docx(9页珍藏版)》请在冰豆网上搜索。
设计要求
1.能测量转盘的转速
2.计算误差小于0.1%
3.具有4位显示
4.实时测量
设计过程
(分模块给出原理图,分别说明各模块、各元件的选择依据)
(包括:
设计方案、上机设计与仿真结果、硬件实验方案)
一、总体设计方案:
转速测量系统设计分为三个部分,分别为光电传感器部分、整流滤波部分和单片机与数码管显示部分(如下图)。
各部分模块的功能:
①传感器:
用来对信号的采样。
②整形电路:
对传感器送过来的信号进行放大和整形,在送入单片机进行数据的处理转换。
③单片机:
对处理过的信号进行转换成转速的实际值,送入LED
④LED显示:
用来对所测量到的转速进行显示。
1.光电传感器:
本设计采用H42B6槽型光电传感器(原理图如下)。
(还可以采用H2010、ITR9606等传感器)
转盘结构如下,转盘在槽型光电传感器中转动时,光电晶体管接收到的是脉冲信号。
2.整流滤波部分:
本设计采用双电压比较器LM393N,它有两个输入端和两个输出端,一个基准电压端。
输入端电压低于基准电压时输出端为高电平,反之输出端电平翻转。
3. 单片机与数码管显示部分:
本设计采用单片机STC89C52,方便烧写程序,且内存比51大。
数码管采用四位七段数码管,引脚较少,方便焊接电路。
(1)STC89C52引脚图
(2)晶振电路部分
(3)复位电路部分
(4)四位共阴数码管
设计图示(最终系统图,硬件图,结果图)
1.光电传感器部分
2.显示部分(信号从15脚输入)
3.系统总程序
#include<
reg52.h>
#defineucharunsignedchar
#defineuintunsignedint
uintmm=1234;
ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,};
delay(uint m)
{ uinti,j;
for(i=m;
i>
0;
i--)
for(j=60;
j>0;
j--);
}
xian_shi()
{ ucharqian,bai,shi,ge;
uintjj;
jj=mm;
jj*=20;
//jj+=1;
qian=jj/1000;
bai=jj%1000/100;
shi=jj%100/10;
ge=jj%10;
P2=0xef;
P0=table[qian];
delay
(1);
//P2=0;
P2=0xdf;
P0=table[bai];
delay
(1);
//P2=0;
P2=0xbf;
P0=table[shi];
delay(1);
//P2=0;
P2=0x7f;
P0=table[ge];
delay
(1);
//P2=0;
timer_init()//定时器计数器初始化函数
{EA=1;
ET0=1;
ET1=1;
TMOD=0X51;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
TH1=0;
TL1=0;
TR0=1;
TR1=1;
ﻩﻩ
main()
{
timer_init();
P0=0;
//开始数码管不显示
while
(1)
{
xian_shi();
delay
(2);
//数码管刷新时间单位毫秒
}
voidtimer0() interrupt 1
{ TR0=0;
TR1=0;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
mm=0;
mm|=TH1;
mm=(mm<
<8)|TL1;
//ﻩmm-=55536;
TH1=0;
TL1=0;
TR0=1;
TR1=1;
void timer1()interrupt3 //显示0000说明出错
{TR1=0;
TR0=0;
mm=0;
//TH1=0;
//TL1=0;
//TR1=1;
设计心得及建议
成绩评定
指导教师评语和课程设计等级)
(二)课程设计报告编写的基本要求
(1)按要求的格式书写,所有的内容一律打印;
(2)报告内容包括设计过程、软件仿真的结果及分析、硬件仿真结果及分析;
(3)要有整体电路原理图、各模块原理图、各个模块各个元件的选择依据、各个模块电路的原理分析;
(4)软件仿真包括各个模块的仿真和整体电路的仿真,对仿真必须要有必要的说明;
(5)对设计结果进行探讨,并提出建议,将心得体会进行完善