- UID
- 8019
- 帖子
- 136
- 积分
- 327
- 威望
- 243
- 金币
- 622
- 贡献
- 84
- 职业
-
- 来自
- china
- 注册时间
- 2004-11-19
- 最后登录
- 2012-1-7
|
4#
发表于 2011-3-1 20:57
| 只看该作者
可不可以就请细看脉冲电位器原理:
脉冲电位器与普通电位器一样都是三个引脚,但在其内部与引脚1、2相连的是两个长短不一的金属静片,与引脚3相连的是一周有12或24个齿的金属动片。当脉冲电位器旋转时可出现四种状态:即引脚3与引脚1相连,引脚3与引脚2及引脚1全相连;引脚3与引脚2相连,引脚3与引脚2及引脚1全断开。
在实际使用中,一般将引脚3接地作为数据输入端。而引脚1、2作为数据输出端与单片机I/O 口相连。如图2中所示,将引脚1与单片机的P1.0相连,引脚2与单片机的P1.1相连。当脉冲电位器左旋或右旋时,P1.0和P1.1就会周期性地产生所示的波形,如果是12点的脉冲电位器旋转一圈就会产生12组这样的波形,24点的脉冲电位器就会产生24组这样的波形;一组波形(或一个周期)包含了4个工作状态。因此只要检测出P1.0和P1.1的波形,就能识别脉冲电位器是否旋转是左旋还是右旋。
进一步分析右的波形并按时间轴展开可以看出,虽然脉冲电位器左旋和右旋的波形都相同。但左旋时,在第1状态,脚1先比脚2变为低电平;在第2状态,脚2也变为低电平;在第3状态,脚1先比脚2变为高电平;在第4状态,脚2也变为高电平;脉冲电位器右旋时,脚1和脚2输出波形的变化规律正好与左旋相反。故可根据时间识别法(比较P1.0与P1.1低电平出现和结束的时差)来识别脉冲电位器是左旋还是右旋。在动态扫描中,因采样频率操作速度等因素的影响,实际上很难测出 P1.0和P1.1的波形;也很难测准P1.0与P1.1低电平出现和结束的时差,只能快速地对P1.0和P1.1电平采样。对应图1所示波形按时间轴展开,每当P1.0和P1.1的组合电平依次为01 00 10 11四种状态码组成一个字节即4BH 时,就表示左旋一位音量减1。而每当P1.0和P1.1的组合电平依次为10 00 01 11四种状态码组成一个字节即87H时;就表示右旋一位音量加1。这里将“4BH”称为左旋一位的特征码,“87H”称为右旋一位的特征码。编程的任务就是要在脉冲电位器旋转过程中识别出这两种特征码,并以此为依据,对音量进行增减控制。实际编程时可以用不同的方法识别出这两种特征码。但我们在实践中经过比较,用状态(位置)采样法实现编程是较为理想的一种方法。这种方法对采样频率和操作速度没有特别要求,也可不用定时器和中断资源,只需在主程序里面就能完成,而且具有编程简单抗干扰能力强工作可靠的优点。
由于脉冲电位器在工作过程中有三种情形:一是没有被旋转而停留在某一状态(位置);二是虽然被旋转但没有完成一个周期(4个状态)而停留在某一状态;三是不停地被旋转而超过一个周期。状态(位置)采样法就是要准确地跟踪识别和记录脉冲电位器变化的每一个状态值(包括位置值和它对应的特征码)。程序一开始就要识别出脉冲电位器所处的现态位置和其对应的特征码;随后不断跟踪扫描记录脉冲电位器的每一变化过程。显然,脉冲电位器只有旋转到第4个状态才有一个我们所需要的特征码出现,程序根据这个特征码的性质再对音量进行加减控制。 |
|