如何在C51实现接收NEC遥控器并且全部中断已被占用

greatmind829 2011-07-26 09:51:06
我上网找过一些用中断来实现的例子,可是我的中断已被占用,不知有没有更好的办法来实现它
请提供一些意见,项目需要,急用,就要交了,谢谢了。。
...全文
83 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
bjtea 2011-07-26
  • 打赏
  • 举报
回复
1)定时器还比较好办,原20毫秒定时中断,可以改变成0.2毫秒定时中断,并且用2个累计计数变量。一个计100次就是原来的20毫秒;另一个用来记录波形脉宽;
2)精确测量波形跳变,最好就是用中断,而且还需要上、下跳变均触发。如果肯定找不出中断引脚,那就只好查询,每0.2毫秒的定时中断中,查询一次波形的电平。这个精度,对遥控器来说,应该够了;
3)可以根据精度要求,改变1)中的0.2毫秒的大小。
guoyu_bo 2011-07-26
  • 打赏
  • 举报
回复
最好别,轮循环时间精度不好把握,而且随着程序变化你这把时间的尺子也跟着在变
至于共用要具体分析了,比如有按键的话,就可通过这个按键来进行不同中断的切换之类的
greatmind829 2011-07-26
  • 打赏
  • 举报
回复
至于共用中断,GPIO默认是高电平,要怎样来共用法
greatmind829 2011-07-26
  • 打赏
  • 举报
回复
我看到NEC 协议是标准波型总长是67.5ms,由9.12ms(低),4.5ms(高),+1.12ms+2.3ms...;
我的C51程序是20ms一个循环,可不可以去放一段轮循程序,放在循环里,去检测GPIO的状态加delay
guoyu_bo 2011-07-26
  • 打赏
  • 举报
回复
遥控器的代码都是靠测量波形之间的时间长短来得到的,这就需要保证实时性,也就是必须要有中断,但已经没有中断口的话,只能尝试和其他中断共用一个中断口了

27,511

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧