冲哥第十一集课后小练:洗衣机交作业啦
<p>第十一集 矩阵按键 课后作业</p><p><img src="data/attachment/forum/202412/26/153655jktoc7qfozkclvkf.png" alt="微信截图_20241226095715.png" title="微信截图_20241226095715.png" /></p>
<p>我这里使用12345分别对应5种模式,对应的工作时间分别为:5秒,10秒,15秒,20秒,25秒。</p>
<p>开始按键为0。</p>
<p>使用了四个函数加上之前的595数码管显示函数。</p>
<p>mod_task:模式的选择</p>
<pre><code>void mod_task(void){if(key_numb10>0&&key_numb10<6){
Key_vol3++;
if(Key_vol3==5){mod = key_numb10;
start = 0;
finish=0;
}
}
mod = key_numb10;
start = 0;
finish=0;
}
}
else if(key_numb10==0){
Key_vol3++;
if(Key_vol3==5){ start = 1;
finish=0;
if(mod==1){
CoutDown_time=5;
}
else if(mod==2){
CoutDown_time=10;
}
else if(mod==3){
CoutDown_time=15;
}
else if(mod==4){
CoutDown_time=20;
}
else if(mod==5){
CoutDown_time=25;
}
}
}
else{
Key_vol3=0;
}
start = 1;
finish=0;
if(mod==1){
CoutDown_time=5;
}
else if(mod==2){
CoutDown_time=10;
}
else if(mod==3){
CoutDown_time=15;
}
else if(mod==4){
CoutDown_time=20;
}
else if(mod==5){
CoutDown_time=25;
}
}
}
else{
Key_vol3=0;
}
}
</code></pre>
<p>CountDown_Task:倒计时</p>
<pre><code>void CountDown_Task(void){ if(start==1){
CoutDown_time--;
if( CoutDown_time==0){
finish=1;
start=0;
}
if(start==1){
CoutDown_time--;
if( CoutDown_time==0){
finish=1;
start=0;
}
}
}
</code></pre>
<p>数码管显示</p>
<pre><code>void Seg_Task2(void){switch(Seg_no){
case 0: Display_Seg( SEG_NUMB, ~T_NUM); break;
case 1: Display_Seg( SEG_NUMB, ~T_NUM); break;
case 2: Display_Seg( SEG_NUMB, ~T_NUM); break;
case 3: Display_Seg( SEG_NUMB, ~T_NUM); break;
case 4: Display_Seg( SEG_NUMB, ~T_NUM); break;
case 5: Display_Seg( SEG_NUMB, ~T_NUM); break;
case 6: if(start==0&&finish==0){Display_Seg(SEG_NUMB, ~T_NUM) ;}else if(start==1&&finish==0){Display_Seg( SEG_NUMB, ~T_NUM);}else if(finish==1){Display_Seg(SEG_NUMB, ~T_NUM) ;}break;
case 7: if(start==0&&finish==0){ Display_Seg( SEG_NUMB, ~T_NUM) ;}else if(start==1&&finish==0){Display_Seg( SEG_NUMB, ~T_NUM);}else if(finish==1){Display_Seg(SEG_NUMB, ~T_NUM) ;}break;
}
Seg_no++;
if(Seg_no>7){
Seg_no=0;
}
}
switch(Seg_no){
case 0: Display_Seg( SEG_NUMB, ~T_NUM); break;
case 1: Display_Seg( SEG_NUMB, ~T_NUM); break;
case 2: Display_Seg( SEG_NUMB, ~T_NUM); break;
case 3: Display_Seg( SEG_NUMB, ~T_NUM); break;
case 4: Display_Seg( SEG_NUMB, ~T_NUM); break;
case 5: Display_Seg( SEG_NUMB, ~T_NUM); break;
case 6: if(start==0&&finish==0){Display_Seg(SEG_NUMB, ~T_NUM) ;}else if(start==1&&finish==0){Display_Seg( SEG_NUMB, ~T_NUM);}else if(finish==1){Display_Seg(SEG_NUMB, ~T_NUM) ;}break;
case 7: if(start==0&&finish==0){ Display_Seg( SEG_NUMB, ~T_NUM) ;}else if(start==1&&finish==0){Display_Seg( SEG_NUMB, ~T_NUM);}else if(finish==1){Display_Seg(SEG_NUMB, ~T_NUM) ;}break;
}
Seg_no++;
if(Seg_no>7){
Seg_no=0;
}
}
</code></pre>
<p>juzhenjianpan:矩阵键盘显示</p>
<pre><code>void juzhenjianpan(){///第一步:将列设置为低电平Col1=0;
Col2=0;
Col3=0;
Col4=0;
Row1=1;
Row2=1;
if(Row1==0||Row2==0){
if(Row1==0&&Row2==0){}//如果两行都有按键按下,不处理
else {
if(Row1==0){key_numb10=0;}
else if(Row2==0){key_numb10=4;}
Col1=1;
Col2=1;
Col3=1;
Col4=1;
Row1=0;
Row2=0;
if(Col1==0){ //判断哪一列叠加按键的序号
}else if(Col2==0){
key_numb10=key_numb10+1;
}else if(Col3==0){
key_numb10=key_numb10+2;
}else if(Col4==0){
key_numb10=key_numb10+3;
}
}
Col1=0;
Col2=0;
Col3=0;
Col4=0;
Row1=1;
Row2=1;
}
else{key_numb10 =0xff;}
Col1=0;
Col2=0;
Col3=0;
Col4=0;
Row1=1;
Row2=1;
if(Row1==0||Row2==0){
if(Row1==0&&Row2==0){}//如果两行都有按键按下,不处理
else {
if(Row1==0){key_numb10=0;}
else if(Row2==0){key_numb10=4;}
Col1=1;
Col2=1;
Col3=1;
Col4=1;
Row1=0;
Row2=0;
if(Col1==0){ //判断哪一列叠加按键的序号
}else if(Col2==0){
key_numb10=key_numb10+1;
}else if(Col3==0){
key_numb10=key_numb10+2;
}else if(Col4==0){
key_numb10=key_numb10+3;
}
}
Col1=0;
Col2=0;
Col3=0;
Col4=0;
Row1=1;
Row2=1;
}
else{key_numb10 =0xff;}
}
</code></pre>
<video controls="controls" src="forum.php?mod=attachment&aid=76876"></video>
<p><a href="forum.php?mod=attachment&aid=76878" title="attachment"><img src="/source/plugin/zhanmishu_markdown/template/editor/images/upload.svg" alt="upload" /> 附件:test.rar</a></p>
厉害厉害,可以出师了 优秀,做的很不错 优秀课代表 感谢分享 感谢分享,AI_usb.h在哪里? 支持,你是优秀的 香河英茂工作室 发表于 2025-1-11 14:14
感谢分享,AI_usb.h在哪里?
AI_usb.h是自带的库,点击后右键菜单能找到 国学芯用 发表于 2024-12-27 14:30
优秀课代表
得到官方大大的肯定,学习劲头更足了 silas3082 发表于 2025-1-12 08:55
AI_usb.h是自带的库,点击后右键菜单能找到
感谢回复,我用的是USB.h.
页:
[1]