华北电力大学科技学院本科毕业设计(论文)
图3-9 报警电路如
3.6 总体电路原理图
自行车里程/速度计采用AT89C52单片机作控制,速度及里程传感器采用霍尔元件,其电器原理如图3-11所示。PO口和P2口用于七段LED显示器的段码及扫描输出,在现实里程时,第一位小数点用12脚P2.4口控制点亮。P1.1口和P1.0口分别用于显示里程状态和速度状态。P1.2、P1.3、P1.4和P1.5分别用于设置轮圈的大小。在程序中设计为当P1.5为0时,则表示自行车轮圈周长为150CM,以此类推,P1.4为192CM,P1.3为200CM,P1.2为210CM。P1.6口的开关用于确定显示的方式,当开关闭合时,显示速度;打开时显示里程。第12脚外中断0用于对轮子圈数的计数输入,轮子每转一圈,霍尔传感器输出一个低电平脉冲,由于在Proteus中没有相应的A44E霍尔传感器,因此在本原理图中用一个按钮代替A44E霍尔传感器;13脚输出用于速度超速时和没有周长输入时的报警。其原理图如3-11所示。其周长值对应表见附表1。
17
华北电力大学科技学院本科毕业设计(论文)
3-10 原理图
18
华北电力大学科技学院本科毕业设计(论文)
4 自行车里程/速度计的软件设计与仿真
4.1 自行车里程/速度计的主程序设计
在主程序模块中,需要完成对芯片各接口的初始化、各存储单元的初始化、中断向量的设计以及开中断、循环等等待工作。另外,在主程序中还需要设置启动/清除标志寄存器、里程寄存器、速度寄存器,然后主程序根据各标志寄存器的内容,分别完成启动、清除、计程和计数等不同的操作。
P1.0和P1.1口分别用于显示里程状态和速度状态。P1.2、P1.3、P1.4、P1.5口分别用于设置轮圈的大小,低电平有效。P2.5是用于里程和速度的切换,低电平显示速度,高电平显示里程。中断0用于对轮子圈数的输入,轮子每转一圈,霍尔传感器输出一个低电平脉冲。将根据里程寄存器的内容计算和判断行驶里程。T0中断用于定50ms中断,当轮子转一圈时,记录中断的次数n,用轮子周长除以次数n与50ms的乘积,就能得出实时速度。其程序流程图如图4-1所示。
19
华北电力大学科技学院本科毕业设计(论文)
图4-1 主流程图
4.2 中断子程序的设计
定时中断是为了满足定时或计数的需要而设置的。在单片机内部有两个定时/计数器,以对其中的计数结构进行计数的方法,来实现定时或计数功能。当发生计数益出时,即表明定时时间或计数值已满,这时就以计数益出作为中断请求,去置位一个益出标志,作为
20
华北电力大学科技学院本科毕业设计(论文)
单片机接受中断请求的标志。这种中断请求是在单片机芯片内部发生的,因此无需在芯片上设置引入端。
特殊功能寄存器TCON的高4位为定时器的计数控制位和益出标志位,低4位为外部中断的触发方式控制位和外部中断请求标志。本设计采用定时中断,用于对自行车的速度进行计算。其定时中断流程图如图4-2所示。
中断返回 开中断 恢复现场 中断处理 现场保护 开始 关中断
图4-2 中断流程图
外部中断是由INT0控制,当输入高电平时,发生中断,记录一次,最后由记录次数计算出自行车行驶的里程以及计算实时速度。
4.3 显示子程序的设计
本次的显示采用动态显示,在轮流显示的构成中,由于每位显示的时间是极为短暂的,因为人的视觉暂留现象和发光二极管的余辉效应,尽管实际上并非同时显示,但只要显示的速度足够快,给人的印象是一组稳定的显示数据,不会有闪烁感。在设计中,P2.0到P2.3为位选通的位选信号,P0.0到P0.6为段选通信号,通过程序,先把所要显示的数据存入暂存单元,然后把数据送入与段选通相对应的地址,再选通某一个LED,逐步完成四个LED的显示。其流程图如图4-3所示。
21