2010-08-08 19:20:00

看个ppt,还要一直按键盘或鼠标,能不能拿个遥控器控制一下。
动动脑,自己做一个吧。
电路分2部分,遥控器为发射部分,单片机为解码部分并且包含usb键盘功能。

一,完成红外解码
根据网上下载的lpc932的RC5红外解码程序,做了如下修改。完成了我at89s52的RC5红外解码程序。
1,涉及到需要使用2个定时器。分别是定时器1,作为波特率发生器。
2,定时器0,作为接收处理红外信号的定时器。并允许中断。
3,由于晶振不同,调TH和TL值。
4,等待接收完再请标志。

测试了0-9的按键值。分别由3和16进制数组成,06与07是区分连按得,00为地址,最后为00-09代码按键码,串口通信数据如下:
06 00 00 06 00 00 07 00 01 07 00 01 06 00 02 07 00 03 07 00 03 06 00 04 06 00
04 07 00 05 07 00 05 06 00 06 06 00 06 07 00 07 07 00 07 06 00 08 06 00 08 07
00 09 07 00 09

5,串口显示下文字吧,看的清楚些。更改程序后,串口通信数字如下:
按下0按下0按下1按下1按下2按下2按下3按下3按下4按下4按下5按下5按下6按下6按下7按下7按下8按下8按下9按下9

二,整合红外解码程序及usb键盘程序
思路:usb的键盘用遥控器键盘代替。

大概用了半天的调试时间,主要问题小结:
问题一,定时时间内调用其他函数,使定时波形捕捉不正确,需要删除。
   //   Prints("按下");   
   // UartPutChar(buf+48);
问题二,调用外部变量不规范,程序编译完出现警告。
应该用extern定义,并放在.h文件中。
问题三,不能单步调试,那么怎么知道问题出在哪里呢?
利用led的亮灭,来判断程序单步走的路径。
问题四,单片机多任务如何来区分?
可以使用按键当做任务的开关。

三,终于完成了简易红外键盘。
插上usb线,打开电脑ppt,拿着以前的电视遥控器。按下4,则代表pageup,按下5则代表pagedown,等等。座的远远的,遥控着电脑ppt,那是多么的高兴和自豪。学以致用,乐趣无穷。

最新文章

  1. web自动化工具-livereload
  2. LeetCode Note 1st,practice makes perfect
  3. 未能正确加载“RoslynPackage”包
  4. xampp使用phpunit
  5. [Ogre][地形][原创]基于OgreTerrain的地形实现
  6. ReactiveCocoa 谈谈concat
  7. JAVA信号量使用示例程序
  8. [转] linux中cat more less head tail 命令
  9. SpringMVC04controller中定义多个方法
  10. php的curl封装类
  11. NodeJs下的测试框架Mocha
  12. 开机出现loading Operating System的解决方案
  13. Unity3D中AssetBundle应用
  14. jsp后台取出request请求头
  15. 上传文件服务器与web内容服务分离
  16. CSS选择器之基本选择器
  17. Python 多环境配置管理
  18. UDP协议的例子
  19. JavaEE开发的颠覆者 Spring Boot实战--笔记
  20. JAVA中销毁session的代码

热门文章

  1. saltstack在jianja模板中,执行salt函数来获取某些变量的值,并且将配置写入到配置文件中?
  2. JS精准倒计时(支持自定义模板)
  3. Spring框架介绍及使用
  4. sqlserver等软件下载
  5. Go VSCode配置编译task
  6. Python __all__变量用法
  7. lxml xpath 爬取并正常显示中文内容
  8. 【C++/实验三】类和对象
  9. linux主要目录
  10. Broadcast