下面是从机的程序,因为想先搞个简单的所以我从机1和从机2只是前面的宏定义的序号不同可以让主机来区分从机。程序都是一样的。求帮忙
/*************** writer:shopping.w ******************/
#include <reg51.h>
#define uchar unsigned char
#define zj1 1
sbit P3_7=P3^7;
uchar code table[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
void display(uchar ch){
if((ch>=48)&& (ch<=57))P2=table[ch-48];
else if ( ( ch>=65)&&(ch<=70)) P2=table[ch-55] ;
}
void main()
{
SCON = 0xf0; //串行方式3多机通讯,允许接受,中断标志清零
TMOD = 0x20; //T1方式2
TH1 = 0xfd;
TL1 = 0xfd;
TR1=1;
EA= 1;
ES = 1;
while(1);
}
void receive (void) interrupt 4
{
RI=0;
if(RB8==1){
if(SBUF==zj1){ //如果选择了次从机引脚就翻转
SM2=0;
P3_7=!P3_7; }
return;
}
display(SBUF); //将主机穿过来的型号通过查表来输出
SM2=1;
} |