急求一个c语言程序后天就要用了麻烦各位好心高手帮帮忙。谢谢。

题目;轮询调度算法模拟 内容;rr算法
只是简单的对所有队列进行轮询调度,每次调度发送一个分组使得不同队列在某种程度上平等的使用宽带资源。
wrr算法
给队列赋予不同的权值,代表一次完整的循环队列被服务的分组数,同时设置计数器,初始化为权值,每次轮询时,计数器为非0的队列允许发送一个分组并计数器减1
要求; 调度算法的队列为5.其初始队列长度各不相同,并在每次调度之后又有新的任务随机进入0个或多个队列。
两个程序可以分开写也可以一起写成一个程序。

#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int

uint Tcounetr=0;
unsigned long int mm=0;
sbit P1_6=P1^6;
sbit P1_7=P1^7;

uchar code table[]={0xc0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,}; //设置字符代码

delay(uint m) //延时1ms程序
{ uint i,j;
for(i=m;i>0;i--)
for(j=60;j>0;j--);
}

xian_shi() //显示程序
{ uchar bai,shi,ge,xiaoshu;
unsigned long int k=14,h=36;
unsigned long int jj;
jj=mm*k*h;
bai=jj/1000000;
shi=jj%1000000/100000;
ge=jj%100000/10000;
xiaoshu=jj%10000/1000;

P2=0xE0;
P0=table[bai];
delay(1);
P2=0XF0;

P2=0xD0;
P0=table[shi];
delay(1);
P2=0XF0;

P2=0xB0;
P0=table[ge];
delay(1);
P2=0XF0;

P2=0x70;
P0=table[xiaoshu];
delay(1);
P2=0XF0;
}
timer_init() //定时器计数器初始化函数
{ EA=1;
ET0=1;
ET1=1;
TMOD=0X51;
TH0=0XB1;
TL0=0XE0;
TH1=0;
TL1=0;
TR0=1;
TR1=1;
}
main() //主函数
{
timer_init();
P0=0; //开始数码管不显示
while(1)
{
xian_shi();
delay(2); //数码管刷新时间单位毫秒
}
}
void timer0() interrupt 1 //定时器0中断
{ uchar a;
TR0=0;
TH0=0XB1;
TL0=0XE0;
Tcounetr++;
if(Tcounetr>=50)
{ TR1=0;
Tcounetr=0;
a=TH1;
mm=a*256+TL1;
if(mm>=1984)
if(mm>=3000)
P1_7=0,
P1_6=0;
else
P1_7=0;
else
P1=0XFF;
TH1=0;
TL1=0;
TR1=1;
}
TR0=1;
}
void timer1() interrupt 3 //计数器1中断时出错
{ TR1=0;
TR0=0;
mm=0;
TH0=0XB1;
TL0=0XE0;
TH1=0;
TL1=0;
TR0=1;
TR1=1;
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜