现代交换原理课设 - 图文 联系客服

发布时间 : 星期日 文章现代交换原理课设 - 图文更新完毕开始阅读b59aac3781c758f5f71f6729

五、摘/挂机识别程序流程图如图

六、 MATLAB程序

#include #include #include

#define FIRST_BOARD_HOOK_ADDRESS 0x260

#define OFFHOOK_QUEUE_SIZE 16 #define ONHOOK_QUEUE_SIZE 16 #define SUM_BOARD_3 int i;

unsigned char UM_offhook; unsigned char Lm[1];

unsigned char Subs_Bit[8];

unsigned char OffHook_Queue[OFFHOOK_QUEUE_SIZE];

unsigned char OffHook_Spos,OffHook_Rpos,OffHook_Queue_Flag; unsinged char OnHook_Queue[ONHOOK_QUEUE_SIZE];

unsigned char OnHook_Spos,OnHook_Rpos,OnHook_Queue_Flag; unsigned char UM_OffHook_1,UM_OnHook_1; void ScanFirstBoard(void); main()

OffHook_Queue[0]=0; OffHook_Spos=0; OffHook_Rpos=0;

OffHook_Queue_Flag=0; OnHook_Queue[0]=0; OnHook_Spos=0; OnHook_Rpos=0;

OnHook_Queue_Flag=0; Lm[0]=0;

Subs_Bit[0]=0x01; Subs_Bit[1]=0x02; Subs_Bit[2]=0x04; Subs_Bit[3]=0x08; Subs_Bit[4]=0x10; Subs_Bit[5]=0x20; Subs_Bit[6]=0x40; Subs_Bit[7]=0x80; UM_OffHook_1=0; UM_OnHook_1=0; Outportb(0x369,0); clrscr();

printf(“Please offhook,check offhooksubscriber number.\\n”); printf(“Then onhook,checkonhooksubscriber number.\\n”); for(;;) {

If(kbhir()) Break; Delay(20);

ScanFirstBoard(); }

Return0; }

Void ScanFirstBoard() {

unsigned char Scn;

unsigned char NewScan_OffHook; unsigned char NewScan_OnHook; unsigned char OldLm;

unsigned char CurrentBoardNum; unsigned int JudgeWord; int i;

CurrentBoardNum=0x01;

Scn=inportb(FIRSR_BOARD_HOOK-ADDRESS)&0xff; JudgeWord=UM_OffHook_1 & Scn; i=7;

while(JudgeWord!=0) {

While((JudgeWord&Subs_Bir[i])!=Subs_Bit[i]) i--;

if(((OffHook_Spos+1)==OffHook_Rpos)||((OffHook_Spos==OFFHOOK_QUEUE_SIZE)&&(OffHook_Spos==0))) {

Printf(“OffHook_Queue is Full. Not Insert. \\ n”); } Else {

OffHook_Queue[OffHook_Spos]=i; printf(“OffHook_Queue:

BoardNum:%d,OffHook_Sub:%d\\n”,CurrentBoardNum,i+1); }

JudgeWord=JudgeWord&(~Subs_Bit[i]); i--; }

printf(“OffHook_Queue : %x\\n”,OffHook_Queue[OffHook_Spos]); NewScan_OffHook=Scn; OldLm=Lm[0];

UM_OffHook_1=NewScan_OffHook&(~OldLm); NewScan_OnHook=Scn;

JudgeWord=UM_OnHook_ 1 &(~NewScan_OnHook); i=7;

while(JudgeWord ! =0) {

While((JudgeWord&Subs_Bit[i])!=Subs_Bit[i] i--;

if(((OnHook_Spos+1)==OnHook_Rpos)||((OnHook_Spos==ONHOOK_QUEUE_SIZE)&&(OnHook_Rpos==0))) {

Printf(“OnHook_Queue is Full . Not Insert. \\n”); } else {

OnHook_Queue[OnHook_Spos]=i;

printf(“OnHook_Queue: %d,OnHook_Sub:%d \\n”, }

JudgeWord=JudgeWord&(~Subs_Bit[i]); i--; }

NewScan_OnHook=Scn; OldLm=Lm[0];

UM_OnHook_1=(~NesScan_OnHook)&OldLm; Lm[0]=Scn;}

七、仿真图