版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 成都信息工程学院电子工程学院成都信息工程学院电子工程学院 电子综合设计 总结报告总结报告 题题 目:目: 自适应数字频率计自适应数字频率计 小电机转速测量小电机转速测量 专专 业:业: 班班 级:级: 姓姓 名:名: 指导教师:指导教师: 评评 分:分: 2011 年年 12 月月 1 日日 1 目录目录 1题目描述和要求题目描述和要求.2 1.1对功能及指标的理解.2 1.2系统设计思路.2 2设计说明设计说明.3 2.1工作原理.3 2.1.1.测频部分的原理设计.3 2.1.2 直流小电机模块.4 2.1.3 数码管显示模块.5 2.1.4 按键模块.6 2.1.5 完整 pcb 图.
2、7 2.2软件设计.7 2.2.1 主流程图及中断流程图.7 2.2.1 与流程图相配的源程序及注解.8 2.3特殊器件的介绍:.17 3调试过程调试过程.18 3.1问题及解决.18 3.2调试数据.19 3.3误差分析.20 4设计总结及体会设计总结及体会.20 5参考文献参考文献.21 6 附录附录21 2 1.题目描述和要求题目描述和要求 自适应数字频率计和小电机转速测量:自适应数字频率计是通过单片机和分 频电路,对输入的信号进行频率测量,并在数码管或者液晶屏上显示,测量范 围在 1hz-9999khz(4 位高位有效数字) ,能自动选择最佳的频段进行测量现实 最多的有效数字,并且小数
3、点能自动根据频率的大小进行自动调整。 小电机转速测量:光电对管发射红外线,小电机经过时遮挡红外线,是光电 接收管产生脉冲方波,进而利用单片机对脉冲信号计数,从而测出小电机的转 速。并且要在数码管上显示,可以利用按键控制小电机转速,事先用 pwm 技术 调节控制小电机转速测量电机速度与设置值相等。 1.11.1 对功能及指标的理解对功能及指标的理解 功能理解: 整个系统要求在一块单片机上实现自适应数字频率计和直流小电机转速测量, 通过系统按键实现两个子程序之间的切换。 自适应数字频率计:利用单片机和 cd4051 和 74ls393 实现对信号的频率测量, 并在数码管上精确显示,小数点也能自动根
4、据频率大小作相应调整。 小电机转速测量:使用光电对管产生的脉冲信号进行小电机的转速测量,并 且要在数码管上显示,可以利用按键控制小电机转速,事先用 pwm 技术调节控 制小电机转速测量电机速度与设置值相等。 指标要求: 自适应数字频率计:设计分频电路,对输入的信号进行频率测量,并在数 码管或者液晶屏上显示,测量范围在 1hz-9999khz(4 位高位有效数字) ,能自 动选择最佳的频段进行测量现实最多的有效数字,并且小数点能自动根据频率 的大小进行自动调整。 小电机转速测量:光电对管发射红外线,小电机经过时遮挡红外线,是光 电接收管产生脉冲方波,进而利用单片机对脉冲信号技术,从而测出小电机的
5、 转速。并且要在数码管上显示,可以利用按键控制小电机转速,事先用 pwm 技 术调节控制小电机转速测量电机速度与设置值相等。 1.21.2 系统设计思路系统设计思路 本系统采用 at89c52 作为整个系统的控制核心,四联数码管作为整个系统的显 示窗口,四个独立按键实现人性化的人机交互。如下 3 自适应数字频率计:lm393 和 cd4051 组成的分频电路将所测信号进行分屏,并 且根据不同的频段有 4051 进行选择,然后进过单片机显示在数码管上,分频电 路由 393 构成,393 是一个双二进制 4 位计数器,可根据要求的不同设计不同 的频段。 小电机测转速:三极管做驱动电路,让小电机经过
6、光电对管,然后产生脉冲信 号,将信号输入单片机进行计数和定时,然后根据所测的值显示在数码管上, 有按键可控制小电机的转速,并最终让所测值与实际值相差不大。 2 2 设计说明设计说明 2.12.1 工作原理工作原理 本系统由 ls393cd4051 做频率计部分,按键模块以及数码管显示四个模块 组成。利用单片机 at89c52 做为主控芯片实现。 2.1.12.1.1. .测频部分的原理设计测频部分的原理设计 本设计要求自动判别输入周期频率为 5hz-10k 信号, 扩展要求输入信号频 率范围上限达到 20khz。 单片机 光电 对管 测转 速 74ls393 cd4051 分频电 路 数码管显
7、示 4 由于单片机的计数频率上限较低(12mhz 晶振时,约 500khz) , 所以需对 高频被测信号进行硬件欲分频处理,采用 74ls393 进行分频处理后,再用 cd4051 将输入信号送入核心控制器件单片机 stc89c52 完成运算、控制及显示 功能。 为了提高频率的测量精度,所以在信号输入后首先设置电压跟随器以增大 输入阻抗,其后接电容进行对信号的滤波处理。将滤波后的信号接入电压比较 器,使输入信号转换为方波信号,从而方便对信号频率的测量。电路原理图如 图 2.1 所示。 123456 a b c d 654321 d c b a title numberrevisionsize
8、b date:15-may-2010sheet of file:c:documents and settings2008021049桌桌mydesign.ddbdrawn by: u1 lm324 u2 lm339 u1 lm324 1a 1 clear 2 1qa 3 1qb 4 1qc 5 1qd 6 gnd 7 2qd 8 2qc 9 2qb 10 2qa 11 clear 12 2a 13 vcc 14 u4 74ls393 i4/o4 1 i6/o6 2 o/i 3 i7/o7 4 i5/o5 5 inh 6 vee 7 vss 8 a2 9 a1 10 a0 11 i3/03 12
9、 i0/o0 13 i1/o1 14 i2/o2 15 vdd 16 u5 cd4051 i7 i7 p3.3 p2.5 p2.6 p2.7 +5 -5 +5 -5 +5 -5 xh +5+5 图 2.1 2.1.22.1.2 直流小电机模块直流小电机模块 小电机转盘经过光电对管,光电对管接收管阴极将产生一个跳变的脉冲 clk 信号,幅度大约在 5v 左右,将这个信号送进单片机的 t0 计数,并有 t1 作 1s 的定时,当定时到了,看有多少个脉冲信号进入,即可晓得小电机的转速, 然后送到数码管进行显示。 5 2.1.32.1.3 数码管显示模块数码管显示模块 显示模块是本系统中人机交互的重要
10、部分,通过四联数码管实现了教学打 铃系统中时间的显示以及打铃时间的显示。在低频函数波形发生器中显示出了 波形的种类以及对应的波形频率,使用户直观的了解系统所实现的功能。 系统中显示采用动态显示方式,轮流循环依次显示四个数码管的值。控制 数码管的刷新频率在 50hz 以上即可以实现人眼感觉的正常显示。 图 2-4 显示部分 6 如图 2-4 所示,利用单片机的 p0 口做为数码管的段码值输出口,p2 口做 为数码管的位选值输出口。由于 at89c52 的 p0 口为准双向口,故在应用时填加 上拉电阻。 2.1.42.1.4 按键模块按键模块 本系统采用三个按键,一个按键用来实现两个系统之间的切换
11、。另外两按 键分别实现在直流小电机中的频率的增加哦和减少设置。在软件程序中为了能 够保证按键实时有效,采用了定时器 0 中断循环扫描,每 1s 的时间扫描一次按 键改变状况,通过调用软件中的键盘扫面程序从而实现对不同功能的实现。 如图 2-5 所示,四个按键分别接到单片机的 p25、p26、p27 端口,利用 位操作实现对单个键盘的扫描。 7 2.1.52.1.5 完整完整 pcbpcb 图图 2.22.2 软件设计软件设计 2.2.12.2.1 主流程图及中断流程图主流程图及中断流程图 主程序通过扫描外部按键,改变 mode 的值,从而在两个子系统中切换,当 mode=1 时进入频率计,mo
12、de=0 时进入直流小电机。通过利用定时器 t0 每 1s 的 时间扫描一次外部键盘变化,利用定时器 t1 实现小电机转速设置。 =1=0 开始 初始化 mode 频率计小电 机 t0 定时 t1 计 数 t0 计数 t1 定时 分频判断按键显示 8 2.2.12.2.1 与流程图相配的源程序及注解与流程图相配的源程序及注解 #include /包含头文件 #define choosef p1 /频率计分频段选择端 code unsigned char ledcode = 0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;
13、/定义数码管段码数组 code unsigned char ledposit = 0 xfe,0 xfd,0 xfb,0 xf7; /定义数码管位选数组 unsigned int vt,timeloop,time; /定义频率变量,freq 为外部输入脉冲,fp 为分频数,vt 为高电平控制变量(pwm) /timeloop 定义定时器计时变量,50ms 进一次中断,将 timeloop=20,则定时器定时为 1s unsigned long int freq,t0count,t1count,disbuf7,fp; /t0count,t1count 分别统计计数器 t0 和计数器 t1 溢出次
14、数 bit mode=0; /按键功能切换参数,mode=0 频率计功能,mode=1 电机功能 sbit key1 = p24; /占空比加 sbit key2 = p25; /占空比减 sbit key3 = p26; /切换功能按键 sbit output = p32; /pwm 输出 sbit dp = p07; /共阴数码管 dp=0 小数点被点亮 bit led_t=0; sbit led_b=p10; bit led_r=0; sbit led_r=p11; bit led_y=0; sbit led_y=p12; /* 函数名称:fpxz 入口参数:unsigned long
15、int freq 出口参数:无 备注:频率计分频段选择 */ 9 void fpxz (unsigned long int freq) if(freq=31250i-) disbufi=freq%10; /取出个位 freq=freq/10; /* 函数名称:delay 入口参数:unsigned int dat 出口参数:无 备注:延时 */ void delay (unsigned int dat) unsigned char i,j; for(i=0;idat;i+) for(j=0;j110;j+); /* 函数名称:display 入口参数:unsigned int turn 出口参
16、数:unsigned int fpxs,vt,freq 备注:显示 */ void display (unsigned int turn) 11 if(turn=0) unsigned char i,j=0,bzw=0,p; for(i=0;i0 | disbufi-bzw0) bzw+; for(p=0,i=4-bzw;i4;i+,p+) /显示百万位到千位的码值 p2 = 0 xff; p0 = ledcodedisbufi; if(p=bzw-1) /点亮千位小数点 dp=1; p2 = ledpositj+; /给出显示位置选 delay(4); if(bzw4) /显示百位到个位的码
17、值 for(i=4;i8; /重新给 t0 定时器赋初值 tl0 = -50000; led_t=!led_t; /led 灯闪烁 led_b=led_t; if (+timeloop = 20) /判断 1s 时间是否到达 tr1 = 0; /关闭 t1 计数器 freq = t1count*65536 + th1*256 + tl1; /如果到达,计算频率 timeloop = 0; /清零定时变量,为开始下一个 13 1s 作准备 th1 = 0; /清零计数器,重新开始计算频 率 tl1 = 0; t1count=0; led_r=!led_r; /led 灯闪烁 led_r=led_
18、r; fpxz(freq); freq=freq*fp; freq=freq-(freq/100)*8; mzfz(freq); tr1=1; else /小电机测速 t0 计数,t1 定时 t0count+; th0=0; tl0= 0; tr0 = 1; /重新启动定时/计数器,开始 下一次测量 /* 函数名称:t1_init 入口参数:无 出口参数:无 备注:电机测频部分,t0 做计数器,t1 做定时器(1s) */ void t1_int (void) interrupt 3 /电机测速:t1 做定时器,50ms 进 一次中断 tr1 = 0; /关闭 t1 定时器 if(mode=1
19、) th1 = (-50000)8; /重新给 t1 定时器赋初值 tl1 = -50000; led_t=!led_t; /led 灯闪烁 led_b=led_t; 14 if (+timeloop = 20) /判断 1s 时间是否到达 tr0 = 0; /关闭 t0 计数器 freq = t0count*65536 + th0*256 + tl0; /如果到达,计算频率 timeloop = 0; /清零定时变量,为开始下一 个 1s 作准备 th0 = 0; /清零计数器,重新开始计算 频率 tl0 = 0; t0count=0; tr0=1; led_y=!led_y; /led 灯
20、闪烁 led_y=led_y; if(time+8; tr0 = 1; /启动定时器 t0 tr1 = 1; /启动计数器 t1 et0 = 1; /开始定时器 t0 中断 et1 = 1; /开始定时器 t0 中断 ea = 1; /开启系统总中断 choosef=0 x07; /分频选择 p1=choosef; /* 函数名称:dianji_init 输入参数:无 输出参数:无 备注:电机初始化 */ void dianji_init(void) ea = 0; /关闭系统总中断 tmod = 0 x15; /设置定时/计数器的工作模 式:t0:计数器,方式 1;t1:定时器,方式 1 t
21、imeloop = 0; time=0; vt = 10; t0count = 0; /统计计数器 t0 溢出中断的 次数 tl0 = th0 = 0; /清零 t0 计数器初值 tl1 = -1000; /给 t1 定时器置初值,初值到 溢出为 50ms th1 = (-1000)8; tr0 = 1; /启动计数器 t0 tr1 = 1; /启动定时器 t1 et1 = 1; /开始定时器 t1 中断 et0 = 1; /开始定时器 t1 中断 ea = 1; /开启系统总中断 / choosef=0 x08; /切换时让频率计复位 16 / p1=choosef; /* 函数名称 mai
22、n 输入参数:无 输出参数:无 备注:主函数 */ void main(void) mode=1; while(1) if(mode=0) /频率计工作 pinlvji_init(); /频率计初始化 while(1) display(mode); /没有键按下时,执行显示程 序 if(key3=0) mode=mode; while(key3=0); if(mode=1) break; /跳出频率计循环 /*/ if(mode=1) /电机工作 dianji_init(); /电机初始化 while(1) if ( key1 = 0 ) /判断按键 k1 是否被按下 /如果 k1 键被按下,
23、则对显 示数加 1 vt+; if ( vt = 19 ) vt =19; while ( key1 = 0 ) display(mode); 17 if ( key2 = 0 ) /判断按键 k2 是否被按下 vt-; /如果 k2 键被按下,则对显示 数减 1 if ( vt 1) vt = 1; while ( key2 = 0 ) display(mode); display(mode); /没有键按下时,执行显示程 序 if(key3=0) mode=mode; while(key3=0); if(mode=0) break; /跳出电机循环 2.32.3 特殊器件的介绍特殊器件的介
24、绍: : 74ls393 介绍(在本设计中用于在高频段分频) (1)74ls393 简要说明: 393 为两个 4 位二进制计数器,共有 54/74393 和 54/74ls393 两种线路结构 型式,其主要电器特性的典型值如表 2.3.1 所示 (不同厂家具体值有差别): 表 2.3.1 74ls 电器特性的典型值 型号 fcpd 54393/7439335mhz190mw 54ls393/74ls39335mhz75mw 异步清零端(1clear,2clear)为高电平时,不管时钟端 1a,2a 状态如何, 即可以 完成清除功能。 当 1clear,2clear 为低电平时,在 1a,2a
25、 脉冲下降 沿作用下进行计数操作。 (2)引出端符号: 1a、2a 时钟输入端(下降沿有效) 1clear,2clear 异步清零端 1qa1qd、2qa2qb 输出端 18 (3)外接管腿图(见图 2.3.2): (4)极限值: 电源电压7v; 54/74ls393 的 1a,2a5.5v;54/74ls393 的 1clear,2clear7v; 工作环境温度070;存储温度-65150 真值表(如表 2.3.3): 图 2.3.2 74ls393 真值表图 2.3.3 74ls393 外 接管腿图 3.3.调试过程调试过程 3.13.1 问题及解决问题及解决 硬件方面: 所有数码管 e
26、段不亮,经检查单片机 p04 端口焊接不良,出现虚焊; 数字频率计数码管显示乱码,经查询单片机芯片资料,在数据端口将上 拉电阻接反,导致出现乱码,显示不清。 数字频率计的高频部分出现严重失真,经检查是分频电路设置问题,重 19 新改变了分频电路的频段。 直流小电机:最开始没有数据,张老师帮我们检查了后发现是光电对管 的接收部分正负极弄饭了,改进后,使用示波器测量,能测出连续的脉冲跳变 波形,幅度是 5v 左右。 软件方面: 小电机:定时器 1 定时数据无法正常赋值,改用结构体形式对其赋值; 数字频率计:频段分段有重叠,导致显示不停的变化,不能稳定的显示一个 数字,解决办法重新改写分频段的选择。
27、 显示:最开始,显示的数字不会稳定,后经过张老师的指点,我们将原 来准备的六位数组改为四位数组,并且重新将显示部分程序改进,实现了显示 的值。 3.23.2 调试数据调试数据 (1)软件程序是在 purtuse 仿真配合下完成的,如图 3.2.1 是 1k 的仿真: (d1 亮说明单位是 khz)(比较准确) 图 3.2.1 频率部分的仿真测试图 (1)测频部分数据记录(见表 3.1) 5hz7.5hz50hz55hz505hz1k5k6.6k10k12.5k15k 正弦 波 5.127.5650.154.85031k5.02k6.63k10k12.6k15.2k 方波 5.057.4649.
28、854.95071k5.02k6.62k10k12.6k15.1k 三角 波 5.107.6449.855.15071k5.02k6.62k10k12.6k15.2k 锯齿 波 5.177.7050.054.75071k5.01k6.62k10k12.6k15.2k 频 率 波形 20 平均 误差 /( %) 0.0220.0120.0010.0020.0020.0000.0030.0030.0010.0010.001 3.33.3 误差分析误差分析 . (1)软件误差分析: 频率计算公式:f=n/t;其中 f 代表频率,其中 n 代表下降沿个数,t 代表 时间。低频采用计时(即固定 n,采集
29、时间 t);高频采用计数(即固定时间 t,采集 n)。在低频时由于 t 并不是连续的即由于我们采用的最小 10ms 计时,所以出来的时间都只是 10ms 的整数倍。而在高频时采用的中断计数,由 于频率 f 很高。中断次数很频繁,从而导致在一个执行周期内有多次中断,从 而使 n 大于真正的值。这也是导致频率超过 16khz 开始闪的主要原因。 (2)硬件误差分析: 由于 lm324 供电不足(+5v 供电)且 lm324 并非理想器件导致峰值大于 3.7v 左右就开始明显失真(截顶失真)同时 lm324 还受频率的影响,尤其是高 频,同时高频时电路的干扰增大,从而导致在高频时能准确测量的幅值更低
30、, 范围跟窄。过零比较器 lm339 并非理想器件加之干扰,使得过零比较变成非过 零比较,从而使得占空比不是 50%而且随着频率的增高占空比会更加的改变, 同时比较器和电路的不稳定使得过零比较后电压被一定的抬高(尤其是高频)。 这使得频率测量出现误差。同时电源的滤波设计的不是很好。而小电机部分由 于硬件的原因,所以不能将所测的数据进行显示。 4.4.设计总结及体会设计总结及体会 从指标来看,本设计的指标都基本达到要求指标。对频率测量部分,本设 计的频率测量范围是:1hz9999khz(由于 74ls393 芯片受损,因时间原因未能 更换,否则将达预期效果,频率范围应在 10h1000khz);但由于时间有限,硬 件电路设计考虑欠佳、实验条件和器件的程度有限,因此本设计不可避免的存 在一些问题。本设计在小电机测速部分的硬件及整体电路中滤波电路处理不当、 在本次设计与制
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 屋里尖尖角课件
- 西京学院《影视鉴赏》2023-2024学年第一学期期末试卷
- 西京学院《数据采集与预处理》2022-2023学年期末试卷
- 孝亲敬老,从我做起
- 西京学院《机器学习》2023-2024学年期末试卷
- 2024-2025学年高二物理举一反三系列1.4质谱仪和回旋加速器((含答案))
- 爆米花课件背景
- Module 4单元备课(说课稿)-2024-2025学年外研版(一起)英语三年级上册
- 西昌学院《土地评价学》2022-2023学年第一学期期末试卷
- 天然气净化高级单选题复习试题有答案
- 班前晨会内容及安全注意事项
- 一年级上册语文学练优电子版
- 焊接专业大学生职业生涯规划
- T-NAHIEM 101-2023 急诊科建设与设备配置标准
- 工业自动化中的自动化软件测试与系统验证
- 2024届高考模拟作文“情绪价值”导写及范文展示
- 教育部《中小学德育工作指南》-德育工作指南
- 建筑保温材料生产加工项目建设方案
- 2016-2023年太原幼儿师范高等专科学校高职单招(英语/数学/语文)笔试历年参考题库含答案解析
- IT运维述职报告
- 外科学总论-肿瘤课件
评论
0/150
提交评论