⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testcmd1.cpp

📁 PC104对串口芯片16C2550的编成
💻 CPP
字号:
#include<stdlib.h>
#include<string.h>
#include<stdio.h>

#include<DOS.h>
#include<math.h>
#include<conio.h>
#include<stdarg.h>
#include <graphics.h>
#define ESC 0x1b /*define the escape key*/
void interrupt NewHandler1(...);

void interrupt(* oldHandler)(...);
int IrqVect(int _nIrq);
void CommIrqEnable(int _nIrq);
int key2=0;


main()
{
int i1=0;
char tem1=0;
 getch();
disable();
outportb(0x22b,0x80);
outportb(0x228,0x06);
outportb(0x229,0x00);
outportb(0x22b,0x03);
outportb(0x22a,0xcb);
outportb(0x229,0x01);
outportb(0x22c,0x08);
oldHandler=getvect(IrqVect(12));
setvect(IrqVect(12),NewHandler1);
CommIrqEnable(12);
outportb(0x22a,0xcb);

enable() ;
printf("lsr:%x",inportb(0x22d));
printf("lcr:%x",inportb(0x22b));
printf("isr:%x",inportb(0x22a));
printf("ier:%x",inportb(0x229));
printf("mcr:%x",inportb(0x22c));



    for (int i2=0;i2<14;i2++)
    {
    printf("%x",inportb(0x228));
    }

getch();



  while(!kbhit())
{

 printf("ISR:%x",inportb(0x22a));
 printf("LSR:%x",inportb(0x22d));

	if (key2==1)

	{
		printf("i do\n");
		for(i1=0;i1<14;i1++)
		{
			printf("1  ");
			tem1=inportb(0x228);
			printf("2  ");
			printf("%d  %x",i1,tem1);
			printf("  3\n");
		}
		outportb(0x22a,0xcb);
		printf("ok?");
		key2=0;

	}

}
	getch();
	printf("LSR:%x",inportb(0x22d));

setvect(IrqVect(12),oldHandler);
getch();

 return 0;


}





int IrqVect(int _nIrq)
{
    int vect;
    if(_nIrq<8)  vect=_nIrq+0x08;
    else vect=_nIrq+0x70-8;
    return vect;
}

void CommIrqEnable(int _nIrq)// surpose all interrupt enable
{
    int nSetInt;
    int nPort;
    nPort=0xA1;
    if(_nIrq<8)nPort=0x21;
    if( _nIrq<8 )
    {
	nSetInt=1<<_nIrq;
    }
    else
    {
	nSetInt=1<<(_nIrq-8);outportb(0x21,inportb(0x21)&0xfb);
    }
	nSetInt=~nSetInt;
	if(_nIrq<8)
	outportb(nPort,inportb(nPort)&nSetInt);
	else
	{
	outportb(nPort,inportb(nPort)&nSetInt);
	}
}

void interrupt NewHandler1(...)
{
     key2=1;


outportb(0x20,0x20);
outportb(0xa0,0x20);
}




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -