电子吧 关注:99,149贴子:476,817

我的课程设计

取消只看楼主收藏回复

电机测速仪




IP属地:安徽来自Android客户端1楼2015-12-30 01:05回复
    1.设计目的与要求
    设计出一个能测转速的电机测速仪器。准确地理解有关要求,独立完成系统设计,要求所设计的电路具有以下功能:采用数码管显示电动机的实时转速。
    2.设计内容
    (1)画出电路原理图,正确使用逻辑关系;
    (2)确定元器件及元件参数;
    (3)进行电路模拟仿真;
    (4)SCH文件生成与打印输出;
    3.编写设计报告
    写出设计的全过程,附上有关资料和图纸,有心得体会。
    4.答辩
    在规定时间内,完成叙述并回答问题。
    论文结构清晰,层次分明,理论严谨


    IP属地:安徽5楼2015-12-30 13:21
    回复
      2025-08-01 17:40:11
      广告
      不感兴趣
      开通SVIP免广告
      1总体设计方案
      1.1设计方框图

      优点:这种方案使用光电转速传感器具有采样精确,采样速度快,范围广的特点。


      IP属地:安徽6楼2015-12-30 13:28
      收起回复
        1.2设计思路
        本文采用光电传感器测速方案,转速信号由光电传感器拾取,光源为高可靠性的红外光源,无论黑夜还是白天,或是背景光强有大范围改变都不影响接收效果。光电头包含有前置电路,输出0—5V的脉冲信号。接到单片机89C52的相应管脚上,通过89C52内部定时/计时器T0、T1及相应的程序设计,组成一个数字式转速测量系统。


        IP属地:安徽7楼2015-12-30 13:29
        回复
          2设计原理分析
          2.1复位电路
          单片机复位电路是指单片机的初始化操作。单片机启运运行时,都需要先复位,其作用是使CPU和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。因而,复位是一个很重要的操作方式。但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现。
          图2 复位电路
          复位功能:复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。如图2所示。
          2.2晶振电路
          图3 晶振电路
          单片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为30pF。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。如图2.2所示
          2.3显示电路
          动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。如图4所示。


          IP属地:安徽8楼2015-12-30 13:33
          收起回复
            2.4系统软件设计
            2.4.1定时器的初始化
            STC89C52RC有两个定时器/器均可设置成为16位,也可以设置成为13位进行定时或计数。计数器的功能是对T0或T1外来脉冲的进行计数,外部输入脉冲负跳变时,计数器进行加1。 定时功能是通过计数器的计数来实现的,每个机器周期产生1个计数脉冲,即每个机器周期计数器加1,因此定时时间等于计数个数乘以机器周期。定时器工作时,每接收到1个计数脉冲(或机器周期)则在设定的初值基础上自动加1,当所有位都位1时,再加1就会产生溢出,将向CPU提出定时器溢出中断申请。当定时器采用不同的工作方式和设置不同的初值时,产生溢出中断的定时值和计数值将不同,从而可以适应不同的定时或计数控制。


            IP属地:安徽9楼2015-12-30 13:34
            回复
              设计流程图。


              IP属地:安徽10楼2015-12-30 13:38
              收起回复
                楼上1.5倍频的解释
                1.5倍频计数:由于电机码盘上一圈有40个遮光口,电机转一圈就有40个脉冲,转动1S假设有m个脉冲,则电机的频率为f=m/40,换算成转速n=60*f=1.5m,即是1.5倍的脉冲频率计数。


                IP属地:安徽11楼2015-12-30 13:39
                回复
                  2025-08-01 17:34:11
                  广告
                  不感兴趣
                  开通SVIP免广告
                  2.6波形整形电路设计
                  2.6.1波形放大电路

                  图8 波形放大电路
                  光电信号很微弱,不足以直接驱动单片机进行计数,从而要进行信号放大处理,达到合适的电压值,然后送入下一级进行处理,因为此时得到的信号并不是标准的脉冲信号,只是脉动的直流电,如下图,这种信号不符合计数的波形标准。

                  图9 波形放大实测图
                  2.6.2波形整形放大电路

                  图10 波形整形放大电路
                  图中C1具有滤波作用,隔直流通交流,从而得到更多的交流成分,Q1,Q2则组成了复合管,具有较高的放大倍数,为复合管的瞬间导通和截止提供了必要条件,即是为脉冲波的出现打下了基础。波形整形后如下图所示,经测试验证,此信号能让计数器稳定的运行,由于光电门采用红外光,受外界光照影响较小,处理后的的波形更能接近标准波。

                  图11 波形整形放大实测图


                  IP属地:安徽12楼2015-12-30 13:47
                  回复
                    3 PCB工程图设计
                    3.1总原理图

                    图12 总原理图
                    此图为总个工程的原理图,分为波形处理部分、51单片机最小系统、驱动部分和显示部分。
                    3.1.1红外传感器波形整形原理图

                    图13 红外传感器波形整形原理图
                    经波形整形后,Q3,Q4集电极输出的脉冲型号连接到单片机的计数器T1处,为计数器提供脉冲。
                    3.1.2数码管显示及驱动部分

                    图14 数码管显示及驱动
                    P0口作为数码管显示的输出口,因为P0口为漏极开路门,所以必须加上上拉电阻提供高电平,并且51单片机作为控制器件,不能直接驱动数码管,因此要经驱动元器件来驱动,本文则采用了74HC245N作为数码管的段选驱动,三极管采用PNP型的8550来驱动共阴极的四位一体数码管,低电平有效。如图14所示。


                    IP属地:安徽13楼2015-12-30 13:51
                    回复
                      3.2 PCB图

                      图15 PCB图


                      IP属地:安徽14楼2015-12-30 13:53
                      回复
                        5总 结
                        采用单片机技术来实现转速的测量,可以提高转速测量的精确度,并且加快了采样的速率,具有较好的实时性。本文介绍的转速方法使用于高、低转速的测量,测量精确度与转速无关,因而具有较宽的应用范围和广阔的应用的前景。基于单片机的转速测量系统,具有硬件电路简单,程序简单和运算速度快,测速范围广,抗干扰性能好的特点。在设计的信号处理电路中经过滤波,能够进一步减少误差,使测速精度得到提高。
                        6结束语
                        通过这次实训,让我更深层次的了解了单片机,在此期间遇到了各种问题,从一开始的毫无头绪到后来的思路慢慢清晰,设计程序流程图,编写程序,和同学们一起交流讨论,思想在碰撞,学识在增长。计时器部分的程序和显示经过一周的测试调试已经走向成熟,但是到了电路部分,就遇到了各种各样的问题,刚开始是波形整形部分,得不到合适的波形,最后经过多次仿真和实物调试,得到了了理想的波形和参数。后来在转印好的PCB板子上焊接好元器件,参数完全正确,就是不能正常显示数据,只显示0000,初步判断波形整形电路没有工作,经过多次排查,是腐蚀的覆铜板有线路短路的地方,用小刀割开后,期待已久的现象终于出开来。搞电子技术,是一个很细的技术活儿,需要处处留心,处处细心,否则将会遇到各种各样的问题,遇到问题更需要耐心,否则必然会半途而废,无功而返。


                        IP属地:安徽15楼2015-12-30 13:55
                        回复
                          源程序送给你们!
                          附录 程序设计
                          #include<reg51.h>
                          #include<intrins.h>
                          #define uint unsigned int
                          #define uchar unsigned char
                          float f=0;
                          uchar LED0_data,LED1_data,LED2_data,LED3_data;
                          uchar i=0;
                          uchar code Segcode[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
                          void display();
                          void delay(uint v);
                          void initime();
                          /*定时器初始化*/
                          void initime()
                          {
                          TMOD=0x51; //T1计数器,T0定时器,方式1
                          TL0=(65536-10000)%256;
                          TH0=(65536-10000)/256;
                          TL1=0;
                          TH1=0;
                          ET0=1;
                          EA=1;
                          }
                          /*延时子函数*/
                          void delay(unsigned int c)
                          {
                          unsigned int i,j;
                          for(i=0;i<c;i++)
                          for(j=0;j<50;j++);
                          }
                          /*将十进制数拆成送数码管的显示码*/
                          void dectobit(int dec)
                          {dec=dec*1.5;
                          LED3_data=dec/1000;
                          dec=dec % 1000;
                          LED2_data=dec/100;
                          dec=dec % 100;
                          LED1_data=dec/10;
                          dec=dec % 10;
                          LED0_data=dec;
                          }
                          /*显示程序*/
                          void display()
                          {
                          P0=Segcode[LED3_data]; //个位
                          P2&=~0x01;
                          delay(10);
                          P2|=0x01;
                          P0=Segcode[LED2_data]; //十位
                          P2&=~0x02;
                          delay(10);
                          P2|=0x02;
                          P0=Segcode[LED1_data];
                          P2&=~0x04;
                          delay(10);
                          P2|=0x04; //百位
                          P0=Segcode[LED0_data]; //千位
                          P2&=~0x08;
                          delay(10);
                          P2|=0x08;
                          }
                          void main(void)
                          {
                          initime();
                          TR0=1;
                          TR1=1;
                          while(1)
                          {
                          dectobit(f);
                          display();
                          }
                          }
                          timer()interrupt 1 using 2
                          {
                          i=i+1;
                          if(i==100)
                          { i=0;
                          f=TH1*256+TL1;
                          TL1=0;
                          TH1=0;
                          }
                          TL0=(65536-10000)%256;
                          TH0=(65536-10000)/256;
                          }


                          IP属地:安徽16楼2015-12-30 13:56
                          回复
                            此贴完结。。。。。。。。。。。。。。。。。。。。。。。。。。。。。


                            IP属地:安徽17楼2015-12-30 13:57
                            回复
                              2025-08-01 17:28:11
                              广告
                              不感兴趣
                              开通SVIP免广告
                              @ABCD123lulu @CS逍遥剑仙 @元芳过来瞅瞅 @wtywtykk @何小成2 快来快来,好久不见你们啦!


                              IP属地:安徽来自Android客户端19楼2015-12-30 15:49
                              回复