找回密码
 立即注册
楼主: scpcw

我学AI8051

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:16
  • 最近打卡:2025-05-01 07:09:37
已绑定手机

1

主题

43

回帖

233

积分

中级会员

积分
233
发表于 2025-3-7 09:53:01 | 显示全部楼层
流程图是很有必要的!!
截图202503071733251711.jpg

ok钟6.0.zip

194.57 KB, 下载次数: 48

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:16
  • 最近打卡:2025-05-01 07:09:37
已绑定手机

1

主题

43

回帖

233

积分

中级会员

积分
233
发表于 2025-3-17 21:14:13 | 显示全部楼层
第21集 eeprom
研究了一下,数据只能1改写为0.
如果下发程序后,eeprom是全写了0XFF的.也就是全擦除过了,但只验证了前面10几个字节,没有全部验证.

下面就是验证第0字节被写了4次.

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


                test[0]=0xfc;                                    //第0个字节0xfc
                EEPROM_write_n(0,test,1);                        //写入第0个字节
                EEPROM_read_n(0,test,4);                         //读出4个字节
                printf("%s\r\n",test);                           //串口打印读出的4个字节
               
                test[0]=0xf8;                                    //第0个字节0xf8
                EEPROM_write_n(0,test,1);                        //写入第0个字节
                EEPROM_read_n(0,test,4);                         //读出4个字节
                printf("%s\r\n",test);                           //串口打印读出的4个字节
截图202503172125533906.jpg
所以eeprom某一个字节也是可以反复改写8次的.


1 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:16
  • 最近打卡:2025-05-01 07:09:37
已绑定手机

1

主题

43

回帖

233

积分

中级会员

积分
233
发表于 2025-3-27 15:11:10 | 显示全部楼层

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

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


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:16
  • 最近打卡:2025-05-01 07:09:37
已绑定手机

1

主题

43

回帖

233

积分

中级会员

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

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

大家有没有指点用更好的办法?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:16
  • 最近打卡:2025-05-01 07:09:37
已绑定手机

1

主题

43

回帖

233

积分

中级会员

积分
233
发表于 2025-3-28 23:53:37 | 显示全部楼层
逐字逐句的啃何老师的书,再问DEEPSEEK验证理解,逐步开朗了.
AI8051手册的附录里面有这些知识,同学们可以这样学.
截图202503282354334358.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:16
  • 最近打卡:2025-05-01 07:09:37
已绑定手机

1

主题

43

回帖

233

积分

中级会员

积分
233
发表于 7 天前 | 显示全部楼层
冲哥没更新了!期待更新!!
第17集学习了串口
主要是对原理需要了解一下,其实只靠这些工具就把所有的寄存器理规矩了.
还要在实际使用中多熟悉这些寄存器就行了.



截图202504252019142175.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:16
  • 最近打卡:2025-05-01 07:09:37
已绑定手机

1

主题

43

回帖

233

积分

中级会员

积分
233
发表于 7 天前 | 显示全部楼层
这几天搞了一个红外接收和发送.


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

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

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



回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:16
  • 最近打卡:2025-05-01 07:09:37
已绑定手机

1

主题

43

回帖

233

积分

中级会员

积分
233
发表于 7 天前 | 显示全部楼层
红外接收搞好了,再来移植红外发送.
按一个实验箱上的一个按,就发送一个NEC码,接收模块收到就printf出来.
自发 自收,打印串口.

void IR_TX_NEC(u16 UserCode_TX,u8  IR_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会发重复码,由于我这个是伪多任务.重复按键有问题,先注释掉这个功能,后面再研究解决方案.


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:16
  • 最近打卡:2025-05-01 07:09:37
已绑定手机

1

主题

43

回帖

233

积分

中级会员

积分
233
发表于 7 天前 | 显示全部楼层
今天改进一下接收函数,让他能记录非标准NEC的时序.后面让程序有遥控板学习功能.
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:16
  • 最近打卡:2025-05-01 07:09:37
已绑定手机

1

主题

43

回帖

233

积分

中级会员

积分
233
发表于 6 天前 | 显示全部楼层
scp*** 发表于 2025-4-25 20:46
今天改进一下接收函数,让他能记录非标准NEC的时序.后面让程序有遥控板学习功能. ...

在原程序的基础上加记录非标准红外协议受阻了。没彻底搞透红外接收。现在重新学习红外接受。
先编用AICube写一个裸程序,只记录红外接收状况。摸透彻了再移植。
我准备做一个单文件程序,连.h文件也不要。这样的程序便于请教DeepSeek。
读取时序程序编写完善了。只要是38KHz的红外都可以接收了。


IR_RD 0.6.zip

74.14 KB, 下载次数: 1

回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 02:30 , Processed in 0.119947 second(s), 98 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表