scpcw 发表于 2025-3-7 09:53:01

流程图是很有必要的!!

scpcw 发表于 2025-3-17 21:14:13

第21集 eeprom
研究了一下,数据只能1改写为0.
如果下发程序后,eeprom是全写了0XFF的.也就是全擦除过了,但只验证了前面10几个字节,没有全部验证.
下面就是验证第0字节被写了4次.

               test=0xff;                                    //第0个字节0xff
                EEPROM_write_n(0,test,1);                        //写入第0个字节
                EEPROM_read_n(0,test,4);                         //读出4个字节
                printf("%s\r\n",test);                           //串口打印读出的4个字节
               
                test=0xfe;                                    //第0个字节0xfe
                EEPROM_write_n(0,test,1);                        //写入第0个字节
                EEPROM_read_n(0,test,4);                         //读出4个字节第
                printf("%s\r\n",test);                           //串口打印读出的4个字节第


                test=0xfc;                                    //第0个字节0xfc
                EEPROM_write_n(0,test,1);                        //写入第0个字节
                EEPROM_read_n(0,test,4);                         //读出4个字节
                printf("%s\r\n",test);                           //串口打印读出的4个字节
               
                test=0xf8;                                    //第0个字节0xf8
                EEPROM_write_n(0,test,1);                        //写入第0个字节
                EEPROM_read_n(0,test,4);                         //读出4个字节
                printf("%s\r\n",test);                           //串口打印读出的4个字节

所以eeprom某一个字节也是可以反复改写8次的.


scpcw 发表于 2025-3-27 15:11:10


业务经理联系我测试了AiCube.

实然发现他们这一群人在搞这么一个奇妙的东东.{:qiang:}
创建工程后一次性编译成功.
这样子方便太多了.
我见证了1.00,希望她变得越来越完善.



scpcw 发表于 2025-3-27 15:28:23

前几天都没更新了,我在学习HID协议.太多要记忆的东西了,对创建这些协议的人太仰视了.
我也在努力一句一句拨demo程序包第52-USB鼠标-键盘复合设备例程.希望能看懂这些句子.
应该我想做一个键盘与电脑间的宏定义过滤器.
普通键盘只要插上就可以执行宏定义键,
我计划用数字键盘的编辑键来当宏定义键,Ctrl+cCtrl+v不就方便了吗?

我想用ch9350+ai8051来拦截键盘.

大家有没有指点用更好的办法?

scpcw 发表于 2025-3-28 23:53:37

逐字逐句的啃何老师的书,再问DEEPSEEK验证理解,逐步开朗了.
AI8051手册的附录里面有这些知识,同学们可以这样学.

scpcw 发表于 2025-4-25 08:55:54

冲哥没更新了!期待更新!!
第17集学习了串口
主要是对原理需要了解一下,其实只靠这些工具就把所有的寄存器理规矩了.
还要在实际使用中多熟悉这些寄存器就行了.

https://www.stcaimcu.com/forum.php?mod=image&aid=95254&size=300x300&key=1462be3c2aa0c115&nocache=yes&type=fixnone

scpcw 发表于 2025-4-25 20:22:26

这几天搞了一个红外接收和发送.


//*******************************************************************
//*********************** IR Remote Module **************************
//*********************** By(Coody) 2002-8-24 *********************
//*********************** IR Remote Module **************************
//this programme is used for Receive IR Remote (NEC Code).

NEC码接受,发现官方也是移植的这个函数,我也移植到冲哥这个简化多任务里来.
其实单片机编程就是移植,只要掌握原理即可,代码多移植就熟练了.
如果你自己编程,也要考虑方便移植,多学一些编程经验,多看长远一点.

编写好后,发现很多品牌电视,空调,都不是用的标准NEC码.反面一些杂牌家电是标准NEC码.



scpcw 发表于 2025-4-25 20:36:37

红外接收搞好了,再来移植红外发送.
按一个实验箱上的一个按,就发送一个NEC码,接收模块收到就printf出来.
自发 自收,打印串口.

void IR_TX_NEC(u16 UserCode_TX,u8IR_code_TX)
        {       
            TxTime = 0;
                              //一帧数据最小长度 = 9 + 4.5 + 0.5625 + 24 * 1.125 + 8 * 2.25 = 59.0625 ms
                              //一帧数据最大长度 = 9 + 4.5 + 0.5625 + 8 * 1.125 + 24 * 2.25 = 77.0625 ms
            IR_TxPulse(342);    //对应9ms,同步头       9ms
            IR_TxSpace(171);    //对应4.5ms,同步头间隔 4.5ms
            IR_TxPulse(21);   //开始发送数据          0.5625ms

            IR_TxByte(UserCode_TX%256);   //发用户码低字节
            IR_TxByte(UserCode_TX/256);   //发用户码高字节
            IR_TxByte(IR_code_TX);         //发数据
            IR_TxByte(~IR_code_TX);      //发数据反码
            
            if(TxTime < 56)   //一帧按最大77ms发送, 不够的话,补偿时间   108ms
            {
                TxTime = 56 - TxTime;
                TxTime = TxTime + TxTime / 8;
                Delay_ms(TxTime);
            }
//            Delay_ms(31);
//            while(key_num != 0xff) //键未释放
//            {
//                                                        printf("ok IR%d",key_num);
//                IR_TxPulse(342);    //对应9ms,   同步头      9ms
//                IR_TxSpace(86);   //对应2.25ms,同步头间隔    2.25ms
//                IR_TxPulse(21);   //开始发送数据            0.5625ms
//                Delay_ms(96);

//            }
      
}


但是按键不放NEC会发重复码,由于我这个是伪多任务.重复按键有问题,先注释掉这个功能,后面再研究解决方案.


scpcw 发表于 2025-4-25 20:46:41

今天改进一下接收函数,让他能记录非标准NEC的时序.后面让程序有遥控板学习功能.

scpcw 发表于 2025-4-26 09:02:53

scpcw 发表于 2025-4-25 20:46
今天改进一下接收函数,让他能记录非标准NEC的时序.后面让程序有遥控板学习功能. ...
在原程序的基础上加记录非标准红外协议受阻了。没彻底搞透红外接收。现在重新学习红外接受。
先编用AICube写一个裸程序,只记录红外接收状况。摸透彻了再移植。
我准备做一个单文件程序,连.h文件也不要。这样的程序便于请教DeepSeek。
读取时序程序编写完善了。只要是38KHz的红外都可以接收了。


页: 1 2 3 [4] 5
查看完整版本: 我学AI8051