凡心
发表于 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:}