scpcw 发表于 2025-4-27 17:06:52



经过深入了解后,得知家电常用的红外协议有如下几种:




想不到,一个万能遥控板还需要这么多门道。要3种红外接收器

scpcw 发表于 2025-4-27 19:28:12

NEC码标准时长:
引导码Leader    9000us低+4500us高                  正负10%   
逻辑0 bit0      560us低+560us高                        正负100us   总时长1120us
逻辑1 bit1      560us低+1690us高                     正负150us      总时长2250us
结束位Stop       560us低                                    正负?%
重复码Repeat    9000us低+2250us高+560us低      正负10%

https://www.stcaimcu.com/forum.php?mod=image&aid=95862&size=300x300&key=0061c1fb596297d7&nocache=yes&type=fixnone
https://www.stcaimcu.com/forum.php?mod=image&aid=95863&size=300x300&key=5fc595011bbb6bed&nocache=yes&type=fixnone
https://www.stcaimcu.com/forum.php?mod=image&aid=95864&size=300x300&key=68ead997aeb45c87&nocache=yes&type=fixnone
https://www.stcaimcu.com/forum.php?mod=image&aid=95865&size=300x300&key=2f1a3f5b3f07e492&nocache=yes&type=fixnone
https://www.stcaimcu.com/forum.php?mod=image&aid=95866&size=300x300&key=450e17797cc00d2f&nocache=yes&type=fixnone



scpcw 发表于 2025-4-29 00:07:37

scpcw 发表于 2025-4-27 19:28
NEC码标准时长:
引导码Leader    9000us低+4500us高                  正负10%   
逻辑0 bit0      5 ...
建立Cube,包含P35引脚下降沿中断,为红外接收用。
定时器中断0:为多任务保留 1ms一次
定时器1:红外时序计时器10us一次

使用IO下降沿触发,进入中断后,用指令改为上升沿触发。这样实现又向交替触发。
记录遥控器发射时序,先低电平

可以接受任意38KHz的红外线.其它协议只能显示时值.不能解码


识别NEC码及重复码.

scpcw 发表于 6 天前

仿真调试

在芯片手册里找到这段,顺藤摸瓜。我这个芯片手册这个章节有bug。utilities选项卡没有截图和文字描述,导至我始终仿真不成功,看了链接的视频后,才明白这个Utilities选项卡的设置





终于会仿真了

scpcw 发表于 5 天前

今天断续完善一下仿真的知识点。

这个download按钮还没有完全领会,再实验观察一下。
USB Link1D接入接入仿真调试中。参数设置如下:

好象调试也正常了,并且Download按钮也可以正常下载


我用USB调试发现:工程改变后必须要编译,编译后进入调试状态就自动download了一次(测试USB调试和 USB Link1D都是可以)。


scpcw 发表于 5 天前

下一个课题:
对内存区域详细的了解:
edata xdata等等

scpcw 发表于 5 天前

AI8051存储管理 2^24=16,777,216   16M
1个字节是段,2个字节是偏移量,一个段65536字节(64K)
AI8051的 01:0000至01:7FFFH 共32K是XRAM,不受任何SFR限制
            01:8000至7D:FFFF   保留未用
            7E:0000至7E:FFFFXFR/XSFR 特殊功能寄存器,必须EAXFR=1,才可以用。
            7F:0000至7F:FFFF 外部并行总线扩展的XRAM,有外部芯片,用引脚去访问。暂时不研究它。
KEIL变量位置分为: 1. EDATA(Extended Data Memory)
[*]全称:Extended Data Memory(扩展数据存储器)
[*]技术特性:

[*]80251 架构特有,扩展了传统 8051 的 DATA/IDATA 空间
[*]00段开始是edata,edata只有第0段,最大64K,Ai8051只用了2K,其它保留。


XDATA(External Data Memory)
[*]全称:External Data Memory(外部数据存储器)
[*]技术特性:

[*]经典 8051 已有,80251 保留兼容

01-7f段开始是Xdata,共7EH段(126D)126*64=8064,最大8M。

CODE
FF:0000最高段是复位后的程序入口,这应该是flash ROM 共64KFE:FFFF-80:0000为保留



如:int edata a1;
      int xdata abc;
      char code abc1;
注意要与keil的设置配合











scpcw 发表于 5 天前

Ai8051 这个test++为什么是这样编译的,运行是正确的?????
    64:               test++;
    65:                  
0xFF034E   7EB30030    MOV      R11,test(0x0030)
0xFF0352   04          INC      A
0xFF0353   7AB30030    MOV      test(0x0030),R11

scpcw 发表于 4 天前

scpcw 发表于 2025-6-24 20:46
Ai8051 这个test++为什么是这样编译的,运行是正确的?????
    64:               test++;
    65: ...
看了何宾老师讲的STC32明白了:为了兼容8051,80251的内部寄存器R11是16位寄存器,它的低8位就是ACC。所以对A寄存器的改变,就直接改变了R11.
但是核心运算寄存器与工作寄存器我还是没有怎么搞清楚。deepseek也没有这个知识存。看来我还要先了解一下8051和80251的寄存器情况。

scpcw 发表于 4 天前

scpcw 发表于 2025-6-24 09:06
下一个课题:
对内存区域详细的了解:
edata xdata等等
在芯片手册的这个章节有内存定义的帮助:
2.16如何在 Keil C251中对变量、常量、表格数据、函数指定绝
对地址



页: 1 2 3 4 [5] 6
查看完整版本: 我学AI8051U | 确实是实战派,建议送强大的 AI8051U实验箱