![]() |
發布時間: 2022-6-20 11:48
正文摘要:單片機源程序如下: #include<reg51.h> sbit ZZ=P2^0; sbit YZ=P2^1; sbit QD=P2^2; sbit HD=P2^3; sbit DD=P2^4; sbit ZUOZ=P1^0; sbit YOUZ=P1^1; sbit QIAND=P1^2; sbit HOUD=P1^3; sbit D ... |
我重新搞了一下,但是他放在仿真里第四個燈的亮度不夠,是為啥呢 #include <reg51.h> #define uint unsigned int void delay(uint z); sbit K1=P1^0; sbit K2=P1^1; sbit K3=P1^2; sbit K4=P1^3; sbit K5=P1^4; sbit D1=P0^0; sbit D2=P0^1; sbit D3=P0^2; sbit D4=P0^3; sbit D5=P0^4; void main() { while(1) { D1=D2=D3=D4=D5=1; if(K1==0) { D1=0; delay(1000); D1=1; delay(1000); } if(K2==0) { D2=0; delay(1000); D2=1; delay(1000); } if(K3==0) { D3=0; } if(K4==0) { D4=0; } if(K5==0) { D5=0; delay(1000); D5=1; delay(1000); } } } void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } |
改成二樓貼的程序就OK |
改成二樓貼的程序 |
![]() |
while(1) { ZZ=0; delay(); ZZ=1; delay(); }這個while循環,系統死機了,出不來 |
剛開始學3天就能到這程度,那應該是要表揚的了,我都是初中開始學電路,那時只有理論,到了大學才能自己搭電路實踐一下,用了這么多年,差太多了,沒法比 |
程序死在循環中了 |
程序死在循環中出不去了 |
大爺您說話真刺激,剛開始學3天,我要是懂我也不會發帖了,希望在你不擅長的事兒上也有人這么激勵你,謝謝昂 |
樓主對基本電路可以說一竅不通,連基本的常識都不了解,89c52只有輸出0才有20mA電流,輸出1幾乎沒有電流,樓主LED接反了。LED限流電阻選5k,是閉著眼睛選的吧,歐姆定律是不是忘了。 |
#include<reg51.h> sbit ZZ=P2^0; sbit YZ=P2^1; sbit QD=P2^2; sbit HD=P2^3; sbit DD=P2^4; sbit ZUOZ=P1^0; sbit YOUZ=P1^1; sbit QIAND=P1^2; sbit HOUD=P1^3; sbit DAOD=P1^4; void delay() //定義延遲函數 { unsigned char a,b; for(a=0;a<200;a++) for(b=0;b<200;b++); } void key() //按鍵處理函數 { if(ZUOZ==0) { delay(); if(ZUOZ==0) { ZZ=~ZZ; } while(!ZUOZ); } if(YOUZ==0) { delay(); if(YOUZ==0) { YZ=~YZ; } while(!YOUZ); } if(QIAND==0) { delay(); if(QIAND==0) { QD=~QD; } while(!QIAND); } if(HOUD==0) { delay(); if(HOUD==0) { HD=~HD; } while(!HOUD); } if(DAOD==0) { delay(); if(DAOD==0) { DD=~DD; } } } void main(void) //主函數 { while(1) { key(); } } |
你的程序這么多個while(1),你覺得沒問題嗎? |