
基于单片机89C52的光电转速测量系统.docx
8页《光电技术》综合设计报告书设计题目:基于 89c52 的光电转速测量系统姓 名: 学 号:(一)课程设计报告的内容设计题目 光电转速测量系统设计要求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#define uchar unsigned char#define uint unsigned intuint mm=1234;uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,}; delay(uint m){ uint i,j;for(i=m;i>0;i--)for(j=60;j>0;j--);}xian_shi() { uchar qian,bai,shi,ge;uint jj;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); //数码管刷新时间单位毫秒} }void timer0() 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() interrupt 3 //显示 0000 说明出错{ TR1=0; TR0=0;mm=0; // TH1=0; // TL1=0; // TR1=1; }设计心得及建议成绩评定(包括:指导教师评语和课程设计等级)(二)课程设计报告编写的基本要求(1)按要求的格式书写,所有的内容一律打印;(2)报告内容包括设计过程、软件仿真的结果及分析、硬件仿真结果及分析;(3)要有整体电路原理图、各模块原理图、各个模块各个元件的选择依据、各个模块电路的原理分析;(4) 软件仿真包括各个模块的仿真和整体电路的仿真,对仿真必须要有必要的说明;(5)对设计结果进行探讨,并提出建议,将心得体会进行完善。












