位置:51电子网 » 技术资料 » 测试测量

软件思路和具体实现

发布时间:2012/6/12 19:35:22 访问次数:1069

    说起单片机测速,最简单也TMP68301AF16最容易实现的方法之一就是使用其内部的定时器:一个定时器作计数功能,用来对测速探头送来的脉>中信号计数,另一个定时器则作定时功能,定时时间为1秒,每次将用作图5里程表电路原理098无线电己Oll计数的定时器打开1秒,1秒到则关闭。但这种方式需要两个定时器,而前文已提到用于测速的定时器只剩一个,另一个已用作串口通信的波特率发生器,要测速就必须要给单片机提供一个秒信号,而这个矛盾刚好可由PCF8563来解决,其第7脚为可编程时钟输出,所输出的频率范围刚好就有秒信号,因此单片机复位后,程序开始运行时第一件事就是对PCF8563作相应设置,使其输出秒信号作为单片机的外中断1的中断信号,用来测量速度。而里程的计量则在外中断O中进行,这里将利用PCF8563的第3脚,输出1024kHz的脉>中,让2051的外中断o每秒中断1024次,用于计量行驶里程,这样一来就解决了里程表基本功能实观的问题,从而实现了对它的充分利用。至于额外的时间显示功能,PCF8563本身就是用作实时时钟的,所以问题自然也就迎刃而解了。
    行驶里程数存储于AT24C01中,要注意一点的就是,AT24C01的读写次数一般是大干1万次,因而程序中就要注意向其写入数据的次数问题。假如我们每天上班骑行一个来回是40公里,每行驶一公里写一次里程数,则每天要写40次,一年下来就要擦写14600次,这个频率肯定会让AT24C01提早报废。解决办法是在按键程序中用按键来定义存储功能,到达目的地后,用按键来存储数据,这样一来,每天的擦写次数就变为两次了,AT24C01的使用年限将达十年的样子。
    本文所提供的程序相对较大,有九百多行,全部使用汇编语言,采用模块化编程,因而源码虽然较多,但还是很容易理解,里面包括软件模拟I2C通信的子程序和双字节的乘法子程序,都很实用,大家可以将之移植到自己其他的程序中去。当然所提供的程序仍有很多能改进的地方,读者可以在源码基础上作更多的优化,使之更合理,效率更高。
    说起单片机测速,最简单也TMP68301AF16最容易实现的方法之一就是使用其内部的定时器:一个定时器作计数功能,用来对测速探头送来的脉>中信号计数,另一个定时器则作定时功能,定时时间为1秒,每次将用作图5里程表电路原理098无线电己Oll计数的定时器打开1秒,1秒到则关闭。但这种方式需要两个定时器,而前文已提到用于测速的定时器只剩一个,另一个已用作串口通信的波特率发生器,要测速就必须要给单片机提供一个秒信号,而这个矛盾刚好可由PCF8563来解决,其第7脚为可编程时钟输出,所输出的频率范围刚好就有秒信号,因此单片机复位后,程序开始运行时第一件事就是对PCF8563作相应设置,使其输出秒信号作为单片机的外中断1的中断信号,用来测量速度。而里程的计量则在外中断O中进行,这里将利用PCF8563的第3脚,输出1024kHz的脉>中,让2051的外中断o每秒中断1024次,用于计量行驶里程,这样一来就解决了里程表基本功能实观的问题,从而实现了对它的充分利用。至于额外的时间显示功能,PCF8563本身就是用作实时时钟的,所以问题自然也就迎刃而解了。
    行驶里程数存储于AT24C01中,要注意一点的就是,AT24C01的读写次数一般是大干1万次,因而程序中就要注意向其写入数据的次数问题。假如我们每天上班骑行一个来回是40公里,每行驶一公里写一次里程数,则每天要写40次,一年下来就要擦写14600次,这个频率肯定会让AT24C01提早报废。解决办法是在按键程序中用按键来定义存储功能,到达目的地后,用按键来存储数据,这样一来,每天的擦写次数就变为两次了,AT24C01的使用年限将达十年的样子。
    本文所提供的程序相对较大,有九百多行,全部使用汇编语言,采用模块化编程,因而源码虽然较多,但还是很容易理解,里面包括软件模拟I2C通信的子程序和双字节的乘法子程序,都很实用,大家可以将之移植到自己其他的程序中去。当然所提供的程序仍有很多能改进的地方,读者可以在源码基础上作更多的优化,使之更合理,效率更高。

上一篇:人机对话装置

上一篇:单片机的选型

相关技术资料
6-12软件思路和具体实现

热门点击

 

推荐技术资料

音频变压器DIY
    笔者在本刊今年第六期上着重介绍了“四夹三”音频变压器的... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!