利用LM3S811的定时器、外部中断、SSI模块等功能制作了一个自行车测速装置。本作品使用LM3S811单片机通过开关型霍尔传感器A04E检测车轮的转数,利用SSI(同步串行通信)模块向两片级联的74HC595发送16位的数据来驱动六位数码管,其中高八位用于片选,低八位用于段选。通过一个按钮来切换显示速度和里程。
1系统方案
1.1 电源由于LM3S811的工作电压是3.3V,所以直接采用两节5号干电池供电。
1.2 显示由于速度与里程的范围:0~40.01和0~700.1,只需5位即可显示。所以用2片3位的数码管吗组成1片6位的,其中第一位分别显示U和L代表速度和里程。
1.2 检测采用外部中断当单片机检测到下降沿时,计数值加一。每隔一秒计算一次速度。
2系统理论分析与计算2.1 数码管显示
将6个数码管的段选并联,由U1控制;U2的低6位用作片选码。数据帧的大小为16位,其中0~7位为段选码,第8~13用于片选码LM3S811在上电时,所有GPIO引脚默认为输入,软件设计根据应用要求配置GPIO引脚。
在使用SSI时,需通过对RCGC1寄存器中的SSI位置位使能SSI外设时钟。配置SSI为主机模式,协议模式为Freescale SPI单次传输模式。
为了切换显示速度和里程,分别用定时器1和定时器2定时中断,不断刷新数码管。外加一个按钮,当键按下时初始化定时器1,显示里程;否则只初始化定时器2,显示速度。
2.2
计算速度与里程
在车轮一周上均匀放置6个磁钢,假设车轮半径0.5m,则车轮转一周为π m。每两个磁钢之间的距离位π/6 m。磁钢检测采用外部中断,每中断一次计数器加
1。再用定时器0定时中断,每隔一秒计算一次速度,v=counter*π/6 m/s转换成V=v*3.6 km/h,里程mile则一直累加。
|