📄 eye12.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 + -