机电微控制器 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灯全部由常亮变成闪烁状态。
|