機電微控制器 1、程序設計思路 參考例5.2,將P3.2和P3.3都設置成低電平觸發方式,并且設置P3.3為最高優先級,當按下K1后,P3.2一直是低電平,所以LED一直點亮;當按下K2后,P3.3一直是低電平,再加上其優先級比P2.2高,所以LED開始閃爍。 2、程序代碼 #include<reg52.h> #define uint unsigned int sbit LED1=P0^0; sbit LED2=P0^1; sbit LED3=P0^2; sbit LED4=P0^3; sbit LED5=P0^4; sbit LED6=P0^5; sbit LED7=P0^6; sbit LED8=P0^7; void delay() { uinti,j; for(i=0;i<256;i++) for(j=0;j<256;j++) {;} } void int0() interrupt 0 { LED1=0; LED2=0; LED3=0; LED4=0; LED5=0; LED6=0; LED7=0; LED8=0; delay(); P0=0xff; } void int1() interrupt 2 { LED1=0; LED2=0; LED3=0; LED4=0; LED5=0; LED6=0; LED7=0; LED8=0; delay(); LED1=1; LED2=1; LED3=1; LED4=1; LED5=1; LED6=1; LED7=1; LED8=1; delay(); } void main(void) { IP = 0x04; EX0=1; IT0=0; //設置為低電平觸發 EX1=1; IT1=0; //設置為低電平觸發 EA=1; P0=0x00; while(1) { delay(); P0=0xff; } } 3、電路原理圖 file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image002.gif 4、調試結果 K1按下時,8個LED燈全部常亮,當K2按下時,8個LED燈全部由常亮變成閃爍狀態。
|