51试完成下列程序的流程图绘制,并说明程序完成什么功能wz?
发布网友
发布时间:2023-07-21 19:35
我来回答
共1个回答
热心网友
时间:2023-07-24 22:19
//如图,允许多键同时按下,
//在KEY2或KEY3的中断服务期间,key1的中断请求仍能被服务;
//当KEY2与KEY3同时按下时,key2优先被服务,key3在key2服务结束后才能被服务;
//在key3的中断服务期间,key2的中断请求不能被服务。
//编程实现上述功能,设8051的主频为12MHZ,
//每个中断的服务用调用软件延时程序DELAY来模拟。
//k1 ---------> X0
//k2 or k3 ---> X1
#include<reg51.h>
sbit P10 = P1^0; //CLR k1
sbit P11 = P1^1; //CLR k2
sbit P12 = P1^2; //CLR k3
sbit P13 = P1^3;
sbit P14 = P1^4;
sbit P15 = P1^5;
sbit P16 = P1^6; //k2
sbit P17 = P1^7; //k3
//------------------------------------------------------
void delay_ms(unsigned int num)
{
unsigned int i, j;
for(i = num; i > 0; i--) for(j = 124; j > 0; j--);
}
//------------------------------------------------------
void main(void) using 0
{