|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
了解遥控器的请帮忙:PIC能定义一个32个字节的变量吗? |
作者:music513 栏目:单片机 |
我要作一个遥控器,要存遥控编码,我找了一些资料,红外的好象都有32位码和两位引导码,我想用一个32位的变量来表示一组编码,然后通过移位输出。对应的1,0用相应采集到的格式输出, 这只是我的一个设想,我感到我的压力挺大的,请各位大侠多多指点! 还有:大家有没更好的办法来解决这个自学习遥控器。程序也好,流程也好! |
2楼: | >>参与讨论 |
作者: etter 于 2003/8/5 9:18:00 发布:
你可以用c来定义 |
3楼: | >>参与讨论 |
作者: imwangyi 于 2003/8/5 9:55:00 发布:
32位不就是4个8位么? 很简单的,就是用移位就可以了,很简单的,无需用C语言。 |
4楼: | >>参与讨论 |
作者: Wxy8030 于 2003/8/5 10:18:00 发布:
晕——C能做到的,汇编就不能做到? 楼主的题目没看明白——到底是32个字节,还是32个位? |
5楼: | >>参与讨论 |
作者: chinasg001 于 2003/8/5 16:30:00 发布:
C51系列可以用 LONG 来定义一个32位的变量 |
6楼: | >>参与讨论 |
作者: music513 于 2003/8/5 19:19:00 发布:
32位啊!我知道了,用指针来定义! |
7楼: | >>参与讨论 |
作者: PIIICPU 于 2003/8/5 19:29:00 发布:
到底用什么进行PIC单片机编程呀? |
8楼: | >>参与讨论 |
作者: music513 于 2003/8/5 19:34:00 发布:
我是用汇编!PIC特有的那种 |
9楼: | >>参与讨论 |
作者: zwn001 于 2003/8/6 10:50:00 发布:
不比烦恼 红外编码芯片你不管它它有多少为编码,它的0和1的编码方式一般如下 1----用3个连续高脉冲和一个低脉冲表示 0----用3个连续低脉冲和一个高脉冲表示 这种方式也可以理解为占空比为4/1数字调制,你只需用启用中断,红外接受引脚联MCU某一下降延中断引脚即可,中断后打开计数器,每次电平翻转时把计数器的值入寄存器保护,所有接收后,可以通过串口松给计算机分析得出他的编码就可 |
10楼: | >>参与讨论 |
作者: liuming 于 2003/8/6 11:18:00 发布:
哦 |
11楼: | >>参与讨论 |
作者: music513 于 2003/8/7 18:29:00 发布:
zwn001,我想再和你聊一下! 好象很多红外的编解码芯片的0,1是不一样的。我见过的还有: 0:高低,1:高低低低 如:UPD6121G 0:1/3占空比,1:2/3占空比 如:HT6P20 还有你说在每次电平翻转时把计数器的值入寄存器保护,那不是一串编码就要32*2=64个字节,好像是很占空间啊!有没有一个办法收集到0和1的编码,然后用8位*4=4个字节来表示一串编码呢? 请不吝赐教! |
12楼: | >>参与讨论 |
作者: wpyan 于 2003/8/8 0:54:00 发布:
你可以这样的~ 你可以只是在开始时候识别引导码,然后只要分析高电平或低电平,这样就可以做到一位代表一个码了,那就是32位了,我的6121就是这样解码的,呵呵 |
13楼: | >>参与讨论 |
作者: zwn001 于 2003/8/8 9:00:00 发布:
大胆做 要了解一个未知的遥控器,首先要分析其脉冲流,从而了解其脉冲波形特征(以何种方式携带“0”、“1”信息),进而了解其编码规律 就向你说的不管那一种器件,0和1的表示方式如何,但他的原理都是以样的。脉冲流的分析应从分析脉冲的高、低电平宽度入手如果没有红外遥控信号到来,接收器的输出端口PO保持高电平;当接收到红外遥控信号时,接收器件信号转换成脉冲序列加到CPU的中断输入引脚。用软件测试引脚的逻辑电平,同时启动TC计时器,测量该引脚分别为逻辑“0”和逻辑“1”情况下的时间值,存储起来,然后打印、分析;或者一个解码工装,可以显示解码结果或带有串口,把数据存到计算机,然后根据新片资料的出每一中按键的解码,在正式的应用中只需把解码列表,同样的解码程序,这时只要把接收的信息同列表对比是那一编码就去执行相应命令。 例:有一款红外编码芯片1用3个高脉冲1个低脉冲 0用1个高脉冲3个低脉冲 一个脉冲的时间位42us |
14楼: | >>参与讨论 |
作者: zongyi 于 2003/8/8 14:27:00 发布:
? 做自学习红外遥控器最需要了解两点: 1、用什么MCU ? 2、需要学习固定格式的红外遥控码还是万能遥控? 固定格式的码好办解码存储就可以了(占很少的RAM和EEROM). 万能红外学习遥控如果MCU资源比较好的话也很好办一般是通过学习脉宽的办法 我以前用PIC12CE518作了一个万能红外学习遥控调光调速开关(并不是所有的遥控码比如自定义的>64BIT的码等),由于RAM和EEROM有限,学习的数据经过了压缩,实际上效果还不是很好.我想改成PIC12F629可能好做一点! |
15楼: | >>参与讨论 |
作者: MUSIC513 于 2003/8/8 20:19:00 发布:
再问一下! 我很急的,我答应别人11号之前要写完程序,AD转换,键盘扫描我都完成了,就是编码采集这一块还是不太清楚。比如UPD6121G是用10表示0,1000表示1,那具体要怎么采集和压缩呢?先谢了!我用的是PIC16F877。 |
16楼: | >>参与讨论 |
作者: MUSIC513 于 2003/8/8 20:58:00 发布:
谢谢大家的帮忙! |
17楼: | >>参与讨论 |
作者: music513 于 2003/8/10 20:32:00 发布:
vb yu ! vb yu ! |
18楼: | >>参与讨论 |
作者: wuliao 于 2003/9/2 20:31:00 发布:
wpyan wpyan 你好!!能把你的遥控解码程序给我一分吗?谢谢!!romking@163.com |
|
|
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入 |
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |