凡心 发表于 2025-1-20 11:03:38

点赞{:baoquan:}

芯启航 发表于 2025-1-20 11:16:20

woshixy1 发表于 2025-1-20 07:25
您好 我已经学完7课时了 这个是我的 打卡帖子 ai8051U视频学习打卡
https://www.stcaimcu.com/forum.php?mo ...

您好,可以的,加我微信18012226298,我来帮您安排哈

乐高 发表于 2025-1-20 15:20:48

今天学习了第十一集:矩阵键盘。并且完成了课后小练:简易洗衣机。

下面是4X4矩阵键盘扫描程序
void KEY_Task(void)                         //4*4矩阵键盘扫描
{//#define key P2                                        //矩阵键盘的数据口为P2
        u8 key_temp;
        u8 key1,key2;
        key=0xf0;
        key1=key;
        if(key1 != 0xf0 )
        {
                key1=key&0xf0;                        //确定哪一行的按键按下       
                key=0x0f;
                key2=key;
                if(key2 != 0x0f )
                        key2=key&0x0f;                //确定哪一列的按键按下
                key_temp=key1|key2;                //确定按键位置
    }
//        else
//                key_temp = no_key ;
        switch(key_temp)                //当确定按键按下后,列举所有的按键情况
        {
               case 0xee: key_value=0;break;
               case 0xde: key_value=1;break;
               case 0xbe: key_value=2;break;
               case 0x7e: key_value=3;break;
               case 0xed: key_value=4;break;
               case 0xdd: key_value=5;break;
               case 0xbd: key_value=6;break;
               case 0x7d: key_value=7;break;
               case 0xeb: key_value=8;break;
               case 0xdb: key_value=9;break;
               case 0xbb: key_value=10;break;
               case 0x7b: key_value=11;break;
               case 0xe7: key_value=12;break;
               case 0xd7: key_value=13;break;
               case 0xb7: key_value=14;break;
               case 0x77: key_value=15;break;
                // case 0xff: key_value=16;break;                       
        }
        switch(key_value)
        {
                case 0: fen = 10;break;                                //赋予1-5各按键所表示模式运行时间
                case 1: fen = 11;break;
                case 2: fen = 12;break;
                case 3: fen = 13;break;
                case 4: fen = 14;break;
                case 15: start = 1;break;                        //第16键设置为启动工作键
        }
}放上演示视频
531

详情请浏览我的贴子:

AI8051U教学视频课后小练
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=13824
(出处: 国芯技术交流网站)


木木01 发表于 2025-1-20 15:47:39

学习中{:4_164:}

乐高 发表于 2025-1-20 17:37:52

第十一集 矩阵键盘 课后小练


冲哥说,第一个做出来的有小礼物,请问我是第一个吗?程序可以吗?



AI8051U教学视频课后小练
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=13824
(出处: 国芯技术交流网站)


请问怎么@冲哥?

LXC0011 发表于 2025-1-20 20:38:16

#include"ai8051u.h"//调用头文件
void main(void)
{
        P0M0=0;
        P0M1=0;
        P4M0=0;
        P4M1=0;
       
        while(1)
        {
        P40=0;
        P00=0;
        }
}

需要注意格式,尾部不要忘了加分号;;;;;

乐高 发表于 2025-1-20 22:00:14

刚看到 会员 sila***已经收到小礼物了,我来晚了。{:4_184:}

乐高 发表于 2025-1-20 22:03:26

乐高 发表于 2025-1-20 17:37
第十一集 矩阵键盘 课后小练




看到了,我已经不是第一个了。有人已经捷足先登了。

LXC0011 发表于 2025-1-20 22:07:24

#include"ai8051u.h"
#include"stc32_stc8_usb.h" //调用头文件

char *USER_DEVICEDESC = NULL;
char *USER_PRODUCTDESC = NULL;
char *USER_STCISPCMD = "@STCISP#";

void main(void)
{
        P_SW2 |= 0x80;
        P0M1 = 0x00;   P0M0 = 0x00;
    P1M1 = 0x00;   P1M0 = 0x00;
    P2M1 = 0x00;   P2M0 = 0x00;
    P3M1 = 0x00;   P3M0 = 0x00;
    P4M1 = 0x00;   P4M0 = 0x00;
    P5M1 = 0x00;   P5M0 = 0x00;
    P6M1 = 0x00;   P6M0 = 0x00;
    P7M1 = 0x00;   P7M0 = 0x00;
        usb_init();         //USB CDC 接口配置
        EA=1;
        IE2|=0x80;
        while (DeviceState != DEVSTATE_CONFIGURED);   //等待USB完成配置

        while(1)
        {
                if (bUsbOutReady)
      {
            USB_SendData(UsbOutBuffer,OutNumber);   //发送数据缓冲区,长度(接收数据原样返回, 用于测试)
            
            usb_OUT_done();
      }
        P40=0;
        P00=0;
        }
}

USB不停电下载程序,可以减少断电下载程序的作用。

蓝鹰 发表于 2025-1-21 11:07:20

{:4_250:}
页: 55 56 57 58 59 60 61 62 63 64 [65] 66 67 68 69 70 71 72 73 74
查看完整版本: 《8051U深度入门到32位51大型实战视频》,【免费 + 包邮 送】实验箱@Ai8051U,100万套