|
编程实现:1、打开开工开关后,七道工序(led)循环动作;2、有中断信号(按键检测)输入时,立即停止工序动作(即:所有灯熄灭)并发出报警;3、中断去除后,工序恢复到中断来时刻的工序动作。
#include<reg51.h>
sbit led1=P1^0;
sbit led2=P1^1;
sbit led3=P1^2;
sbit led4=P1^3;
sbit led5=P1^4;
sbit led6=P1^5;
sbit led7=P1^6;
sbit key=P3^3;
sbit beep=P1^7; //音频脉冲输出端
void delay(int x)
{
int i,j;
for(i=1; i<=x; i++)
for(j=1; j<=110; j++);
}
void song(int x) //蜂鸣器蜂鸣函数
{ //形参x的值可以改变声音频率
int y=x;
beep=0;
for(; y>0; y--);
beep=1;
for(; y>0; y--);
}
void init()//初始化函数
{
IT1=0; //低电平触发
EX1=1;
EA=1;
}
void int1() interrupt 2
{
delay(10);
if(key==0)
{
P1=0X7f; //0111 1111
song(100);
}
}
void xunhuan()
{
while(1)
{
led1=0;
delay(1000);
led1=1;
led2=0;
delay(1000);
led2=1;
led3=0;
delay(1000);
led3=1;
led4=0;
delay(1000);
led4=1;
led5=0;
delay(1000);
led5=1;
led6=0;
delay(1000);
led6=1;
led7=0;
delay(1000);
led7=1;
}
}
void main()//主函数
{
init();//系统初始化函数调用
key=1;
xunhuan()
}
|
评分
-
查看全部评分
|