亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? comintr.cpp

?? c++builder串口編程
?? CPP
字號(hào):
/************************************************************
Defines a function as an interrupt handler.
  interrupt <function-definition>(...) ;
All CPU registers are saved and the function is terminated with an IRET instruction.
When you use the interrupt keyword,
1.the Stack warning checkbox should be unchecked (off),
2.the Register Variables option should be set to None.
**************************************************************/
#include <dos.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#include <bios.h>

#define com1 0x3F8
#define com2 0x2F8
int COM=com2;
unsigned char bdh=0x00,bdl=0x0c;
unsigned char sbuf[100];		//發(fā)送緩沖區(qū)
unsigned char rbuf[20][100];	//接收緩沖區(qū)
unsigned char rbuf1[100];		//接收緩沖區(qū)
int ri=0,si=0,k=0,x=0;
int rif=0,sif=0,sif1=0;
float pra[4][4]={11,12,13,14,21,22,23,24};
//===================================================
void interrupt (*old_int_com1)(...);	//老的通信中斷程序
void interrupt (*old_int_com2)(...);	//老的通信中斷程序
void interrupt   new_int(...)		//自己的通信中斷程序
{
unsigned char statue;
unsigned char ch;
	do{							//COM2
		statue=inp(COM+2);		//讀取中斷標(biāo)識(shí)寄存器
		if(statue == 0x02)		//是否為發(fā)送中斷?
		  {
			if(sif) {  outp(COM,sbuf[si]);sif1=1;}
			else sif1=0;
			if(!sbuf[si])   sif=0;
			si++;
		  }
		if(statue == 0x04)		//是否為接收中斷?
		  {
			ch=inp(COM);
			if(ch==255) {ri=0;ch=254;}
			rbuf[k][ri++]=ch;
			if(!ch) {rbuf[k][0]=255;k++;ri=0;if(k>19) k=0;}
		  }
	}while(inp(COM+2)!= 0x01);	//是否還有中斷?
	outp(0x20,0x20);			//通知8259中斷處理結(jié)束
}
//===================================================
void send(unsigned char f1,unsigned char f2,float f3)
{
	  while(sif1);
	  sbuf[0]=255;
	  sbuf[1]=f1;
	  sbuf[2]=f2;
	  sprintf(&sbuf[3],"%6.1f",f3);
	  si=1;
	  sif=sif1=1;
	  outp(COM, sbuf[0]);	//啟動(dòng)中斷發(fā)送
}
//===================================================
void sendc(unsigned char f1)
{
	  while(sif1);
	  sbuf[0]=255;
	  sbuf[1]=f1;
	  sbuf[2]=0;
	  si=1;
	  sif=sif1=1;
	  outp(COM, sbuf[0]);	//啟動(dòng)中斷發(fā)送
}
//===================================================
void set_com()
{
	asm cli				//disable(); 關(guān)中斷
	setvect(0x0B, old_int_com2);	//恢復(fù)老的中斷向量
	setvect(0x0C, old_int_com1);	//恢復(fù)老的中斷向量
	if(COM==com2)
	  setvect(0x0B ,new_int );  //使新的中斷向量指向自己的通信中斷程序。
	if(COM==com1)
	  setvect(0x0C ,new_int );  //使新的中斷向量指向自己的通信中斷程序。

	outp(COM+3,0x80);	//置DLAB=1,允許訪問波特率因子寄存器
	outp(COM,bdl);	//寫入波特率因子LSB,設(shè)置通信波特率=9600
	outp(COM+1,bdh);	//寫入波特率因子MSB
	outp(COM+3,0x03);	//設(shè)置通信格式(無校驗(yàn),停止位=1,數(shù)據(jù)位=8)
	if(COM==com1)
	  outp(0x21, inp(0x21)&0xEF);	//xxx0 xxxx,允許IRQ4中斷請(qǐng)求COM1
	if(COM==com2)
	  outp(0x21, inp(0x21)&0xF7);	//xxxx 0xxx,允許IRQ3中斷請(qǐng)求COM2
	outp(COM+4,0x08);	//設(shè)置MODEM控制寄存器,OUT2=1,
						//允許8250產(chǎn)生的中斷進(jìn)入8259
	outp(COM+1,0x03);	//設(shè)置中斷允許寄存器,允許發(fā)送、接收中斷
	asm sti				//enable();開中斷

	clrscr();
	textcolor(14);
	cprintf("RS-232 communications (serial I/O) TEST V1.2  by Chen Jiaqi 2000\n");
	printf("\n");
	if(COM==com2)
	  printf("Com2 Test[B=9600,S=1,P=None];     Press [F5]->Com1;\n");
	if(COM==com1)
	  printf("Com1 Test[B=9600,S=1,P=None];     Press [F5]->Com2;\n");
	printf("Press [F1]->Send Pra. of Group 1; Press [F2]->Send Pra. of Group 2\n");
	printf("Press [F3]->Get  Pra. of Group 1; Press [F4]->Get  Pra. of Group 2\n");
	printf("Press [Esc]->Quit;\n");
}
//===================================================
void main()
{
int i,ch,j,comn=0;
union k{ char c[2]; int i; } key;
	old_int_com1 =getvect(0x0C);	//修改中斷向量表(COM1:0CH, COM2:0BH)
	old_int_com2 =getvect(0x0B);	//修改中斷向量表(COM1:0CH, COM2:0BH)
	COM=com2;		//Com2
	set_com();

   for(i=0;i<20;i++)
	 rbuf[i][0]=0;
	for( ; ; )
	{
	  for(i=0;i<20;i++)
	   {
		if(rbuf[i][0]==255)
		{
		  for(j=0;j<100;j++)
			 rbuf1[j]=rbuf[i][j];
		  rif=1;
		  rbuf[i][0]=0;
		  break;
		}
	   }
		if(rif)
		{
		  i=0;
		  do{
			printf("%d,",rbuf1[i++]);
		  }while(rbuf1[i-1]);
		  switch(rbuf1[1])
		  {
		   case 1:
				 switch(rbuf1[2])
				 {
				  case 1:
						 printf("[No.1.1 %6.1f],",pra[0][0]=atof(&rbuf1[3]));
						 break;
				  case 2:
						 printf("[No.1.2 %6.1f],",pra[0][1]=atof(&rbuf1[3]));
						 break;
				  case 3:
						 printf("[No.1.3 %6.1f],",pra[0][2]=atof(&rbuf1[3]));
						 break;
				  case 4:
						 printf("[No.1.4 %6.1f],",pra[0][3]=atof(&rbuf1[3]));
						 break;
				  }
				  break;
		   case 2:
				 switch(rbuf1[2])
				 {
				  case 1:
						 printf("[No.2.1 %6.1f],",pra[1][0]=atof(&rbuf1[3]));
						 break;
				  case 2:
						 printf("[No.2.2 %6.1f],",pra[1][1]=atof(&rbuf1[3]));
						 break;
				  case 3:
						 printf("[No.2.3 %6.1f],",pra[1][2]=atof(&rbuf1[3]));
						 break;
				  case 4:
						 printf("[No.2.4 %6.1f],",pra[1][3]=atof(&rbuf1[3]));
						 break;
				  }
				  break;
		   case 11:
				  send(1,1,pra[0][0]);
				  send(1,2,pra[0][1]);
				  send(1,3,pra[0][2]);
				  send(1,4,pra[0][3]);
				  break;
		   case 21:
				  send(2,1,pra[1][0]);
				  send(2,2,pra[1][1]);
				  send(2,3,pra[1][2]);
				  send(2,4,pra[1][3]);
				  break;
		   }
		  printf("\n");
		  rif=0;
		}
		 if(kbhit())
		 {
		  key.i=bioskey(0);
		  if(key.c[0]==27) break;		//按Esc鍵退出!
		  if(key.c[0]=='q'||key.c[0]=='Q') break;//按Q鍵退出!
		  if(!key.c[0])
		   switch(key.c[1])
			{
			  case 59:				//F1: Send Pra. of Group 1
				  send(1,1,pra[0][0]);
				  send(1,2,pra[0][1]);
				  send(1,3,pra[0][2]);
				  send(1,4,pra[0][3]);
				printf("Send Pra. of Group 1 = Ok!\n");
				break;
			  case 60:				//F2: Send Pra. of Group 2
				  send(2,1,pra[1][0]);
				  send(2,2,pra[1][1]);
				  send(2,3,pra[1][2]);
				  send(2,4,pra[1][3]);
				printf("Send Pra. of Group 2 = Ok!\n");
				break;
			  case 61:				//F2: Get Pra. of Group 1
				  sendc(11);
				printf("Send command (Get Pra. of Group 1) = Ok!\n");
				break;
			  case 62:				//F2: Get Pra. of Group 2
				  sendc(21);
				printf("Send command (Get Pra. of Group 2) = Ok!\n");
				break;
			  case 63:				//F5: Com1<->Com2
				if(comn=!comn)
				{
				COM=com1;		//Com1
				set_com();
				}
				else
				{
				COM=com2;		//Com2
				set_com();
				}
				break;
			}
		 }
	}
	asm cli				//disable();
	outp(COM+1,0x00);	//設(shè)置中斷允許寄存器,關(guān)閉發(fā)送、接收中斷
	outp(COM+4,0x00);	//關(guān)閉8250產(chǎn)生的中斷進(jìn)入8259
	if(COM==com2)
	  outp(0x21, inp(0x21) | 0x08);	//xxxx 1xxx,關(guān)閉IRQ3中斷請(qǐng)求COM2
	if(COM==com1)
	  outp(0x21, inp(0x21) | 0x10);	//xxx1 xxxx,關(guān)閉IRQ4中斷請(qǐng)求COM1
	setvect(0x0B, old_int_com2);	//恢復(fù)老的中斷向量
	setvect(0x0C, old_int_com1);	//恢復(fù)老的中斷向量
	asm sti				//enable();
}
//===================================================

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
2021国产精品久久精品| 欧美精品一区二区三区蜜桃| 国产高清亚洲一区| 蜜臀91精品一区二区三区| 日韩精品欧美精品| 日本一区中文字幕| 久久99精品一区二区三区三区| 免费成人在线观看| 国产露脸91国语对白| 国产精品一区二区男女羞羞无遮挡| 蜜臀91精品一区二区三区| 免费成人在线影院| 国产精品一区二区x88av| 国产91色综合久久免费分享| 成人免费毛片a| 一本一本久久a久久精品综合麻豆| 波多野结衣精品在线| 91久久精品一区二区三| 欧美日韩亚洲综合一区二区三区| 欧美色图第一页| 欧美精品乱人伦久久久久久| 日韩免费高清av| 国产精品乱人伦| 亚洲综合在线观看视频| 日韩高清中文字幕一区| 极品少妇xxxx精品少妇偷拍| 成人性生交大片免费看中文网站| 99久久99久久精品免费观看| 欧美无砖专区一中文字| 日韩精品在线一区| 综合亚洲深深色噜噜狠狠网站| 亚洲综合色丁香婷婷六月图片| 麻豆成人91精品二区三区| 成人激情午夜影院| 欧美喷潮久久久xxxxx| 国产夜色精品一区二区av| 一二三四社区欧美黄| 国产一区三区三区| 欧美图区在线视频| 亚洲国产精品av| 水蜜桃久久夜色精品一区的特点| 国产成人自拍高清视频在线免费播放| 色综合久久99| 国产亚洲精品7777| 日本中文字幕一区| 日本韩国精品在线| 欧美国产精品v| 日韩av电影免费观看高清完整版在线观看| 国产精品亚洲午夜一区二区三区| 色综合激情久久| 久久久久久久久久久久电影| 亚洲国产中文字幕| 成人视屏免费看| 精品国产百合女同互慰| 夜夜精品浪潮av一区二区三区| 风间由美一区二区av101| 91精品国产免费| 亚洲一区在线视频| 91亚洲资源网| 亚洲婷婷国产精品电影人久久| 久久成人精品无人区| 欧美三级日韩三级| 亚洲免费看黄网站| 99天天综合性| 中文字幕中文字幕一区| 国产xxx精品视频大全| 日韩美女在线视频| 免费在线观看不卡| 欧美精品日韩综合在线| 亚洲bt欧美bt精品| 欧美日韩国产影片| 亚洲成人在线观看视频| 欧美丝袜丝交足nylons图片| 亚洲少妇屁股交4| av网站免费线看精品| 中文字幕色av一区二区三区| 国产成人免费高清| 欧美激情一区二区三区| 粉嫩aⅴ一区二区三区四区| 国产三级精品视频| 国产成人午夜精品5599| 国产婷婷色一区二区三区| 国产91清纯白嫩初高中在线观看 | 波多野结衣中文一区| 国产欧美视频一区二区| 高清在线成人网| 亚洲视频在线观看三级| 欧美在线综合视频| 日韩精品免费专区| 久久久久国产免费免费| 成人理论电影网| 亚洲色图.com| 欧美一区二区日韩| 国产在线精品一区二区三区不卡 | 久久久精品天堂| 成人免费高清视频在线观看| ...av二区三区久久精品| 色噜噜久久综合| 日韩一区欧美二区| 久久免费国产精品| 欧美亚洲禁片免费| 精品一区二区三区视频| 亚洲三级电影网站| 欧美一区二区在线免费观看| 国产乱妇无码大片在线观看| 亚洲黄色性网站| 91精品国产一区二区三区香蕉| 国产伦精品一区二区三区免费迷 | 成人av网站在线观看| 亚洲精品va在线观看| 精品电影一区二区| 91网上在线视频| 久久机这里只有精品| 国产精品伦理一区二区| 制服丝袜亚洲网站| 99国产精品久| 精品一区二区影视| 亚洲黄色性网站| 久久久夜色精品亚洲| 在线观看日韩一区| 国产一区二区成人久久免费影院| 亚洲精品中文字幕乱码三区| 日韩欧美成人一区| 日本高清视频一区二区| 国产福利一区二区| 日韩专区欧美专区| 亚洲精品综合在线| 国产精品五月天| 久久先锋资源网| 欧美精品一二三区| 欧美亚洲国产bt| bt欧美亚洲午夜电影天堂| 久久电影网站中文字幕| 亚洲一区二区三区三| 亚洲欧洲一区二区在线播放| 精品国产自在久精品国产| 欧美亚洲国产一区二区三区va| 成人激情综合网站| 国产九九视频一区二区三区| 男男视频亚洲欧美| 五月婷婷久久丁香| 夜夜亚洲天天久久| 亚洲码国产岛国毛片在线| 欧美激情一区在线观看| 久久日韩粉嫩一区二区三区| 91精品久久久久久久91蜜桃| 欧美日本在线视频| 欧美性色黄大片| 欧美视频自拍偷拍| 欧美在线高清视频| 欧美综合亚洲图片综合区| 91亚洲精品久久久蜜桃| 99在线热播精品免费| 丁香天五香天堂综合| 国产精品一区三区| 国产成人精品亚洲午夜麻豆| 国产一区久久久| 国产成人午夜视频| 成熟亚洲日本毛茸茸凸凹| 国产不卡免费视频| 成人激情午夜影院| 91在线云播放| 欧美在线视频日韩| 欧美精品久久久久久久多人混战 | 久久不见久久见免费视频1| 日本午夜一本久久久综合| 青娱乐精品视频| 极品少妇xxxx精品少妇偷拍| 国产成人在线色| 91视频免费观看| 欧美男人的天堂一二区| 欧美一级二级在线观看| 久久精品在线观看| 亚洲欧美日韩在线| 视频一区二区三区中文字幕| 毛片av中文字幕一区二区| 国产一区二区伦理片| 色欧美乱欧美15图片| 91精品国产综合久久久久| 国产亚洲一二三区| 亚洲免费观看视频| 麻豆精品一区二区三区| 国产一区二区中文字幕| 色综合天天综合在线视频| 56国语精品自产拍在线观看| 久久一区二区视频| 一区二区三区中文字幕在线观看| 五月天激情小说综合| 国产91丝袜在线18| 欧美三级三级三级爽爽爽| 亚洲精品在线电影| 一区二区久久久| 国模娜娜一区二区三区| 91精品办公室少妇高潮对白| 日韩视频在线你懂得| 亚洲人成网站影音先锋播放| 久久精品国产成人一区二区三区 | 99久久er热在这里只有精品66| 欧美色欧美亚洲另类二区| 亚洲精品一区在线观看|