资源描述:
《单片机 应用设计举例ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第9章应用设计举例程序示例例1:电路如下图所示,要求按一下K1键LED全亮,按一下K2键LED全灭。(简单if语句)程序如下(查询方式)#includesbitkey1=P3^2;sbitkey2=P3^3;voidmain(){for(;;){P3
2、=0x3c;if(!key1)P1&=0xe1;if(!key2)P1
3、=0x1e;}}程序示例例2:电路如下图所示,要求按住K1键LED全亮,松开K1键LED全灭。(双分支if语句)程序如下:#includesbitkey1=P3^2;voidmain(){for(;
4、;){P3
5、=0x3c;if(!key1)P1&=0xe1;elseP1
6、=0x1e;}}程序示例例3:电路如下图所示,要求按下K1键点亮LED,按K2键熄灭LED,且K2优先,只要K2被按住LED就不能被点亮。(多分支if语句)程序如下:#includesbitkey1=P3^2;sbitkey2=P3^3;voidmain(){for(;;){P3
7、=0x3c;if(!key2)P1
8、=0x1e;elseif(!key1)P1&=0xe1;}}程序示例例4:电路如下图所示,如果K1键被按住,K2键也被按住,那么LED全亮。松开K2
9、键,LED也不灭,松开K1键,LED全灭。(if语句的嵌套)程序如下:#includesbitkey1=P3^2;sbitkey2=P3^3;voidmain(){for(;;){P3
10、=0x3c;if(!key1){if(!key2)P1&=0xe1;}elseP1
11、=0x1e;}}程序示例例5:电路如下图所示,要求按K1键,D1亮;按K2键,D2亮;按K3键,D3亮;按K4键,D4亮;每次按键只有一个LED亮。(switch语句)#include#defineucharunsignedcharsbitled1=P
12、1^1;sbitled2=P1^2;sbitled3=P1^3;sbitled4=P1^4;voidmain(){ucharKeyValue;for(;;){P3
13、=0x3c;KeyValue=P3
14、0xc3;switch(KeyValue){case0xfb:P1
15、=0x1e;led1=0;break;case0xf7:P1
16、=0x1e;led2=0;break;case0xef:P1
17、=0x1e;led3=0;break;case0xdf:P1
18、=0x1e;led4=0;break;}}}程序示例例6:电路如下图所示,若K1键被按下,流水灯工作;否
19、则LED全部熄灭。(while语句)#include#includesbitkey1=P3^2;voidmDelay(unsignedintDelayTime){unsignedintj=0;for(;DelayTime>0;DelayTime--){for(j=0;j<125;j++);}}/*延时1ms*/voidmain(){unsignedcharOutData=0xfd;while(1){P3
20、=0x3c;while(!key1){P1=OutData;if(OutData==0xef)OutData=
21、0xfe;OutData=_crol_(OutData,1);mDelay(500);}P1=0xff;}}程序示例例7:电路如下图所示,若K1键被按下,流水灯工作;否则LED全部熄灭。(do…while语句)#include#includesbitkey1=P3^2;voidmDelay(unsignedintDelayTime){unsignedintj=0;for(;DelayTime>0;DelayTime--){for(j=0;j<125;j++);}}/*延时1ms*/voidmain(){unsig
22、nedcharOutData=0xfd;while(1){P3
23、=0x3c;do{P1=OutData;if(OutData==0xef)OutData=0xfe;OutData=_crol_(OutData,1);mDelay(1000);/*延时1s*/}while(!key1);P1=0xff;}}程序示例例8:电路如下图所示,要求开机后,全部LED不亮,按K1键则从D1开始依次点亮,至D4后停止并全部熄灭;待再次按K1键,可重复上述过程。如果中间K2键被按下,则LED立即全部熄灭,并返回起始状态。(for语句)#include
24、#includesbitkey1=P3^2;sbitkey2=P3^3;