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

📄 eye12.c

📁 c语言和汇编语言混合编程实例详解.rar
💻 C
字号:
/*********************************************************************
*这是在DS87C520/W77E58单片机上运行的程序,文件名为eye12.c
*功能:DS87C520/W77E58作为分站与上位机(PC机或工控机)通讯,
*     双方均有RS232接口 ,用DS87C520/W77E58的SCON1通讯口。T1作波
*     特率发生器, 波特率为9600,本站接受15个字节,发送43个字节。
*     配套上位机程序为xsa3.c。
**********************************************************************/
#include <w77e58.h>
#include <stdio.h>
#define uchar unsigned char
#define uint unsigned int
void timedelay(uint timess);

uchar n;
uchar idata rbut[16];
uchar idata tbut[42];
uchar kc1,kc2,aa,coni;

sbit p10=P1^0;
sbit p11=P1^1;

void timedelay(uint timess)
{
 uint tj;
 for (tj=timess;tj>0;tj--){;}
}

sio1() interrupt 7  using 2
{
      aa++;
  if (RI_1==0) {
      if  (TI_1==0) {RI_1=0;TI_1=0;return;}
      SBUF1=tbut[kc1];
      kc1++;
      if (kc1!=42) {RI_1=0;TI_1=0;return;}
      kc1=0;
      SCON1=0xf0;
      loo1:if (TI_1==0) goto loo1;
      RI_1=0;
      TI_1=0;
  }
  if (SM2_1==0) {
    rbut[kc2]=SBUF1;
    kc2++;
    if (kc2!=15) {RI_1=0;TI_1=0;return;}
    kc2=0;
    SCON1=0xe8;
    SBUF1=0xff;
    TB8_1=0;
    SM2_1=0;
    RI_1=0;
    TI_1=0;
  }
  if (SBUF1!=1) {RI_1=0; return;}
  SM2_1=0;
  RI_1=0;
}

void main()
{
  timedelay(20000);
  kc1=0;
  kc2=0;
  EA=0;
  for (coni=0;coni<42;coni++)
  {
    tbut[coni]=coni;
  }
  TMOD=0x20;
  PCON=0x0;
  TL1=0xfd;
  TH1=0xfd;   //11.0592mhz,smod=0,1200==0xe8;9600==0xfd
  TR1=1;
  CKCON=0x00;
  SADDR1=01;
  SADEN1=0;
  SCON1=0xf0;
  PS1=1;
  ES1=1;
  EA=1;
  aa=0;
  while(1);
}

⌨️ 快捷键说明

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