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

📄 新建 文本文档.txt

📁 远程监控的程序(可以参考一下) 希望对学习 单片机的有点帮助
💻 TXT
字号:
#include <AT89X52.H>
unsigned  char  k,a1=0,t=0;
char code  buff[10]={0x77,0x14,0x6d,0x5d,0x1e,0x5b,0x7b,0x15,0x7f,0x5f};
delay()
 {  
 unsigned   int  i=0x00ff;
while(i--);
}
into()
{
TMOD=(TMOD&0x0f)|0x20;
   TH1=0xfd;
   SCON=0x50;
   TR1=1;
   ES=1;
   EA=1;
  }
  chuankou() interrupt 4
  {
       if(RI==1)
	  {
       RI= 0;
	   a1++;
	   if(a1==10)
	   a1=1;
	   k=SBUF;
   if((k>=48&&k<=57)||(k>=65&&k<=90)||(k>=97&&k<=122))
      t=1;
	  else
	  t=2;
if(k>=48&&k<=57)
  k-=18;
if(k>=65&&k<=90)
   k-=24;
if(k>=97&&k<=122)
   k-=29;
	        }
		}
 xianshi1()
 {
   P0=buff[a1];
   P2_0=0;
   delay();
   P2_0=1;
   P0=0x40;
   P2_1=0;
   delay();
   P2_1=1;
   P0=buff[k/10];
   P2_2=0;
   delay();
   P2_2=1;
   P0=buff[k%10];
   P2_3=0;
   delay();
   P2_3=1;
}
  xianshi2()
 {
   P0=buff[a1];
   P2_0=0;
   delay();
   P2_0=1;
   P0=0x40;
   P2_1=0;
   delay();
   P2_1=1;
   P0=0x40;
   P2_2=0;
   delay();
   P2_2=1;
   P0=0x40;
   P2_3=0;
   delay();
   P2_3=1;
}
main()
{
into();
while(1)
{
    if(t==0||t==1)
 xianshi1();
if(t==2)
xianshi2();
}
  }
发送窗口源程序: 
#include <stdio.h>
#include <dos.h>
#include <conio.h>
#define BUFFLEN 1024
void InitCOM();  //初始化串口
void OpenPort();  //打开串口
void ClosePort(); //关闭串口,释放串口资源
void interrupt(*asyncoldvect)(...);
unsigned char Buffer[BUFFLEN];
int buffin=0;
int buffout=0;     //unsigned char ch;
void OpenPort()
{
unsigned char ucTemp;
	InitCOM();  //初始化串口
	asyncoldvect=getvect(0x0c);
	disable();       //关中断
	inportb(0x3f8);
	inportb(0x3fe);
	inportb(0x3fb);
	inportb(0x3fa);
	outportb(0x3fc,0x08|0x0b);
	outportb(0x3f9,0x01);
	ucTemp=inportb(0x21)&0xef;
	outportb(0x21,ucTemp);
	setvect(0x0c,asyncint);
	enable();       //开中断
}
void interrupt far asyncint(...)
{
	//unsigned char ch;
	Buffer[buffin++] = inportb(0x3f8);// 读字符到缓冲区
	if (buffin >= BUFFLEN)  // 缓冲区满
		buffin=0;           // 指针复位
	outportb(0x20,0x20);
}
void ClosePort(void) //关闭中断
{
	disable();
	outportb(0x3f9,0x00);
	outportb(0x3fc,0x00);
	outportb(0x21,inportb(0x21)&0x10);
	enable();
	setvect(0x0c,asyncoldvect);
}
unsigned char read_char(void)
{
	unsigned unch;
	if(buffout != buffin)
	{
		unch = Buffer[buffout];
		buffout++;
		if(buffout >= BUFFLEN)
			buffout=0;
		return(unch);
	}
	else
		return(0xff);
}
void main()
{
	unsigned char unChar;
	short bExit_Flag=0;
OpenPort(); //打开串口
fprintf(stdout, "\n\nReady to Receive DATA\n"
			"press [ESC] to quit...\n\n");
do {
		if (kbhit())
		{
			unChar=getch();    /* Look for an ESC key */
			switch (unChar)
			{
			case 0x1B:   //ESC的ASCII值为27
				bExit_Flag = 1;  /* Exit program */
				break;
						}
		}
		unChar = read_char();  //从缓冲区中读数
		if (unChar != 0xff)
		{
			fprintf(stdout,"%c",unChar);
		}
	} while (!bExit_Flag);
ClosePort(); //关闭串口

⌨️ 快捷键说明

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