求助。关于单片机 点击:1135 | 回复:15



swei

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 18回
  • 年度积分:0
  • 历史总积分:80
  • 注册:2007年4月27日
发表于:2007-05-12 19:10:00
楼主
我想用AT89C52的定时/计数器1对外部脉冲电平计数。脉冲电平是由一个可移动的机械触点在一块印刷成像梳子一样的覆铜片上移动而产生的(有点类似单触点开关不断地进行 闭合——断开——闭合……)。本来是在单片机内设置了10个脉冲计数值的,但触点只移动了两三格,单片机的计数值就满了。请问如何保证单片机在触点移动过程中对脉冲电平计数的准确性?恳请各位高手指点下。



周公

  • 精华:10帖
  • 求助:0帖
  • 帖子:119帖 | 5549回
  • 年度积分:0
  • 历史总积分:6446
  • 注册:2002年11月26日
发表于:2007-05-13 21:43:00
1楼
1.核实定时器/计数器的工作方式;
2.在触点上并联电容,防抖动。如果有示波器可以检测输入波形。

swei

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 18回
  • 年度积分:0
  • 历史总积分:80
  • 注册:2007年4月27日
发表于:2007-05-14 01:44:00
2楼
并联的电容该选多大值?顺便问一下,就是一上电的时候,单片机的P1~P3口引脚应该都是输出高电平的,所以接到P2口的8个LED灯应该是不亮的(采用灌电流接法)。但我在试验时发现一上电,接到P2口的8个LED灯快速地闪了一下才灭。不知道是什么原因?是不是上电那一瞬间的电流冲击引起的?如果是,该如何避免这种情况?谢谢!(PS:单片机是由输出标值为DC 5V/3A的电源供电)

FF帆

  • 精华:17帖
  • 求助:0帖
  • 帖子:77帖 | 3116回
  • 年度积分:0
  • 历史总积分:7271
  • 注册:2005年11月04日
发表于:2007-05-14 08:34:00
3楼
学习

猎隼

  • 精华:1帖
  • 求助:1帖
  • 帖子:151帖 | 1661回
  • 年度积分:0
  • 历史总积分:8983
  • 注册:2005年9月28日
发表于:2007-05-14 10:04:00
4楼
先看看,是不是你的程序有遗漏.

周公

  • 精华:10帖
  • 求助:0帖
  • 帖子:119帖 | 5549回
  • 年度积分:0
  • 历史总积分:6446
  • 注册:2002年11月26日
发表于:2007-05-14 10:44:00
5楼
输入并联电容10~47VF(上拉电阻10K)。
‘一上电,接到P2口的8个LED灯快速地闪’——查/EA,不可以悬空。

亦云人云

  • 精华:5帖
  • 求助:0帖
  • 帖子:102帖 | 2351回
  • 年度积分:0
  • 历史总积分:3114
  • 注册:2004年11月10日
发表于:2007-05-14 11:41:00
6楼
请注清电容单位:法拉 F,毫法 mF,微法 uF,纳法 nF,皮法 pF.

swei

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 18回
  • 年度积分:0
  • 历史总积分:80
  • 注册:2007年4月27日
发表于:2007-05-14 12:50:00
7楼
好的。谢谢楼上各位的热心帮助!

猎隼

  • 精华:1帖
  • 求助:1帖
  • 帖子:151帖 | 1661回
  • 年度积分:0
  • 历史总积分:8983
  • 注册:2005年9月28日
发表于:2007-05-14 14:58:00
8楼
我感觉这种信号过滤最好在程序里作,比如在信号输入的语句里加上一定的延时,这样就可以过滤掉不必要的杂波.

swei

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 18回
  • 年度积分:0
  • 历史总积分:80
  • 注册:2007年4月27日
发表于:2007-05-14 19:45:00
9楼
有没有可以去抖动的芯片啊?比如用在键盘去抖动的芯片?

XLUYAO007

  • 精华:0帖
  • 求助:0帖
  • 帖子:11帖 | 246回
  • 年度积分:0
  • 历史总积分:411
  • 注册:2005年9月29日
发表于:2007-05-23 09:17:00
10楼
在程序中,你采用的检测是检测电平,还是上升沿,还是下降沿?,在写的时候有没有明确这个?如果是检测沿的话,就存在两次计数了。

xiaojia_

  • 精华:0帖
  • 求助:0帖
  • 帖子:14帖 | 104回
  • 年度积分:0
  • 历史总积分:145
  • 注册:2004年10月17日
发表于:2007-07-28 13:54:00
11楼
程序的问题

周公

  • 精华:10帖
  • 求助:0帖
  • 帖子:119帖 | 5549回
  • 年度积分:0
  • 历史总积分:6446
  • 注册:2002年11月26日
发表于:2007-07-28 22:33:00
12楼
 xluyao007:  引用   加为好友   发送留言   2007-5-23 9:17:00 
    在程序中,你采用的检测是检测电平,还是上升沿,还是下降沿?,在写的时候有没有明确这个?如果是检测沿的话,就存在两次计数了。 
 
--------------------------------
看书上上升沿对51系列的计数器是否起作用。

猎隼

  • 精华:1帖
  • 求助:1帖
  • 帖子:151帖 | 1661回
  • 年度积分:0
  • 历史总积分:8983
  • 注册:2005年9月28日
发表于:2007-07-29 09:46:00
13楼
周公,是不是可以在程序里加一个延时来过滤触点的抖动,或用外接电容来过滤?

周公

  • 精华:10帖
  • 求助:0帖
  • 帖子:119帖 | 5549回
  • 年度积分:0
  • 历史总积分:6446
  • 注册:2002年11月26日
发表于:2007-07-29 10:24:00
14楼
都可以,或者同时使用。注意延时时间和电阻电容的时间常数要小于脉冲最短周期。

顾霸天

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 7回
  • 年度积分:0
  • 历史总积分:107
  • 注册:2008年2月28日
发表于:2008-02-28 13:36:00
15楼
可以直接在输出信号上增加反向器就可以了。程序的防抖也很重要。

热门招聘
相关主题

官方公众号

智造工程师