|
楼主 |
发表于 2010-7-8 21:04:07
|
显示全部楼层
增加对摇控器红外信号的支持
中间有段时间回家,无所事事看看电视,一边看一边想着控制面板,然后顺手用摇控器换换频道,突然冒出一个灵感:如果用摇控器做面板如何呢?我以前就知道单片机可以处理红外的发射和接收,现在开始具体研究红外的工作机制。不久后,给搞定了。测试了一下,发现几乎所有摇控器的红外信号协议全是一样的,呵呵。
简单介绍一下红外信号协议:前面有个前导信号,然后是4个8位的信号码,前两个是地址码,不同摇控器的地址码不同,两个码"几乎"互为反码,教材上说互为,但实际测试结果发现不一定,有点像,但不完全是,大家只要知道不同摇控器的地址码不同就行了。后两个是操作码,两个是完全互为反码。所以大家要想区分不同的按钮,只要区分第3个信号码就行了,是个8位的变量。
新CODE的注意事项:
1.和前面可能不同,晶振已经换成了22.1184MHz。
2.红外只能是形式上像点触,但处理方式是档位方式。(按下不动也相当于按下弹起)
3.红外只占一个IO口,实在是太省了。
4.红外接收没有什么难度,关键是接收处理函数的编写,其中的延时数字和晶振相关,是个经验值,不是固定的。
5.没有使用中断处理,我个人感觉能不用中断还是不要用好,中断里不能向串口打印,调试麻烦。
6.没写红外发射功能噢,不是说了用现成摇控器了么...
搞定红外后,发现即使不用红外,感觉直接接个编程单片机模拟红外信号,都可以实现单片机的单向通讯,太无语了...
如果只用红外控制按钮的话,其它IO就富余了,加个LCD或其它什么的更自由些。不过我还是打算看看其它方式的解决方案,红外协议或许是个不错的启示。 |
|