首页 上一页 1 2 下一页 尾页

请教,单片机双向高速记数的实现 点击:1267 | 回复:23



猎隼

    
  • 精华:1帖
  • 求助:1帖
  • 帖子:151帖 | 1661回
  • 年度积分:0
  • 历史总积分:8983
  • 注册:2005年9月28日
发表于:2007-07-17 10:39:00
楼主
请教一个问题,如何才能在51单片机里实现双向的高速记数器功能?



xiaojia_

  • 精华:0帖
  • 求助:0帖
  • 帖子:14帖 | 104回
  • 年度积分:0
  • 历史总积分:145
  • 注册:2004年10月17日
发表于:2007-07-28 13:54:00
1楼
用中断

tigermu

  • 精华:6帖
  • 求助:0帖
  • 帖子:175帖 | 5410回
  • 年度积分:0
  • 历史总积分:19807
  • 注册:2003年1月19日
发表于:2007-07-28 13:56:00
2楼
看来高速也只能用中断了。

xiaojia_

  • 精华:0帖
  • 求助:0帖
  • 帖子:14帖 | 104回
  • 年度积分:0
  • 历史总积分:145
  • 注册:2004年10月17日
发表于:2007-07-28 15:49:00
3楼
http://www.s3c2410.com.cn

单片机技术资料

猎隼

  • 精华:1帖
  • 求助:1帖
  • 帖子:151帖 | 1661回
  • 年度积分:0
  • 历史总积分:8983
  • 注册:2005年9月28日
发表于:2007-07-28 15:58:00
4楼
是用外围中断INT0和INT1吗?

周公

  • 精华:10帖
  • 求助:0帖
  • 帖子:119帖 | 5549回
  • 年度积分:0
  • 历史总积分:6446
  • 注册:2002年11月26日
发表于:2007-07-31 16:54:00
5楼
中断可能没有计数器快。用52,三个计数器:一个显示,其余俩一个正向、一个反向。

EPROM

  • 精华:1帖
  • 求助:0帖
  • 帖子:39帖 | 436回
  • 年度积分:0
  • 历史总积分:700
  • 注册:2004年8月16日
发表于:2007-07-31 19:51:00
6楼
同意楼上的,一个鉴相,一个计数,一般不会丢脉冲

猎隼

  • 精华:1帖
  • 求助:1帖
  • 帖子:151帖 | 1661回
  • 年度积分:0
  • 历史总积分:8983
  • 注册:2005年9月28日
发表于:2007-08-03 08:18:00
7楼
周公,能说的详细些吗,两个记数器怎么合用呢,我只知道51系列的记数器是单向记数的呀,还有那个显示的是怎么回事呢?

周公

  • 精华:10帖
  • 求助:0帖
  • 帖子:119帖 | 5549回
  • 年度积分:0
  • 历史总积分:6446
  • 注册:2002年11月26日
发表于:2007-08-04 17:19:00
8楼
‘51系列的计数器是单向计数的’ ——没错。可以分别读出来相减后显示。显示一般采用定时扫描方法实现,同时也是计数的时间基准。

猎隼

  • 精华:1帖
  • 求助:1帖
  • 帖子:151帖 | 1661回
  • 年度积分:0
  • 历史总积分:8983
  • 注册:2005年9月28日
发表于:2007-08-06 09:55:00
9楼
周公的意思是不是加记数存在记数器0,减记数存在记数器1,然后记数器0-记数器1的值?
显示是不是利用记数器不受单片机的程序扫描周期限制,利用定时器中断来实现定时显示的功能?

周公

  • 精华:10帖
  • 求助:0帖
  • 帖子:119帖 | 5549回
  • 年度积分:0
  • 历史总积分:6446
  • 注册:2002年11月26日
发表于:2007-08-06 10:05:00
10楼
是这个意思。如果不能确定哪个数大,就加一个大小判断。

猎隼

  • 精华:1帖
  • 求助:1帖
  • 帖子:151帖 | 1661回
  • 年度积分:0
  • 历史总积分:8983
  • 注册:2005年9月28日
发表于:2007-08-06 10:59:00
11楼
周公,再问一下,如果一个单片机有多个中断存在的话,一个优先级低的中断在执行,这时一个优先级高的也被触发的话,低的就会被中断,等高的执行完毕后再继续执行.如果我使用外围中断输入信号作为记数信号的输入,使用定时器中断进行周期性显示扫描,这会不会造成中断执行的混乱?

周公

  • 精华:10帖
  • 求助:0帖
  • 帖子:119帖 | 5549回
  • 年度积分:0
  • 历史总积分:6446
  • 注册:2002年11月26日
发表于:2007-08-06 11:18:00
12楼
关于中断的概念没有错。
常理不会混乱,具体有没有问题或者是否是你需要的流程就看你编程的水平了。

猎隼

  • 精华:1帖
  • 求助:1帖
  • 帖子:151帖 | 1661回
  • 年度积分:0
  • 历史总积分:8983
  • 注册:2005年9月28日
发表于:2007-08-06 11:35:00
13楼
我的水平很一般的,有些功能能想到,但是就我的编程能力就是实现不了.

周公

  • 精华:10帖
  • 求助:0帖
  • 帖子:119帖 | 5549回
  • 年度积分:0
  • 历史总积分:6446
  • 注册:2002年11月26日
发表于:2007-08-06 11:59:00
14楼
没关系,多练就熟悉了。加油!

xiaojia_

  • 精华:0帖
  • 求助:0帖
  • 帖子:14帖 | 104回
  • 年度积分:0
  • 历史总积分:145
  • 注册:2004年10月17日
发表于:2007-08-06 12:02:00
15楼
其实没有那么麻烦

猎隼

  • 精华:1帖
  • 求助:1帖
  • 帖子:151帖 | 1661回
  • 年度积分:0
  • 历史总积分:8983
  • 注册:2005年9月28日
发表于:2007-08-06 13:29:00
16楼
行呀,只要周公及楼上各位朋友在单片机这个版块内,以后我就不愁有问题没地方问了.

xiaojia_

  • 精华:0帖
  • 求助:0帖
  • 帖子:14帖 | 104回
  • 年度积分:0
  • 历史总积分:145
  • 注册:2004年10月17日
发表于:2007-08-11 23:35:00
17楼
下面引用由猎隼在 2007-8-6 10:59:00 发表的内容:
  周公,再问一下,如果一个单片机有多个中断存在的话,一个优先级低的中断在执行,这时一个优先级高的也被触发的…
--------------------------------------------------------------------------------------------
这个是要注意的,搞不好要出错的

猎隼

  • 精华:1帖
  • 求助:1帖
  • 帖子:151帖 | 1661回
  • 年度积分:0
  • 历史总积分:8983
  • 注册:2005年9月28日
发表于:2007-08-13 08:07:00
18楼
利用单片机的定时器实现高速记数的功能,是利用定时器的溢出来当作脉冲的输入信号还是靠两相输入信号相减好?
我需要实现的功能是记数值最大为359,最小值为0,其实说白了就是实现360度的记数,反向记数时,0的下一位得是359,且要实现断电保持的功能,这些个问题组合起来不好解决吧,请周公及各位网友帮忙出提些建议.

周公

  • 精华:10帖
  • 求助:0帖
  • 帖子:119帖 | 5549回
  • 年度积分:0
  • 历史总积分:6446
  • 注册:2002年11月26日
发表于:2007-08-13 10:45:00
19楼
一个一个解决。这是基本的工作方法。

猎隼

  • 精华:1帖
  • 求助:1帖
  • 帖子:151帖 | 1661回
  • 年度积分:0
  • 历史总积分:8983
  • 注册:2005年9月28日
发表于:2007-08-15 10:30:00
20楼
我想记的数是0到359,就是圆的一周,如果使用定时器记数的话,恐怕位数不够吧,我要有清零功能,还有数字在小于0的时候要转换成359的功能,估计光使用定时器是实现不了的吧,所以我考虑是不是应用使用外部中断的作为输入信号,然后在程序里进行加或减的记数功能.

热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页