熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時(shí)間: 2022-3-23 13:51
正文摘要:stc8單片機(jī),IO控制LED,IO口接LED正! IO P0^0-P0^4分別控制第1-第5個(gè)LED! IO P1^0-P1^4分別接5個(gè)開關(guān),IO對(duì)地觸發(fā)! 一旦對(duì)應(yīng)的P1口電平被拉低,對(duì)應(yīng)的P0口電平就會(huì)拉高,LED點(diǎn)亮! 要求按順序點(diǎn)亮5個(gè)LED! ... |
本帖最后由 macboa 于 2022-3-24 10:12 編輯
|
macboa 發(fā)表于 2022-3-27 10:37 沒救了 砍掉重?zé)挵?/td> |
各位大佬 已補(bǔ)充,麻煩再給看看吧???![]() ![]() ![]() ![]() ![]() |
macboa 發(fā)表于 2022-3-25 23:35 ![]() |
macboa 發(fā)表于 2022-3-24 11:43 1. 程序不全,頭文檔呢?sbit呢?delay1000ms()呢? 2. 程序結(jié)構(gòu)極其不合理,不要while(1)包while(1)包while(XXX) 3. 按鍵掃描太累贅,為什么看Magnetic_Switch0是不是0時(shí)還要看其它Magnetic_Switch?你會(huì)同時(shí)按其它鍵嗎? 4. i是unsigned char,最大是255,不可能i=6000; |
SURUBU1976 發(fā)表于 2022-3-24 12:20 程序在二樓 |
SURUBU1976 發(fā)表于 2022-3-24 12:20 程序在二樓 |
還是不行 愁人。仿真沒問題。 |
lkc8210 發(fā)表于 2022-3-23 16:19 void main(void) { unsigned char flag=1; unsigned char getflag0=0,getflag1=0,getflag2=0,getflag3=0,getflag4=0; unsigned char i=0; unsigned char j=0,k=0;const unsigned char setMagnetic_Switch[5]={0,1,2,3,4}; unsigned char getMagnetic_Switch[5]={0,0,0,0,0}; P0M0=0x00; P0M1=0x00; P1M0=0x00; P1M1=0x00; P2M0=0x00; P2M1=0x00; P3M0=0x00; P3M1=0x00; P4M0=0x00; P4M1=0x00; P5M0=0x00; P5M1=0x00; Magnetic_Switch0=1; Magnetic_Switch1=1; Magnetic_Switch2=1; Magnetic_Switch3=1; Magnetic_Switch4=1; Speaker_Switch0=1; Speaker_Switch1=1; Speaker_Switch2=1; Speaker_Switch3=1; Speaker_Switch4=1; getLED0=1; getLED1=1; getLED2=1; getLED3=1; getLED4=1; Right_Out1=1; Right_Out2=1; Wrong_Out=1; while(1) { //獲取 while(j<5) { if(Magnetic_Switch0==0&&Magnetic_Switch1!=0&&Magnetic_Switch2!=0&&Magnetic_Switch3!=0&&Magnetic_Switch4!=0&&getflag0==0) { getMagnetic_Switch[j]=0; getflag0=1; getLED0=0; j++; } if(Magnetic_Switch1==0&&Magnetic_Switch0!=0&&Magnetic_Switch2!=0&&Magnetic_Switch3!=0&&Magnetic_Switch4!=0&&getflag1==0) { getMagnetic_Switch[j]=1; getflag1=1; getLED1=0; j++; } if(Magnetic_Switch2==0&&Magnetic_Switch0!=0&&Magnetic_Switch1!=0&&Magnetic_Switch3!=0&&Magnetic_Switch4!=0&&getflag2==0) { getMagnetic_Switch[j]=2; getflag2=1; getLED2=0; j++; } if(Magnetic_Switch3==0&&Magnetic_Switch0!=0&&Magnetic_Switch1!=0&&Magnetic_Switch2!=0&&Magnetic_Switch4!=0&&getflag3==0) { getMagnetic_Switch[j]=3; getflag3=1; getLED3=0; j++; } if(Magnetic_Switch4==0&&Magnetic_Switch0!=0&&Magnetic_Switch1!=0&&Magnetic_Switch2!=0&&Magnetic_Switch3!=0&&getflag4==0) { getMagnetic_Switch[j]=4; getflag4=1; getLED4=0; j++; } } j=0; //比較 while(1) { if(setMagnetic_Switch[k]==getMagnetic_Switch[k]) { k++; if(k<5) continue; k=0; Wrong_Out=1; Right_Out1=0; delay1000ms(); while(getLED0==0||getLED1==0||getLED2==0||getLED3==0||getLED4==0) { if(Speaker_Switch0==0) { getLED0=1; } if(Speaker_Switch1==0) { getLED1=1; } if(Speaker_Switch2==0) { getLED2=1; } if(Speaker_Switch3==0) { getLED3=1; } if(Speaker_Switch4==0) { getLED4=1; } } Right_Out2=0; Wrong_Out=1; delay1000ms(); i=6000; while(i>0) { delay1000ms(); i--; } i=0; break; } else { getLED0=0; getLED1=0; getLED2=0; getLED3=0; getLED4=0; delay1000ms(); getLED0=1; getLED1=1; getLED2=1; getLED3=1; getLED4=1; delay1000ms(); getLED0=0; getLED1=0; getLED2=0; getLED3=0; getLED4=0; delay1000ms(); getLED0=1; getLED1=1; getLED2=1; getLED3=1; getLED4=1; delay1000ms(); getLED0=0; getLED1=0; getLED2=0; getLED3=0; getLED4=0; delay1000ms(); getLED0=1; getLED1=1; getLED2=1; getLED3=1; getLED4=1; delay1000ms(); Wrong_Out=0; Right_Out1=1; break; } } Magnetic_Switch0=1; Magnetic_Switch1=1; Magnetic_Switch2=1; Magnetic_Switch3=1; Magnetic_Switch4=1; getflag0=0; getflag1=0; getflag2=0; getflag3=0; getflag4=0; Speaker_Switch0=1; Speaker_Switch1=1; Speaker_Switch2=1; Speaker_Switch3=1; Speaker_Switch4=1; |
關(guān)鍵字有沒有用對(duì),程序? |
程序在二樓,可能正在審核中 |
本帖最后由 macboa 于 2022-3-24 11:42 編輯 程序在二樓 |
macboa 發(fā)表于 2022-3-23 16:48 程序呢? |
各位大佬 麻煩再給小弟看看 |
gongnn 發(fā)表于 2022-3-24 08:30 電路圖是錯(cuò)的 已改成灌電流了 |
這個(gè)電路圖是錯(cuò)的,實(shí)際是采用灌電流。加了限流電阻。 麻煩各位大佬在給看看程序。 |
P0口配置位就不對(duì)了,得推挽才能高電平驅(qū)動(dòng)LED。 |
非凡科技 發(fā)表于 2022-3-23 20:59 已經(jīng)改為灌電流了,加了電阻,這個(gè)圖是個(gè)縮略圖 ,,不知道為啥程序發(fā)不上來 |
實(shí)際不能這樣設(shè)計(jì)電路,單片機(jī)iO正極驅(qū)動(dòng)能力很弱的,而且LED要加限流電阻的。對(duì)于STC8芯片要配置IO口模式的,默認(rèn)是高阻抗。你也沒有貼出程序, |
lkc8210 發(fā)表于 2022-3-23 16:19 已經(jīng)發(fā)了哈 。麻煩看看 |
限流電阻都不需要的嘛 |
把程序貼上來哦 |
程序呢?線路圖呢?上傳圖片呢?什么都沒有,人家想幫你也幫不上呀 |
沒程序,靠猜還是靠起卦? |
Powered by 單片機(jī)教程網(wǎng)