p1.0有低电平输入,向电脑先发1再发0,高电平先发1再发1;p1.1口有低电平输入,向电脑先发2再发0,高电平先发2再发1;p1.2口有低电平输入,向电脑先发3再发0,高电平先发3再发1;以此类推。这是自己写的不对求助。
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
uchar b;
void Delay(unsigned int t); //函数声明
uchar num;
sbit c1=P1^0;
sbit c2=P1^1;
sbit c3=P1^2;
sbit c4=P1^3;
sbit c5=P1^4;
sbit c6=P1^5;
sbit c7=P1^6;
sbit c8=P1^7;
void sendchar0(uchar a) //发送编号,0表示有
{
SBUF=a;
Delay(4000);
SBUF=0; //0表示有
while(!TI); //等待数据传输
TI=0; //清除数据传送标志
}
void sendchar1(uchar b) //发送车位编号,1表示无
{
SBUF=b;
Delay(4000);
SBUF=1; //1表示无
while(!TI); //等待数据传输
TI=0; //清除数据传送标志
}
main()
{
SCON = 0x50; // SCON: 模式 1, 8-bit UART, 使能接收
TMOD |= 0x20; // TMOD: timer 1, mode 2, 8-bit 重装
TH1 = 0xFD; // TH1: 重装值 9600 波特率 晶振 11.0592MHz
TR1 = 1; // TR1: timer 1 打开
EA = 1; //打开总中断
// ES = 1; //打开串口中断
if(P1!=0)
ES=1;
}
void SER (void) interrupt 4 //串行中断服务程序
{
if(c1==0){sendchar0(1);}
else{Delay(4000);sendchar1(1);}
if(c2==0){sendchar0(2);}
else{Delay(4000);sendchar1(2);}
if(c3==0){sendchar0(3);}
else{Delay(4000);sendchar1(3);}
if(c4==0){sendchar0(4);}
else{Delay(4000);sendchar1(4);}
if(c5==0){sendchar0(5);}
else{Delay(4000);sendchar1(5);}
if(c6==0){sendchar0(6);}
else{Delay(4000);sendchar1(6);}
if(c7==0){sendchar0(7);}
else{Delay(4000);sendchar1(7);}
if(c8==0){sendchar0(8);}
else{Delay(4000);sendchar1(8);}
}
void Delay(unsigned int t) //延时函数
{
while(--t);
}
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
uchar b;
void Delay(unsigned int t); //函数声明
uchar num;
sbit c1=P1^0;
sbit c2=P1^1;
sbit c3=P1^2;
sbit c4=P1^3;
sbit c5=P1^4;
sbit c6=P1^5;
sbit c7=P1^6;
sbit c8=P1^7;
void sendchar0(uchar a) //发送编号,0表示有
{
SBUF=a;
Delay(4000);
SBUF=0; //0表示有
while(!TI); //等待数据传输
TI=0; //清除数据传送标志
}
void sendchar1(uchar b) //发送车位编号,1表示无
{
SBUF=b;
Delay(4000);
SBUF=1; //1表示无
while(!TI); //等待数据传输
TI=0; //清除数据传送标志
}
main()
{
SCON = 0x50; // SCON: 模式 1, 8-bit UART, 使能接收
TMOD |= 0x20; // TMOD: timer 1, mode 2, 8-bit 重装
TH1 = 0xFD; // TH1: 重装值 9600 波特率 晶振 11.0592MHz
TR1 = 1; // TR1: timer 1 打开
EA = 1; //打开总中断
// ES = 1; //打开串口中断
if(P1!=0)
ES=1;
}
void SER (void) interrupt 4 //串行中断服务程序
{
if(c1==0){sendchar0(1);}
else{Delay(4000);sendchar1(1);}
if(c2==0){sendchar0(2);}
else{Delay(4000);sendchar1(2);}
if(c3==0){sendchar0(3);}
else{Delay(4000);sendchar1(3);}
if(c4==0){sendchar0(4);}
else{Delay(4000);sendchar1(4);}
if(c5==0){sendchar0(5);}
else{Delay(4000);sendchar1(5);}
if(c6==0){sendchar0(6);}
else{Delay(4000);sendchar1(6);}
if(c7==0){sendchar0(7);}
else{Delay(4000);sendchar1(7);}
if(c8==0){sendchar0(8);}
else{Delay(4000);sendchar1(8);}
}
void Delay(unsigned int t) //延时函数
{
while(--t);
}