毕业设计论文--基于at89s51单片机电子式里程表内容摘要:

用了 DELAY 子程序 仅两条 NOP 指令 ,这是为了满足 I2C 总线上数据传送速率的要求,只有当 SDA 数据线上的数据稳定下来之后才能进行读写 即 SCL 线发出正脉冲。 另外,在读最后一数据字节时,置应答信号为“ 1”,表示读操作即将完成。 74LS139 对单片选通,这样任何一个时刻,都只有一位 LED 在点亮,也即动态扫描显示方式是一个 4 译码器,它将单片机输出的地址信号译码后动态驱动相应的 LED。 但 74LS13 电 流驱动能力较小,为此,我使用了未级驱动三极管作为地址驱动。 经过翻阅大量的技术资料,对具体要求实现的功能进行完整的系统分析,我认为我的系统设计基本符合实际情况,可以完成设计任务所要求实现的基本功能。 按照光电传感器中光电元件输出电信号的形式可以将光电传感器分为模拟式和脉冲式两大类。 1 模拟式光电传感器 这种传感器中光电元件接受的光通量随被测量连续变化,因此,输出的光电流也是连续变化的,并与被测量呈确定的函数关系。 2 脉冲式光电传感器 在这种传感器中,光电元件接受的光信号是断续变化的,因此光电元件处于开关工作状态,它输出的光电流通常是只有两种稳定状态的脉冲形式的信号,多用于光电计数和光电式转速测量等场合。 通过两种形式的光电传感器比较,我选用了脉冲式光电传感器,因其多用于光电计数和光电式转速测量等场合。 脉冲式光电转速传感器从光路系统看,有透射式和反射式两种。 ( 1)透射式光电传感器 这种仪表的测量盘装在被测转轴上,在它旁边装有不动的读数盘。 测量盘沿外缘圆周刻有等距径向透明光缝,在读数盘上刻有同样间距的透光缝隙,当测量盘随被测轴一起转动时,每转过一个缝隙,由光源射来的光线就将照射到光敏元件上一次,这个光 脉冲将引起光敏元件的输出电脉冲,在孔数一定时,该列电脉冲数就和转速成正比。 电脉冲经测量电路整形放大后再送入频率计计数和显示,经核算或标定后,就可以得到一个便于测量计数的信号,此时被测转速为 n f/N 式中 f――测得的脉冲频率; N――每转脉冲数,它等于圆周上之缝数。 若在调制盘上开 60 个小孔,则可在 1 秒的记数值上直接读出转速大小。 它可以测量 1r/min 的车速。 如果开 600 个孔,则它的测量精度为。 ( 2)反射式光电传感器 在转轴上不便于安装测量转盘时,还可以采用在测量转轴上加反射镜的方法。 在可能时,为了提高分辨率,可以在转轴圆周方向等距贴数块反射镜。 只有光线入射时,转轴每转一周就有数次光反射作用。 再用简单光学系统将反射光投到光敏元件上,就可以输出相应的电脉冲。 其它部分与透射式一样,通过测脉冲频率就可以求出转速。 反射式转速表使用方便,它不给转轴带来附加载荷,可以在距被测物数十毫米外非接触地测量其转速,但要求转轴不能太细,便于贴反射镜,它适于测量的转速范围为 30~ r/min。 通过比较,可知透射式光电传感器比反射式光电传感器的测量精度高,因而本设计中我采用了透射式光电传感器,并且采用了 60 条缝隙的测量盘。 如图 所示,为透射式光电转速传感器的结构原理图。 图 透射式光电转速传感器的结构原理 测量盘上具有相同间距的缝隙,当测量盘转动时,转过一条缝隙,光线便产生一次明暗变化,使光敏元件感光一次,用这种结构可以大大增加转盘上的缝隙数,因此使每转的脉冲数相应地增加。 感器的脉冲整形电路 施密特触发器在脉冲的产生和整形电路中应用很广。 施密特触发器是一种能够把输入波形整形成为适合于数字电路需要的矩形脉冲的电路。 而且由于具有滞回特性,所以抗干扰能力也很强。 它可用于波形变换、脉冲整形以及脉冲幅度 鉴别。 下图 为其应用: 图 施密特触发器的应用 根据以上施密特触发器的应用特性,因而用施密特触发器作为本系统的主要脉冲整 形元件。 图 是本系统所采用的透射式光电测速脉冲整形电路图。 每当旋转圆盘上的长方孔与光电开关上的透光孔重合,则光敏三极管受光而通过电流,使三极管饱和导通,故施密特触发器 CD4093 输出高电平,当圆盘转至透光孔被遮时, CD4093 输出低电平。 随着圆盘不停地转动, CD4093 便输出脉冲序列。 测出输出脉冲个数,结合圆盘每一周的孔数,使可算出旋转的转速及转角。 图中的CD4093 用于脉 冲整形。 图 透射式光电测速脉冲整形电路图 单片机与光电传感器的接口设计 单片机测量频率有两种方法:测频法和测周期法。 测量频率就是在单位定时时间里对被测信号脉冲进行计数;测量周期是在被测信号周期时间里对其一基准时钟脉冲进行计数。 测周期法常用于脉冲频率较低的场合,所以在本系统中我采用了测频法。 测量频率最简单的方法是将被测信号整形为脉冲,然后连接到单片机的定时器 /记数器( T/C)的外部脉冲输入端,本系统中将被测信号脉冲 AT89S51 的 T1端。 可将 AT89S51 的一个 T/C0 用作定时器,另一个 T/C1 用作计数器。 在 T/C0定时时间里,由 T/C1 对频率脉冲进行计数。 T/C1 的计数值是单位定时时间里的脉冲个数。 但应注意如下问题: ( 1)由于 AT895S51 对输入 T/C 的外部脉冲计数,是通过在每个机器周期的第 10 个时钟周期对输入端 T1 采样,故需要两个机器周期(等于 24 个时钟周期)识别一个脉冲的负跳变,每识别到一个脉冲的负跳变将计数器加 1。 因此被测脉冲的最高频率必须小于。 此外,还要求被测频率脉冲的宽度应大于一个机器周期T。 本系统所采用的时钟频率为 12,则被测脉冲的最高频率不应超过 1224500; 其宽度必须大于。 ( 2)在定时记数时会出现如图 所示的丢失脉冲的情况。 第一个脉冲的丢失,是 由于开始检测时脉冲宽度已小于机器周期 T;第二个脉冲丢失是由于脉冲的负跳变在定时之处出现。 定时时间里出现脉冲丢失,将引起测量精度降低。 脉冲频率越低,这种误差越大。 图 频率测量法的脉冲丢失 为解决图 中第一个脉冲的丢失,可用门电路实现记数开始与脉冲上升沿的同步控制。 图 是用 AT80S51 的 T/C0 作定时器, T/C1 作计数器,对频率测量的接口电路。 图 带同步控制的频率测量接口 控制时,首先由 发一个清 0 负脉冲,使 U U2 两个 D 触发器复位,其输出封锁与门 G1 和 G2。 接着由 发一个启动正脉冲 ,其有效上升沿使 Q1 1,门 G1 被开放,使被测脉冲得以通过门 G1,使 Q2 置为 1,从而将门 G2 打开。 之后,被测脉冲上升沿通过 G2 送 T1 计数;同时 Q2 输出的高电平使 INT0 1,定时器 0 的门控 GATE 有效,启动 T/C0 开始定时。 直到定时结束时,从 发出一个负脉冲,将 U2 清零,从而封锁 G2,使 T/C1 停止计数,至此一次频率采样过程结束。 在本系统中,为汽车转轴上安装的测量盘缝隙对应的频率,测量 T/C定时时间为 1S,这样长时间的定时,先由 T/C0 定时 100ms,之后软件循环 10次来完成( 10 100ms 1s)。 T/C 作频率脉冲的计数器,若单片机工作在计数方式 1,最大计数值为 65536。 若 100ms计数 65536次, 则脉冲的频率为 ,这已经超过了 AT89S51 的计数器的最高频率 500 kHz,能够发挥出 T/C 的最大计数能力。 T/C0定时 100ms的计数初值设为 3CB0H,并设定时器 /计数器方式字 TMOD 59h。 计数器 1 采用计数值满后自然清零再计数的方法。 将 T/C0 设为高优先级,允许计数过程中定时中断,即定时时间到就中止计数。 单片机与外部存储器的接口设计 本系统采用的是串行 EEPROM 芯片 24C16, 24C16 的 1- 3 脚分别为器件编址端 A0、 A A2(用于与系统中的同类器件编码 4 脚为电源地, 5 脚为 I2C 总线的数据线 SDA, 6 脚为 I2C 总线的时钟 SCL, 7 脚为测试输入端,在系统中接地, 8脚为电源。 5 脚 SDA6 脚 SCL 图 超速报警电路图 单片机与键盘和 7 段显示器的接口设计 本系统的键盘输入部分,采用 2 个功能键,用这 2 个键,既可以选择显示是单班里程还是总里程。 本系统采用的是常见的按钮开关。 开关的接入方法是先将按钮开关的状态转变为逻辑电平,然后可直接接到单片机的某一条 I/O 线。 但由于机械开关在状态转换时有信号的抖动,故在接入开关的同时,必须考虑防抖动的问题。 其图 如下所示: 图 键盘输入电路图 而七段 LED 显示器一般都是同时使用几个 LED 显示器,它有两种连用方法:一是每一位都用各自的 8 位输出口控制,在显示某一字符时,相应的段恒定发光或不发光,这种显示方法属于静态显示,它占用较多的 I/O 口线。 二是动态显示,即将多个 7 段 LED 的段 选端复接在一起,只用一个 8 位输出控制段选,段选同时加到各个 7 段 LED显示器上,通过控制各个显。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。