#include <reg52. h> sbit K1=P0^0 sbit K2=P0^1, sbit K3=P0^2; sbit K4=P0^3; sbit K5=P0^4; sbit K6=P0^5; sbit K7=P0^6; sbit A1=P2 ^ 0; sbit A2-P2 ^ 1 ; sbit A3=P2 ^ 2; sbit A4-P2 ^ 3; sbit A5=P2 ^ 4; sbit A6=P2 ^ 5; sbit A7=P2 ^ 6; sbit K11=P1~0; sbit K12=P11; sbit K13=P1 2; void delay(unsigned int xms) { unsigned int x,y; for(x=xms;x>0;x--) for(y=110;y>0;y--); } void main() { while(1) } K12=1; K11=K13=0; K1=K2=K3=K4=K5=K6=K7=0; A1=A2=A3=A4=A5=A6=A7=0; A2=A3=1 ; delay(1000); A1=A2=A3=A4=A5=A6=A7=0; A1=A2=A4=A5=A7=1; delay(1000) ; A1=A2=A3=A4=A5=A6=A7=0; AI=A2=A4=A3=A7=1; delay(1000) ; A1=A2=A3=A4=A5=A6=A7=0; A3=A2=A7=A6=1; delay(1000); A1=A2=A3=A4=A5=A6=A7=0; A1=A3=A4=A7=A6=1; delay(1000); A1=A2=A3=A4=A5=A6=A7=0; A1=A5=A3=A4=A7=A6=1:; delay(1000); A1=A2=A3=A4=A5=A6=A7=0; AI=A3=A2=1; delay(1000); Al=A2=A3=A4=A5=A6=A7=0; A1=A2=A3=A4=A5=A6=A7=1; del ay(1000); A1=A2=A3=A4=A5=A6=A7=0; A1=A2=A3=A4=A6=A7=1; delay(1000); A1=A2=A3=A4=A5=A6=A7=0; Al=A2=A3=A4=A5=A6=1; K2=K3=1; delay(500); //shanshuo K1=K2=K3=K4=K5=K6=K7=0; A1=A2=A3=A4=A5=A6=A7=0; K12=K11=0; K13=1; A2=A3=1; delay(500); K13=0; delay(500) ; K13=1; K1=K2=K3=K4=K5=K6=K7=0; A1=A2=A3=A4=A5=A6=A7=0; A1=A2=A4=A5=A7=1; delay(500) ; K13=0; K11=1; K12=K13=0; K1=K2=K3=K4-K5=K6=K7=0; A1=A2-A3=A4=A5=A6=A7=0; A2=A3=1; delay(1000) A1=A2=A3=A4=A5=A6=A7=0; A1=A2=A4=A5=A7=1; delay(1000) ; A1=A2=A3=A4=A5=A6=A7=0; A1=A2=A4=A3=A7=1; delay(1000) ; A1=A2=A3=A4=A5=A6=A7=0; A3=A2=A7=A6=1; delay(1000) ; A1=A2=A3=A4=A5=A6=A7=0; AI=A3=A4=A7=A6=1; delay(1000) ; AI=2=A3=A4=A5=A6=A7=0;AI=A5=A3=A4=A7=A6=1; del ay(1000); A1=A2=A3=A4=A5-A6=A7=O; A1=A3=A2=1; delay(1000) ; A1=A2=A3=A4=A5=A6=A7=O; A1=A2=A3=A4=A5=A6=A7=1; delay(1000); A1=A2=A3=A4=A5=A6=A7=O; A1=A2=A3=A4-A6=A7=1; delay(1000); A1=A2=A3=A4=A5=A6=A7=0; A1=A2=A3=A4=A5=A6=1; K2=K3=1; delay(500) ; //shanshuo K1=K2=K3=K4=K5=K6=K7=0; A1=A2=A3=A4=A5=A6=A7=0; K12=K11=0; K13=1; A2=A3=1; delay (500) ; K13=0; del ay(500) ; K13=1; K1=K2=K3=K4=K5=K6=K7=0; A1=A2=A3=A4=A5=A6=A7=0; AI=A2=A4=A5=A7=1; delay(500); K13=0; } }加一个停止按钮的程序
时间: 2023-08-09 10:08:17 浏览: 58
好的,我可以帮你添加一个停止按钮的程序。修改后的程序如下:
```
#include <reg52.h>
sbit K1=P0^0, K2=P0^1, K3=P0^2, K4=P0^3, K5=P0^4, K6=P0^5, K7=P0^6;
sbit A1=P2^0, A2=P2^1, A3=P2^2, A4=P2^3, A5=P2^4, A6=P2^5, A7=P2^6;
sbit K11=P1^0, K12=P1^1, K13=P1^2;
sbit STOP=P1^3; // 停止按钮
void delay(unsigned int xms)
{
unsigned int x,y;
for(x=xms;x>0;x--)
for(y=110;y>0;y--);
}
void main()
{
while(1)
{
if(STOP == 1) // 停止按钮按下
{
TR0 = 0; // 停止计时器
EA = 0; // 关闭中断
K1 = K2 = K3 = K4 = K5 = K6 = K7 = 0; // 关闭LED灯
A1 = A2 = A3 = A4 = A5 = A6 = A7 = 0; // 关闭数码管
}
else // 停止按钮未按下
{
K12 = 1;
K11 = K13 = 0;
K1 = K2 = K3 = K4 = K5 = K6 = K7 = 0;
A1 = A2 = A3 = A4 = A5 = A6 = A7 = 0;
A2 = A3 = 1;
delay(1000);
A1 = A2 = A3 = A4 = A5 = A6 = A7 = 0;
A1 = A2 = A4 = A5 = A7 = 1;
delay(1000);
A1 = A2 = A3 = A4 = A5 = A6 = A7 = 0;
A2 = A4 = A3 = A7 = 1;
delay(1000);
A1 = A2 = A3 = A4 = A5 = A6 = A7 = 0;
A3 = A2 = A7 = A6 = 1;
delay(1000);
A1 = A2 = A3 = A4 = A5 = A6 = A7 = 0;
A1 = A3 = A4 = A7 = A6 = 1;
delay(1000);
A1 = A2 = A3 = A4 = A5 = A6 = A7 = 0;
A1 = A5 = A3 = A4 = A7 = A6 = 1;
delay(1000);
A1 = A2 = A3 = A4 = A5 = A6 = A7 = 0;
A2 = A3 = A4 = A5 = A6 = A7 = 1;
delay(1000);
A1 = A2 = A3 = A4 = A5 = A6 = A7 = 0;
A1 = A2 = A3 = A4 = A5 = A6 = A7 = 1;
delay(1000);
A1 = A2 = A3 = A4 = A5 = A6 = A7 = 0;
A1 = A2 = A3 = A4 = A6 = A7 = 1;
delay(1000);
A1 = A2 = A3 = A4 = A5 = A6 = A7 = 0;
A1 = A2 = A3 = A4 = A5 = A6 = 1;
K2 = K3 = 1;
delay(500);
K1 = K2 = K3 = K4 = K5 = K6 = K7 = 0;
A1 = A2 = A3 = A4 = A5 = A6 = A7 = 0;
K12 = K11 = 0;
K13 = 1;
A2 = A3 = 1;
delay(500);
K13 = 0;
delay(500);
K13 = 1;
K1 = K2 = K3 = K4 = K5 = K6 = K7 = 0;
A1 = A2 = A3 = A4 = A5 = A6 = A7 = 0;
A1 = A2 = A4 = A5 = A7 = 1;
delay(500);
K13 = 0;
K11 = 1;
K12 = K13 = 0;
K1 = K2 = K3 = K4 = K5 = K6 = K7 = 0;
A1 = A2 = A3 = A4 = A5 = A6 = A7 = 0;
A2 = A3 = 1;
delay(1000);
A1 = A2 = A3 = A4 = A5 = A6 = A7 = 0;
A1 = A2 = A4 = A5 = A7 = 1;
delay(1000);
A1 = A2 = A3 = A4 = A5 = A6 = A7 = 0;
A1 = A2 = A4 = A3 = A7 = 1;
delay(1000);
A1 = A2 = A3 = A4 = A5 = A6 = A7 = 0;
A3 = A2 = A7 = A6 = 1;
delay(1000);
A1 = A2 = A3 = A4 = A5 = A6 = A7 = 0;
A1 = A3 = A4 = A7 = A6 = 1;
delay(1000);
A1 = A2 = A3 = A4 = A5 = A6 = A7 = 0;
A5 = A3 = A4 = A7 = A6 = 1;
delay(1000);
A1 = A2 = A3 = A4 = A5 = A6 = A7 = 0;
A3 = A2 = 1;
delay(1000);
A1 = A2 = A3 = A4 = A5 = A6 = A7 = 0;
A1 = A2 = A3 = A4 = A5 = A6 = A7 = 1;
delay(1000);
A1 = A2 = A3 = A4 = A5 = A6 = A7 = 0;
A1 = A2 = A3 = A4 = A6 = A7 = 1;
delay(1000);
A1 = A2 = A3 = A4 = A5 = A6 = A7 = 0;
A1 = A2 = A3 = A4 = A5 = A6 = 1;
K2 = K3 = 1;
delay(500);
}
}
}
```
在程序中添加了一个停止按钮的判断,当停止按钮被按下时,关闭计时器、关闭中断、关闭LED灯和数码管。当停止按钮未被按下时,继续执行原来的LED灯和数码管的循环显示操作。