微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 外部中断控制

外部中断控制

时间:08-25 来源:互联网 点击:

#includereg51.h> unsigned char flag=0; sbit p33=P3^3; unsigned char code port3[4][4]=   { 0x28,0x28,0x28,0x28, 0x29,0x29,0x29,0x29, 0x29,0x29,0x29,0x29, 0x29,0x29,0x29,0x29, }; unsigned char code port1[4][4]= { 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x20,0x20,0x20,0x20, 0x24,0x24,0x24,0x24, }; main()         { unsigned char i; unsigned int j,count=0; EA=1;       //总中断允许 IT0=1;      //脉冲触发方式,下降沿有效 EX0=1;      //外中断0允许 while(1) { while(1) { if(flag==1) break; } flag=0; for(i=0;i4;i++) { while(1) { for(j=0;j4;j++) { P3=port3[j];     P1=port1[j]; } if(++count==8000) {count=0;break;} } } p33=0;    //本单片机效果走完,改变p33,使下一单片机,外部中断0下降沿触发} } void int0(void) interrupt 0 { flag=1; } 

对程序稍加修改,昨天的程序,灯有点乱亮。

上电马上中断:由于单片机复位后,各IO口为高电平。我给发中断信号的单片机,程序起始就给下一个中断入口置低电平,所以上电后,下一个单片机进入中断了。

渐变:本程序为四个亮度等级。第一行不断轮流循环执行了8000次。

break跳出整个循环。continue跳出本次循环,重新执行下一循环。goto语句应尽量少用,通常与if连用,跳到对应标号处执行

以下为发送中断单片机的程序,没有完成想要的效果。

#includereg51.h>sbit p33=P3^3;unsigned int count=0;main()         {p33=0;EA=1;       //总中断允许IT0=1;      //脉冲触发方式,下降沿有效EX0=1; while(1){;}}void int0(void) interrupt 0{p33=1;p33=0;} 

前一个单片机输出p33,接后一单片机外部中断0输入p32

单片机为2051

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top